From 191ce3c53cb97672c90ff6001fafb2391f048619 Mon Sep 17 00:00:00 2001 From: imbashamba Date: Wed, 17 Feb 2016 11:40:08 +0300 Subject: [PATCH] Nullable "default_owner" field added to Queue model If default_owner is specified, tickets from public form will be assigned to him and he'll be notified by email --- helpdesk/forms.py | 14 +++++++++++ .../migrations/0012_queue_default_owner.py | 23 +++++++++++++++++++ helpdesk/models.py | 8 +++++++ 3 files changed, 45 insertions(+) create mode 100644 helpdesk/migrations/0012_queue_default_owner.py diff --git a/helpdesk/forms.py b/helpdesk/forms.py index b766ceb6..ecadc515 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -406,6 +406,9 @@ class PublicTicketForm(CustomFieldMixin, forms.Form): due_date = self.cleaned_data['due_date'], ) + if q.default_owner and not t.assigned_to: + t.assigned_to = q.default_owner + t.save() for field, value in self.cleaned_data.items(): @@ -460,6 +463,17 @@ class PublicTicketForm(CustomFieldMixin, forms.Form): ) messages_sent_to.append(t.submitter_email) + if t.assigned_to and t.assigned_to.usersettings.settings.get('email_on_ticket_assign', False) and t.assigned_to.email and t.assigned_to.email not in messages_sent_to: + send_templated_mail( + 'assigned_owner', + context, + recipients=t.assigned_to.email, + sender=q.from_address, + fail_silently=True, + files=files, + ) + messages_sent_to.append(t.assigned_to.email) + if q.new_ticket_cc and q.new_ticket_cc not in messages_sent_to: send_templated_mail( 'newticket_cc', diff --git a/helpdesk/migrations/0012_queue_default_owner.py b/helpdesk/migrations/0012_queue_default_owner.py new file mode 100644 index 00000000..7a731e00 --- /dev/null +++ b/helpdesk/migrations/0012_queue_default_owner.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.2 on 2016-02-15 21:37 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('helpdesk', '0011_admin_related_improvements'), + ] + + operations = [ + migrations.AddField( + model_name='queue', + name='default_owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='default_owner', to=settings.AUTH_USER_MODEL, verbose_name='Default owner'), + ), + ] diff --git a/helpdesk/models.py b/helpdesk/models.py index 6069f6cc..8740f661 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -223,6 +223,14 @@ class Queue(models.Model): help_text=_('Socks proxy port number. Default: 9150 (default TOR port)'), ) + default_owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + related_name='default_owner', + blank=True, + null=True, + verbose_name=_('Default owner'), + ) + def __str__(self): return "%s" % self.title