mirror of
https://github.com/django-helpdesk/django-helpdesk.git
synced 2024-12-13 18:31:10 +01:00
Fixes for Django 1.7. For prior Django versions, South 1.0 must be used for
migirations. Fixes #254.
This commit is contained in:
parent
fdd715795f
commit
61f49786c0
6
helpdesk/apps.py
Normal file
6
helpdesk/apps.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
class HelpdeskConfig(AppConfig):
|
||||||
|
name = 'helpdesk'
|
||||||
|
verbose_name = "Helpdesk"
|
||||||
|
|
@ -1,490 +1,346 @@
|
|||||||
# encoding: utf-8
|
# -*- coding: utf-8 -*-
|
||||||
import datetime
|
from __future__ import unicode_literals
|
||||||
from south.db import db
|
|
||||||
from south.v2 import SchemaMigration
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
class Migration(SchemaMigration):
|
from django.db import models, migrations
|
||||||
|
import django.utils.timezone
|
||||||
def forwards(self, orm):
|
from django.conf import settings
|
||||||
|
import helpdesk.models
|
||||||
# Adding model 'Queue'
|
|
||||||
db.create_table('helpdesk_queue', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
|
|
||||||
('email_address', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
|
||||||
('locale', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
|
|
||||||
('allow_public_submission', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('allow_email_submission', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('escalate_days', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
|
||||||
('new_ticket_cc', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('updated_ticket_cc', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('email_box_type', self.gf('django.db.models.fields.CharField')(max_length=5, null=True, blank=True)),
|
|
||||||
('email_box_host', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('email_box_port', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
|
||||||
('email_box_ssl', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('email_box_user', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('email_box_pass', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('email_box_imap_folder', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)),
|
|
||||||
('email_box_interval', self.gf('django.db.models.fields.IntegerField')(default='5', null=True, blank=True)),
|
|
||||||
('email_box_last_check', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['Queue'])
|
|
||||||
|
|
||||||
# Adding model 'Ticket'
|
|
||||||
db.create_table('helpdesk_ticket', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=200)),
|
|
||||||
('queue', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Queue'])),
|
|
||||||
('created', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
|
||||||
('modified', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
|
||||||
('submitter_email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
|
||||||
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(related_name='assigned_to', blank=True, null=True, to=orm['auth.User'])),
|
|
||||||
('status', self.gf('django.db.models.fields.IntegerField')(default=1)),
|
|
||||||
('on_hold', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('resolution', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('priority', self.gf('django.db.models.fields.IntegerField')(default=3, blank=3)),
|
|
||||||
('last_escalation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['Ticket'])
|
|
||||||
|
|
||||||
# Adding model 'FollowUp'
|
|
||||||
db.create_table('helpdesk_followup', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
|
||||||
('date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2011, 4, 27, 15, 17, 4, 272904))),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
|
||||||
('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('public', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)),
|
|
||||||
('new_status', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['FollowUp'])
|
|
||||||
|
|
||||||
# Adding model 'TicketChange'
|
|
||||||
db.create_table('helpdesk_ticketchange', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('followup', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.FollowUp'])),
|
|
||||||
('field', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('old_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('new_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['TicketChange'])
|
|
||||||
|
|
||||||
# Adding model 'Attachment'
|
|
||||||
db.create_table('helpdesk_attachment', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('followup', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.FollowUp'])),
|
|
||||||
('file', self.gf('django.db.models.fields.files.FileField')(max_length=100)),
|
|
||||||
('filename', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('mime_type', self.gf('django.db.models.fields.CharField')(max_length=30)),
|
|
||||||
('size', self.gf('django.db.models.fields.IntegerField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['Attachment'])
|
|
||||||
|
|
||||||
# Adding model 'PreSetReply'
|
|
||||||
db.create_table('helpdesk_presetreply', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('body', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['PreSetReply'])
|
|
||||||
|
|
||||||
# Adding M2M table for field queues on 'PreSetReply'
|
|
||||||
db.create_table('helpdesk_presetreply_queues', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('presetreply', models.ForeignKey(orm['helpdesk.presetreply'], null=False)),
|
|
||||||
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('helpdesk_presetreply_queues', ['presetreply_id', 'queue_id'])
|
|
||||||
|
|
||||||
# Adding model 'EscalationExclusion'
|
|
||||||
db.create_table('helpdesk_escalationexclusion', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('date', self.gf('django.db.models.fields.DateField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['EscalationExclusion'])
|
|
||||||
|
|
||||||
# Adding M2M table for field queues on 'EscalationExclusion'
|
|
||||||
db.create_table('helpdesk_escalationexclusion_queues', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('escalationexclusion', models.ForeignKey(orm['helpdesk.escalationexclusion'], null=False)),
|
|
||||||
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('helpdesk_escalationexclusion_queues', ['escalationexclusion_id', 'queue_id'])
|
|
||||||
|
|
||||||
# Adding model 'EmailTemplate'
|
|
||||||
db.create_table('helpdesk_emailtemplate', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('template_name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('subject', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('heading', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('plain_text', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
('html', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
('locale', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['EmailTemplate'])
|
|
||||||
|
|
||||||
# Adding model 'KBCategory'
|
|
||||||
db.create_table('helpdesk_kbcategory', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
|
|
||||||
('description', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['KBCategory'])
|
|
||||||
|
|
||||||
# Adding model 'KBItem'
|
|
||||||
db.create_table('helpdesk_kbitem', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('category', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.KBCategory'])),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('question', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
('answer', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
('votes', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('recommendations', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
|
||||||
('last_updated', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['KBItem'])
|
|
||||||
|
|
||||||
# Adding model 'SavedSearch'
|
|
||||||
db.create_table('helpdesk_savedsearch', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
|
||||||
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('shared', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('query', self.gf('django.db.models.fields.TextField')()),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['SavedSearch'])
|
|
||||||
|
|
||||||
# Adding model 'UserSettings'
|
|
||||||
db.create_table('helpdesk_usersettings', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
|
|
||||||
('settings_pickled', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['UserSettings'])
|
|
||||||
|
|
||||||
# Adding model 'IgnoreEmail'
|
|
||||||
db.create_table('helpdesk_ignoreemail', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('date', self.gf('django.db.models.fields.DateField')(blank=True)),
|
|
||||||
('email_address', self.gf('django.db.models.fields.CharField')(max_length=150)),
|
|
||||||
('keep_in_mailbox', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['IgnoreEmail'])
|
|
||||||
|
|
||||||
# Adding M2M table for field queues on 'IgnoreEmail'
|
|
||||||
db.create_table('helpdesk_ignoreemail_queues', (
|
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
|
||||||
('ignoreemail', models.ForeignKey(orm['helpdesk.ignoreemail'], null=False)),
|
|
||||||
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
|
||||||
))
|
|
||||||
db.create_unique('helpdesk_ignoreemail_queues', ['ignoreemail_id', 'queue_id'])
|
|
||||||
|
|
||||||
# Adding model 'TicketCC'
|
|
||||||
db.create_table('helpdesk_ticketcc', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
|
||||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)),
|
|
||||||
('email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
|
||||||
('can_view', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('can_update', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['TicketCC'])
|
|
||||||
|
|
||||||
# Adding model 'CustomField'
|
|
||||||
db.create_table('helpdesk_customfield', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('name', self.gf('django.db.models.fields.SlugField')(max_length=50, unique=True, db_index=True)),
|
|
||||||
('label', self.gf('django.db.models.fields.CharField')(max_length='30')),
|
|
||||||
('help_text', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('data_type', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
|
||||||
('max_length', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
|
||||||
('decimal_places', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
|
||||||
('list_values', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
('required', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
('staff_only', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['CustomField'])
|
|
||||||
|
|
||||||
# Adding model 'TicketCustomFieldValue'
|
|
||||||
db.create_table('helpdesk_ticketcustomfieldvalue', (
|
|
||||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
|
||||||
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
|
||||||
('field', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.CustomField'])),
|
|
||||||
('value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
|
||||||
))
|
|
||||||
db.send_create_signal('helpdesk', ['TicketCustomFieldValue'])
|
|
||||||
|
|
||||||
# Adding unique constraint on 'TicketCustomFieldValue', fields ['ticket', 'field']
|
|
||||||
db.create_unique('helpdesk_ticketcustomfieldvalue', ['ticket_id', 'field_id'])
|
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
# Removing unique constraint on 'TicketCustomFieldValue', fields ['ticket', 'field']
|
|
||||||
db.delete_unique('helpdesk_ticketcustomfieldvalue', ['ticket_id', 'field_id'])
|
|
||||||
|
|
||||||
# Deleting model 'Queue'
|
dependencies = [
|
||||||
db.delete_table('helpdesk_queue')
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
# Deleting model 'Ticket'
|
operations = [
|
||||||
db.delete_table('helpdesk_ticket')
|
migrations.CreateModel(
|
||||||
|
name='Attachment',
|
||||||
# Deleting model 'FollowUp'
|
fields=[
|
||||||
db.delete_table('helpdesk_followup')
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
|
('file', models.FileField(upload_to=helpdesk.models.attachment_path, max_length=1000, verbose_name='File')),
|
||||||
# Deleting model 'TicketChange'
|
('filename', models.CharField(max_length=1000, verbose_name='Filename')),
|
||||||
db.delete_table('helpdesk_ticketchange')
|
('mime_type', models.CharField(max_length=255, verbose_name='MIME Type')),
|
||||||
|
('size', models.IntegerField(help_text='Size of this file in bytes', verbose_name='Size')),
|
||||||
# Deleting model 'Attachment'
|
],
|
||||||
db.delete_table('helpdesk_attachment')
|
options={
|
||||||
|
'ordering': ['filename'],
|
||||||
# Deleting model 'PreSetReply'
|
'verbose_name': 'Attachment',
|
||||||
db.delete_table('helpdesk_presetreply')
|
'verbose_name_plural': 'Attachments',
|
||||||
|
},
|
||||||
# Removing M2M table for field queues on 'PreSetReply'
|
bases=(models.Model,),
|
||||||
db.delete_table('helpdesk_presetreply_queues')
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
# Deleting model 'EscalationExclusion'
|
name='CustomField',
|
||||||
db.delete_table('helpdesk_escalationexclusion')
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
# Removing M2M table for field queues on 'EscalationExclusion'
|
('name', models.SlugField(help_text='As used in the database and behind the scenes. Must be unique and consist of only lowercase letters with no punctuation.', unique=True, verbose_name='Field Name')),
|
||||||
db.delete_table('helpdesk_escalationexclusion_queues')
|
('label', models.CharField(help_text='The display label for this field', max_length=b'30', verbose_name='Label')),
|
||||||
|
('help_text', models.TextField(help_text='Shown to the user when editing the ticket', null=True, verbose_name='Help Text', blank=True)),
|
||||||
# Deleting model 'EmailTemplate'
|
('data_type', models.CharField(help_text='Allows you to restrict the data entered into this field', max_length=100, verbose_name='Data Type', choices=[(b'varchar', 'Character (single line)'), (b'text', 'Text (multi-line)'), (b'integer', 'Integer'), (b'decimal', 'Decimal'), (b'list', 'List'), (b'boolean', 'Boolean (checkbox yes/no)'), (b'date', 'Date'), (b'time', 'Time'), (b'datetime', 'Date & Time'), (b'email', 'E-Mail Address'), (b'url', 'URL'), (b'ipaddress', 'IP Address'), (b'slug', 'Slug')])),
|
||||||
db.delete_table('helpdesk_emailtemplate')
|
('max_length', models.IntegerField(null=True, verbose_name='Maximum Length (characters)', blank=True)),
|
||||||
|
('decimal_places', models.IntegerField(help_text='Only used for decimal fields', null=True, verbose_name='Decimal Places', blank=True)),
|
||||||
# Deleting model 'KBCategory'
|
('empty_selection_list', models.BooleanField(default=False, help_text='Only for List: adds an empty first entry to the choices list, which enforces that the user makes an active choice.', verbose_name='Add empty first choice to List?')),
|
||||||
db.delete_table('helpdesk_kbcategory')
|
('list_values', models.TextField(help_text='For list fields only. Enter one option per line.', null=True, verbose_name='List Values', blank=True)),
|
||||||
|
('ordering', models.IntegerField(help_text='Lower numbers are displayed first; higher numbers are listed later', null=True, verbose_name='Ordering', blank=True)),
|
||||||
# Deleting model 'KBItem'
|
('required', models.BooleanField(default=False, help_text='Does the user have to enter a value for this field?', verbose_name='Required?')),
|
||||||
db.delete_table('helpdesk_kbitem')
|
('staff_only', models.BooleanField(default=False, help_text='If this is ticked, then the public submission form will NOT show this field', verbose_name='Staff Only?')),
|
||||||
|
],
|
||||||
# Deleting model 'SavedSearch'
|
options={
|
||||||
db.delete_table('helpdesk_savedsearch')
|
'verbose_name': 'Custom field',
|
||||||
|
'verbose_name_plural': 'Custom fields',
|
||||||
# Deleting model 'UserSettings'
|
},
|
||||||
db.delete_table('helpdesk_usersettings')
|
bases=(models.Model,),
|
||||||
|
),
|
||||||
# Deleting model 'IgnoreEmail'
|
migrations.CreateModel(
|
||||||
db.delete_table('helpdesk_ignoreemail')
|
name='EmailTemplate',
|
||||||
|
fields=[
|
||||||
# Removing M2M table for field queues on 'IgnoreEmail'
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
db.delete_table('helpdesk_ignoreemail_queues')
|
('template_name', models.CharField(max_length=100, verbose_name='Template Name')),
|
||||||
|
('subject', models.CharField(help_text='This will be prefixed with "[ticket.ticket] ticket.title". We recommend something simple such as "(Updated") or "(Closed)" - the same context is available as in plain_text, below.', max_length=100, verbose_name='Subject')),
|
||||||
# Deleting model 'TicketCC'
|
('heading', models.CharField(help_text='In HTML e-mails, this will be the heading at the top of the email - the same context is available as in plain_text, below.', max_length=100, verbose_name='Heading')),
|
||||||
db.delete_table('helpdesk_ticketcc')
|
('plain_text', models.TextField(help_text='The context available to you includes {{ ticket }}, {{ queue }}, and depending on the time of the call: {{ resolution }} or {{ comment }}.', verbose_name='Plain Text')),
|
||||||
|
('html', models.TextField(help_text='The same context is available here as in plain_text, above.', verbose_name='HTML')),
|
||||||
# Deleting model 'CustomField'
|
('locale', models.CharField(help_text='Locale of this template.', max_length=10, null=True, verbose_name='Locale', blank=True)),
|
||||||
db.delete_table('helpdesk_customfield')
|
],
|
||||||
|
options={
|
||||||
# Deleting model 'TicketCustomFieldValue'
|
'ordering': ['template_name', 'locale'],
|
||||||
db.delete_table('helpdesk_ticketcustomfieldvalue')
|
'verbose_name': 'e-mail template',
|
||||||
|
'verbose_name_plural': 'e-mail templates',
|
||||||
|
},
|
||||||
models = {
|
bases=(models.Model,),
|
||||||
'auth.group': {
|
),
|
||||||
'Meta': {'object_name': 'Group'},
|
migrations.CreateModel(
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
name='EscalationExclusion',
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
fields=[
|
||||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
},
|
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||||
'auth.permission': {
|
('date', models.DateField(help_text='Date on which escalation should not happen', verbose_name='Date')),
|
||||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
],
|
||||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
options={
|
||||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
'verbose_name': 'Escalation exclusion',
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
'verbose_name_plural': 'Escalation exclusions',
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
},
|
||||||
},
|
bases=(models.Model,),
|
||||||
'auth.user': {
|
),
|
||||||
'Meta': {'object_name': 'User'},
|
migrations.CreateModel(
|
||||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
name='FollowUp',
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
fields=[
|
||||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date')),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('title', models.CharField(max_length=200, null=True, verbose_name='Title', blank=True)),
|
||||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
('comment', models.TextField(null=True, verbose_name='Comment', blank=True)),
|
||||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('public', models.BooleanField(default=False, help_text='Public tickets are viewable by the submitter and all staff, but non-public tickets can only be seen by staff.', verbose_name='Public')),
|
||||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('new_status', models.IntegerField(blank=True, help_text='If the status was changed, what was it changed to?', null=True, verbose_name='New Status', choices=[(1, 'Open'), (2, 'Reopened'), (3, 'Resolved'), (4, 'Closed'), (5, 'Duplicate')])),
|
||||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
],
|
||||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
options={
|
||||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
'ordering': ['date'],
|
||||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
'verbose_name': 'Follow-up',
|
||||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
'verbose_name_plural': 'Follow-ups',
|
||||||
},
|
},
|
||||||
'contenttypes.contenttype': {
|
bases=(models.Model,),
|
||||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
),
|
||||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
migrations.CreateModel(
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
name='IgnoreEmail',
|
||||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
fields=[
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
},
|
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||||
'helpdesk.attachment': {
|
('date', models.DateField(help_text='Date on which this e-mail address was added', verbose_name='Date', editable=False, blank=True)),
|
||||||
'Meta': {'ordering': "['filename']", 'object_name': 'Attachment'},
|
('email_address', models.CharField(help_text='Enter a full e-mail address, or portions with wildcards, eg *@domain.com or postmaster@*.', max_length=150, verbose_name='E-Mail Address')),
|
||||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
|
('keep_in_mailbox', models.BooleanField(default=False, help_text='Do you want to save emails from this address in the mailbox? If this is unticked, emails from this address will be deleted.', verbose_name='Save Emails in Mailbox?')),
|
||||||
'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
],
|
||||||
'followup': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.FollowUp']"}),
|
options={
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
'verbose_name': 'Ignored e-mail address',
|
||||||
'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
|
'verbose_name_plural': 'Ignored e-mail addresses',
|
||||||
'size': ('django.db.models.fields.IntegerField', [], {})
|
},
|
||||||
},
|
bases=(models.Model,),
|
||||||
'helpdesk.customfield': {
|
),
|
||||||
'Meta': {'object_name': 'CustomField'},
|
migrations.CreateModel(
|
||||||
'data_type': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
name='KBCategory',
|
||||||
'decimal_places': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
fields=[
|
||||||
'help_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||||
'label': ('django.db.models.fields.CharField', [], {'max_length': "'30'"}),
|
('slug', models.SlugField(verbose_name='Slug')),
|
||||||
'list_values': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
('description', models.TextField(verbose_name='Description')),
|
||||||
'max_length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
],
|
||||||
'name': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'unique': 'True', 'db_index': 'True'}),
|
options={
|
||||||
'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
'ordering': ['title'],
|
||||||
'staff_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
'verbose_name': 'Knowledge base category',
|
||||||
},
|
'verbose_name_plural': 'Knowledge base categories',
|
||||||
'helpdesk.emailtemplate': {
|
},
|
||||||
'Meta': {'ordering': "['template_name', 'locale']", 'object_name': 'EmailTemplate'},
|
bases=(models.Model,),
|
||||||
'heading': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
),
|
||||||
'html': ('django.db.models.fields.TextField', [], {}),
|
migrations.CreateModel(
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
name='KBItem',
|
||||||
'locale': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
|
fields=[
|
||||||
'plain_text': ('django.db.models.fields.TextField', [], {}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||||
'template_name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
('question', models.TextField(verbose_name='Question')),
|
||||||
},
|
('answer', models.TextField(verbose_name='Answer')),
|
||||||
'helpdesk.escalationexclusion': {
|
('votes', models.IntegerField(default=0, help_text='Total number of votes cast for this item', verbose_name='Votes')),
|
||||||
'Meta': {'object_name': 'EscalationExclusion'},
|
('recommendations', models.IntegerField(default=0, help_text='Number of votes for this item which were POSITIVE.', verbose_name='Positive Votes')),
|
||||||
'date': ('django.db.models.fields.DateField', [], {}),
|
('last_updated', models.DateTimeField(help_text='The date on which this question was most recently changed.', verbose_name='Last Updated', blank=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('category', models.ForeignKey(verbose_name='Category', to='helpdesk.KBCategory')),
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
],
|
||||||
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
options={
|
||||||
},
|
'ordering': ['title'],
|
||||||
'helpdesk.followup': {
|
'verbose_name': 'Knowledge base item',
|
||||||
'Meta': {'ordering': "['date']", 'object_name': 'FollowUp'},
|
'verbose_name_plural': 'Knowledge base items',
|
||||||
'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
},
|
||||||
'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 4, 27, 15, 17, 4, 272904)'}),
|
bases=(models.Model,),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
),
|
||||||
'new_status': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
migrations.CreateModel(
|
||||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
name='PreSetReply',
|
||||||
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
fields=[
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
|
('name', models.CharField(help_text='Only used to assist users with selecting a reply - not shown to the user.', max_length=100, verbose_name='Name')),
|
||||||
},
|
('body', models.TextField(help_text='Context available: {{ ticket }} - ticket object (eg {{ ticket.title }}); {{ queue }} - The queue; and {{ user }} - the current user.', verbose_name='Body')),
|
||||||
'helpdesk.ignoreemail': {
|
],
|
||||||
'Meta': {'object_name': 'IgnoreEmail'},
|
options={
|
||||||
'date': ('django.db.models.fields.DateField', [], {'blank': 'True'}),
|
'ordering': ['name'],
|
||||||
'email_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}),
|
'verbose_name': 'Pre-set reply',
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
'verbose_name_plural': 'Pre-set replies',
|
||||||
'keep_in_mailbox': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
},
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
bases=(models.Model,),
|
||||||
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
),
|
||||||
},
|
migrations.CreateModel(
|
||||||
'helpdesk.kbcategory': {
|
name='Queue',
|
||||||
'Meta': {'ordering': "['title']", 'object_name': 'KBCategory'},
|
fields=[
|
||||||
'description': ('django.db.models.fields.TextField', [], {}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
|
('slug', models.SlugField(help_text="This slug is used when building ticket ID's. Once set, try not to change it or e-mailing may get messy.", verbose_name='Slug')),
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
('email_address', models.EmailField(help_text='All outgoing e-mails for this queue will use this e-mail address. If you use IMAP or POP3, this should be the e-mail address for that mailbox.', max_length=75, null=True, verbose_name='E-Mail Address', blank=True)),
|
||||||
},
|
('locale', models.CharField(help_text='Locale of this queue. All correspondence in this queue will be in this language.', max_length=10, null=True, verbose_name='Locale', blank=True)),
|
||||||
'helpdesk.kbitem': {
|
('allow_public_submission', models.BooleanField(default=False, help_text='Should this queue be listed on the public submission form?', verbose_name='Allow Public Submission?')),
|
||||||
'Meta': {'ordering': "['title']", 'object_name': 'KBItem'},
|
('allow_email_submission', models.BooleanField(default=False, help_text='Do you want to poll the e-mail box below for new tickets?', verbose_name='Allow E-Mail Submission?')),
|
||||||
'answer': ('django.db.models.fields.TextField', [], {}),
|
('escalate_days', models.IntegerField(help_text='For tickets which are not held, how often do you wish to increase their priority? Set to 0 for no escalation.', null=True, verbose_name='Escalation Days', blank=True)),
|
||||||
'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.KBCategory']"}),
|
('new_ticket_cc', models.CharField(help_text='If an e-mail address is entered here, then it will receive notification of all new tickets created for this queue. Enter a comma between multiple e-mail addresses.', max_length=200, null=True, verbose_name='New Ticket CC Address', blank=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('updated_ticket_cc', models.CharField(help_text='If an e-mail address is entered here, then it will receive notification of all activity (new tickets, closed tickets, updates, reassignments, etc) for this queue. Separate multiple addresses with a comma.', max_length=200, null=True, verbose_name='Updated Ticket CC Address', blank=True)),
|
||||||
'last_updated': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
('email_box_type', models.CharField(choices=[(b'pop3', 'POP 3'), (b'imap', 'IMAP')], max_length=5, blank=True, help_text='E-Mail server type for creating tickets automatically from a mailbox - both POP3 and IMAP are supported.', null=True, verbose_name='E-Mail Box Type')),
|
||||||
'question': ('django.db.models.fields.TextField', [], {}),
|
('email_box_host', models.CharField(help_text='Your e-mail server address - either the domain name or IP address. May be "localhost".', max_length=200, null=True, verbose_name='E-Mail Hostname', blank=True)),
|
||||||
'recommendations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
('email_box_port', models.IntegerField(help_text='Port number to use for accessing e-mail. Default for POP3 is "110", and for IMAP is "143". This may differ on some servers. Leave it blank to use the defaults.', null=True, verbose_name='E-Mail Port', blank=True)),
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
('email_box_ssl', models.BooleanField(default=False, help_text='Whether to use SSL for IMAP or POP3 - the default ports when using SSL are 993 for IMAP and 995 for POP3.', verbose_name='Use SSL for E-Mail?')),
|
||||||
'votes': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
('email_box_user', models.CharField(help_text='Username for accessing this mailbox.', max_length=200, null=True, verbose_name='E-Mail Username', blank=True)),
|
||||||
},
|
('email_box_pass', models.CharField(help_text='Password for the above username', max_length=200, null=True, verbose_name='E-Mail Password', blank=True)),
|
||||||
'helpdesk.presetreply': {
|
('email_box_imap_folder', models.CharField(help_text='If using IMAP, what folder do you wish to fetch messages from? This allows you to use one IMAP account for multiple queues, by filtering messages on your IMAP server into separate folders. Default: INBOX.', max_length=100, null=True, verbose_name='IMAP Folder', blank=True)),
|
||||||
'Meta': {'ordering': "['name']", 'object_name': 'PreSetReply'},
|
('email_box_interval', models.IntegerField(default=b'5', help_text='How often do you wish to check this mailbox? (in Minutes)', null=True, verbose_name='E-Mail Check Interval', blank=True)),
|
||||||
'body': ('django.db.models.fields.TextField', [], {}),
|
('email_box_last_check', models.DateTimeField(null=True, editable=False, blank=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
],
|
||||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
options={
|
||||||
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
'ordering': ('title',),
|
||||||
},
|
'verbose_name': 'Queue',
|
||||||
'helpdesk.queue': {
|
'verbose_name_plural': 'Queues',
|
||||||
'Meta': {'ordering': "('title',)", 'object_name': 'Queue'},
|
},
|
||||||
'allow_email_submission': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
bases=(models.Model,),
|
||||||
'allow_public_submission': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
),
|
||||||
'email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
migrations.CreateModel(
|
||||||
'email_box_host': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
name='SavedSearch',
|
||||||
'email_box_imap_folder': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
fields=[
|
||||||
'email_box_interval': ('django.db.models.fields.IntegerField', [], {'default': "'5'", 'null': 'True', 'blank': 'True'}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'email_box_last_check': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
('title', models.CharField(help_text='User-provided name for this query', max_length=100, verbose_name='Query Name')),
|
||||||
'email_box_pass': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
('shared', models.BooleanField(default=False, help_text='Should other users see this query?', verbose_name='Shared With Other Users?')),
|
||||||
'email_box_port': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
('query', models.TextField(help_text='Pickled query object. Be wary changing this.', verbose_name='Search Query')),
|
||||||
'email_box_ssl': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('user', models.ForeignKey(verbose_name='User', to=settings.AUTH_USER_MODEL)),
|
||||||
'email_box_type': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
|
],
|
||||||
'email_box_user': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
options={
|
||||||
'escalate_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
'verbose_name': 'Saved search',
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
'verbose_name_plural': 'Saved searches',
|
||||||
'locale': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
|
},
|
||||||
'new_ticket_cc': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
bases=(models.Model,),
|
||||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
|
),
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
migrations.CreateModel(
|
||||||
'updated_ticket_cc': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
|
name='Ticket',
|
||||||
},
|
fields=[
|
||||||
'helpdesk.savedsearch': {
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'Meta': {'object_name': 'SavedSearch'},
|
('title', models.CharField(max_length=200, verbose_name='Title')),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('created', models.DateTimeField(help_text='Date this ticket was first created', verbose_name='Created', blank=True)),
|
||||||
'query': ('django.db.models.fields.TextField', [], {}),
|
('modified', models.DateTimeField(help_text='Date this ticket was most recently changed.', verbose_name='Modified', blank=True)),
|
||||||
'shared': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('submitter_email', models.EmailField(help_text='The submitter will receive an email for all public follow-ups left for this task.', max_length=75, null=True, verbose_name='Submitter E-Mail', blank=True)),
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
('status', models.IntegerField(default=1, verbose_name='Status', choices=[(1, 'Open'), (2, 'Reopened'), (3, 'Resolved'), (4, 'Closed'), (5, 'Duplicate')])),
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
('on_hold', models.BooleanField(default=False, help_text='If a ticket is on hold, it will not automatically be escalated.', verbose_name='On Hold')),
|
||||||
},
|
('description', models.TextField(help_text='The content of the customers query.', null=True, verbose_name='Description', blank=True)),
|
||||||
'helpdesk.ticket': {
|
('resolution', models.TextField(help_text='The resolution provided to the customer by our staff.', null=True, verbose_name='Resolution', blank=True)),
|
||||||
'Meta': {'object_name': 'Ticket'},
|
('priority', models.IntegerField(default=3, help_text='1 = Highest Priority, 5 = Low Priority', blank=3, verbose_name='Priority', choices=[(1, '1. Critical'), (2, '2. High'), (3, '3. Normal'), (4, '4. Low'), (5, '5. Very Low')])),
|
||||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'assigned_to'", 'blank': 'True', 'null': 'True', 'to': "orm['auth.User']"}),
|
('due_date', models.DateTimeField(null=True, verbose_name='Due on', blank=True)),
|
||||||
'created': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
('last_escalation', models.DateTimeField(help_text='The date this ticket was last escalated - updated automatically by management/commands/escalate_tickets.py.', null=True, editable=False, blank=True)),
|
||||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
('assigned_to', models.ForeignKey(related_name=b'assigned_to', verbose_name='Assigned to', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('queue', models.ForeignKey(verbose_name='Queue', to='helpdesk.Queue')),
|
||||||
'last_escalation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
],
|
||||||
'modified': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
options={
|
||||||
'on_hold': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
'ordering': ('id',),
|
||||||
'priority': ('django.db.models.fields.IntegerField', [], {'default': '3', 'blank': '3'}),
|
'get_latest_by': 'created',
|
||||||
'queue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Queue']"}),
|
'verbose_name': 'Ticket',
|
||||||
'resolution': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
'verbose_name_plural': 'Tickets',
|
||||||
'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
|
},
|
||||||
'submitter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
bases=(models.Model,),
|
||||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
),
|
||||||
},
|
migrations.CreateModel(
|
||||||
'helpdesk.ticketcc': {
|
name='TicketCC',
|
||||||
'Meta': {'object_name': 'TicketCC'},
|
fields=[
|
||||||
'can_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'can_view': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
('email', models.EmailField(help_text='For non-user followers, enter their e-mail address', max_length=75, null=True, verbose_name='E-Mail Address', blank=True)),
|
||||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
('can_view', models.BooleanField(default=False, help_text='Can this CC login to view the ticket details?', verbose_name='Can View Ticket?')),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('can_update', models.BooleanField(default=False, help_text='Can this CC login and update the ticket?', verbose_name='Can Update Ticket?')),
|
||||||
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
('ticket', models.ForeignKey(verbose_name='Ticket', to='helpdesk.Ticket')),
|
||||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
|
('user', models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, help_text='User who wishes to receive updates for this ticket.', null=True, verbose_name='User')),
|
||||||
},
|
],
|
||||||
'helpdesk.ticketchange': {
|
options={
|
||||||
'Meta': {'object_name': 'TicketChange'},
|
},
|
||||||
'field': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
bases=(models.Model,),
|
||||||
'followup': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.FollowUp']"}),
|
),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
migrations.CreateModel(
|
||||||
'new_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
name='TicketChange',
|
||||||
'old_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
|
fields=[
|
||||||
},
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
'helpdesk.ticketcustomfieldvalue': {
|
('field', models.CharField(max_length=100, verbose_name='Field')),
|
||||||
'Meta': {'unique_together': "(('ticket', 'field'),)", 'object_name': 'TicketCustomFieldValue'},
|
('old_value', models.TextField(null=True, verbose_name='Old Value', blank=True)),
|
||||||
'field': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.CustomField']"}),
|
('new_value', models.TextField(null=True, verbose_name='New Value', blank=True)),
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
('followup', models.ForeignKey(verbose_name='Follow-up', to='helpdesk.FollowUp')),
|
||||||
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
],
|
||||||
'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
|
options={
|
||||||
},
|
'verbose_name': 'Ticket change',
|
||||||
'helpdesk.usersettings': {
|
'verbose_name_plural': 'Ticket changes',
|
||||||
'Meta': {'object_name': 'UserSettings'},
|
},
|
||||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
bases=(models.Model,),
|
||||||
'settings_pickled': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
),
|
||||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
migrations.CreateModel(
|
||||||
}
|
name='TicketCustomFieldValue',
|
||||||
}
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
complete_apps = ['helpdesk']
|
('value', models.TextField(null=True, blank=True)),
|
||||||
|
('field', models.ForeignKey(verbose_name='Field', to='helpdesk.CustomField')),
|
||||||
|
('ticket', models.ForeignKey(verbose_name='Ticket', to='helpdesk.Ticket')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Ticket custom field value',
|
||||||
|
'verbose_name_plural': 'Ticket custom field values',
|
||||||
|
},
|
||||||
|
bases=(models.Model,),
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='TicketDependency',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
|
('depends_on', models.ForeignKey(related_name=b'depends_on', verbose_name='Depends On Ticket', to='helpdesk.Ticket')),
|
||||||
|
('ticket', models.ForeignKey(related_name=b'ticketdependency', verbose_name='Ticket', to='helpdesk.Ticket')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Ticket dependency',
|
||||||
|
'verbose_name_plural': 'Ticket dependencies',
|
||||||
|
},
|
||||||
|
bases=(models.Model,),
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='UserSettings',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
|
('settings_pickled', models.TextField(help_text='This is a base64-encoded representation of a pickled Python dictionary. Do not change this field via the admin.', null=True, verbose_name='Settings Dictionary', blank=True)),
|
||||||
|
('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'User Setting',
|
||||||
|
'verbose_name_plural': 'User Settings',
|
||||||
|
},
|
||||||
|
bases=(models.Model,),
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='ticketdependency',
|
||||||
|
unique_together=set([('ticket', 'depends_on')]),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='presetreply',
|
||||||
|
name='queues',
|
||||||
|
field=models.ManyToManyField(help_text='Leave blank to allow this reply to be used for all queues, or select those queues you wish to limit this reply to.', to='helpdesk.Queue', null=True, blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ignoreemail',
|
||||||
|
name='queues',
|
||||||
|
field=models.ManyToManyField(help_text='Leave blank for this e-mail to be ignored on all queues, or select those queues you wish to ignore this e-mail for.', to='helpdesk.Queue', null=True, blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='followup',
|
||||||
|
name='ticket',
|
||||||
|
field=models.ForeignKey(verbose_name='Ticket', to='helpdesk.Ticket'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='followup',
|
||||||
|
name='user',
|
||||||
|
field=models.ForeignKey(verbose_name='User', blank=True, to=settings.AUTH_USER_MODEL, null=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='escalationexclusion',
|
||||||
|
name='queues',
|
||||||
|
field=models.ManyToManyField(help_text='Leave blank for this exclusion to be applied to all queues, or select those queues you wish to exclude with this entry.', to='helpdesk.Queue', null=True, blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='attachment',
|
||||||
|
name='followup',
|
||||||
|
field=models.ForeignKey(verbose_name='Follow-up', to='helpdesk.FollowUp'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
@ -7,12 +7,8 @@ models.py - Model (and hence database) definitions. This is the core of the
|
|||||||
helpdesk structure.
|
helpdesk structure.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
try:
|
|
||||||
from django.contrib.auth import get_user_model
|
|
||||||
User = get_user_model()
|
|
||||||
except ImportError:
|
|
||||||
from django.contrib.auth.models import User
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.contrib.auth import get_user_model
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.translation import ugettext_lazy as _, ugettext
|
from django.utils.translation import ugettext_lazy as _, ugettext
|
||||||
|
|
||||||
@ -288,7 +284,7 @@ class Ticket(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
assigned_to = models.ForeignKey(
|
assigned_to = models.ForeignKey(
|
||||||
User,
|
settings.AUTH_USER_MODEL,
|
||||||
related_name='assigned_to',
|
related_name='assigned_to',
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
@ -496,7 +492,7 @@ class FollowUp(models.Model):
|
|||||||
|
|
||||||
date = models.DateTimeField(
|
date = models.DateTimeField(
|
||||||
_('Date'),
|
_('Date'),
|
||||||
default = timezone.now()
|
default = timezone.now
|
||||||
)
|
)
|
||||||
|
|
||||||
title = models.CharField(
|
title = models.CharField(
|
||||||
@ -521,7 +517,7 @@ class FollowUp(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
User,
|
settings.AUTH_USER_MODEL,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
verbose_name=_('User'),
|
verbose_name=_('User'),
|
||||||
@ -919,7 +915,7 @@ class SavedSearch(models.Model):
|
|||||||
etc...
|
etc...
|
||||||
"""
|
"""
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
User,
|
settings.AUTH_USER_MODEL,
|
||||||
verbose_name=_('User'),
|
verbose_name=_('User'),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -961,7 +957,7 @@ class UserSettings(models.Model):
|
|||||||
We should always refer to user.usersettings.settings['setting_name'].
|
We should always refer to user.usersettings.settings['setting_name'].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
user = models.OneToOneField(User)
|
user = models.OneToOneField(settings.AUTH_USER_MODEL)
|
||||||
|
|
||||||
settings_pickled = models.TextField(
|
settings_pickled = models.TextField(
|
||||||
_('Settings Dictionary'),
|
_('Settings Dictionary'),
|
||||||
@ -1005,11 +1001,12 @@ def create_usersettings(sender, created_models=[], instance=None, created=False,
|
|||||||
'DoesNotExist: UserSettings matching query does not exist.' errors.
|
'DoesNotExist: UserSettings matching query does not exist.' errors.
|
||||||
"""
|
"""
|
||||||
from helpdesk.settings import DEFAULT_USER_SETTINGS
|
from helpdesk.settings import DEFAULT_USER_SETTINGS
|
||||||
if sender == User and created:
|
if sender == settings.AUTH_USER_MODEL and created:
|
||||||
# This is a new user, so lets create their settings entry.
|
# This is a new user, so lets create their settings entry.
|
||||||
s, created = UserSettings.objects.get_or_create(user=instance, defaults={'settings': DEFAULT_USER_SETTINGS})
|
s, created = UserSettings.objects.get_or_create(user=instance, defaults={'settings': DEFAULT_USER_SETTINGS})
|
||||||
s.save()
|
s.save()
|
||||||
elif UserSettings in created_models:
|
elif UserSettings in created_models:
|
||||||
|
User = get_user_model()
|
||||||
# We just created the UserSettings model, lets create a UserSettings
|
# We just created the UserSettings model, lets create a UserSettings
|
||||||
# entry for each existing user. This will only happen once (at install
|
# entry for each existing user. This will only happen once (at install
|
||||||
# time, or at upgrade) when the UserSettings model doesn't already
|
# time, or at upgrade) when the UserSettings model doesn't already
|
||||||
@ -1022,7 +1019,11 @@ def create_usersettings(sender, created_models=[], instance=None, created=False,
|
|||||||
s.save()
|
s.save()
|
||||||
|
|
||||||
models.signals.post_syncdb.connect(create_usersettings)
|
models.signals.post_syncdb.connect(create_usersettings)
|
||||||
models.signals.post_save.connect(create_usersettings, sender=User)
|
try:
|
||||||
|
models.signals.post_save.connect(create_usersettings, sender=settings.AUTH_USER_MODEL)
|
||||||
|
except:
|
||||||
|
signal_user = get_user_model()
|
||||||
|
models.signals.post_save.connect(create_usersettings, sender=signal_user)
|
||||||
|
|
||||||
class IgnoreEmail(models.Model):
|
class IgnoreEmail(models.Model):
|
||||||
"""
|
"""
|
||||||
@ -1119,7 +1120,7 @@ class TicketCC(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
User,
|
settings.AUTH_USER_MODEL,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
help_text=_('User who wishes to receive updates for this ticket.'),
|
help_text=_('User who wishes to receive updates for this ticket.'),
|
||||||
@ -1136,12 +1137,14 @@ class TicketCC(models.Model):
|
|||||||
can_view = models.BooleanField(
|
can_view = models.BooleanField(
|
||||||
_('Can View Ticket?'),
|
_('Can View Ticket?'),
|
||||||
blank=True,
|
blank=True,
|
||||||
|
default=False,
|
||||||
help_text=_('Can this CC login to view the ticket details?'),
|
help_text=_('Can this CC login to view the ticket details?'),
|
||||||
)
|
)
|
||||||
|
|
||||||
can_update = models.BooleanField(
|
can_update = models.BooleanField(
|
||||||
_('Can Update Ticket?'),
|
_('Can Update Ticket?'),
|
||||||
blank=True,
|
blank=True,
|
||||||
|
default=False,
|
||||||
help_text=_('Can this CC login and update the ticket?'),
|
help_text=_('Can this CC login and update the ticket?'),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1163,8 +1166,8 @@ class TicketCC(models.Model):
|
|||||||
return u'%s for %s' % (self.display, self.ticket.title)
|
return u'%s for %s' % (self.display, self.ticket.title)
|
||||||
|
|
||||||
class CustomFieldManager(models.Manager):
|
class CustomFieldManager(models.Manager):
|
||||||
def get_query_set(self):
|
def get_queryset(self):
|
||||||
return super(CustomFieldManager, self).get_query_set().order_by('ordering')
|
return super(CustomFieldManager, self).get_queryset().order_by('ordering')
|
||||||
|
|
||||||
|
|
||||||
class CustomField(models.Model):
|
class CustomField(models.Model):
|
||||||
@ -1258,11 +1261,13 @@ class CustomField(models.Model):
|
|||||||
required = models.BooleanField(
|
required = models.BooleanField(
|
||||||
_('Required?'),
|
_('Required?'),
|
||||||
help_text=_('Does the user have to enter a value for this field?'),
|
help_text=_('Does the user have to enter a value for this field?'),
|
||||||
|
default=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
staff_only = models.BooleanField(
|
staff_only = models.BooleanField(
|
||||||
_('Staff Only?'),
|
_('Staff Only?'),
|
||||||
help_text=_('If this is ticked, then the public submission form will NOT show this field'),
|
help_text=_('If this is ticked, then the public submission form will NOT show this field'),
|
||||||
|
default=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = CustomFieldManager()
|
objects = CustomFieldManager()
|
||||||
|
490
helpdesk/south_migrations/0001_initial.py
Normal file
490
helpdesk/south_migrations/0001_initial.py
Normal file
@ -0,0 +1,490 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
import datetime
|
||||||
|
from south.db import db
|
||||||
|
from south.v2 import SchemaMigration
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class Migration(SchemaMigration):
|
||||||
|
|
||||||
|
def forwards(self, orm):
|
||||||
|
|
||||||
|
# Adding model 'Queue'
|
||||||
|
db.create_table('helpdesk_queue', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
|
||||||
|
('email_address', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
||||||
|
('locale', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
|
||||||
|
('allow_public_submission', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('allow_email_submission', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('escalate_days', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
||||||
|
('new_ticket_cc', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('updated_ticket_cc', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('email_box_type', self.gf('django.db.models.fields.CharField')(max_length=5, null=True, blank=True)),
|
||||||
|
('email_box_host', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('email_box_port', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
||||||
|
('email_box_ssl', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('email_box_user', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('email_box_pass', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('email_box_imap_folder', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)),
|
||||||
|
('email_box_interval', self.gf('django.db.models.fields.IntegerField')(default='5', null=True, blank=True)),
|
||||||
|
('email_box_last_check', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['Queue'])
|
||||||
|
|
||||||
|
# Adding model 'Ticket'
|
||||||
|
db.create_table('helpdesk_ticket', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=200)),
|
||||||
|
('queue', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Queue'])),
|
||||||
|
('created', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
||||||
|
('modified', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
||||||
|
('submitter_email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
||||||
|
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(related_name='assigned_to', blank=True, null=True, to=orm['auth.User'])),
|
||||||
|
('status', self.gf('django.db.models.fields.IntegerField')(default=1)),
|
||||||
|
('on_hold', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('resolution', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('priority', self.gf('django.db.models.fields.IntegerField')(default=3, blank=3)),
|
||||||
|
('last_escalation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['Ticket'])
|
||||||
|
|
||||||
|
# Adding model 'FollowUp'
|
||||||
|
db.create_table('helpdesk_followup', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
||||||
|
('date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2011, 4, 27, 15, 17, 4, 272904))),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)),
|
||||||
|
('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('public', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)),
|
||||||
|
('new_status', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['FollowUp'])
|
||||||
|
|
||||||
|
# Adding model 'TicketChange'
|
||||||
|
db.create_table('helpdesk_ticketchange', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('followup', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.FollowUp'])),
|
||||||
|
('field', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('old_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('new_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['TicketChange'])
|
||||||
|
|
||||||
|
# Adding model 'Attachment'
|
||||||
|
db.create_table('helpdesk_attachment', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('followup', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.FollowUp'])),
|
||||||
|
('file', self.gf('django.db.models.fields.files.FileField')(max_length=100)),
|
||||||
|
('filename', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('mime_type', self.gf('django.db.models.fields.CharField')(max_length=30)),
|
||||||
|
('size', self.gf('django.db.models.fields.IntegerField')()),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['Attachment'])
|
||||||
|
|
||||||
|
# Adding model 'PreSetReply'
|
||||||
|
db.create_table('helpdesk_presetreply', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('body', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['PreSetReply'])
|
||||||
|
|
||||||
|
# Adding M2M table for field queues on 'PreSetReply'
|
||||||
|
db.create_table('helpdesk_presetreply_queues', (
|
||||||
|
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||||
|
('presetreply', models.ForeignKey(orm['helpdesk.presetreply'], null=False)),
|
||||||
|
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
||||||
|
))
|
||||||
|
db.create_unique('helpdesk_presetreply_queues', ['presetreply_id', 'queue_id'])
|
||||||
|
|
||||||
|
# Adding model 'EscalationExclusion'
|
||||||
|
db.create_table('helpdesk_escalationexclusion', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('date', self.gf('django.db.models.fields.DateField')()),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['EscalationExclusion'])
|
||||||
|
|
||||||
|
# Adding M2M table for field queues on 'EscalationExclusion'
|
||||||
|
db.create_table('helpdesk_escalationexclusion_queues', (
|
||||||
|
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||||
|
('escalationexclusion', models.ForeignKey(orm['helpdesk.escalationexclusion'], null=False)),
|
||||||
|
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
||||||
|
))
|
||||||
|
db.create_unique('helpdesk_escalationexclusion_queues', ['escalationexclusion_id', 'queue_id'])
|
||||||
|
|
||||||
|
# Adding model 'EmailTemplate'
|
||||||
|
db.create_table('helpdesk_emailtemplate', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('template_name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('subject', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('heading', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('plain_text', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
('html', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
('locale', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['EmailTemplate'])
|
||||||
|
|
||||||
|
# Adding model 'KBCategory'
|
||||||
|
db.create_table('helpdesk_kbcategory', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
|
||||||
|
('description', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['KBCategory'])
|
||||||
|
|
||||||
|
# Adding model 'KBItem'
|
||||||
|
db.create_table('helpdesk_kbitem', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('category', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.KBCategory'])),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('question', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
('answer', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
('votes', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
||||||
|
('recommendations', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
||||||
|
('last_updated', self.gf('django.db.models.fields.DateTimeField')(blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['KBItem'])
|
||||||
|
|
||||||
|
# Adding model 'SavedSearch'
|
||||||
|
db.create_table('helpdesk_savedsearch', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
|
||||||
|
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('shared', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('query', self.gf('django.db.models.fields.TextField')()),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['SavedSearch'])
|
||||||
|
|
||||||
|
# Adding model 'UserSettings'
|
||||||
|
db.create_table('helpdesk_usersettings', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
|
||||||
|
('settings_pickled', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['UserSettings'])
|
||||||
|
|
||||||
|
# Adding model 'IgnoreEmail'
|
||||||
|
db.create_table('helpdesk_ignoreemail', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('date', self.gf('django.db.models.fields.DateField')(blank=True)),
|
||||||
|
('email_address', self.gf('django.db.models.fields.CharField')(max_length=150)),
|
||||||
|
('keep_in_mailbox', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['IgnoreEmail'])
|
||||||
|
|
||||||
|
# Adding M2M table for field queues on 'IgnoreEmail'
|
||||||
|
db.create_table('helpdesk_ignoreemail_queues', (
|
||||||
|
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||||
|
('ignoreemail', models.ForeignKey(orm['helpdesk.ignoreemail'], null=False)),
|
||||||
|
('queue', models.ForeignKey(orm['helpdesk.queue'], null=False))
|
||||||
|
))
|
||||||
|
db.create_unique('helpdesk_ignoreemail_queues', ['ignoreemail_id', 'queue_id'])
|
||||||
|
|
||||||
|
# Adding model 'TicketCC'
|
||||||
|
db.create_table('helpdesk_ticketcc', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
||||||
|
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)),
|
||||||
|
('email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
|
||||||
|
('can_view', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('can_update', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['TicketCC'])
|
||||||
|
|
||||||
|
# Adding model 'CustomField'
|
||||||
|
db.create_table('helpdesk_customfield', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('name', self.gf('django.db.models.fields.SlugField')(max_length=50, unique=True, db_index=True)),
|
||||||
|
('label', self.gf('django.db.models.fields.CharField')(max_length='30')),
|
||||||
|
('help_text', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('data_type', self.gf('django.db.models.fields.CharField')(max_length=100)),
|
||||||
|
('max_length', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
||||||
|
('decimal_places', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
|
||||||
|
('list_values', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
('required', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('staff_only', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['CustomField'])
|
||||||
|
|
||||||
|
# Adding model 'TicketCustomFieldValue'
|
||||||
|
db.create_table('helpdesk_ticketcustomfieldvalue', (
|
||||||
|
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('ticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.Ticket'])),
|
||||||
|
('field', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['helpdesk.CustomField'])),
|
||||||
|
('value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
|
||||||
|
))
|
||||||
|
db.send_create_signal('helpdesk', ['TicketCustomFieldValue'])
|
||||||
|
|
||||||
|
# Adding unique constraint on 'TicketCustomFieldValue', fields ['ticket', 'field']
|
||||||
|
db.create_unique('helpdesk_ticketcustomfieldvalue', ['ticket_id', 'field_id'])
|
||||||
|
|
||||||
|
|
||||||
|
def backwards(self, orm):
|
||||||
|
|
||||||
|
# Removing unique constraint on 'TicketCustomFieldValue', fields ['ticket', 'field']
|
||||||
|
db.delete_unique('helpdesk_ticketcustomfieldvalue', ['ticket_id', 'field_id'])
|
||||||
|
|
||||||
|
# Deleting model 'Queue'
|
||||||
|
db.delete_table('helpdesk_queue')
|
||||||
|
|
||||||
|
# Deleting model 'Ticket'
|
||||||
|
db.delete_table('helpdesk_ticket')
|
||||||
|
|
||||||
|
# Deleting model 'FollowUp'
|
||||||
|
db.delete_table('helpdesk_followup')
|
||||||
|
|
||||||
|
# Deleting model 'TicketChange'
|
||||||
|
db.delete_table('helpdesk_ticketchange')
|
||||||
|
|
||||||
|
# Deleting model 'Attachment'
|
||||||
|
db.delete_table('helpdesk_attachment')
|
||||||
|
|
||||||
|
# Deleting model 'PreSetReply'
|
||||||
|
db.delete_table('helpdesk_presetreply')
|
||||||
|
|
||||||
|
# Removing M2M table for field queues on 'PreSetReply'
|
||||||
|
db.delete_table('helpdesk_presetreply_queues')
|
||||||
|
|
||||||
|
# Deleting model 'EscalationExclusion'
|
||||||
|
db.delete_table('helpdesk_escalationexclusion')
|
||||||
|
|
||||||
|
# Removing M2M table for field queues on 'EscalationExclusion'
|
||||||
|
db.delete_table('helpdesk_escalationexclusion_queues')
|
||||||
|
|
||||||
|
# Deleting model 'EmailTemplate'
|
||||||
|
db.delete_table('helpdesk_emailtemplate')
|
||||||
|
|
||||||
|
# Deleting model 'KBCategory'
|
||||||
|
db.delete_table('helpdesk_kbcategory')
|
||||||
|
|
||||||
|
# Deleting model 'KBItem'
|
||||||
|
db.delete_table('helpdesk_kbitem')
|
||||||
|
|
||||||
|
# Deleting model 'SavedSearch'
|
||||||
|
db.delete_table('helpdesk_savedsearch')
|
||||||
|
|
||||||
|
# Deleting model 'UserSettings'
|
||||||
|
db.delete_table('helpdesk_usersettings')
|
||||||
|
|
||||||
|
# Deleting model 'IgnoreEmail'
|
||||||
|
db.delete_table('helpdesk_ignoreemail')
|
||||||
|
|
||||||
|
# Removing M2M table for field queues on 'IgnoreEmail'
|
||||||
|
db.delete_table('helpdesk_ignoreemail_queues')
|
||||||
|
|
||||||
|
# Deleting model 'TicketCC'
|
||||||
|
db.delete_table('helpdesk_ticketcc')
|
||||||
|
|
||||||
|
# Deleting model 'CustomField'
|
||||||
|
db.delete_table('helpdesk_customfield')
|
||||||
|
|
||||||
|
# Deleting model 'TicketCustomFieldValue'
|
||||||
|
db.delete_table('helpdesk_ticketcustomfieldvalue')
|
||||||
|
|
||||||
|
|
||||||
|
models = {
|
||||||
|
'auth.group': {
|
||||||
|
'Meta': {'object_name': 'Group'},
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||||
|
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'auth.permission': {
|
||||||
|
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||||
|
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||||
|
},
|
||||||
|
'auth.user': {
|
||||||
|
'Meta': {'object_name': 'User'},
|
||||||
|
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||||
|
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||||
|
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||||
|
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||||
|
},
|
||||||
|
'contenttypes.contenttype': {
|
||||||
|
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||||
|
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||||
|
},
|
||||||
|
'helpdesk.attachment': {
|
||||||
|
'Meta': {'ordering': "['filename']", 'object_name': 'Attachment'},
|
||||||
|
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
|
||||||
|
'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'followup': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.FollowUp']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
|
||||||
|
'size': ('django.db.models.fields.IntegerField', [], {})
|
||||||
|
},
|
||||||
|
'helpdesk.customfield': {
|
||||||
|
'Meta': {'object_name': 'CustomField'},
|
||||||
|
'data_type': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'decimal_places': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'help_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'label': ('django.db.models.fields.CharField', [], {'max_length': "'30'"}),
|
||||||
|
'list_values': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'max_length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'unique': 'True', 'db_index': 'True'}),
|
||||||
|
'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'staff_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||||
|
},
|
||||||
|
'helpdesk.emailtemplate': {
|
||||||
|
'Meta': {'ordering': "['template_name', 'locale']", 'object_name': 'EmailTemplate'},
|
||||||
|
'heading': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'html': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'locale': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'plain_text': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'subject': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'template_name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||||
|
},
|
||||||
|
'helpdesk.escalationexclusion': {
|
||||||
|
'Meta': {'object_name': 'EscalationExclusion'},
|
||||||
|
'date': ('django.db.models.fields.DateField', [], {}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.followup': {
|
||||||
|
'Meta': {'ordering': "['date']", 'object_name': 'FollowUp'},
|
||||||
|
'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 4, 27, 15, 17, 4, 272904)'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'new_status': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.ignoreemail': {
|
||||||
|
'Meta': {'object_name': 'IgnoreEmail'},
|
||||||
|
'date': ('django.db.models.fields.DateField', [], {'blank': 'True'}),
|
||||||
|
'email_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'keep_in_mailbox': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.kbcategory': {
|
||||||
|
'Meta': {'ordering': "['title']", 'object_name': 'KBCategory'},
|
||||||
|
'description': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||||
|
},
|
||||||
|
'helpdesk.kbitem': {
|
||||||
|
'Meta': {'ordering': "['title']", 'object_name': 'KBItem'},
|
||||||
|
'answer': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.KBCategory']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'last_updated': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
||||||
|
'question': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'recommendations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'votes': ('django.db.models.fields.IntegerField', [], {'default': '0'})
|
||||||
|
},
|
||||||
|
'helpdesk.presetreply': {
|
||||||
|
'Meta': {'ordering': "['name']", 'object_name': 'PreSetReply'},
|
||||||
|
'body': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'queues': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['helpdesk.Queue']", 'symmetrical': 'False', 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.queue': {
|
||||||
|
'Meta': {'ordering': "('title',)", 'object_name': 'Queue'},
|
||||||
|
'allow_email_submission': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'allow_public_submission': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_host': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_imap_folder': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_interval': ('django.db.models.fields.IntegerField', [], {'default': "'5'", 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_last_check': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_pass': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_port': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_ssl': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'email_box_type': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'email_box_user': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'escalate_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'locale': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'new_ticket_cc': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'updated_ticket_cc': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.savedsearch': {
|
||||||
|
'Meta': {'object_name': 'SavedSearch'},
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'query': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'shared': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
|
||||||
|
},
|
||||||
|
'helpdesk.ticket': {
|
||||||
|
'Meta': {'object_name': 'Ticket'},
|
||||||
|
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'assigned_to'", 'blank': 'True', 'null': 'True', 'to': "orm['auth.User']"}),
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
||||||
|
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'last_escalation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'modified': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
|
||||||
|
'on_hold': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'priority': ('django.db.models.fields.IntegerField', [], {'default': '3', 'blank': '3'}),
|
||||||
|
'queue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Queue']"}),
|
||||||
|
'resolution': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
|
||||||
|
'submitter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
||||||
|
},
|
||||||
|
'helpdesk.ticketcc': {
|
||||||
|
'Meta': {'object_name': 'TicketCC'},
|
||||||
|
'can_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'can_view': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.ticketchange': {
|
||||||
|
'Meta': {'object_name': 'TicketChange'},
|
||||||
|
'field': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'followup': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.FollowUp']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'new_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'old_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.ticketcustomfieldvalue': {
|
||||||
|
'Meta': {'unique_together': "(('ticket', 'field'),)", 'object_name': 'TicketCustomFieldValue'},
|
||||||
|
'field': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.CustomField']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'ticket': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['helpdesk.Ticket']"}),
|
||||||
|
'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'helpdesk.usersettings': {
|
||||||
|
'Meta': {'object_name': 'UserSettings'},
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'settings_pickled': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_apps = ['helpdesk']
|
0
helpdesk/south_migrations/__init__.py
Normal file
0
helpdesk/south_migrations/__init__.py
Normal file
@ -21,7 +21,7 @@ except ImportError:
|
|||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template import loader, Context
|
from django.template import loader, Context
|
||||||
from django.utils import simplejson
|
import simplejson
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user