{ "info": { "author": "Diederik van der Boor", "author_email": "opensource@edoburu.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.5", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-fluent-faq\n=================\n\nThis Django application adds a FAQ engine to sites built with django-fluent_ CMS.\n\nFeatures:\n\n* Multilingual\n* Multisite\n* Categories and questions\n* SEO fields (meta keywords, description)\n\nUsed applications:\n\n* Multilingual support based on django-parler_.\n* *Optional* integration with django-taggit_ and django-taggit-autocomplete-modified_ for tag support\n* *Optional* integration with django-fluent-pages_\n* *Optional* integration with django.contrib.sitemaps_\n\n\nInstallation\n============\n\nFirst install the module, preferably in a virtual environment:\n\n.. code-block:: bash\n\n git clone https://github.com/edoburu/django-fluent-faq.git\n cd django-fluent-faq\n pip install .\n\n # Install the plugins of fluent-contents that you use:\n pip install django-fluent-contents[text]\n\n # Optional: to add tagging support + autocomplete use:\n pip install django-taggit django-taggit-autocomplete-modified\n\n\nConfiguration\n-------------\n\nAdd the applications to ``settings.py``:\n\n.. code-block:: python\n\n INSTALLED_APPS += (\n # FAQ engine\n 'fluent_faq',\n\n # The content plugins\n 'fluent_contents',\n 'fluent_contents.plugins.text',\n\n # Support libs\n 'categories',\n 'categories.editor',\n 'django_wysiwyg',\n\n # Optional tagging\n 'taggit',\n 'taggit_autocomplete_modified',\n )\n\n DJANGO_WYSIWYG_FLAVOR = \"yui_advanced\"\n\nNote that not all applications are required;\ntagging is optional, and so are the various ``fluent_contents.plugin.*`` packages.\n\nInclude the apps in ``urls.py``:\n\n.. code-block:: python\n\n urlpatterns += patterns('',\n url(r'^admin/util/taggit_autocomplete_modified/', include('taggit_autocomplete_modified.urls')),\n url(r'^faq/', include('fluent_faq.urls')),\n )\n\nThe database can be created afterwards:\n\n.. code-block:: bash\n\n ./manage.py syncdb\n\nIn case additional plugins of django-fluent-contents_ are used, follow their\n`installation instructions `_ as well.\nTypically this includes:\n\n* adding the package name to ``INSTALLED_APPS``.\n* running ``pip install django-fluent-contents[pluginname]``\n* running ``./manage.py syncdb``\n\n\nConfiguring allowed plugins\n---------------------------\n\nTo limit which plugins for django-fluent-contents_ can be used in the FAQ answer, use:\n\n.. code-block:: python\n\n FLUENT_CONTENTS_PLACEHOLDER_CONFIG = {\n 'faq_answer': {\n 'plugins': (\n 'TextPlugin', 'PicturePlugin', 'OEmbedPlugin', 'SharedContentPlugin', 'RawHtmlPlugin',\n ),\n },\n }\n\n\nConfiguring the templates\n-------------------------\n\nTo display the blog contents, a ``fluent_faq/base.html`` file needs to be created.\nThis will be used to map the output of the module to your site templates.\n\nThe base template needs to have the blocks:\n\n* ``content`` - displays the main content\n* ``sidebar_content`` - displays the sidebar content\n* ``title`` - the title fragment to insert to the ```` tag.\n* ``meta-title`` - the full contents of the ``<title>`` tag.\n* ``meta-description`` - the ``value`` of the meta-description tag.\n* ``meta-keywords`` - the ``value`` for the meta-keywords tag.\n* ``og-type`` - the OpenGraph type for Facebook (optional)\n* ``og-description`` the OpenGraph description for Facebook (optional)\n\nThe ``fluent_faq/base.html`` template could simply remap the block names to the site's ``base.html`` template.\nFor example:\n\n.. code-block:: html+django\n\n {% extends \"base.html\" %}\n\n {% block headtitle %}{% block title %}{% endblock %}{% endblock %}\n\n {% block main %}\n {# This area is filled with the question details:\n {% block content %}{% endblock %}\n\n {# Add any common layout, e.g. a sidebar here #}\n {% block sidebar_content %}{% endblock %}\n {% endblock %}\n\nWhen all other block names are already available in the site's ``base.html`` template,\nthis example should be sufficient.\n\n\nAdding pages to the sitemap\n---------------------------\n\nOptionally, the blog pages can be included in the sitemap.\nAdd the following in ``urls.py``:\n\n.. code-block:: python\n\n from fluent_faq.sitemaps import FaqQuestionSitemap, FaqCategorySitemap\n\n sitemaps = {\n 'faq_questions': FaqQuestionSitemap,\n 'faq_categories': FaqCategorySitemap,\n }\n\n urlpatterns += patterns('',\n url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),\n )\n\n\nIntegration with django-fluent-pages:\n-------------------------------------\n\nTo integrate with the page types of django-fluent-pages_, don't include ``fluent_blogs.urls`` in the URLconf:\n\n.. code-block:: python\n\n urlpatterns += patterns('',\n url(r'^admin/util/taggit_autocomplete_modified/', include('taggit_autocomplete_modified.urls')),\n )\n\nInstead, add a page type instead:\n\n.. code-block:: python\n\n INSTALLED_APPS += (\n 'fluent_pages',\n 'fluent_faq.pagetypes.faqpage',\n )\n\nA \"FAQ Module\" page can now be created in the page tree of django-fluent-pages_\nat the desired URL path.\n\n\nContributing\n------------\n\nThis module is designed to be generic, and easy to plug into your site.\nIn case there is anything you didn't like about it, or think it's not\nflexible enough, please let us know. We'd love to improve it!\n\nIf you have any other valuable contribution, suggestion or idea,\nplease let us know as well because we will look into it.\nPull requests are welcome too. :-)\n\n\n\n.. _django-fluent: http://django-fluent.org/\n.. _django.contrib.sitemaps: https://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/\n.. _django-fluent-contents: https://github.com/edoburu/django-fluent-contents\n.. _django-fluent-pages: https://github.com/edoburu/django-fluent-pages\n.. _django-parler: https://github.com/edoburu/django-parler\n.. _django-taggit: https://github.com/alex/django-taggit\n.. _django-taggit-autocomplete-modified: http://packages.python.org/django-taggit-autocomplete-modified/", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/edoburu/django-fluent-faq/zipball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edoburu/django-fluent-faq", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "django-fluent-faq", "package_url": "https://pypi.org/project/django-fluent-faq/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-fluent-faq/", "project_urls": { "Download": "https://github.com/edoburu/django-fluent-faq/zipball/master", "Homepage": "https://github.com/edoburu/django-fluent-faq" }, "release_url": "https://pypi.org/project/django-fluent-faq/1.0/", "requires_dist": [ "django-fluent-contents (>=1.0)", "django-fluent-utils (>=1.0)", "django-parler (>=1.0)", "django-tag-parser (>=1.1)", "django-fluent-pages (>=0.9); extra == 'faqpage'", "taggit; extra == 'taggit'", "taggit-autosuggest; extra == 'taggit'" ], "requires_python": "", "summary": "A FAQ engine for Django Fluent CMS", "version": "1.0" }, "last_serial": 2546069, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "362fea3b14a4ded610fd60d5859b2ac0", "sha256": "0fc8b3afbb579fbaa6016a42dd6cb6ef86a87f144e71afaa2a596f5d3f175bd1" }, "downloads": -1, "filename": "django_fluent_faq-0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "362fea3b14a4ded610fd60d5859b2ac0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 38730, "upload_time": "2015-01-20T15:47:52", "url": "https://files.pythonhosted.org/packages/1d/86/e13ab9d9d3f4ff3cf09674525bcae7982befd7fef87d2bf90d37bc1f20bf/django_fluent_faq-0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a71bb31b189af45ed7955db0702adf3", "sha256": "11bfcd2559ec50c268af03b2d0a791670c3af804cc9d32fe28dd7479070038a1" }, "downloads": -1, "filename": "django-fluent-faq-0.9.tar.gz", "has_sig": false, "md5_digest": "0a71bb31b189af45ed7955db0702adf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28090, "upload_time": "2015-01-20T15:47:49", "url": "https://files.pythonhosted.org/packages/7b/1b/c5379a6263df3fa395a12369321ee49d30dbd22c06047de7a9c59e99dd17/django-fluent-faq-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "5c60fd7b3e6a34e58eb8dfc24c0b495d", "sha256": "d1fe04f3158deb16a447a40c03097becc70a864f038883b47c7374656e8194f4" }, "downloads": -1, "filename": "django_fluent_faq-0.9.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5c60fd7b3e6a34e58eb8dfc24c0b495d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41176, "upload_time": "2015-09-01T11:51:22", "url": "https://files.pythonhosted.org/packages/23/84/9fe69705ef56d409899c475c75696c312e5ca6ea52c7a3554c3429c2edf6/django_fluent_faq-0.9.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "490c41be3501a575a9dce7da0d664637", "sha256": "7ce6884e021c2d065b95a79dca99cd79c430a7ce9e78a7fdf0af6bcf7f46b9d8" }, "downloads": -1, "filename": "django-fluent-faq-0.9.1.tar.gz", "has_sig": false, "md5_digest": "490c41be3501a575a9dce7da0d664637", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29218, "upload_time": "2015-09-01T11:51:19", "url": "https://files.pythonhosted.org/packages/8f/3d/8546b6d077d62f23b2b3ab6500e375119fea4b70f781ebe7683dc15969df/django-fluent-faq-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "2377dba16702f514e446541efdb76287", "sha256": "5a22a8ccbd4bfbe8bc067bbb88256f3f7ad4b4c90530606d683bbc0ee5c78e8f" }, "downloads": -1, "filename": "django_fluent_faq-0.9.2-py2-none-any.whl", "has_sig": false, "md5_digest": "2377dba16702f514e446541efdb76287", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 41176, "upload_time": "2016-02-06T13:54:43", "url": "https://files.pythonhosted.org/packages/f9/f8/42a20b90b12fa9732b102cc50c1c3e021558dec3aa06b1ee772b4aacd7d3/django_fluent_faq-0.9.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9afeb09d5395d200eed0e0146a8f8dd", "sha256": "e6984538453632ffcccc81f579d8f6ebbe236d1e838367e888ae839d93bb956a" }, "downloads": -1, "filename": "django-fluent-faq-0.9.2.tar.gz", "has_sig": false, "md5_digest": "d9afeb09d5395d200eed0e0146a8f8dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29148, "upload_time": "2016-02-06T13:54:31", "url": "https://files.pythonhosted.org/packages/ec/c2/870213ee033533c150750ca840c0142ba0cfb453284aa08e4c0ec3afd171/django-fluent-faq-0.9.2.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a197c8a5b4904bd2ee75640b6feeb303", "sha256": "00ac9f25686ca03fc3798657f4b71e14147a8bc532b629a6f3008d539440b6b1" }, "downloads": -1, "filename": "django_fluent_faq-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a197c8a5b4904bd2ee75640b6feeb303", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41031, "upload_time": "2016-12-30T13:06:10", "url": "https://files.pythonhosted.org/packages/54/80/782120d200ba0b2baa155d046587fbbf10da6b767b0fe88e3fa0a4fc56ea/django_fluent_faq-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a08fa9fc84c1591ba3dac35812475b6e", "sha256": "a86c34e0f592b4f6508b39bba1e40d755446c3eb3bb0d2bcf59c3f3711887081" }, "downloads": -1, "filename": "django-fluent-faq-1.0.tar.gz", "has_sig": false, "md5_digest": "a08fa9fc84c1591ba3dac35812475b6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29275, "upload_time": "2016-12-30T13:06:13", "url": "https://files.pythonhosted.org/packages/5d/4d/ed71130a1bf6adb2e099c48d430eca5e9149c95ec8c5a7870b06ef8e21a6/django-fluent-faq-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a197c8a5b4904bd2ee75640b6feeb303", "sha256": "00ac9f25686ca03fc3798657f4b71e14147a8bc532b629a6f3008d539440b6b1" }, "downloads": -1, "filename": "django_fluent_faq-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a197c8a5b4904bd2ee75640b6feeb303", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41031, "upload_time": "2016-12-30T13:06:10", "url": "https://files.pythonhosted.org/packages/54/80/782120d200ba0b2baa155d046587fbbf10da6b767b0fe88e3fa0a4fc56ea/django_fluent_faq-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a08fa9fc84c1591ba3dac35812475b6e", "sha256": "a86c34e0f592b4f6508b39bba1e40d755446c3eb3bb0d2bcf59c3f3711887081" }, "downloads": -1, "filename": "django-fluent-faq-1.0.tar.gz", "has_sig": false, "md5_digest": "a08fa9fc84c1591ba3dac35812475b6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29275, "upload_time": "2016-12-30T13:06:13", "url": "https://files.pythonhosted.org/packages/5d/4d/ed71130a1bf6adb2e099c48d430eca5e9149c95ec8c5a7870b06ef8e21a6/django-fluent-faq-1.0.tar.gz" } ] }