@@ -30,14 +30,14 @@ def view_tickets(request):
3030# View Single Ticket
3131@login_required ()
3232def 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):
8792def 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):
157163def 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