Files
@ 1f83c2fb6966
Branch filter:
Location: website/conservancy/usethesource/views.py - annotation
1f83c2fb6966
3.6 KiB
text/x-python
Fix sustainer form default
cc3224bb60dd 28f3b8de08e7 cc3224bb60dd cc3224bb60dd cc3224bb60dd e340f18ec9fa cadd69061f18 905e5c918d3f 905e5c918d3f 905e5c918d3f cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd e340f18ec9fa e340f18ec9fa e340f18ec9fa e340f18ec9fa 296f29c84bb2 e340f18ec9fa cc3224bb60dd cc3224bb60dd cc3224bb60dd e340f18ec9fa cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd c0a4fe5f39d0 cc3224bb60dd cc3224bb60dd cc3224bb60dd cadd69061f18 cadd69061f18 cadd69061f18 cadd69061f18 c0a4fe5f39d0 c0a4fe5f39d0 c0a4fe5f39d0 cadd69061f18 2a23a0a55ea0 cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd 28f3b8de08e7 28f3b8de08e7 cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cadd69061f18 cadd69061f18 cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd 905e5c918d3f 905e5c918d3f cc3224bb60dd cc3224bb60dd 28f3b8de08e7 28f3b8de08e7 28f3b8de08e7 28f3b8de08e7 cc3224bb60dd cc3224bb60dd 905e5c918d3f 905e5c918d3f cc3224bb60dd cc3224bb60dd cc3224bb60dd cc3224bb60dd c63bccaacc61 c63bccaacc61 c63bccaacc61 c63bccaacc61 | from django.contrib.admin.views.decorators import staff_member_required
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404, redirect, render
from .models import Candidate, Comment
from .forms import CommentForm, DownloadForm
from .emails import make_comment_email
def landing_page(request):
candidates = Candidate.objects.all()
return render(request, 'usethesource/landing_page.html', {'candidates': candidates})
def candidate_page(request, slug):
candidate = get_object_or_404(Candidate, slug=slug)
return render(request, 'usethesource/candidate.html', {'candidate': candidate, 'add': True})
def download_page(request, slug, download_type):
candidate = get_object_or_404(Candidate, slug=slug)
form = DownloadForm()
if request.method == 'POST':
form = DownloadForm(request.POST)
url = candidate.source_url if download_type == 'source' else candidate.binary_url
if not candidate.show_download_disclaimer or form.is_valid():
return redirect(url)
return render(
request,
'usethesource/download.html',
{'form': form, 'candidate': candidate, 'download_type': download_type},
)
@staff_member_required
def create_comment(request, slug):
candidate = get_object_or_404(Candidate, slug=slug)
if request.method == 'GET':
form = CommentForm(initial={'post_to_list': True})
else:
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.candidate = candidate
comment.user = request.user
comment.save()
if 'post_to_list' in request.POST:
email = make_comment_email(comment)
email.send()
return redirect('usethesource:view_comment', comment_id=comment.id, show_add='true')
return render(request, 'usethesource/add_comment_form.html', {'form': form, 'candidate': candidate})
@staff_member_required
def edit_comment(request, comment_id):
comment = get_object_or_404(Comment, id=comment_id)
if request.user != comment.user and not request.user.has_perm('usethesource.change_comment'):
raise PermissionDenied
if request.method == 'GET':
form = CommentForm(instance=comment)
else:
form = CommentForm(request.POST, instance=comment)
if form.is_valid():
comment = form.save()
return redirect('usethesource:view_comment', comment_id=comment.id, show_add='false')
return render(request, 'usethesource/edit_comment_form.html', {'form': form, 'comment': comment})
@staff_member_required
def view_comment(request, comment_id, show_add):
show_add = show_add == 'true'
comment = get_object_or_404(Comment, id=comment_id)
return render(request, 'usethesource/returned_comment.html', {'comment': comment, 'candidate': comment.candidate, 'add': show_add})
@staff_member_required
def delete_comment(request, comment_id, show_add):
comment = get_object_or_404(Comment, id=comment_id)
if request.user != comment.user and not request.user.has_perm('usethesource.delete_comment'):
raise PermissionDenied
comment.delete()
show_add = show_add == 'true'
return render(request, 'usethesource/comment_deleted.html', {'comment': None, 'add': show_add})
@staff_member_required
def add_button(request, slug):
candidate = get_object_or_404(Candidate, slug=slug)
return render(request, 'usethesource/add_comment_button_partial.html', {'candidate': candidate})
def ccirt_process(request):
return render(request, 'usethesource/ccirt_process.html', {})
|