Permalink
Browse files

Add first round of proper documentation. Mostly taken from the README…

… at this stage.
  • Loading branch information...
1 parent d6602e9 commit ac37198e3f13d3ff1d3603d196fcb19d0670319d @rossp rossp committed Feb 4, 2011
Showing with 4,008 additions and 173 deletions.
  1. +1 −0 MANIFEST.in
  2. +4 −173 README
  3. +130 −0 docs/Makefile
  4. BIN docs/doctrees/api.doctree
  5. BIN docs/doctrees/configuration.doctree
  6. BIN docs/doctrees/custom_fields.doctree
  7. BIN docs/doctrees/environment.pickle
  8. BIN docs/doctrees/index.doctree
  9. BIN docs/doctrees/install.doctree
  10. BIN docs/doctrees/settings.doctree
  11. BIN docs/doctrees/spam.doctree
  12. +4 −0 docs/html/.buildinfo
  13. +6 −0 docs/html/_sources/api.txt
  14. +42 −0 docs/html/_sources/configuration.txt
  15. +10 −0 docs/html/_sources/custom_fields.txt
  16. +72 −0 docs/html/_sources/index.txt
  17. +78 −0 docs/html/_sources/install.txt
  18. +20 −0 docs/html/_sources/settings.txt
  19. +31 −0 docs/html/_sources/spam.txt
  20. +528 −0 docs/html/_static/basic.css
  21. +256 −0 docs/html/_static/default.css
  22. +247 −0 docs/html/_static/doctools.js
  23. BIN docs/html/_static/file.png
  24. +154 −0 docs/html/_static/jquery.js
  25. BIN docs/html/_static/minus.png
  26. BIN docs/html/_static/plus.png
  27. +62 −0 docs/html/_static/pygments.css
  28. +518 −0 docs/html/_static/searchtools.js
  29. +148 −0 docs/html/_static/sidebar.js
  30. +16 −0 docs/html/_static/underscore.js
  31. +101 −0 docs/html/api.html
  32. +144 −0 docs/html/configuration.html
  33. +113 −0 docs/html/custom_fields.html
  34. +90 −0 docs/html/genindex.html
  35. +195 −0 docs/html/index.html
  36. +190 −0 docs/html/install.html
  37. BIN docs/html/objects.inv
  38. +96 −0 docs/html/search.html
  39. +1 −0 docs/html/searchindex.js
  40. +133 −0 docs/html/settings.html
  41. +143 −0 docs/html/spam.html
  42. +6 −0 docs/source/api.rst
  43. +216 −0 docs/source/conf.py
  44. +42 −0 docs/source/configuration.rst
  45. +10 −0 docs/source/custom_fields.rst
  46. +72 −0 docs/source/index.rst
  47. +78 −0 docs/source/install.rst
  48. +20 −0 docs/source/settings.rst
  49. +31 −0 docs/source/spam.rst
