A Django application to manage tickets for an internal helpdesk. Formerly known as Jutda Helpdesk.
Go to file
Ross Poulton 0068eccbf4 Big checkin that adds a number of features and makes some changes:
* Updated jQuery to 1.2.6
* Add jQuery UI 1.6b for interface effects as needed
    * 'Smoothness' theme from ThemeRoller.com added.
* Clean up 'Filter' dialog on Ticket List, long way to go still.
    * Uses tabs to save a query or load a saved query
    * Lots of misuse of space here, can be cleaned up somewhat still.
* Add ability for users to save filters/queries
    * Saved queries can be shared, so other users can use them
    * Users can run saved queries instead of re-filtering
    * Filter mechanism in Ticket List had to be reworked significantly
* Merged 3rd party licenses into LICENSE.3RDPARTY
* Updated messages files for EN locale

To update, ensure you run './manage.py syncdb' to add the SavedSearch
table.
2008-08-28 09:06:24 +00:00
fixtures * Removed e-mail templates to the database 2008-04-01 23:26:12 +00:00
htdocs Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
locale/en/LC_MESSAGES Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
management * Fix a few indenting issues 2008-08-20 01:57:41 +00:00
templates Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
templatetags * Large change to clean up the codebase: Decrease excess whitespace at ends 2008-08-19 08:50:38 +00:00
views Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
__init__.py Initial import of Python files & templates 2007-12-27 00:29:17 +00:00
admin.py Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
forms.py * Large change to clean up the codebase: Decrease excess whitespace at ends 2008-08-19 08:50:38 +00:00
lib.py Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
LICENSE Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
LICENSE.3RDPARTY Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
models.py Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00
README Big bugfix release - addresses a number of issues introduced in recent Django 2008-08-18 21:29:31 +00:00
urls.py Big checkin that adds a number of features and makes some changes: 2008-08-28 09:06:24 +00:00

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