示例#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 render(request, identifier):
    try:
        node = Node(identifier, user=request.user)
    except ObjectDoesNotExist:
        node = None

    if not node or not node.is_file():
        try:
            permalink = Permalink.objects.get(name=identifier)
        except Permalink.DoesNotExist:
            permalink = None

        if not permalink or (permalink.valid_since
                             and permalink.valid_since > now()):
            from django.http import Http404
            raise Http404

        node = Node(nodeobj=permalink.file, user=request.user)
        rev = permalink.revision if permalink.revision else permalink.file.current_revision

    else:
        rev = node.model.current_revision

    if not node.can_view():
        if request.user.is_authenticated():
            from django.core.exceptions import PermissionDenied
            raise PermissionDenied
        else:
            from django.contrib.auth.views import redirect_to_login
            return redirect_to_login(request.path)

    text = rev.text
    if text.format == BlobText.MARKDOWN:
        from core.formatting import render_document
        rendered_text = render_document(text.text)
    elif text.format == BlobText.HTML:
        rendered_text = text
    else:  # text.format == BlobText.TEXT:
        rendered_text = r'<blockquote>%s</blockquote>' % text.text

    return render_request(request, 'docs/render.html', {
        'node': node,
        'text': rendered_text,
    })
示例#3
0
def render(request, identifier):
	try:
		node = Node(identifier, user=request.user)
	except ObjectDoesNotExist:
		node = None

	if not node or not node.is_file():
		try:
			permalink = Permalink.objects.get(name=identifier)
		except Permalink.DoesNotExist:
			permalink = None

		if not permalink or (permalink.valid_since and permalink.valid_since > now()):
			from django.http import Http404
			raise Http404

		node = Node(nodeobj=permalink.file, user=request.user)
		rev = permalink.revision if permalink.revision else permalink.file.current_revision

	else:
		rev = node.model.current_revision

	if not node.can_view():
		if request.user.is_authenticated():
			from django.core.exceptions import PermissionDenied
			raise PermissionDenied
		else:
			from django.contrib.auth.views import redirect_to_login
			return redirect_to_login(request.path)

	text = rev.text
	if text.format == BlobText.MARKDOWN:
		from core.formatting import render_document
		rendered_text = render_document(text.text)
	elif text.format == BlobText.HTML:
		rendered_text = text
	else: # text.format == BlobText.TEXT:
		rendered_text = r'<blockquote>%s</blockquote>' % text.text

	return render_request(request, 'docs/render.html', {
		'node': node,
		'text': rendered_text,
	})
示例#4
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)