def submission_three(request, book_id): book = get_object_or_404(core_models.Book, pk=book_id, owner=request.user) manuscript_files = core_models.File.objects.filter(book=book, kind='manuscript') additional_files = core_models.File.objects.filter(book=book, kind='additional') logic.check_stage(book, 3) if request.method == 'POST': print request.POST if 'next_stage' in request.POST: if manuscript_files.count() >= 1: if not book.submission_stage > 4: book.submission_stage = 4 logic.handle_book_labels(request.POST, book, kind='manuscript') book.save() return redirect(reverse('submission_three_additional', kwargs={'book_id': book.id})) else: messages.add_message(request, messages.ERROR, 'You must upload a Manuscript File.') # Catch, after any post we always redirect to avoid someone resubmitting the same file twice. return redirect(reverse('submission_three', kwargs={'book_id': book.id})) template = 'submission/submission_three.html' context = { 'book': book, 'active': 3, 'manuscript_files': manuscript_files, 'additional_files': additional_files, 'manuscript_guidelines': core_models.Setting.objects.get(name='manuscript_guidelines').value, } return render(request, template, context)
def submission_three_additional(request, book_id): book = get_object_or_404(core_models.Book, pk=book_id, owner=request.user) additional_files = core_models.File.objects.filter(book=book, kind='additional') logic.check_stage(book, 4) if request.method == 'POST': if not book.submission_stage > 5: book.submission_stage = 5 logic.handle_book_labels(request.POST, book, kind='additional') book.save() return redirect(reverse('submission_four', kwargs={'book_id': book.id})) template = 'submission/submission_three_additional.html' context = { 'book': book, 'active': 4, 'additional_files': additional_files, 'additional_guidelines': core_models.Setting.objects.get( name='additional_files_guidelines').value, } return render(request, template, context)
def submission_three(request, book_id): book = get_object_or_404(core_models.Book, pk=book_id, owner=request.user) manuscript_files = core_models.File.objects.filter( book=book, kind='manuscript', ) additional_files = core_models.File.objects.filter( book=book, kind='additional', ) logic.check_stage(book, 3) if request.method == 'POST': if 'next_stage' in request.POST: if manuscript_files.count() >= 1: if not book.submission_stage > 4: book.submission_stage = 4 logic.handle_book_labels(request.POST, book, kind='manuscript') book.save() return redirect( reverse('submission_three_additional', kwargs={'book_id': book.id})) else: messages.add_message(request, messages.ERROR, 'You must upload a Manuscript File.') # After any post always redirect to avoid resubmitting of same file. return redirect( reverse('submission_three', kwargs={'book_id': book.id})) template = 'submission/submission_three.html' context = { 'book': book, 'active': 3, 'manuscript_files': manuscript_files, 'additional_files': additional_files, 'manuscript_guidelines': core_models.Setting.objects.get(name='manuscript_guidelines').value, } return render(request, template, context)
def submission_three_additional(request, book_id): book = get_object_or_404(core_models.Book, pk=book_id, owner=request.user) additional_files = core_models.File.objects.filter(book=book, kind='additional') logic.check_stage(book, 4) if request.method == 'POST': if not book.submission_stage > 5: book.submission_stage = 5 logic.handle_book_labels(request.POST, book, kind='additional') book.save() return redirect(reverse('submission_four', kwargs={'book_id': book.id})) template = 'submission/submission_three_additional.html' context = { 'book': book, 'active': 4, 'additional_files': additional_files, } return render(request, template, context)
def task_hub(request, assignment_type, assignment_id, about=None): assignment = logic.get_assignment(assignment_type, assignment_id) form = logic.get_unposted_form(request, assignment_type, assignment) center_block = ( 'onetasker/elements/submission_details.html' if about else 'onetasker/elements/files.html' ) right_block = logic.right_block(assignment) submitted_files = logic.get_submitted_files(assignment) if assignment_type == 'copyedit': instructions = models.Setting.objects.get( group__name='general', name='instructions_for_task_copyedit', ).value elif assignment_type == 'typesetting': instructions = models.Setting.objects.get( group__name='general', name='instructions_for_task_typeset', ).value elif assignment_type == 'indexing': instructions = models.Setting.objects.get( group__name='general', name='instructions_for_task_index', ).value else: instructions = "" if request.POST: decision = request.POST.get('decision', None) # Handle decision. if decision == 'accept': assignment.accepted = datetime.now() assignment.save() return redirect(reverse( 'onetasker_task_hub', kwargs={ 'assignment_type': assignment_type, 'assignment_id': assignment_id } )) elif decision == 'decline': assignment.declined = datetime.now() assignment.save() messages.add_message(request, messages.SUCCESS, 'Task declined.') return redirect(reverse( 'onetasker_task_hub_decline', kwargs={ 'assignment_type': assignment_type, 'assignment_id': assignment_id } )) elif 'task' in request.POST: # Handle submission. form = logic.get_assignemnt_form( request, assignment_type, assignment, ) if form.is_valid(): assignment = form.save(commit=False) logic.notify_editor( assignment, '%s task completed' % (assignment.type()) ) logic.complete_task(assignment) handle_book_labels(request.POST, assignment.book, kind='misc') assignment.save() messages.add_message( request, messages.SUCCESS, 'Task completed. Thanks!' ) return redirect(reverse( 'onetasker_task_hub', kwargs={ 'assignment_type': assignment_type, 'assignment_id': assignment_id } )) else: print form elif 'label' in request.POST: # Handle label. _file = get_object_or_404( models.File, pk=request.POST.get('file_id'), ) _file.label = request.POST.get('label') _file.save() template = 'onetasker/taskhub.html' context = { 'submission': assignment.book, 'assignment': assignment, 'form': form, 'center_block': center_block, 'right_block': right_block, 'files': submitted_files, 'about': about, 'editors': core_logic.get_editors(assignment.book), 'instructions': instructions, } return render(request, template, context)
def task_hub(request, assignment_type, assignment_id, about=None): assignment = logic.get_assignment(assignment_type, assignment_id) form = logic.get_unposted_form(request, assignment_type, assignment) center_block = 'onetasker/elements/submission_details.html' if about else 'onetasker/elements/files.html' right_block = logic.right_block(assignment) submitted_files = logic.get_submitted_files(assignment) if assignment_type == 'copyedit': instructions = models.Setting.objects.get(group__name='general', name='instructions_for_task_copyedit').value elif assignment_type == 'typesetting': instructions = models.Setting.objects.get(group__name='general', name='instructions_for_task_typeset').value elif assignment_type == 'indexing': instructions = models.Setting.objects.get(group__name='general', name='instructions_for_task_index').value else: instructions = "" if request.POST: #Handle decision decision = request.POST.get('decision', None) if decision == 'accept': assignment.accepted = datetime.now() assignment.save() return redirect(reverse('onetasker_task_hub', kwargs={'assignment_type': assignment_type, 'assignment_id': assignment_id})) elif decision == 'decline': assignment.declined = datetime.now() assignment.save() messages.add_message(request, messages.SUCCESS, 'Task declined.') return redirect(reverse('onetasker_task_hub_decline',kwargs={'assignment_type': assignment_type, 'assignment_id': assignment_id})) #handle submission elif 'task' in request.POST: form = logic.get_assignemnt_form(request, assignment_type, assignment) if form.is_valid(): assignment = form.save(commit=False) logic.notify_editor(assignment, '%s task completed' % (assignment.type())) logic.complete_task(assignment) handle_book_labels(request.POST, assignment.book, kind='misc') assignment.save() messages.add_message(request, messages.SUCCESS, 'Task completed. Thanks!') return redirect(reverse('onetasker_task_hub', kwargs={'assignment_type': assignment_type, 'assignment_id': assignment_id})) else: print form #handle label elif 'label' in request.POST: _file = get_object_or_404(models.File, pk=request.POST.get('file_id')) _file.label = request.POST.get('label') _file.save() template = 'onetasker/taskhub.html' context = { 'submission': assignment.book, 'assignment':assignment, 'form': form, 'center_block': center_block, 'right_block': right_block, 'files':submitted_files, 'about':about, 'editors':core_logic.get_editors(assignment.book), 'instructions':instructions, } return render(request, template, context)