View
@@ -7,3 +7,4 @@ recursive-include helpdesk/htdocs *
recursive-include helpdesk/locale *.po *.mo
recursive-include helpdesk/templates *
recursive-include helpdesk/fixtures *.json
+recursive-include docs/html *
View
177 README
@@ -7,6 +7,8 @@ company who originally created it. As of January 2011 the name has been
changed to reflect what it really is: a Django-powered ticket tracker with
contributors reaching far beyond Jutda.
+Complete documentation is available in the docs/ directory, or online at http://django-helpdesk.readthedocs.org/.
+
#########################
0. Table of Contents
#########################
@@ -15,10 +17,6 @@ contributors reaching far beyond Jutda.
2. Dependencies (pre-flight checklist)
3. Upgrading from previous versions
4. Installation
-5. Initial Configuration
-6. Spam filtering
-7. API Usage
-8. Custom fields
#########################
1. Licensing
@@ -77,174 +75,7 @@ the current version of django-helpdesk working.
4. Installation
#########################
-1. Try using 'pip install django-helpdesk'. If that fails, download and
- place 'helpdesk' in your Python path. I use /var/django, others may use
- /usr/lib/python2.4/site-packages/ or a similar path.
-
-2. In your projects' settings.py file, add these lines to the INSTALLED_APPS
- setting:
- 'helpdesk',
- 'django.contrib.admin',
-
-3. In your projects' urls.py file, add this line:
- (r'helpdesk/', include('helpdesk.urls')),
-
- You can substitute 'helpdesk/' for something else, eg 'support/' or even ''.
-
-4. Ensure the admin line is un-hashed in urls.py:
- # Uncomment this for admin:
- from django.contrib import admin
- admin.autodiscover()
- (r'^admin/(.*)', admin.site.root),
-
- If you use helpdesk at the top of your domain (at /), ensure the admin
- line comes BEFORE the helpdesk line.
-
-5. In your project directory (NOT the helpdesk directory) run
- ./manage.py syncdb
- to create database tables
-
-6. Inside your MEDIA_ROOT folder, create a new folder called 'helpdesk' and
- copy the contents of helpdesk/htdocs/ into it. Alternatively, create a
- symlink:
- ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk
-
- This application assumes all helpdesk media will be accessible at
- http://MEDIA_URL/helpdesk/
-
-7. Inside your MEDIA_ROOT folder, inside the 'helpdesk' folder, is a folder
- called 'attachments'. Ensure your web server software can write to this
- folder - something like this should do the trick:
-
- chown www-data:www-data attachments/; chmod 700 attachments
- (substitute www-data for the user / group that your web server runs
- as, eg 'apache' or 'httpd')
-
- If all else fails ensure all users can write to it:
-
- chmod 777 attachments/
-
- This is NOT recommended, especially if you're on a shared server.
-
-8. Ensure that your 'attachments' folder has directory listings turned off,
- to ensure users don't download files that they are not specifically linked
- to from their tickets.
-
- If you are using Apache, put a .htaccess file in the 'attachments' folder
- with the following content:
-
- Options -Indexes
-
- You will also have to make sure that .htaccess files aren't being ignored.
-
- Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a
- 403 access denied error.
-
-#########################
-5. Initial Configuration
-#########################
-
-1. Visit http://yoursite/admin/ and add a Helpdesk Queue. If you wish,
- enter your POP3 or IMAP server details.
-
- IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE
- the original e-mail from the mail server.
-
-2. Visit http://yoursite/helpdesk/ (or other path as defined in your urls.py)
-
-3. If you wish to automatically create tickets from the contents of an e-mail
- inbox, set up a cronjob to run scripts/get_email.py on a regular basis.
-
- Don't forget to set the relevant Django environment variables in your
- crontab:
-
- */5 * * * * /path/to/helpdesksite/manage.py get_email
-
- This will run the e-mail import every 5 minutes
-
- IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE
- the original e-mail from the mail server.
-
-4. If you wish to automatically escalate tickets based on their age, set up
- a cronjob to run scripts/escalate_tickets.py on a regular basis:
-
- 0 * * * * /path/to/helpdesksite/manage.py escalate_tickets
-
- This will run the escalation process hourly, using the 'Escalation Hours'
- setting for each queue to determine which tickets to escalate.
-
-5. If you wish to exclude some days (eg, weekends) from escalation calculations, enter
- the dates manually via the Admin, or setup a cronjob to run
- the create_escalation_exclusions management command on a regular basis:
-
- 0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions --days saturday,sunday --escalate-verbosely
-
- This will, on a weekly basis, create exclusions for the coming weekend.
-
-6. Log in to your Django admin screen, and go to the 'Sites' module. If the
- site 'example.com' is listed, click it and update the details so they are
- relevant for your website.
-
-7. If you do not send mail directly from your web server (eg, you need to
- use an SMTP server) then edit your settings.py file so it contains your
- mail server details:
-
- EMAIL_HOST = 'XXXXX'
- EMAIL_HOST_USER = 'YYYYYY@ZZZZ.PPP'
- EMAIL_HOST_PASSWORD = '123456'
-
-You're now up and running!
-
-#########################
-7. Spam filtering
-#########################
-
-django-helpdesk includes a copy of `akismet.py' by Michael Foord, which lets
-incoming ticket submissions be automatically checked against either the
-Akismet or TypePad Anti-Spam services.
-
-To enable this functionality, sign up for an API key with one of the following
-serviceS:
-
-Akismet: http://akismet.com/
-Save your API key in settings.py as AKISMET_API_KEY
-Note: Akismet is only free for personal use. Paid commercial accounts are
-available.
-
-TypePad AntiSpam: http://antispam.typepad.com/
-Save your API key in settings.py as TYPEPAD_ANTISPAM_API_KEY
-This service is free to use, within their terms and conditions.
-
-If you have either of these settings enabled, the spam filtering will be
-done automatically. If you have *both* settings configured, TypePad will
-be used instead of Akismet.
-
-Example configuration in settings.py:
-
-TYPEPAD_ANTISPAM_API_KEY = 'abc123'
-
-#########################
-7. API Usage
-#########################
-
-django-helpdesk includes an API accessible via HTTP POST requests, allowing
-you to create and alter tickets from 3rd party software and systems.
-
-For usage instructions and command syntax, see the file
-templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/.
-
-#########################
-8. Custom fields
-#########################
-
-As of February 2011, django-helpdesk supports custom fields on the Ticket
-model. These fields are created by using the Django administration tool, and
-are shown on both the public and staff submission forms.
-
-You can use most Django field types including text, integer, boolean, and list.
+``pip install django-helpdesk``
-The demo at http://demo.jutdahelpdesk.com contains an example of each type of
-custom field, including a mix of mandatory and optional fields.
+For further installation information see docs/install.html and docs/configuration.html
-Note that this feature is still in beta - it needs quite a bit of testing and
-no doubt has bugs!
View
@@ -0,0 +1,130 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = .
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-helpdesk.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-helpdesk.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/django-helpdesk"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-helpdesk"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ make -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
View
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View
Binary file not shown.
Binary file not shown.
Binary file not shown.
View
Binary file not shown.
View
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 3849f354f6590d5e46c0b135b561d830
+tags: fbb0d17656682115ca4d033fb2f83ba1
@@ -0,0 +1,6 @@
+django-helpdesk Ticket API
+==========================
+
+django-helpdesk includes an API accessible via HTTP POST requests, allowing you to create and alter tickets from 3rd party software and systems.
+
+For usage instructions and command syntax, see the file templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/.
@@ -0,0 +1,42 @@
+django-helpdesk Configuration
+=============================
+
+Before django-helpdesk will be much use, you need to do some basic configuration. Most of this is done via the Django admin screens.
+
+1. Visit ``http://yoursite/admin/`` and add a Helpdesk Queue. If you wish, enter your POP3 or IMAP server details.
+
+ **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server.
+
+2. Visit ``http://yoursite/helpdesk/`` (or whatever path as defined in your ``urls.py``)
+
+3. If you wish to automatically create tickets from the contents of an e-mail inbox, set up a cronjob to run the management command on a regular basis.
+
+ Don't forget to set the relevant Django environment variables in your crontab::
+
+ */5 * * * * /path/to/helpdesksite/manage.py get_email
+
+ This will run the e-mail import every 5 minutes
+
+ **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server.
+
+4. If you wish to automatically escalate tickets based on their age, set up a cronjob to run the escalation command on a regular basis::
+
+ 0 * * * * /path/to/helpdesksite/manage.py escalate_tickets
+
+ This will run the escalation process hourly, using the 'Escalation Hours' setting for each queue to determine which tickets to escalate.
+
+5. If you wish to exclude some days (eg, weekends) from escalation calculations, enter the dates manually via the Admin, or setup a cronjob to run a management command on a regular basis::
+
+ 0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions --days saturday,sunday --escalate-verbosely
+
+ This will, on a weekly basis, create exclusions for the coming weekend.
+
+6. Log in to your Django admin screen, and go to the 'Sites' module. If the site ``example.com`` is listed, click it and update the details so they are relevant for your website.
+
+7. If you do not send mail directly from your web server (eg, you need to use an SMTP server) then edit your ``settings.py`` file so it contains your mail server details::
+
+ EMAIL_HOST = 'XXXXX'
+ EMAIL_HOST_USER = 'YYYYYY@ZZZZ.PPP'
+ EMAIL_HOST_PASSWORD = '123456'
+
+You're now up and running! Happy ticketing.
@@ -0,0 +1,10 @@
+django-helpdesk custom fields
+=============================
+
+As of February 2011, django-helpdesk supports custom fields on the ``Ticket`` model. These fields are created by using the Django administration tool, and are shown on both the public and staff submission forms.
+
+You can use most Django field types including text, integer, boolean, and list.
+
+The demo at http://demo.jutdahelpdesk.com contains an example of each type of custom field, including a mix of mandatory and optional fields.
+
+Note that this feature is still in beta - it needs quite a bit of testing and no doubt has bugs!
Oops, something went wrong.

0 comments on commit ac37198

Please sign in to comment.