示例#1
0
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)
示例#2
0
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)