@@ -25,6 +25,9 @@ <h1 class="text-center">Contest Dashboard</h1>
25
25
< i class ="fa-solid fa-clock-rotate-left fa-fw "> </ i > Pre-Contest
26
26
</ div >
27
27
< div class ="card-body overflow-auto ">
28
+ < div class ="row justify-content-center ">
29
+ < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#walkinModal "> < i class ="fa-solid fa-person-walking fa-fw "> </ i > Create Walk-in teams</ button >
30
+ </ div >
28
31
< div class ="row justify-content-center ">
29
32
< a class ="btn btn-primary btn-sm my-1 " href ="{% url 'gen_dj_files' %} " onclick ="return confirm('Are you certain you want to generate the DOMjudge files?'); "> < i class ="fa-solid fa-file-circle-plus fa-fw "> </ i > Generate DOMjudge TSVs</ a >
30
33
{% if dj_files_available %}
@@ -73,7 +76,6 @@ <h1 class="text-center">Contest Dashboard</h1>
73
76
</ div >
74
77
< div class ="card-body overflow-auto ">
75
78
< div class ="row justify-content-center ">
76
-
77
79
{% if dj_results_processed %}
78
80
<!--<button type="button" class="btn btn-primary btn-sm my-1" data-toggle="modal" data-target="#generateEcReportsModal">Generate Reports</button>-->
79
81
< a class ="btn btn-primary btn-sm my-1 " href ="{% url 'gen_ec_reports' %} " onclick ="return confirm('Are you certain you want to generate the extra credit files?'); "> < i class ="fa-solid fa-file-circle-plus fa-fw "> </ i > Generate Reports</ a >
@@ -101,15 +103,34 @@ <h1 class="text-center">Contest Dashboard</h1>
101
103
<!-- Contest tools card -->
102
104
< div class ="card mt-4 border-secondary ">
103
105
< div class ="card-header font-weight-bold bg-secondary text-white ">
104
- < i class ="fa-solid fa-wrench fa-fw "> </ i > Contest Tools
106
+ < i class ="fa-solid fa-wrench fa-fw "> </ i > Tools
105
107
</ div >
106
108
< div class ="card-body overflow-auto ">
107
- < div class ="row justify-content-center ">
108
- < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#walkinModal "> < i class ="fa-solid fa-person-walking fa-fw "> </ i > Create Walk-in teams</ button >
109
+ < div class ="row ">
110
+ < div class ="col-lg-6 ">
111
+ < div class ="row justify-content-center ">
112
+ < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#accountStatusModal "> < i class ="fa-solid fa-user-gear fa-fw "> </ i > Update Account Status</ button >
113
+ </ div >
114
+ < div class ="row justify-content-center ">
115
+ < a class ="btn btn-primary btn-sm my-1 " href ="{% url 'generate_team_csvs' %} " onclick ="return confirm('Are you certain you want to generate the team data CSVs?'); "> < i class ="fa-solid fa-file-circle-plus fa-fw "> </ i > Generate Team CSVs</ a >
116
+ {% if team_csvs_available %}
117
+ < a class ="btn text-dark " href ="{% url 'download_team_csvs' %} " role ="button "> < i class ="fa fa-download fa-md " aria-hidden ="true "> </ i > </ a >
118
+ {% else %}
119
+ < a class ="btn text-secondary disabled " href ="# " role ="button "> < i class ="fa fa-download fa-md " aria-hidden ="true "> </ i > </ a >
120
+ {% endif %}
121
+ </ div >
122
+ </ div >
123
+ < div class ="col-lg-6 ">
124
+ < div class ="row justify-content-center ">
125
+ < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#facultyTeamModal "> < i
126
+ class ="fa-solid fa-chalkboard-user fa-fw "> </ i > Designate Faculty Team</ button >
127
+ </ div >
128
+ < div class ="row justify-content-center ">
129
+ < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#checkinModal "> < i class ="fa-solid fa-robot fa-fw "> </ i > Check in/out Users</ button >
130
+ </ div >
131
+ </ div >
109
132
</ div >
110
- < div class ="row justify-content-center ">
111
- < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#checkinModal "> < i class ="fa-solid fa-robot fa-fw "> </ i > Check in/out Users</ button >
112
- </ div >
133
+
113
134
</ div >
114
135
</ div >
115
136
<!-- Contest tools card end -->
@@ -142,17 +163,22 @@ <h1 class="text-center">Contest Dashboard</h1>
142
163
<!-- Account tools card -->
143
164
< div class ="card mt-4 border-secondary ">
144
165
< div class ="card-header font-weight-bold bg-secondary text-white ">
145
- < i class ="fa-solid fa-wrench fa-fw "> </ i > Account Tools
166
+ < i class ="fa-solid fa-user-shield fa-fw "> </ i > Change User Password
146
167
</ div >
147
- < div class ="card-body overflow-auto ">
148
- < div class ="row justify-content-center ">
149
- < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#activateAccountModal "> < i class ="fa-solid fa-user-check fa-fw "> </ i > Activate User Account</ button >
168
+ < form method ="post " onSubmit ="return confirm('Are you certain you want to update this user password?'); ">
169
+ < div class ="card-body overflow-auto ">
170
+ {% csrf_token %}
171
+ < div class ="form-group ">
172
+ {{ update_password_form.username | placeholder:"Username" }}
173
+ </ div >
174
+ < div class ="form-group ">
175
+ {{ update_password_form.password | placeholder:"New password" }}
176
+ </ div >
150
177
</ div >
151
- < div class ="row justify-content-center ">
152
- < button type ="button " class ="btn btn-primary btn-sm my-1 " data-toggle ="modal " data-target ="#facultyTeamModal "> < i
153
- class ="fa-solid fa-chalkboard-user fa-fw "> </ i > Designate Faculty Team</ button >
178
+ < div class ="card-footer ">
179
+ < button class ="btn btn-primary btn-sm " type ="submit "> Save</ button >
154
180
</ div >
155
- </ div >
181
+ </ form >
156
182
</ div >
157
183
<!-- Account tools card end -->
158
184
</ div >
@@ -206,54 +232,57 @@ <h1 class="text-center">Contest Dashboard</h1>
206
232
<!-- Discord Control deck end -->
207
233
208
234
<!-- Volunteer Summary card -->
209
- < div class ="card mt-4 mb-3 border-secondary ">
210
- < div class ="card-header font-weight-bold bg-secondary text-white ">
211
- < i class ="fa-solid fa-handshake-simple fa-fw "> </ i > Volunteers
212
- </ div >
213
- < div class ="card-body overflow-auto ">
214
- < div class ="row justify-content-center ">
215
- < div class ="col-12 ">
216
- < div class ="table-responsive ">
217
- < table class ="table table-sm ">
218
- < thead class ="thead-light ">
219
- < tr >
220
- < th scope ="col "> Role</ th >
221
- < th scope ="col "> Name</ th >
222
- < th scope ="col " class ="text-center "> Checked-in</ th >
223
- < th scope ="col " class ="text-center "> Added Courses</ th >
224
-
225
- </ tr >
226
- </ thead >
227
- < tbody >
228
- {% for volunteer in volunteers %}
229
- < tr >
230
- < td > {{ volunteer.get_role }}</ td >
231
-
232
- < td > {{ volunteer.user.get_full_name }}</ td >
235
+ < div id ="accordionVolunteer ">
236
+ < div class ="card mt-4 mb-3 border-secondary ">
237
+ < div class ="card-header font-weight-bold bg-secondary text-white " data-toggle ="collapse " data-target ="#collapseVolunteer " aria-expanded ="true " aria-controls ="collapseVolunteer " style ="cursor: pointer; ">
238
+ < i class ="fa-solid fa-handshake-simple fa-fw "> </ i > Volunteers
239
+ </ div >
240
+ < div id ="collapseVolunteer " class ="collapse " data-parent ="#accordionVolunteer ">
241
+ < div class ="card-body overflow-auto ">
242
+ < div class ="row justify-content-center ">
243
+ < div class ="col-12 ">
244
+ < div class ="table-responsive ">
245
+ < table class ="table table-sm ">
246
+ < thead class ="thead-light ">
247
+ < tr >
248
+ < th scope ="col "> Role</ th >
249
+ < th scope ="col "> Name</ th >
250
+ < th scope ="col " class ="text-center "> Checked-in</ th >
251
+ < th scope ="col " class ="text-center "> Added Courses</ th >
252
+
253
+ </ tr >
254
+ </ thead >
255
+ < tbody >
256
+ {% for volunteer in volunteers %}
257
+ < tr >
258
+ < td > {{ volunteer.get_role }}</ td >
259
+
260
+ < td > {{ volunteer.user.get_full_name }}</ td >
233
261
234
- {% if volunteer.checked_in %}
235
- < td class ="text-center "> Yes</ td >
236
- {% else %}
237
- < td class ="text-center "> No</ td >
238
- {% endif %}
262
+ {% if volunteer.checked_in %}
263
+ < td class ="text-center "> Yes</ td >
264
+ {% else %}
265
+ < td class ="text-center "> No</ td >
266
+ {% endif %}
239
267
240
- {% if volunteer.has_courses %}
241
- < td class ="text-center "> Yes</ td >
242
- {% else %}
243
- < td class ="text-center "> No</ td >
244
- {% endif %}
245
- </ tr >
246
- {% endfor %}
247
- </ tbody >
248
- </ table >
268
+ {% if volunteer.has_courses %}
269
+ < td class ="text-center "> Yes</ td >
270
+ {% else %}
271
+ < td class ="text-center "> No</ td >
272
+ {% endif %}
273
+ </ tr >
274
+ {% endfor %}
275
+ </ tbody >
276
+ </ table >
277
+ </ div >
278
+ </ div >
249
279
</ div >
250
280
</ div >
251
281
</ div >
252
282
</ div >
253
283
</ div >
254
284
<!-- Volunteer Summary card end -->
255
285
256
-
257
286
<!-- Create Walk-in Teams Modal -->
258
287
< div class ="modal fade " id ="walkinModal " tabindex ="-1 " role ="dialog "
259
288
aria-labelledby ="confirmClearModalCenterTitle " aria-hidden ="true ">
@@ -290,7 +319,6 @@ <h5 class="mb-0">{{ field.label_tag }}</h5>
290
319
</ div >
291
320
<!-- End Create Walk-in Teams Modal -->
292
321
293
-
294
322
<!-- Checkin/Checkout Users Modal -->
295
323
< div class ="modal fade " id ="checkinModal " tabindex ="-1 " role ="dialog " aria-labelledby ="confirmClearModalCenterTitle "
296
324
aria-hidden ="true ">
@@ -326,20 +354,22 @@ <h5 class="modal-title" id="confirmClearModalLongTitle">Check in/out Users</h5>
326
354
</ div >
327
355
<!-- End Create Walk-in Teams Modal -->
328
356
329
-
330
- <!-- Activate Account Modal -->
331
- < div class ="modal fade " id ="activateAccountModal " tabindex ="-1 " role ="dialog "
357
+ <!-- Account Status Modal -->
358
+ < div class ="modal fade " id ="accountStatusModal " tabindex ="-1 " role ="dialog "
332
359
aria-labelledby ="confirmClearModalCenterTitle " aria-hidden ="true ">
333
360
< div class ="modal-dialog modal-dialog-centered " role ="document ">
334
361
< div class ="modal-content ">
335
362
< div class ="modal-header ">
336
- < h5 class ="modal-title " id ="confirmClearModalLongTitle "> Activate User Account</ h5 >
363
+ < h5 class ="modal-title " id ="confirmClearModalLongTitle "> Update Account Status </ h5 >
337
364
</ div >
338
- < form method ="post " onSubmit ="return confirm('Are you certain you want to activate this account?'); ">
365
+ < form method ="post " onSubmit ="return confirm('Are you certain you want to update this account?'); ">
339
366
< div class ="modal-body overflow-auto ">
340
367
{% csrf_token %}
341
368
< div class ="form-group ">
342
- {{ activate_account_form.username | placeholder:"Username"}}
369
+ {{ account_status_form.username | placeholder:"Username" }}
370
+ </ div >
371
+ < div class ="form-group ">
372
+ {{ account_status_form.status }}
343
373
</ div >
344
374
</ div >
345
375
< div class ="card-footer ">
@@ -350,8 +380,7 @@ <h5 class="modal-title" id="confirmClearModalLongTitle">Activate User Account</h
350
380
</ div >
351
381
</ div >
352
382
</ div >
353
- <!-- End Activate Account Modal -->
354
-
383
+ <!-- End Account Status Modal -->
355
384
356
385
<!-- Designate Faculty Team Modal -->
357
386
< div class ="modal fade " id ="facultyTeamModal " tabindex ="-1 " role ="dialog "
0 commit comments