---------------------------
Each ``Tag`` objects has a ``category`` field specyfying its meaning.
-The categories are enumerated in :py:const:`catalogue.models.TAG_CATEGORIES`.
+The categories are enumerated in :py:const:`catalogue.models.tag.TAG_CATEGORIES`.
Tags are used for:
* User shelves. A User can put a ``Book`` on a shelf and add some labels
by adding a number of ``set`` tags to it. A book put on a shelf without
any labels has a Tag with an empty name.
-* Denoting :ref:`ancestor-descendant-relations` using ``book`` tags.
.. _ancestor-descendant-relations:
and the order of children of one parent is expressed with the child
book's ``parent`` and ``parent_number`` fields.
-But aside from that, Tags are used for managing those relationships, too.
-
-Every ``Book`` has a matching `l-tag`. It's a ``Tag`` of category
-``book`` and matching slug with an added 'l-' prefix (the prefix
-is superfluous and we should remove it as some point, as it was only
-needed when tag slugs had to be unique).
-
-The `l-tag` of a ``Book`` is used on:
-
-* all of the book's fragments,
-* all of the book's descendants,
-* all of the book's descendants' fragments.
-
-This is used for:
-
-* finding fragments of a given theme in books with a given user label,
-* on a filtered book list (i.e., author's page), for eliminating
- descendants, if an ancestor is already on the list,
-* when calculating tag book counts, for eliminating descendants as above,
+Additionally, every ``Book`` has a many-to-many relationship `ancestor`,
+onnecting it to all its ancestors, with reverse relationship called
+`descendant`. This relationship is rebuilt after a `Book` is published.
-# -*- coding: utf-8 -*-
-#
# Wolne Lektury documentation build configuration file, created by
# sphinx-quickstart on Fri Mar 30 16:42:44 2012.
#
# serve to show the default.
import sys, os
+import django
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
sys.path += [
- os.path.abspath('..'),
- os.path.abspath('../apps'),
- os.path.abspath('../lib'),
- os.path.abspath('../lib/librarian'),
+ os.path.abspath('../src'),
]
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "wolnelektury.settings")
+django.setup()
master_doc = 'index'
# General information about the project.
-project = u'Wolne Lektury'
-copyright = u'2007-2014, Fundacja Nowoczesna Polska'
+project = 'Wolne Lektury'
+copyright = '2007-2019, Fundacja Nowoczesna Polska'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+#html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
- ('index', 'WolneLektury.tex', u'Wolne Lektury Documentation',
- u'Fundacja Nowoczesna Polska', 'manual'),
+ ('index', 'WolneLektury.tex', 'Wolne Lektury Documentation',
+ 'Fundacja Nowoczesna Polska', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('index', 'wolnelektury', u'Wolne Lektury Documentation',
- [u'Fundacja Nowoczesna Polska'], 1)
+ ('index', 'wolnelektury', 'Wolne Lektury Documentation',
+ ['Fundacja Nowoczesna Polska'], 1)
]
Requirements
------------
-* `Python 2.7 <http://python.org>`_
-* Python requiremets: ``pip install -r requirements.txt``
+* `Python 3.5-3.7 <http://python.org>`_
+* Python requiremets: ``pip install -r requirements/requirements.txt``
* a library for your database of choice
- (see `DBs supported by Django <http://docs.djangoproject.com/en/dev/topics/install/#get-your-database-running>`_)
+ (see `DBs supported by Django <https://docs.djangoproject.com/en/dev/topics/install/#get-your-database-running>`_)
* `Sass <http://sass-lang.com>`_ >= 3.2 for parsing SCSS stylesheets
-* Librarian (bundled as a git submodule, remember to ``git submodule update --init``
* Librarian has more dependencies if you want to build PDF and MOBI files,
see lib/librarian/README.md
* `Solr <https://lucene.apache.org/solr/>`_ server if you want to search
-------
Set up the database with::
- ./manage.py syncdb --migrate
+ ./manage.py migrate
Run the dev server with::
Deployment
----------
-Setup your server in fabfile.py and do::
- fab <your_server_name> deploy
-
-Initial deploy will stop and ask you to provide a localsettings.py file.
-A sample localsettings.py will be put on your server, as well as
-sample configuration for `Nginx <http://nginx.org/>`_,
-`Gunicorn <http://gunicorn.org/>`_ and
-`Supervisord <http://supervisord.org/>`_.
+TODO
Publishing books