@@ -30,14 +30,14 @@ def view_tickets(request):
30
30
# View Single Ticket
31
31
@login_required ()
32
32
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
36
36
historical_changes = HistoricalTicket .objects .filter (id = pk )
37
37
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 ]
41
41
delta = new_record .diff_against (old_record )
42
42
for change in delta .changes :
43
43
if (change .field != 'upvotes' ):
@@ -50,17 +50,22 @@ def view_ticket(request, pk):
50
50
}
51
51
all_deltas .append (test_change )
52
52
53
- # * Display comment box
53
+ # Comments
54
+ comments = Comment .objects .filter (ticket_id = pk )
54
55
form = AddCommentForm (request .POST , request .FILES , instance = None )
55
- # * On submit comment
56
+ # On submit comment
56
57
if (request .method == "POST" ):
57
58
if form .is_valid ():
58
59
comment_body = form .cleaned_data .get ("comment_body" )
59
60
comment = Comment (
60
61
ticket_id = pk , comment_body = comment_body , user_id = request .user .id )
61
62
comment .save ()
63
+ messages .info (request , "Comment submitted." )
62
64
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 })
64
69
65
70
66
71
@login_required ()
@@ -87,9 +92,11 @@ def add_ticket(request, pk=None):
87
92
def upvote (request , pk = None ):
88
93
"""Upvote a Ticket"""
89
94
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 ))
93
100
return redirect (view_ticket , pk )
94
101
95
102
@@ -102,8 +109,7 @@ def edit_ticket(request, pk=None):
102
109
form = EditTicketForm (request .POST , request .FILES , instance = ticket )
103
110
if form .is_valid ():
104
111
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
107
113
ticket .resolved_date = datetime .datetime .now ()
108
114
ticket = form .save ()
109
115
messages .info (
@@ -157,11 +163,12 @@ def kanban(request):
157
163
def change_status (request , pk = None , new_status = None ):
158
164
"""Quick Update ticket status from dropdown"""
159
165
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 )
167
174
return redirect (view_tickets )
0 commit comments