Skip to content

Add support for Django 2 and 3 #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 17 additions & 19 deletions tickets/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
# Generated by Django 3.0.5 on 2020-04-20 15:53

from django.db import models, migrations
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
Expand All @@ -15,33 +17,29 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='Ticket',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(verbose_name='Date', auto_now_add=True)),
('last_update', models.DateTimeField(verbose_name='Date', auto_now=True)),
('subject', models.CharField(verbose_name='Subject', max_length=255)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(auto_now_add=True, verbose_name='Date')),
('last_update', models.DateTimeField(auto_now=True, verbose_name='Date')),
('subject', models.CharField(max_length=255, verbose_name='Subject')),
('description', models.TextField(help_text='A detailed description of your problem.', verbose_name='Description')),
('status', models.SmallIntegerField(verbose_name='Status', default=0, choices=[(0, 'New'), (1, 'Feedback'), (3, 'In Progress'), (4, 'Resolved'), (5, 'Closed')])),
('assignee', models.ForeignKey(null=True, to=settings.AUTH_USER_MODEL, related_name='assigned_tickets', blank=True, verbose_name='Assignee')),
('creator', models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name='Creator', related_name='tickets')),
('status', models.SmallIntegerField(choices=[(0, 'New'), (1, 'Feedback'), (3, 'In Progress'), (4, 'Resolved'), (5, 'Closed')], default=0, verbose_name='Status')),
('assignee', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assigned_tickets', to=settings.AUTH_USER_MODEL, verbose_name='Assignee')),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tickets', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='TicketComment',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(verbose_name='Date', auto_now_add=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(auto_now_add=True, verbose_name='Date')),
('comment', models.TextField(verbose_name='Comment')),
('author', models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name='Author')),
('ticket', models.ForeignKey(to='tickets.Ticket', verbose_name='Ticket', related_name='comments')),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Author')),
('ticket', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='tickets.Ticket', verbose_name='Ticket')),
],
options={
'verbose_name': 'Ticket comment',
'ordering': ['date'],
'verbose_name_plural': 'Ticket comments',
'ordering': ['date'],
},
bases=(models.Model,),
),
]
8 changes: 4 additions & 4 deletions tickets/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@


class Ticket(models.Model):
creator = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Creator"), related_name='tickets')
creator = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Creator"), related_name='tickets', on_delete=models.CASCADE)
date = models.DateTimeField(_("Date"), auto_now_add=True)
last_update = models.DateTimeField(_("Date"), auto_now=True)
subject = models.CharField(_("Subject"), max_length=255)
description = models.TextField(_("Description"), help_text=_("A detailed description of your problem."))
assignee = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Assignee"), related_name="assigned_tickets", blank=True, null=True)
assignee = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Assignee"), related_name="assigned_tickets", blank=True, null=True, on_delete=models.SET_NULL)
status = models.SmallIntegerField(_("Status"), choices=STATUS_CHOICES, default=0)

class meta:
Expand Down Expand Up @@ -42,9 +42,9 @@ def is_answered(self):


class TicketComment(models.Model):
ticket = models.ForeignKey(Ticket, verbose_name=_("Ticket"), related_name='comments')
ticket = models.ForeignKey(Ticket, verbose_name=_("Ticket"), related_name='comments', on_delete=models.CASCADE)
date = models.DateTimeField(auto_now_add=True, verbose_name=_("Date"))
author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Author"))
author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("Author"), on_delete=models.CASCADE)
comment = models.TextField(_("Comment"))

class Meta:
Expand Down
14 changes: 8 additions & 6 deletions tickets/urls.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from django.conf.urls import patterns, url
from django.urls import path
from django.contrib.auth.decorators import login_required

from tickets.views import MyTicketListView, MyTicketDetailView, TicketCreateView


urlpatterns = patterns('',
url(r'^my/$', login_required(MyTicketListView.as_view()), name='list'),
url(r'^my/(?P<pk>\d+)/$', login_required(MyTicketDetailView.as_view()), name='detail'),
url(r'^create/$', login_required(TicketCreateView.as_view()), name='create'),
)
urlpatterns = [
path('my/', login_required(MyTicketListView.as_view()), name='list'),
path('my/<int:pk>/', login_required(MyTicketDetailView.as_view()), name='detail'),
path('create/', login_required(TicketCreateView.as_view()), name='create'),
]

app_name = 'tickets'
2 changes: 1 addition & 1 deletion tickets/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.http import HttpResponseRedirect
from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView, DetailView, CreateView
Expand Down