website/www/assignment/views.py
Ben Sturmfels 531a97a3c9
Eliminate "conservancy" and "apps" subdirectories
The directory nesting is unnecessary here and confusing to navigate. I've moved
all apps to the project subdirectory, currently called "www", but soon to be
renamed "conservancy".

I've also moved manage.py to the top-level directory.
2023-10-25 12:36:39 +11:00

40 lines
1.5 KiB
Python

from django.core.mail import send_mail
from django.urls import reverse_lazy
from django.views.generic import DetailView
from django.views.generic.edit import CreateView
from .forms import AssignmentForm
from .models import Assignment
class AssignmentCreateView(CreateView):
"""Show a form for the initial copyright assignment."""
form_class = AssignmentForm
template_name = 'assignment/assignment_form.html'
def form_valid(self, form):
intro = 'The following copyright assignment has been submitted:\n\n'
body = intro + '\n'.join(['{}: {}'.format(k, v) for k, v in form.cleaned_data.items() if k != 'agreement_terms'])
send_mail(
'Copyright assignment form: {}'.format(form.cleaned_data['full_name']),
body,
'copyright-assignment@sfconservancy.org',
['copyright-assignment@sfconservancy.org', 'copyright-agent@sfconservancy.org'],
)
return super().form_valid(form)
def get_success_url(self, *args, **kwargs):
return reverse_lazy('assignment-thanks', kwargs={'pk': str(self.object.uuid)})
class AssignmentThanksView(DetailView):
model = Assignment
template_name = 'assignment/thanks.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = AssignmentForm(instance=self.object)
for _, field in context['form'].fields.items():
field.widget.attrs['disabled'] = 'disabled'
return context