def create(request): if SUBMISSION_END < datetime.datetime.now(): raise Http404 context = { 'user': request.user, 'rule': render_document(Node(nid=settings.SUBMISSION_RULE_DOCID).model.current_revision.text.text) } if request.POST.get('submit'): sub = SubmissionForm(request.POST, request.FILES) if sub.is_valid(): submission = sub.save(commit=False) submission.user = request.user submission.save() for f in request.FILES.getlist('slide'): form = SubmissionFileForm().save(commit=False) form.submission = submission form.file = f form.save() return redirect('submission:list') else: pass return render(request, 'submission/create.html', context)
def edit(request, submission_id): if SUBMISSION_END < datetime.datetime.now(): instance = get_object_or_404(Submission, id=submission_id, user=request.user) if instance.status!='E': raise Http404 elif request.user.has_perm('submission.review'): instance = get_object_or_404(Submission, id=submission_id) else: instance = get_object_or_404(Submission, id=submission_id, user=request.user) if request.POST.get('submit'): if request.FILES: submission = SubmissionForm(request.POST, request.FILES, instance=instance) else: submission = SubmissionForm(request.POST, instance=instance) if submission.is_valid(): sub = submission.save() if request.FILES.getlist('slide'): for f in sub.files.all(): f.file.delete() f.delete() for f in request.FILES.getlist('slide'): form = SubmissionFileForm().save(commit=False) form.submission = sub form.file = f form.save() return redirect('submission:list') else: pass context = { 'user': request.user, 'rule': render_document(Node(nid=settings.SUBMISSION_RULE_DOCID).model.current_revision.text.text), 'submission': instance, } return render(request, 'submission/edit.html', context)