Code Duplication    Length = 34-36 lines in 2 locations

byceps/blueprints/site/ticketing/views.py 2 locations

@@ 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')