Exemplo n.º 1
0
def edit_typesetter_assignment(request, typeset_id):
    """
    Allows the editor to edit an incomplete typesetting assignment.
    :param request: django request object
    :param typeset_id: Typesetting Assignment PK
    :return: HttpRedirect if POST otherwise HttpResponse
    """
    typeset = get_object_or_404(
        models.TypesetTask,
        pk=typeset_id,
        assignment__article__journal=request.journal,
    )
    article = typeset.assignment.article

    if request.POST:
        if 'delete' in request.POST:
            messages.add_message(
                request,
                messages.SUCCESS,
                'Typeset task {0} has been deleted'.format(typeset.pk)
            )
            kwargs = {'typeset': typeset, 'request': request}
            event_logic.Events.raise_event(
                event_logic.Events.ON_TYPESET_TASK_DELETED,
                **kwargs
            )
            typeset.delete()
        elif 'update' in request.POST and typeset.accepted:
            messages.add_message(
                request,
                messages.WARNING,
                'This assignment has been accepted so cannot be edited.'
            )
        elif 'update' in request.POST:
            logic.update_typesetter_task(typeset, request)
        elif 'reset' in request.POST and typeset.status == 'declined':
            typeset.reset_task_dates()
        else:
            messages.add_message(
                request,
                messages.WARNING,
                '[{status}] An invalid operation has '
                'been attempted for this task.'.format(
                    status=typeset.friendly_status)
            )

        return redirect(
            reverse(
                'production_article',
                kwargs={'article_id': article.pk}
            )
        )

    template = 'production/edit_typesetter_assignment.html'
    context = {
        'typeset': typeset,
        'article': article,
    }

    return render(request, template, context)
Exemplo n.º 2
0
def edit_typesetter_assignment(request, typeset_id):
    """
    Allows the editor to edit an incomplete typesetting assignment.
    :param request: django request object
    :param typeset_id: Typesetting Assignment PK
    :return: HTML
    """
    typeset = get_object_or_404(models.TypesetTask, pk=typeset_id, assignment__article__journal=request.journal)
    article = typeset.assignment.article

    if request.POST:
        if 'delete' in request.POST:
            messages.add_message(request, messages.SUCCESS, 'Typeset task {0} has been deleted'.format(typeset.pk))
            kwargs = {'typeset': typeset, 'request': request}
            event_logic.Events.raise_event(event_logic.Events.ON_TYPESET_TASK_DELETED, **kwargs)
            typeset.delete()
        elif 'update' in request.POST:
            logic.update_typesetter_task(typeset, request)

        return redirect(reverse('production_article', kwargs={'article_id': article.pk}))

    template = 'production/edit_typesetter_assignment.html'
    context = {
        'typeset': typeset,
        'article': article,
    }

    return render(request, template, context)