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

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

View file

@ -315,19 +315,22 @@ 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()
email_subject = render_to_string("todo/email/assigned_subject.txt", {'task': item.title}) # Send email to assignee if we have one
email_body = render_to_string("todo/email/assigned_body.txt", {'task': item, 'site': current_site, }) if item.assigned_to:
try: email_subject = render_to_string("todo/email/assigned_subject.txt", {'task': item.title})
send_mail( email_body = render_to_string("todo/email/assigned_body.txt", {'task': item, 'site': current_site, })
email_subject, email_body, item.created_by.email, [item.assigned_to.email, ], fail_silently=False) try:
except ConnectionRefusedError: send_mail(
messages.error(request, "Task saved but mail not sent. Contact your administrator.") email_subject, email_body, item.created_by.email,
[item.assigned_to.email, ], fail_silently=False)
except ConnectionRefusedError:
messages.error(request, "Task saved but mail not sent. Contact your administrator.")
messages.success(request, "Your trouble ticket has been submitted. We'll get back to you soon.") messages.success(request, "Your trouble ticket has been submitted. We'll get back to you soon.")
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())