Skip to main content

DjangoCMS FAQ let you create FAQ plugins that contains other plugins and provide an API to get questions/answers from keywords!

Project description

DjangoCMS FAQ

Frequently asked questions plugin for Django CMS, with an API to load questions from another page!

Install

  1. Install module

    python3 -m pip install djangocms-faq
    
  2. Add it to your INSTALLED_APPS

        "djangocms_faq",
    
  3. Add the API endpoint to your urls.py (if you want to use the Faq Search Plugin):

        path("djangocms-faq/", include("djangocms_faq.urls")),
    
  4. Launch your django-cms site, it should be here!

Requirements

  • django-cms: Obviously
  • django-sekizai: For default templates (you can uninstall it if you use custom templates without sekizai). Not required in this package (it's a requirement of django-cms).

Features

A faq

Add faq container plugins (which have a title and can contain only faq questions plugins).

Then, add faq questions plugins that can contain text/image/videos plugins (that provide answers)!

You can also add keywords to your FAQ questions, because you may want your users to find a specific answer to a general question.

Here's a small demo video

A search plugin that uses an API

Ask a question to the FAQ and the plugin will return with the corresponding questions/answers.

Here's another small demo video

Quick note: since the form uses javascript and a simple view, that means that the search works without javascript too!

Select in which FAQ the searches will be applied

Display format is Faq Container − {FAQ Name} − {Page title}.

Configuration

  • DJANGOCMS_FAQ_ENABLE_API (default is True): Enable or not the API endpoint and the Faq Search plugins.

    If you create a Faq Search Plugin and then set this setting to False, then you will be greeted with a cool KeyError 'FaqPluginSearchPublished' error message. Please do not do this.

  • DJANGOCMS_FAQ_ANSWER_PLUGINS (default is ["TextPlugin", "FilePlugin", "VideoPlayerPlugin"]): Add plugins that can be added to your answers!

  • DJANGOCMS_FAQ_SHOW_KEYWORDS_QUESTION (default is True): Display keywords in the questions of a FAQ.

  • DJANGOCMS_FAQ_SHOW_KEYWORDS_ANSWER (default is True): Display keywords in answers (faq search plugin).

API

When you're searching for something in the input, searches will be made using the API if you don't type anything for 1 second (see templates/faq_search.html).

Here's the format:

[
  {
    "question": "question title",
    "slug": "question-title",
    "url": "/page-url/",
    "keywords": ["keyword", "keywords", "..."]
  },
  {
    "question": "question title 2",
    "slug": "question-title2",
    "url": "/page-url/",
    "keywords": ["keyword", "keywords", "..."]
  },
]

Customize it!

The template included in this project is for demonstration purposes only, it is up to you to integrate it into your graphic charter by creating a file in templates/faq/faq_plugin.html.

How it works

Faq container & questions are classic django-cms plugins, see in cms_plugins.py for more informations.

Faq search plugin is a django-cms plugin, and uses on top of that an API endpoint using vanilla javascript (the default template uses fetch, which is not compatible with IE).

The API endpoint is a single view that returns json (see views.py).

Since the function to get answers from a "question" str is used two times (in the view for the API and in the FaqPluginSearchPublisher plugin), I've put it in a file named utils.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangocms-faq-1.0.1.tar.gz (23.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page