diff --git a/candidats/forms.py b/candidats/forms.py new file mode 100644 index 0000000..9057cf8 --- /dev/null +++ b/candidats/forms.py @@ -0,0 +1,10 @@ +from django import forms + + +class EmailBaseForm(forms.Form): + id_candidate = forms.CharField(widget=forms.HiddenInput()) + sender = forms.CharField(widget=forms.HiddenInput()) + to = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) + cci = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) + subject = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) + message = forms.CharField(widget=forms.Textarea(attrs={'rows': 25, 'cols': 120})) diff --git a/candidats/views.py b/candidats/views.py index f123c5f..2fa2d34 100644 --- a/candidats/views.py +++ b/candidats/views.py @@ -1,4 +1,3 @@ -from django import forms from django.conf import settings from django.contrib import messages from django.core.mail import EmailMessage @@ -7,26 +6,17 @@ from django.urls import reverse_lazy from django.utils import timezone from django.views.generic import FormView +from candidats.forms import EmailBaseForm from candidats.models import Candidate -class ConvocationForm(forms.Form): - id_candidate = forms.CharField(widget=forms.HiddenInput()) - sender = forms.CharField(widget=forms.HiddenInput()) - to = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) - cci = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) - subject = forms.CharField(widget=forms.TextInput(attrs={'size': '60'})) - message = forms.CharField(widget=forms.Textarea(attrs={'rows': 25, 'cols': 120})) - - class SendConvocationView(FormView): - template_name = 'candidats/convocation.html' - form_class = ConvocationForm + template_name = 'email_base.html' + form_class = EmailBaseForm success_url = reverse_lazy('admin:candidats_candidate_changelist') - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - + def get_initial(self): + initial = super().get_initial() candidate = Candidate.objects.get(pk=self.kwargs['pk']) # Define required documents depending on candidate diploma common_docs = [ @@ -59,7 +49,7 @@ class SendConvocationView(FormView): 'sender_email': self.request.user.email, } - form = ConvocationForm(initial={ + initial.update({ 'id_candidate': candidate.pk, 'cci': self.request.user.email, 'to': candidate.email, @@ -67,9 +57,13 @@ class SendConvocationView(FormView): 'message': loader.render_to_string('email/candidate_convocation_EDE.txt', msg_context), 'sender': self.request.user.email, }) + return initial + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) context.update({ - 'candidat': candidate, - 'form': form, + 'candidat': Candidate.objects.get(pk=self.kwargs['pk']), + 'title': "Convocation aux examens d'admission EDE", }) return context diff --git a/templates/candidats/convocation.html b/templates/email_base.html similarity index 77% rename from templates/candidats/convocation.html rename to templates/email_base.html index 17a5eed..d0602da 100644 --- a/templates/candidats/convocation.html +++ b/templates/email_base.html @@ -4,13 +4,13 @@ {% block breadcrumbs %} {% endblock %} {% block content %}

{{ candidat }}

-
{% csrf_token %} +{% csrf_token %} {{ form.as_table }}