diff --git a/www/conservancy/apps/assignment/views.py b/www/conservancy/apps/assignment/views.py index 4ab306df76a1007f46ff8c7ac75c5ea6b60aea7f..ac4554603db3b13dce79894b73da240378b1682e 100644 --- a/www/conservancy/apps/assignment/views.py +++ b/www/conservancy/apps/assignment/views.py @@ -1,31 +1,39 @@ -from django import forms +from django.core.mail import send_mail from django.urls import reverse_lazy -from django.views.generic import TemplateView +from django.views.generic import DetailView from django.views.generic.edit import CreateView +from .forms import AssignmentForm from .models import Assignment - -class AssignmentForm(forms.ModelForm): - model = Assignment - coverage_from = forms.DateField(required=False) - coverage_to = forms.DateField(required=False) - - class AssignmentCreateView(CreateView): """Show a form for the initial copyright assignment.""" form_class = AssignmentForm - fields = [ - 'full_name', - 'email', - 'place_of_residence', - 'repository', - 'coverage', - 'attestation_of_copyright', - ] - success_url = reverse_lazy('assignment-thanks') - - -class AssignmentThanksView(TemplateView): + 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, + 'ben@sturm.com.au', + ['denver@sfconservancy.org', 'bsturmfels@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