Update external ticketing system

This commit is contained in:
Scot Hacker 2018-02-12 23:38:48 -08:00
parent cc1a48ee6f
commit b361abeaf6
3 changed files with 68 additions and 55 deletions

View file

@ -63,16 +63,21 @@ class AddExternalItemForm(ModelForm):
"""Form to allow users who are not part of the GTD system to file a ticket.""" """Form to allow users who are not part of the GTD system to file a ticket."""
title = forms.CharField( title = forms.CharField(
widget=forms.widgets.TextInput(attrs={'size': 35}) widget=forms.widgets.TextInput(attrs={'size': 35}),
label="Summary"
) )
note = forms.CharField( note = forms.CharField(
widget=forms.widgets.Textarea(), widget=forms.widgets.Textarea(),
help_text='Please describe the issue.', label='Problem Description',
)
priority = forms.IntegerField(
widget=forms.HiddenInput(),
) )
class Meta: class Meta:
model = Item model = Item
exclude = ('task_list', 'created_date', 'due_date', 'created_by', 'assigned_to',) exclude = (
'task_list', 'created_date', 'due_date', 'created_by', 'assigned_to', 'completed', 'completed_date', )
class SearchForm(forms.Form): class SearchForm(forms.Form):

View file

@ -9,31 +9,39 @@
<form action="" method="POST"> <form action="" method="POST">
{% csrf_token %} {% csrf_token %}
{% comment %}
{% if task.note %} {% if task.note %}
<div class="task_note"><strong>Note:</strong> {{ task.note|safe|urlize|linebreaks }}</div> <div class="task_note">
<strong>Note:</strong>
{{ task.note|safe|urlize|linebreaks }}</div>
{% endif %} {% endif %}
<div id="TaskEdit">
<h3>File Trouble Ticket</h3> <h3>File Trouble Ticket</h3>
<p>Do you have a support issue? <br /> <p>Do you have a support issue?
Use this form to report the difficulty - we'll get right back to you. </p> <br/>
Use this form to report the difficulty - we'll get right back to you.
</p>
{% if form.errors %} {% if form.errors %}
{% for error in form.errors %} {% for error in form.errors %}
<ul class="errorlist"> <ul class="errorlist">
<li><strong>The {{ error|escape }} field is required.</strong></li> <li>
<strong>The
{{ error|escape }}
field is required.</strong>
</li>
</ul> </ul>
{% endfor %} {% endfor %}
<br />
{% endif %} {% endif %}
<table> <table>
<tr> <tr>
<td>Summary:</td> <td>Summary:</td>
<td>{{ form.title }} <br /> <td>{{ form.title }}
Include the workstation number in your summary, e.g. <br /> <br/>
Include the workstation number in your summary, e.g.
<br/>
"Radio Lab # 4: Purple smoke pouring out the back." "Radio Lab # 4: Purple smoke pouring out the back."
</td> </td>
</tr> </tr>
@ -45,15 +53,12 @@
</td> </td>
</tr> </tr>
<tr>
<td>Priority:</td>
<td>{{ form.priority }} <br />
Enter a number between 1 and 5, <br />
where 5 is highest ("Computer is on fire = True").
</td>
</tr>
</table> </table>
<p><input type="submit" class="todo-button" name="add_task" value="Submit"></p> <p><input type="submit" class="todo-button" name="add_task" value="Submit"></p>
</div> {% endcomment %}
{{ form.as_p }}
<p><input type="submit" class="todo-button" name="add_task" value="Submit"></p>
</form> </form>
{% endblock %} {% endblock %}

View file

@ -315,11 +315,14 @@ def external_add(request):
item.assigned_to = User.objects.get(username=settings.DEFAULT_ASSIGNEE) item.assigned_to = User.objects.get(username=settings.DEFAULT_ASSIGNEE)
item.save() item.save()
# Send email to assignee if we have one
if item.assigned_to:
email_subject = render_to_string("todo/email/assigned_subject.txt", {'task': item.title}) email_subject = render_to_string("todo/email/assigned_subject.txt", {'task': item.title})
email_body = render_to_string("todo/email/assigned_body.txt", {'task': item, 'site': current_site, }) email_body = render_to_string("todo/email/assigned_body.txt", {'task': item, 'site': current_site, })
try: try:
send_mail( send_mail(
email_subject, email_body, item.created_by.email, [item.assigned_to.email, ], fail_silently=False) email_subject, email_body, item.created_by.email,
[item.assigned_to.email, ], fail_silently=False)
except ConnectionRefusedError: except ConnectionRefusedError:
messages.error(request, "Task saved but mail not sent. Contact your administrator.") messages.error(request, "Task saved but mail not sent. Contact your administrator.")
@ -328,6 +331,6 @@ def external_add(request):
return redirect(settings.PUBLIC_SUBMIT_REDIRECT) return redirect(settings.PUBLIC_SUBMIT_REDIRECT)
else: else:
form = AddExternalItemForm() form = AddExternalItemForm(initial={'priority': 999})
return render(request, 'todo/add_task_external.html', locals()) return render(request, 'todo/add_task_external.html', locals())