forked from extern/django-helpdesk
cea6394b70
updates, and other bugs in the codebase. Many thanks to David Clymer and Chris Etcp for reporting these bugs and then providing fixes. Tickets closed: #3: BUG E-Mail Script Incompatible with Python 2.5 #4: BUG Failure on empty attachments #5: ENHANCEMENT Run scripts as command extensions [Backwards Compatible] #7: BUG Cannot view tickets when not logged in #8: BUG Overly broad error handling Note that #5 is backwards-incompatible, as you need to change any CRON or scheduler entries for the 'get_email.py', 'escalate_tickets.py' or 'create_escalation_exclusions.py' scripts. See the README file for the new commands.
157 lines
5.2 KiB
Plaintext
157 lines
5.2 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.JQUERY and LICENSE.NICEDIT for their respective license terms.
|
|
|
|
#########################
|
|
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.
|
|
|
|
4. pygooglechart (needs minor mods to @staticmethod calls for python 2.3)
|
|
http://pygooglechart.slowchop.com/
|
|
|
|
|
|
#########################
|
|
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 --verbose
|
|
|
|
This will, on a weekly basis, create exclusions for the coming weekend.
|
|
|
|
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
|