Skip to content

Commit

Permalink
#14 change task status
Browse files Browse the repository at this point in the history
  • Loading branch information
zeroq committed Jun 12, 2019
1 parent f2f30ec commit f6d91b7
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 2 deletions.
3 changes: 3 additions & 0 deletions kraut_incident/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ class Task(models.Model):
status = models.CharField(max_length=2, choices=status_choices, default='op')
responsible = models.ManyToManyField(Contact, blank=True)

class Meta:
ordering = ['-status']

class Account(models.Model):
"""Describe an account
"""
Expand Down
9 changes: 7 additions & 2 deletions kraut_incident/templates/kraut_incident/incident_details.html
Original file line number Diff line number Diff line change
Expand Up @@ -229,14 +229,19 @@ <h3 class="panel-title">Incident Information
<br/>
<table id="task_table" class="table table-condensed" style="font-size: 0.9em;">
<thead>
<tr><th>Name</th><th>Status</th><th>Short Description</th></tr>
<tr><th>Name</th><th>Status</th><th>Short Description</th><th></th></tr>
</thead>
<tbody>
{% for t in incident.tasks.all %}
<tr>
<td>{{ t.name }}</td>
<td>{{ t.get_status_display }}</td>
<td>{% if t.get_status_display == 'Open' %}<span class="badge progress-bar-danger">Open</span>{% else %}<span class="label progress-bar-success">{{ t.get_status_display }}</span>{% endif %}</td>
<td>{{ t.description }}</td>
<td>
<a href="{% url 'incidents:remove_task_incident' incident_id=incident_id task_id=t.id %}"><i data-toggle="tooltip" data-placement="left" data-original-title="remove task" class="fa fa-trash pull-right"></i></a>
<a href="{% url 'incidents:abort_task_incident' incident_id=incident_id task_id=t.id %}"><i data-toggle="tooltip" data-placement="left" data-original-title="cancel task" class="fa fa-remove pull-right"></i></a>
<a href="{% url 'incidents:resolve_task_incident' incident_id=incident_id task_id=t.id %}"><i data-toggle="tooltip" data-placement="left" data-original-title="close task" class="fa fa-check pull-right"></i></a>
</td>
</tr>
{% endfor %}
</tbody>
Expand Down
3 changes: 3 additions & 0 deletions kraut_incident/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
url(r'^incident/(?P<incident_id>\d+)/add/contact/$', views.add_contact_incident, name='add_contact_incident'),
url(r'^incident/(?P<incident_id>\d+)/remove/handler/(?P<handler_id>\d+)/$', views.remove_handler_incident, name='remove_handler_incident'),
url(r'^incident/(?P<incident_id>\d+)/remove/contact/(?P<contact_id>\d+)/$', views.remove_contact_incident, name='remove_contact_incident'),
url(r'^incident/(?P<incident_id>\d+)/remove/task/(?P<task_id>\d+)/$', views.remove_task_incident, name='remove_task_incident'),
url(r'^incident/(?P<incident_id>\d+)/resolve/task/(?P<task_id>\d+)/$', views.resolve_task_incident, name='resolve_task_incident'),
url(r'^incident/(?P<incident_id>\d+)/abort/task/(?P<task_id>\d+)/$', views.abort_task_incident, name='abort_task_incident'),
url(r'^incident/(?P<incident_id>\d+)/add/comment/$', views.comment_incident, name='comment_incident'),
url(r'^incident/(?P<incident_id>\d+)/del/comment/(?P<comment_id>\d+)/$', views.delete_comment_incident, name='delete_comment_incident'),
url(r'^create_contact/$', views.create_contact, name='create_contact'),
Expand Down
61 changes: 61 additions & 0 deletions kraut_incident/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
from kraut_incident.models import Contact, Handler, Incident, IncidentComment, TemplateTask, Task
from kraut_incident.utils import slicedict

import datetime

# Create your views here.

@login_required
Expand All @@ -27,6 +29,65 @@ def list_incidents(request):
context = {}
return render(request, 'kraut_incident/incident_list.html', context)

@login_required
def abort_task_incident(request, incident_id, task_id):
"""abort a task from an incident
"""
context = {}
try:
inc = Incident.objects.get(id=incident_id)
except Incident.DoesNotExist:
messages.error(request, 'The requested incident does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
try:
task = Task.objects.get(id=task_id)
except Task.DoesNotExist:
messages.error(request, 'The requested task does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
task.status = 'ab'
task.finish_time = datetime.datetime.now()
task.save()
return HttpResponseRedirect(reverse("incidents:view_incident", kwargs={'incident_id': incident_id}))

@login_required
def resolve_task_incident(request, incident_id, task_id):
"""resolve a task from an incident
"""
context = {}
try:
inc = Incident.objects.get(id=incident_id)
except Incident.DoesNotExist:
messages.error(request, 'The requested incident does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
try:
task = Task.objects.get(id=task_id)
except Task.DoesNotExist:
messages.error(request, 'The requested task does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
task.status = 'do'
task.finish_time = datetime.datetime.now()
task.save()
return HttpResponseRedirect(reverse("incidents:view_incident", kwargs={'incident_id': incident_id}))

@login_required
def remove_task_incident(request, incident_id, task_id):
"""remove a task from an incident
"""
context = {}
try:
inc = Incident.objects.get(id=incident_id)
except Incident.DoesNotExist:
messages.error(request, 'The requested incident does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
try:
task = Task.objects.get(id=task_id)
except Task.DoesNotExist:
messages.error(request, 'The requested task does not exist!')
return render(request, 'kraut_incident/incident_list.html', context)
inc.tasks.remove(task)
inc.save()
return HttpResponseRedirect(reverse("incidents:view_incident", kwargs={'incident_id': incident_id}))

@login_required
def remove_contact_incident(request, incident_id, contact_id):
"""remove contact person from incident
Expand Down

0 comments on commit f6d91b7

Please sign in to comment.