fixing views.py (except deprecated api)

This commit is contained in:
Alex Barcelo 2016-10-23 22:02:02 +02:00
parent 0159ca1ffa
commit 3c35473265
3 changed files with 75 additions and 77 deletions

View File

@ -37,22 +37,22 @@ class OpenTicketsByUser(Feed):
return _("Helpdesk: Open Tickets in queue %(queue)s for %(username)s") % { return _("Helpdesk: Open Tickets in queue %(queue)s for %(username)s") % {
'queue': obj['queue'].title, 'queue': obj['queue'].title,
'username': obj['user'].get_username(), 'username': obj['user'].get_username(),
} }
else: else:
return _("Helpdesk: Open Tickets for %(username)s") % { return _("Helpdesk: Open Tickets for %(username)s") % {
'username': obj['user'].get_username(), 'username': obj['user'].get_username(),
} }
def description(self, obj): def description(self, obj):
if obj['queue']: if obj['queue']:
return _("Open and Reopened Tickets in queue %(queue)s for %(username)s") % { return _("Open and Reopened Tickets in queue %(queue)s for %(username)s") % {
'queue': obj['queue'].title, 'queue': obj['queue'].title,
'username': obj['user'].get_username(), 'username': obj['user'].get_username(),
} }
else: else:
return _("Open and Reopened Tickets for %(username)s") % { return _("Open and Reopened Tickets for %(username)s") % {
'username': obj['user'].get_username(), 'username': obj['user'].get_username(),
} }
def link(self, obj): def link(self, obj):
if obj['queue']: if obj['queue']:
@ -60,28 +60,28 @@ class OpenTicketsByUser(Feed):
reverse('helpdesk_list'), reverse('helpdesk_list'),
obj['user'].id, obj['user'].id,
obj['queue'].id, obj['queue'].id,
) )
else: else:
return u'%s?assigned_to=%s' % ( return u'%s?assigned_to=%s' % (
reverse('helpdesk_list'), reverse('helpdesk_list'),
obj['user'].id, obj['user'].id,
) )
def items(self, obj): def items(self, obj):
if obj['queue']: if obj['queue']:
return Ticket.objects.filter( return Ticket.objects.filter(
assigned_to=obj['user'] assigned_to=obj['user']
).filter( ).filter(
queue=obj['queue'] queue=obj['queue']
).filter( ).filter(
Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS) Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS)
) )
else: else:
return Ticket.objects.filter( return Ticket.objects.filter(
assigned_to=obj['user'] assigned_to=obj['user']
).filter( ).filter(
Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS) Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS)
) )
def item_pubdate(self, item): def item_pubdate(self, item):
return item.created return item.created
@ -103,10 +103,10 @@ class UnassignedTickets(Feed):
def items(self, obj): def items(self, obj):
return Ticket.objects.filter( return Ticket.objects.filter(
assigned_to__isnull=True assigned_to__isnull=True
).filter( ).filter(
Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS) Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS)
) )
def item_pubdate(self, item): def item_pubdate(self, item):
return item.created return item.created
@ -140,25 +140,25 @@ class OpenTicketsByQueue(Feed):
def title(self, obj): def title(self, obj):
return _('Helpdesk: Open Tickets in queue %(queue)s') % { return _('Helpdesk: Open Tickets in queue %(queue)s') % {
'queue': obj.title, 'queue': obj.title,
} }
def description(self, obj): def description(self, obj):
return _('Open and Reopened Tickets in queue %(queue)s') % { return _('Open and Reopened Tickets in queue %(queue)s') % {
'queue': obj.title, 'queue': obj.title,
} }
def link(self, obj): def link(self, obj):
return '%s?queue=%s' % ( return '%s?queue=%s' % (
reverse('helpdesk_list'), reverse('helpdesk_list'),
obj.id, obj.id,
) )
def items(self, obj): def items(self, obj):
return Ticket.objects.filter( return Ticket.objects.filter(
queue=obj queue=obj
).filter( ).filter(
Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS) Q(status=Ticket.OPEN_STATUS) | Q(status=Ticket.REOPENED_STATUS)
) )
def item_pubdate(self, item): def item_pubdate(self, item):
return item.created return item.created
@ -168,4 +168,3 @@ class OpenTicketsByQueue(Feed):
return item.assigned_to.get_username() return item.assigned_to.get_username()
else: else:
return _('Unassigned') return _('Unassigned')

View File

