{ "info": { "author": "Jeff McRiffey", "author_email": "jeff.mcriffey@ambition.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "[](https://travis-ci.org/ambitioninc/django-user-guide)\n# Django User Guide\n\n\nDjango User Guide is a `django>=1.6` app that shows configurable, self-contained HTML guides to users. Showing a guide to all of your users is as easy as\ncreating a `Guide` object and linking them to your users. Use the convenient `{% user_guide %}` template tag where you want guides to appear and Django User Guide does the rest. When a user visits a page containing the template tag, they are greeted with relevant guides. Django User Guide decides what guide(s) a user needs to see and displays them in a modal window with controls for cycling through those guides. Django User Guide tracks plenty of meta-data: creation times, guide importance, if the guide has been finished by specific users, finished times, etc.\n\n## Table of Contents\n1. [Installation](#installation)\n1. [Guide](#guide)\n1. [GuideInfo](#guide-info)\n1. [Settings](#settings)\n1. [Finishing Criteria](#finishing-criteria)\n1. [Putting It All Together](#putting-it-all-together)\n\n## Installation\nTo install Django User Guide:\n\n```shell\npip install git+https://github.com/ambitioninc/django-user-guide.git@0.1\n```\n\nAdd Django User Guide to your `INSTALLED_APPS` to get started:\n\nsettings.py\n\n```python\n\n# Simply add 'user_guide' to your installed apps.\n# Django User Guide relies on several basic django apps.\nINSTALLED_APPS = (\n 'django.contrib.auth',\n 'django.contrib.admin',\n 'django.contrib.sites',\n 'django.contrib.sessions',\n 'django.contrib.messages',\n 'django.contrib.staticfiles',\n 'django.contrib.contenttypes',\n 'user_guide',\n)\n```\n\nMake sure Django's CsrfViewMiddleware is enabled:\n\nsettings.py\n\n```python\nMIDDLEWARE_CLASSES = (\n 'django.middleware.csrf.CsrfViewMiddleware',\n)\n```\n\nAdd Django User Guide's urls to your project:\n\nurls.py\n\n```python\nfrom django.conf.urls import include, patterns, url\n\nurlpatterns = patterns(\n url(r'^user-guide/', include('user_guide.urls')),\n)\n```\n\n## Guide\n\nFirst you will need to create one or more `Guide` objects. A `Guide` object consists of:\n\n#### guide_name (required, max_length=64, unique)\n\nThis is a semantic, unique identifier for a `Guide`. Allows for easy identification and targeted filtering.\n\n#### html\n\nThe markup for the `Guide`. Use this field to communicate with your users in a meaningful way.\nNote that the data in this field is output with `{% html|safe %}`, so it would be a bad idea to put untrusted data in it. The html field automatically replaces `{static}` within the html with the value of `settings.STATIC_URL` for convenience.\n\n#### guide_tag (default='all')\n\nA custom tag for grouping several guides together. Specifically designed to be used for filtering. If you had `my_guide_tag_list = ['welcome', 'onboarding']` in your context, you would use `{% user_guide guide_tags=my_guide_tag_list %}` to show users all guides with tags 'welcome' and 'onboard' specifically.\n\n#### guide_importance (default=0)\n\nA number representing the importance of the `Guide`. `Guide` objects with a higher `guide_importance` are shown first. `Guide` objects are always sorted by `guide_importance`, then `creation_time`.\n\n#### guide_type (default='Window')\n\nThe rendering type for the `Guide`. Only a modal window is currently supported. Future support for positioned coach-marks and other elements is planned.\n\n#### creation_time (auto_now_add=True)\n\nStores the current datetime when a `Guide` is created.\n\n\n## Guide Usage\n\n```python\nfrom user_guide.models import Guide\n\nGuide.objects.create(\n html='