A Django application to manage tickets for an internal helpdesk. Formerly known as Jutda Helpdesk.
Go to file
Ross Poulton 4a082e0bfb * Add smart e-mail parsing - if subject contains a ticket ID, the new e-mail
is added as a followup to that ticket.
* Add basic code to support Google Charts in a future revision
* Improved use of Queue "Update" CC.
2008-02-05 23:35:40 +00:00
htdocs * Added logout link/template 2008-01-16 00:26:24 +00:00
scripts * Add smart e-mail parsing - if subject contains a ticket ID, the new e-mail 2008-02-05 23:35:40 +00:00
templates * Add templates for escalation 2008-01-22 06:10:48 +00:00
templatetags * Added ability for tickets to be placed on hold 2008-01-20 23:31:27 +00:00
__init__.py Initial import of Python files & templates 2007-12-27 00:29:17 +00:00
forms.py * Add smart e-mail parsing - if subject contains a ticket ID, the new e-mail 2008-02-05 23:35:40 +00:00
lib.py * Add smart e-mail parsing - if subject contains a ticket ID, the new e-mail 2008-02-05 23:35:40 +00:00
LICENSE * Updated license to reflect nicEdit license. 2008-01-16 03:31:15 +00:00
LICENSE.JQUERY * Amended license to exclude jQuery, and included jQuery-specific license. 2008-01-15 05:12:39 +00:00
LICENSE.NICEDIT * Updated license to reflect nicEdit license. 2008-01-16 03:31:15 +00:00
models.py * Fixed svn:keywords 2008-01-22 05:54:22 +00:00
README * Add smart e-mail parsing - if subject contains a ticket ID, the new e-mail 2008-02-05 23:35:40 +00:00
urls.py * Add ability to place a ticket on hold, stopping automatic escalation. 2008-01-16 04:52:30 +00:00
views.py * Bugfix 2008-01-21 03:51:35 +00:00

                                        .. 
                                 .,::;::::::
                           ..,::::::::,,,,:::      Jutda Helpdesk - A Django
                      .,,::::::,,,,,,,,,,,,,::     powered ticket tracker for
                  .,::::::,,,,,,,,,,,,,,,,,,:;r.        small enterprise
                .::::,,,,,,,,,,,,,,,,,,,,,,:;;rr.
              .:::,,,,,,,,,,,,,,,,,,,,,,,:;;;;;rr      (c) Copyright 2008
            .:::,,,,,,,,,,,,,,,,,,,,,,,:;;;:::;;rr
          .:::,,,,,,,,,,,,,,,,,,,,.  ,;;;::::::;;rr           Jutda
        .:::,,,,,,,,,,,,,,,,,,.    .:;;:::::::::;;rr
      .:::,,,,,,,,,,,,,,,.       .;r;::::::::::::;r;   All Rights Reserved
    .:::,,,,,,,,,,,,,,,        .;r;;:::::::::::;;:.
  .:::,,,,,,,,,,,,,,,.       .;r;;::::::::::::;:.
 .;:,,,,,,,,,,,,,,,       .,;rr;::::::::::::;:.   This software is released 
.,:,,,,,,,,,,,,,.    .,:;rrr;;::::::::::::;;.  under a limited-use license that
  :,,,,,,,,,,,,,..:;rrrrr;;;::::::::::::;;.  allows you to freely download this
   :,,,,,,,:::;;;rr;;;;;;:::::::::::::;;,  software from it's manufacturer and
    ::::;;;;;;;;;;;:::::::::::::::::;;,  use it yourself, however you may not
    .r;;;;:::::::::::::::::::::::;;;,  distribute it. For further details, see
     .r;::::::::::::::::::::;;;;;:,  the enclosed LICENSE file.
      .;;::::::::::::::;;;;;:,.
       .;;:::::::;;;;;;:,.  Please direct people who wish to download this
        .r;;;;;;;;:,.  software themselves to www.jutda.com.au.
          ,,,..

$Id$

#########################
0. Table of Contents
#########################

1. Licensing
2. Dependencies (pre-flight checklist)
3. Installation
4. Initial Configuration

#########################
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 (post-0.96, eg SVN checkout)

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:
    (r'^admin/', include('django.contrib.admin.urls')),

    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/

#########################
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 * * * * DJANGO_SETTINGS_MODULE='myproject.settings' python /path/to/helpdesk/scripts/get_email.py

   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 * * * * DJANGO_SETTINGS_MODULE='myproject.settings' python /path/to/helpdesk/scripts/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 DJANGO_SETTINGS_MODULE='myproject.settings' python /path/to/helpdesk/scripts/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!