@ -47,7 +47,7 @@ def homepage(request):
reverse('helpdesk_public_view'), reverse('helpdesk_public_view'),
ticket.ticket_for_url, ticket.ticket_for_url,
ticket.submitter_email) ticket.submitter_email)
) )
else: else:
try: try:
queue = Queue.objects.get(slug=request.GET.get('queue', None)) queue = Queue.objects.get(slug=request.GET.get('queue', None))
@ -67,9 +67,9 @@ def homepage(request):
knowledgebase_categories = KBCategory.objects.all() knowledgebase_categories = KBCategory.objects.all()
return render(request, 'helpdesk/public_homepage.html', { return render(request, 'helpdesk/public_homepage.html', {
'form': form, 'form': form,
'helpdesk_settings': helpdesk_settings, 'helpdesk_settings': helpdesk_settings,
'kb_categories': knowledgebase_categories 'kb_categories': knowledgebase_categories
}) })
@ -106,7 +106,7 @@ def view_ticket(request):
'public': 1, 'public': 1,
'title': ticket.title, 'title': ticket.title,
'comment': _('Submitter accepted resolution and closed ticket'), 'comment': _('Submitter accepted resolution and closed ticket'),
} }
if ticket.assigned_to: if ticket.assigned_to:
request.POST['owner'] = ticket.assigned_to.id request.POST['owner'] = ticket.assigned_to.id
request.GET = {} request.GET = {}

View File

