Mercurial > agora
comparison apps/snippet/views.py @ 190:a4f88ac85837
Changes: Now guest users cannot see revision history and they also cannot see snippets posted by registered users. To see snippets posted by registered users, one has to login.
author | ahsanalishahid <ahsan.ali.shahid@gmail.com> |
---|---|
date | Thu, 20 Jun 2013 17:17:16 +0500 |
parents | c7be7def8b57 |
children | 499e5f47f278 |
comparison
equal
deleted
inserted
replaced
189:683d41e124b7 | 190:a4f88ac85837 |
---|---|
33 snippet = Snippet() | 33 snippet = Snippet() |
34 | 34 |
35 if request.user.is_authenticated(): | 35 if request.user.is_authenticated(): |
36 snippet.author = request.user | 36 snippet.author = request.user |
37 | 37 |
38 | |
38 snippet_form = SnippetForm(request.POST, | 39 snippet_form = SnippetForm(request.POST, |
39 request.FILES, | 40 request.FILES, |
40 request=request, | 41 request=request, |
41 instance=snippet) | 42 instance=snippet) |
42 | 43 |
49 recent = Snippet.objects.public()[:10] | 50 recent = Snippet.objects.public()[:10] |
50 | 51 |
51 context = { | 52 context = { |
52 'snippet_form': snippet_form, | 53 'snippet_form': snippet_form, |
53 'recent_snippets' : recent, | 54 'recent_snippets' : recent, |
55 'show': True, # always true b/c guest posting is allowed | |
54 } | 56 } |
55 | 57 |
56 return render(request, 'snippet/snippet_new.djhtml', context) | 58 return render(request, 'snippet/snippet_new.djhtml', context) |
57 | 59 |
58 | 60 |
59 def snippet_details(request, snippet_id, | 61 def snippet_details(request, snippet_id,template_name='snippet/snippet_details.djhtml', is_raw=False): |
60 template_name='snippet/snippet_details.djhtml', is_raw=False): | 62 |
61 snippet = get_object_or_404(Snippet, secret_id=snippet_id) | 63 snippet = get_object_or_404(Snippet, secret_id=snippet_id) |
62 snippet.num_views += 1 | 64 snippet.num_views += 1 |
63 snippet.save() | 65 snippet.save() |
66 | |
67 | |
68 if request.user.is_authenticated() and hasattr(snippet,'author'): | |
69 show = True | |
70 elif ( request.user.is_anonymous() ) and (hasattr(snippet,'author') ): | |
71 if snippet.author == None: | |
72 show = True | |
73 else: | |
74 show = False | |
75 else: | |
76 show = False | |
64 | 77 |
65 tree = snippet.get_root() | 78 tree = snippet.get_root() |
66 tree = tree.get_descendants(include_self=True) | 79 tree = tree.get_descendants(include_self=True) |
67 | 80 |
68 if snippet.title.startswith('Re: '): | 81 if snippet.title.startswith('Re: '): |
72 | 85 |
73 new_snippet_initial = { | 86 new_snippet_initial = { |
74 'content': snippet.content, | 87 'content': snippet.content, |
75 'lexer': snippet.lexer, | 88 'lexer': snippet.lexer, |
76 'title': reply_title, | 89 'title': reply_title, |
90 | |
77 } | 91 } |
78 | 92 |
79 if request.method == "POST": | 93 if request.method == "POST": |
80 snippet_form = SnippetForm(request.POST, | 94 snippet_form = SnippetForm(request.POST, |
81 request.FILES, | 95 request.FILES, |
100 'tree': tree, | 114 'tree': tree, |
101 'language': dict(LEXER_LIST)[snippet.lexer], | 115 'language': dict(LEXER_LIST)[snippet.lexer], |
102 'pygments_styles': PygmentsStyle.objects.all(), | 116 'pygments_styles': PygmentsStyle.objects.all(), |
103 'default_style': default_pygments_style, | 117 'default_style': default_pygments_style, |
104 'no_descendants': len(tree) == 1, | 118 'no_descendants': len(tree) == 1, |
119 'show': show, | |
105 } | 120 } |
106 | 121 |
107 response = render(request, template_name, context) | 122 response = render(request, template_name, context) |
108 | 123 |
109 if is_raw: | 124 if is_raw: |