diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index f02263d4..0afdaf9f 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -267,6 +267,19 @@ def update_ticket(request, ticket_id, public=False): due_date = due_date.replace(due_date_year, due_date_month, due_date_day) tags = request.POST.get('tags', '') + no_changes = all([ + not request.FILES, + not comment, + new_status == ticket.status, + title == ticket.title, + priority == int(ticket.priority), + due_date == ticket.due_date, + (not owner and not ticket.assigned_to) or (owner and User.objects.get(id=owner) == ticket.assigned_to), + (HAS_TAG_SUPPORT and tags == ticket.tags) or not HAS_TAG_SUPPORT, + ]) + if no_changes: + return return_to_ticket(request.user, helpdesk_settings, ticket) + # We need to allow the 'ticket' and 'queue' contexts to be applied to the # comment. from django.template import loader, Context @@ -469,7 +482,12 @@ def update_ticket(request, ticket_id, public=False): ticket.save() - if request.user.is_staff or helpdesk_settings.HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE: + return return_to_ticket(request.user, helpdesk_settings, ticket) + +def return_to_ticket(user, helpdesk_settings, ticket): + ''' Helpder function for update_ticket ''' + + if user.is_staff or helpdesk_settings.HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE: return HttpResponseRedirect(ticket.get_absolute_url()) else: return HttpResponseRedirect(ticket.ticket_url)