Skip to content

Commit 34004e5

Browse files
committed
Add change status function to views.py
1 parent e29fb79 commit 34004e5

File tree

1 file changed

+28
-21
lines changed

1 file changed

+28
-21
lines changed

tickets/views.py

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ def view_tickets(request):
3030
# View Single Ticket
3131
@login_required()
3232
def view_ticket(request, pk):
33-
"""Display single ticket"""
34-
ticket = Ticket.objects.filter(id=pk)[0]
35-
comments = Comment.objects.filter(ticket_id=pk)
33+
"""Display single ticket details, change history and comments"""
34+
ticket = get_object_or_404(Ticket, pk=pk) if pk else None
35+
# Change History
3636
historical_changes = HistoricalTicket.objects.filter(id=pk)
3737
all_deltas = []
38-
for x in range(historical_changes.count()-1):
39-
new_record = ticket.history.all()[x]
40-
old_record = ticket.history.all()[x+1]
38+
for i in range(historical_changes.count()-1):
39+
new_record = ticket.history.all()[i]
40+
old_record = ticket.history.all()[i+1]
4141
delta = new_record.diff_against(old_record)
4242
for change in delta.changes:
4343
if (change.field != 'upvotes'):
@@ -50,17 +50,22 @@ def view_ticket(request, pk):
5050
}
5151
all_deltas.append(test_change)
5252

53-
# * Display comment box
53+
# Comments
54+
comments = Comment.objects.filter(ticket_id=pk)
5455
form = AddCommentForm(request.POST, request.FILES, instance=None)
55-
# * On submit comment
56+
# On submit comment
5657
if (request.method == "POST"):
5758
if form.is_valid():
5859
comment_body = form.cleaned_data.get("comment_body")
5960
comment = Comment(
6061
ticket_id=pk, comment_body=comment_body, user_id=request.user.id)
6162
comment.save()
63+
messages.info(request, "Comment submitted.")
6264
return redirect(view_ticket, pk)
63-
return render(request, 'view_ticket.html', {'ticket': ticket, 'comments': comments, 'form': form, 'all_deltas': all_deltas})
65+
return render(request, 'view_ticket.html', {'ticket': ticket,
66+
'comments': comments,
67+
'form': form,
68+
'all_deltas': all_deltas})
6469

6570

6671
@login_required()
@@ -87,9 +92,11 @@ def add_ticket(request, pk=None):
8792
def upvote(request, pk=None):
8893
"""Upvote a Ticket"""
8994
ticket = get_object_or_404(Ticket, pk=pk) if pk else None
90-
ticket.upvotes += 1
91-
ticket.save()
92-
messages.info(request, "Ticket Upvoted | " + str(ticket.id))
95+
if (request.method == "POST"):
96+
# Increment upvotes by 1
97+
ticket.upvotes += 1
98+
ticket.save()
99+
messages.info(request, "Ticket Upvoted | " + str(ticket.id))
93100
return redirect(view_ticket, pk)
94101

95102

@@ -102,8 +109,7 @@ def edit_ticket(request, pk=None):
102109
form = EditTicketForm(request.POST, request.FILES, instance=ticket)
103110
if form.is_valid():
104111
if ticket.status == 'Resolved' and ticket.resolved_date != None:
105-
# If ticket is set to resolved for the first time
106-
# Set resolved date to now
112+
# If ticket is set to resolved for the first time, set resolved date to now
107113
ticket.resolved_date = datetime.datetime.now()
108114
ticket = form.save()
109115
messages.info(
@@ -157,11 +163,12 @@ def kanban(request):
157163
def change_status(request, pk=None, new_status=None):
158164
"""Quick Update ticket status from dropdown"""
159165
ticket = get_object_or_404(Ticket, pk=pk) if pk else None
160-
ticket.status = new_status
161-
if ticket.status == 'Resolved':
162-
# If existing status is Resolved, set resolved date to now.
163-
ticket.resolved_date = datetime.datetime.now()
164-
ticket.save()
165-
messages.info(request, "Ticket Status Updated | " +
166-
str(ticket.id) + " | " + ticket.status)
166+
if (request.method == 'POST'):
167+
ticket.status = new_status
168+
if ticket.status == 'Resolved':
169+
# If existing status is Resolved, set resolved date to now.
170+
ticket.resolved_date = datetime.datetime.now()
171+
ticket.save()
172+
messages.info(request, "Ticket Status Updated | " +
173+
str(ticket.id) + " | " + ticket.status)
167174
return redirect(view_tickets)

0 commit comments

Comments
 (0)