forked from extern/django-helpdesk
165 lines
5.5 KiB
Plaintext
165 lines
5.5 KiB
Plaintext
Jutda Helpdesk - A Django powered ticket tracker for small enterprise.
|
|
|
|
(c) Copyright 2008 Jutda. All Rights Reserved. See LICENSE for details.
|
|
|
|
#########################
|
|
0. Table of Contents
|
|
#########################
|
|
|
|
1. Licensing
|
|
2. Dependencies (pre-flight checklist)
|
|
3. Installation
|
|
4. Initial Configuration
|
|
5. API Usage
|
|
6. Thank You
|
|
|
|
#########################
|
|
1. Licensing
|
|
#########################
|
|
|
|
See the file 'LICENSE' for licensing terms. Note that jQuery and nicEdit
|
|
are both distributed with this product, and have their own licenses. See
|
|
LICENSE.3RDPARTY for license terms for included packages.
|
|
|
|
#########################
|
|
2. Dependencies (pre-flight checklist)
|
|
#########################
|
|
1. Python 2.3+
|
|
|
|
2. Django (1.0 alpha 1 or newer, or an SVN checkout after 7941).
|
|
|
|
3. An existing WORKING Django project with database etc. If you
|
|
cannot log into the Admin, you won't get this product working.
|
|
|
|
#########################
|
|
3. Installation
|
|
#########################
|
|
|
|
1. Place 'helpdesk' in your Python path. I use /var/django, others may use
|
|
/usr/lib/python2.3/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_PATH/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.
|
|
|
|
#########################
|
|
4. 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.py
|
|
|
|
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
|
|
scripts/create_escalation_exclusions.py on a regular basis:
|
|
|
|
0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions.py --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!
|
|
|
|
#########################
|
|
5. API Usage
|
|
#########################
|
|
|
|
Jutda 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/.
|
|
|
|
#########################
|
|
6. Thank You
|
|
#########################
|
|
|
|
While this started as a project to suit my own needs, since publishing the
|
|
code a number of people have made some fantastic improvements and provided
|
|
bug fixes and updates as the Django codebase has moved on and caused small
|
|
portions of this application to break.
|
|
|
|
To these people, my sincere thanks:
|
|
|
|
David Clymer <http://djangopeople.net/vezult/>
|
|
Chris Etcp
|
|
Nikolay Panov
|