@ -98,24 +98,24 @@ def dashboard(request):
# open & reopened tickets, assigned to current user # open & reopened tickets, assigned to current user
tickets = Ticket.objects.select_related('queue').filter( tickets = Ticket.objects.select_related('queue').filter(
assigned_to=request.user, assigned_to=request.user,
).exclude( ).exclude(
status__in=[Ticket.CLOSED_STATUS, Ticket.RESOLVED_STATUS], status__in=[Ticket.CLOSED_STATUS, Ticket.RESOLVED_STATUS],
) )
# closed & resolved tickets, assigned to current user # closed & resolved tickets, assigned to current user
tickets_closed_resolved = Ticket.objects.select_related('queue').filter( tickets_closed_resolved = Ticket.objects.select_related('queue').filter(
assigned_to=request.user, assigned_to=request.user,
status__in=[Ticket.CLOSED_STATUS, Ticket.RESOLVED_STATUS]) status__in=[Ticket.CLOSED_STATUS, Ticket.RESOLVED_STATUS])
user_queues = _get_user_queues(request.user) user_queues = _get_user_queues(request.user)
unassigned_tickets = Ticket.objects.select_related('queue').filter( unassigned_tickets = Ticket.objects.select_related('queue').filter(
assigned_to__isnull=True, assigned_to__isnull=True,
queue__in=user_queues queue__in=user_queues
).exclude( ).exclude(
status=Ticket.CLOSED_STATUS, status=Ticket.CLOSED_STATUS,
) )
# all tickets, reported by current user # all tickets, reported by current user
all_tickets_reported_by_current_user = '' all_tickets_reported_by_current_user = ''
@ -126,8 +126,8 @@ def dashboard(request):
).order_by('status') ).order_by('status')
tickets_in_queues = Ticket.objects.filter( tickets_in_queues = Ticket.objects.filter(
queue__in=user_queues, queue__in=user_queues,
) )
basic_ticket_stats = calc_basic_ticket_stats(tickets_in_queues) basic_ticket_stats = calc_basic_ticket_stats(tickets_in_queues)
# The following query builds a grid of queues & ticket statuses, # The following query builds a grid of queues & ticket statuses,
@ -227,7 +227,7 @@ def followup_edit(request, ticket_id, followup_id):
new_followup.user = followup.user new_followup.user = followup.user
new_followup.save() new_followup.save()
# get list of old attachments & link them to new_followup # get list of old attachments & link them to new_followup
attachments = Attachment.objects.filter(followup = followup) attachments = Attachment.objects.filter(followup=followup)
for attachment in attachments: for attachment in attachments:
attachment.followup = new_followup attachment.followup = new_followup
attachment.save() attachment.save()
@ -290,7 +290,7 @@ def view_ticket(request, ticket_id):
'owner': owner, 'owner': owner,
'title': ticket.title, 'title': ticket.title,
'comment': _('Accepted resolution and closed ticket'), 'comment': _('Accepted resolution and closed ticket'),
} }
return update_ticket(request, ticket_id) return update_ticket(request, ticket_id)
@ -299,7 +299,6 @@ def view_ticket(request, ticket_id):
else: else:
users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD) users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD)
# TODO: shouldn't this template get a form to begin with? # TODO: shouldn't this template get a form to begin with?
form = TicketForm(initial={'due_date': ticket.due_date}) form = TicketForm(initial={'due_date': ticket.due_date})
@ -447,7 +446,7 @@ def update_ticket(request, ticket_id, public=False):
new_user = User.objects.get(id=owner) new_user = User.objects.get(id=owner)
f.title = _('Assigned to %(username)s') % { f.title = _('Assigned to %(username)s') % {
'username': new_user.get_username(), 'username': new_user.get_username(),
} }
ticket.assigned_to = new_user ticket.assigned_to = new_user
reassigned = True reassigned = True
# user changed owner to 'unassign' # user changed owner to 'unassign'
@ -482,7 +481,7 @@ def update_ticket(request, ticket_id, public=False):
filename=filename, filename=filename,
mime_type=mimetypes.guess_type(filename)[0] or 'application/octet-stream', mime_type=mimetypes.guess_type(filename)[0] or 'application/octet-stream',
size=file.size, size=file.size,
) )
a.file.save(filename, file, save=False) a.file.save(filename, file, save=False)
a.save() a.save()
@ -497,7 +496,7 @@ def update_ticket(request, ticket_id, public=False):
field=_('Title'), field=_('Title'),
old_value=ticket.title, old_value=ticket.title,
new_value=title, new_value=title,
) )
c.save() c.save()
ticket.title = title ticket.title = title
@ -507,7 +506,7 @@ def update_ticket(request, ticket_id, public=False):
field=_('Priority'), field=_('Priority'),
old_value=ticket.priority, old_value=ticket.priority,
new_value=priority, new_value=priority,
) )
c.save() c.save()
ticket.priority = priority ticket.priority = priority
@ -517,11 +516,11 @@ def update_ticket(request, ticket_id, public=False):
field=_('Due on'), field=_('Due on'),
old_value=ticket.due_date, old_value=ticket.due_date,
new_value=due_date, new_value=due_date,
) )
c.save() c.save()
ticket.due_date = due_date ticket.due_date = due_date
if new_status in [ Ticket.RESOLVED_STATUS, Ticket.CLOSED_STATUS ]: if new_status in (Ticket.RESOLVED_STATUS, Ticket.CLOSED_STATUS):
if new_status == Ticket.RESOLVED_STATUS or ticket.resolution is None: if new_status == Ticket.RESOLVED_STATUS or ticket.resolution is None:
ticket.resolution = comment ticket.resolution = comment
@ -533,11 +532,11 @@ def update_ticket(request, ticket_id, public=False):
context.update( context.update(
resolution=ticket.resolution, resolution=ticket.resolution,
comment=f.comment, comment=f.comment,
) )
if public and (f.comment or ( if public and (f.comment or (
f.new_status in (Ticket.RESOLVED_STATUS, f.new_status in (Ticket.RESOLVED_STATUS,
Ticket.CLOSED_STATUS))): Ticket.CLOSED_STATUS))):
if f.new_status == Ticket.RESOLVED_STATUS: if f.new_status == Ticket.RESOLVED_STATUS:
template = 'resolved_' template = 'resolved_'
elif f.new_status == Ticket.CLOSED_STATUS: elif f.new_status == Ticket.CLOSED_STATUS:
@ -555,7 +554,7 @@ def update_ticket(request, ticket_id, public=False):
sender=ticket.queue.from_address, sender=ticket.queue.from_address,
fail_silently=True, fail_silently=True,
files=files, files=files,
) )
messages_sent_to.append(ticket.submitter_email) messages_sent_to.append(ticket.submitter_email)
template_suffix = 'cc' template_suffix = 'cc'
@ -569,7 +568,7 @@ def update_ticket(request, ticket_id, public=False):
sender=ticket.queue.from_address, sender=ticket.queue.from_address,
fail_silently=True, fail_silently=True,
files=files, files=files,
) )
messages_sent_to.append(cc.email_address) messages_sent_to.append(cc.email_address)
if ticket.assigned_to and \ if ticket.assigned_to and \
@ -602,7 +601,7 @@ def update_ticket(request, ticket_id, public=False):
sender=ticket.queue.from_address, sender=ticket.queue.from_address,
fail_silently=True, fail_silently=True,
files=files, files=files,
) )
messages_sent_to.append(ticket.assigned_to.email) messages_sent_to.append(ticket.assigned_to.email)
if ticket.queue.updated_ticket_cc and ticket.queue.updated_ticket_cc not in messages_sent_to: if ticket.queue.updated_ticket_cc and ticket.queue.updated_ticket_cc not in messages_sent_to:
@ -622,7 +621,7 @@ def update_ticket(request, ticket_id, public=False):
sender=ticket.queue.from_address, sender=ticket.queue.from_address,
fail_silently=True, fail_silently=True,
files=files, files=files,
) )
ticket.save() ticket.save()
@ -716,7 +715,7 @@ def mass_update(request):
recipients=t.submitter_email, recipients=t.submitter_email,
sender=t.queue.from_address, sender=t.queue.from_address,
fail_silently=True, fail_silently=True,
) )
messages_sent_to.append(t.submitter_email) messages_sent_to.append(t.submitter_email)
for cc in t.ticketcc_set.all(): for cc in t.ticketcc_set.all():
@ -727,7 +726,7 @@ def mass_update(request):
recipients=cc.email_address, recipients=cc.email_address,
sender=t.queue.from_address, sender=t.queue.from_address,
fail_silently=True, fail_silently=True,
) )
messages_sent_to.append(cc.email_address) messages_sent_to.append(cc.email_address)
if t.assigned_to and \ if t.assigned_to and \
@ -740,7 +739,7 @@ def mass_update(request):
recipients=t.assigned_to.email, recipients=t.assigned_to.email,
sender=t.queue.from_address, sender=t.queue.from_address,
fail_silently=True, fail_silently=True,
) )
messages_sent_to.append(t.assigned_to.email) messages_sent_to.append(t.assigned_to.email)
if t.queue.updated_ticket_cc and \ if t.queue.updated_ticket_cc and \
@ -751,7 +750,7 @@ def mass_update(request):
recipients=t.queue.updated_ticket_cc, recipients=t.queue.updated_ticket_cc,
sender=t.queue.from_address, sender=t.queue.from_address,
fail_silently=True, fail_silently=True,
) )
elif action == 'delete': elif action == 'delete':
t.delete() t.delete()
@ -775,7 +774,7 @@ def ticket_list(request):
'sortreverse': False, 'sortreverse': False,
'keyword': None, 'keyword': None,
'search_string': None, 'search_string': None,
} }
from_saved_query = False from_saved_query = False
@ -831,13 +830,12 @@ def ticket_list(request):
# Query deserialization failed. (E.g. was a pickled query) # Query deserialization failed. (E.g. was a pickled query)
return HttpResponseRedirect(reverse('helpdesk_list')) return HttpResponseRedirect(reverse('helpdesk_list'))
elif not ('queue' in request.GET elif not ('queue' in request.GET or
or 'assigned_to' in request.GET 'assigned_to' in request.GET or
or 'status' in request.GET 'status' in request.GET or
or 'q' in request.GET 'q' in request.GET or
or 'sort' in request.GET 'sort' in request.GET or
or 'sortreverse' in request.GET 'sortreverse' in request.GET):
):
# Fall-back if no querying is being done, force the list to only # Fall-back if no querying is being done, force the list to only
# show open/reopened/resolved (not closed) cases sorted by creation # show open/reopened/resolved (not closed) cases sorted by creation
@ -1113,7 +1111,8 @@ def run_report(request, report):
# a second table for more complex queries # a second table for more complex queries
summarytable2 = defaultdict(int) summarytable2 = defaultdict(int)
month_name = lambda m: MONTHS_3[m].title() def month_name(m):
MONTHS_3[m].title()
first_ticket = Ticket.objects.all().order_by('created')[0] first_ticket = Ticket.objects.all().order_by('created')[0]
first_month = first_ticket.created.month first_month = first_ticket.created.month
@ -1259,7 +1258,7 @@ run_report = staff_member_required(run_report)
def save_query(request): def save_query(request):
title = request.POST.get('title', None) title = request.POST.get('title', None)
shared = request.POST.get('shared', False) shared = request.POST.get('shared', False)
if shared == 'on': # django only translates '1', 'true', 't' into True if shared == 'on': # django only translates '1', 'true', 't' into True
shared = True shared = True
query_encoded = request.POST.get('query_encoded', None) query_encoded = request.POST.get('query_encoded', None)
@ -1501,7 +1500,7 @@ def days_since_created(today, ticket):
def date_rel_to_today(today, offset): def date_rel_to_today(today, offset):
return today - timedelta(days = offset) return today - timedelta(days=offset)
def sort_string(begin, end): def sort_string(begin, end):