def assign_typesetter(request, article_id, production_assignment_id): production_assignment = get_object_or_404(models.ProductionAssignment, pk=production_assignment_id, closed__isnull=True) article = get_object_or_404(submission_models.Article, pk=article_id) copyedit_files = logic.get_copyedit_files(article) typesetters = logic.get_typesetters(article) errors, _dict = None, None if request.POST.get('typesetter_id'): task = logic.handle_self_typesetter_assignment(production_assignment, request) return redirect(reverse('do_typeset_task', kwargs={'typeset_id': task.id})) if request.POST: task, errors, _dict = logic.handle_assigning_typesetter(production_assignment, request) if not errors and task: return redirect(reverse('notify_typesetter', kwargs={'typeset_id': task.pk})) template = 'production/assign_typesetter.html' context = { 'production_assignment': production_assignment, 'article': article, 'copyedit_files': copyedit_files, 'typesetters': typesetters, 'errors': errors, 'dict': _dict, } return render(request, template, context)
def assign_typesetter(request, article_id, production_assignment_id): """ Lets a production manager assign a typesetter a task :param request: HttpRequest object :param article_id: Article object PK :param production_assignment_id: ProductionAssignment object PK :return: HttpRedirect if POST otherwise HttpResponse """ production_assignment = get_object_or_404( models.ProductionAssignment, pk=production_assignment_id, article__journal=request.journal, closed__isnull=True, ) article = get_object_or_404( submission_models.Article, pk=article_id, journal=request.journal, ) copyedit_files = logic.get_copyedit_files(article) typesetters = logic.get_typesetters(article) typesetter_form = forms.AssignTypesetter( article=article, files=copyedit_files, typesetters=typesetters, assignment=production_assignment, ) if request.POST.get('typesetter_id'): task = logic.handle_self_typesetter_assignment(production_assignment, request) return redirect( reverse('do_typeset_task', kwargs={'typeset_id': task.id})) if request.POST: typesetter_form = forms.AssignTypesetter( request.POST, request.FILES, article=article, files=copyedit_files, typesetters=typesetters, assignment=production_assignment, ) if typesetter_form.is_valid(): task = typesetter_form.save() return redirect( reverse('notify_typesetter', kwargs={'typeset_id': task.pk})) template = 'production/assign_typesetter.html' context = { 'production_assignment': production_assignment, 'article': article, 'copyedit_files': copyedit_files, 'typesetters': typesetters, 'form': typesetter_form, } return render(request, template, context)