{ "info": { "author": "Steve Schwarz", "author_email": "steve@agilitynerd.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "=============================\ndjango-periodicals\n=============================\n\n.. image:: https://badge.fury.io/py/django-periodicals.png\n :target: http://badge.fury.io/py/django-periodicals\n \n.. image:: https://travis-ci.org/saschwarz/django-periodicals.png?branch=master\n :target: https://travis-ci.org/saschwarz/django-periodicals\n\n.. image:: https://coveralls.io/repos/saschwarz/django-periodicals/badge.png?branch=master \n :target: https://coveralls.io/r/saschwarz/django-periodicals?branch=master\n\n.. image:: https://pypip.in/d/django-periodicals/badge.png\n :target: https://crate.io/packages/django-periodicals?version=latest\n\n\nA Django application for periodical/magazine websites with fully cross linked indices on Periodical, Issue, Article, Author, Article Series and Tags. Provides full text search of article titles and descriptions. A complete set of templates are provided. A sitemap is also dynamically generated.\n\nDocumentation\n-------------\n\nThe full documentation is at http://django-periodicals.rtfd.org.\n \n\nFeatures\n--------\n\nI developed ``django-periodicals`` to provide a searchable index for a printed/online magazine. I wanted all the meta data to be fully cross linked. So users can easily browse all articles for an author, all articles in an issue, all articles in a series/category, all articles tagged with a keyword and so forth. \n\nI turned it in to a standalone application when I ported it to Django 1.5. Here are the features:\n\n* Provides Django models for Periodicals, Issues, Articles, Authors, Tags and Links to external material. \n\n* A full set of templates are provided including:\n\n * Individual Periodical pages with yearly indices.\n\n * Fully cross-linked indexes of Authors, Issues, Article Series, Tags, and Articles.\n\n * Search across Article titles and descriptions.\n\n * Tagging:\n\n * Per article.\n\n * Index pages per tag.\n\n * Tag cloud.\n\n* Moderated user added links of blog posts and other web resources to each Issue and Article. Spam protection by `reCAPTCHA `_ and requiring approval by the admin. This feature can be disabled via setting.\n\n* Django admin forms for data entry.\n\n* Sitemap support.\n\n* Support for Python 2.6, 2.7 and Django 1.5 and 1.6.\n\n* Travis CI unit tests.\n\n* See ``django-periodicals`` in action at `Googility `_.\n\nQuickstart\n----------\n\nYou can install from GitHub and try out a fully functional demo with data: :ref:`try-the-demo-project`.\n\nOtherwise simply install from a package using ``pip`` which will install it's `PyPi `_ packaged dependencies.\n\n.. code-block :: bash\n\n pip install django-periodicals\n\nInstall two packages manually to get newer versions than are currently in PyPi:\n\n.. code-block :: bash\n\n $ pip install -e git://github.com/saschwarz/django-recaptcha.git#egg=django-recaptcha\n\n $ pip install -e git://github.com/nemith/django-tagging.git@dev-django1.5#egg=django_tagging-dev\n\n\nInstall a search backend for use by `Haystack `_. To start install Whoosh:\n\n.. code-block :: bash\n\n $ pip install Whoosh\n\nsettings.py\n+++++++++++\n\nAdd ``periodicals`` and the other applications it uses to ``INSTALLED_APPS``:\n\n.. code-block :: python\n\n INSTALLED_APPS = (\n ...\n 'haystack',\n 'tagging',\n 'captcha',\n 'periodicals',\n )\n\nConfigure your Haystack backend. Here is an example using `Whoosh `_:\n\n.. code-block :: python\n\n HAYSTACK_CONNECTIONS = {\n 'default': {\n 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',\n 'PATH': os.path.join(os.path.abspath(os.path.dirname(__file__)), 'whoosh_periodicals_index'),\n 'STORAGE': 'file',\n 'POST_LIMIT': 128 * 1024 * 1024,\n 'INCLUDE_SPELLING': True,\n 'BATCH_SIZE': 100,\n },\n }\n\nConfigure your reCAPTCHA keys - only used when users add links to Articles or Issues:\n\n.. code-block :: python\n\n RECAPTCHA_PRIVATE_KEY = \"your-recaptcha-private-key\"\n RECAPTCHA_PUBLIC_KEY = \"your-recaptcha-public-key\"\n\n\nurls.py\n+++++++\n\nChoose a URL prefix at which to base the application:\n\n.. code-block :: python\n\n ...\n import periodicals\n\n urlpatterns = patterns('',\n ...\n url(r'^admin/', include(admin.site.urls)),\n url(r'^periodicals/', include(periodicals.urls)),\n )\n\nManagement Commands\n+++++++++++++++++++\n\nCreate the application's database tables:\n\n.. code-block :: bash\n\n $ python manage.py syncdb\n\n\n\n\nHistory\n-------\n\n0.8.0 (2013-12-14)\n++++++++++++++++++\n\n* Added tests and attained 100% code coverage.\n\n* Added demo site to GitHub.\n\n* Updated documentation\n\n0.5.0 (2013-10-06)\n++++++++++++++++++\n\n* Migrated to Django 1.6 using class based views.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/saschwarz/django-periodicals", "keywords": "django-periodicals", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-periodicals", "package_url": "https://pypi.org/project/django-periodicals/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-periodicals/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/saschwarz/django-periodicals" }, "release_url": "https://pypi.org/project/django-periodicals/0.8.0/", "requires_dist": null, "requires_python": null, "summary": "Django app to create periodical/magazine websites\"", "version": "0.8.0" }, "last_serial": 944683, "releases": { "0.8.0": [ { "comment_text": "", "digests": { "md5": "562c82a9ac255c979bebb037f9a86ff4", "sha256": "17e83d86b5e31f5648959d493b1b9df565e1480e8d1fe93efa84721445281def" }, "downloads": -1, "filename": "django-periodicals-0.8.0.tar.gz", "has_sig": false, "md5_digest": "562c82a9ac255c979bebb037f9a86ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22559, "upload_time": "2013-12-14T20:00:00", "url": "https://files.pythonhosted.org/packages/ca/7a/c002ac338f725627b497f04bfb9b767bbd6a96493d92fcd830eba8ddc6a2/django-periodicals-0.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "562c82a9ac255c979bebb037f9a86ff4", "sha256": "17e83d86b5e31f5648959d493b1b9df565e1480e8d1fe93efa84721445281def" }, "downloads": -1, "filename": "django-periodicals-0.8.0.tar.gz", "has_sig": false, "md5_digest": "562c82a9ac255c979bebb037f9a86ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22559, "upload_time": "2013-12-14T20:00:00", "url": "https://files.pythonhosted.org/packages/ca/7a/c002ac338f725627b497f04bfb9b767bbd6a96493d92fcd830eba8ddc6a2/django-periodicals-0.8.0.tar.gz" } ] }