コード例 #1
0
ファイル: main.py プロジェクト: shadowlyc/staff.sitcon.org
def view(request, nidb64):
    try:
        node = Node(nidb64, user=request.user)
    except ObjectDoesNotExist:
        from django.http import Http404
        raise Http404

    if request.method == 'POST':
        return post(request, node)
    elif request.method == 'PUT':
        return put(request, node)
    elif request.method == 'DELETE':
        return delete(request, node)
    elif request.method != 'GET':
        return not_allowed(request, ['GET', 'POST', 'PUT', 'DELETE'])

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

    if request.is_ajax():
        return get(request, node)
    else:
        params = { 'node': node }
        if node.is_folder():
            return render(request, 'docs/folder.html', params)
        else:
            return render(request, 'docs/file.html', params)
コード例 #2
0
ファイル: main.py プロジェクト: andy0130tw/staff.sitcon.org
def view(request, nidb64):
    try:
        node = Node(nidb64, user=request.user)
    except ObjectDoesNotExist:
        from django.http import Http404
        raise Http404

    if request.method == 'POST':
        return post(request, node)
    elif request.method == 'PUT':
        return put(request, node)
    elif request.method == 'DELETE':
        return delete(request, node)
    elif request.method != 'GET':
        return not_allowed(request, ['GET', 'POST', 'PUT', 'DELETE'])

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

    if request.is_ajax():
        return get(request, node)
    else:
        params = { 'node': node }
        if node.is_folder():
            return render(request, 'docs/folder.html', params)
        else:
            return render(request, 'docs/file.html', params)
コード例 #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 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,
	})