@@ 243-278 (lines=36) @@ | ||
240 | } |
|
241 | ||
242 | ||
243 | @blueprint.post('/tickets/<uuid:ticket_id>/user_manager') |
|
244 | def appoint_user_manager(ticket_id): |
|
245 | """Appoint a user manager for the ticket.""" |
|
246 | _abort_if_ticket_management_disabled() |
|
247 | ||
248 | ticket = _get_ticket_or_404(ticket_id) |
|
249 | ||
250 | _abort_if_ticket_user_checked_in(ticket) |
|
251 | ||
252 | form = SpecifyUserForm(request.form) |
|
253 | if not form.validate(): |
|
254 | return appoint_user_manager_form(ticket_id, form) |
|
255 | ||
256 | manager = g.user |
|
257 | ||
258 | if not ticket.is_owned_by(manager.id): |
|
259 | abort(403) |
|
260 | ||
261 | user = form.user.data |
|
262 | ||
263 | ticket_user_management_service.appoint_user_manager( |
|
264 | ticket.id, user.id, manager.id |
|
265 | ) |
|
266 | ||
267 | flash_success( |
|
268 | gettext( |
|
269 | '%(screen_name)s has been assigned as user manager ' |
|
270 | 'of ticket %(ticket_code)s.', |
|
271 | screen_name=user.screen_name, |
|
272 | ticket_code=ticket.code, |
|
273 | ) |
|
274 | ) |
|
275 | ||
276 | notification_service.notify_appointed_user_manager(ticket, user, manager) |
|
277 | ||
278 | return redirect_to('.index_mine') |
|
279 | ||
280 | ||
281 | @blueprint.delete('/tickets/<uuid:ticket_id>/user_manager') |
|
@@ 336-369 (lines=34) @@ | ||
333 | } |
|
334 | ||
335 | ||
336 | @blueprint.post('/tickets/<uuid:ticket_id>/seat_manager') |
|
337 | def appoint_seat_manager(ticket_id): |
|
338 | """Appoint a seat manager for the ticket.""" |
|
339 | _abort_if_ticket_management_disabled() |
|
340 | ||
341 | form = SpecifyUserForm(request.form) |
|
342 | if not form.validate(): |
|
343 | return appoint_seat_manager_form(ticket_id, form) |
|
344 | ||
345 | ticket = _get_ticket_or_404(ticket_id) |
|
346 | ||
347 | manager = g.user |
|
348 | ||
349 | if not ticket.is_owned_by(manager.id): |
|
350 | abort(403) |
|
351 | ||
352 | user = form.user.data |
|
353 | ||
354 | ticket_seat_management_service.appoint_seat_manager( |
|
355 | ticket.id, user.id, manager.id |
|
356 | ) |
|
357 | ||
358 | flash_success( |
|
359 | gettext( |
|
360 | '%(screen_name)s has been assigned as seat manager ' |
|
361 | 'of ticket %(ticket_code)s.', |
|
362 | screen_name=user.screen_name, |
|
363 | ticket_code=ticket.code, |
|
364 | ) |
|
365 | ) |
|
366 | ||
367 | notification_service.notify_appointed_seat_manager(ticket, user, manager) |
|
368 | ||
369 | return redirect_to('.index_mine') |
|
370 | ||
371 | ||
372 | @blueprint.delete('/tickets/<uuid:ticket_id>/seat_manager') |