Merge branch 'formulaire_cotisation' into 'master'

subscriptions: add date_of_birth for new users created in subscription form

See merge request ae/Sith!168
This commit is contained in:
Antoine Bartuccio 2018-10-16 15:01:25 +02:00
commit 9089fe3a6a
2 changed files with 6 additions and 0 deletions

View File

@ -15,6 +15,7 @@
<p>{{ form.first_name.errors }}<label for="{{ form.first_name.name }}">{{ form.first_name.label }}</label> {{ form.first_name }}</p> <p>{{ form.first_name.errors }}<label for="{{ form.first_name.name }}">{{ form.first_name.label }}</label> {{ form.first_name }}</p>
<p>{{ form.last_name.errors }}<label for="{{ form.last_name.name }}">{{ form.last_name.label }}</label> {{ form.last_name }}</p> <p>{{ form.last_name.errors }}<label for="{{ form.last_name.name }}">{{ form.last_name.label }}</label> {{ form.last_name }}</p>
<p>{{ form.email.errors }}<label for="{{ form.email.name }}">{{ form.email.label }}</label> {{ form.email }}</p> <p>{{ form.email.errors }}<label for="{{ form.email.name }}">{{ form.email.label }}</label> {{ form.email }}</p>
<p>{{ form.date_of_birth.errors }}<label for="{{ form.date_of_birth.name }}">{{ form.date_of_birth.label}}</label> {{ form.date_of_birth }}</p>
</div> </div>
<p>{{ form.subscription_type.errors }}<label for="{{ form.subscription_type.name }}">{{ form.subscription_type.label }}</label> {{ form.subscription_type }}</p> <p>{{ form.subscription_type.errors }}<label for="{{ form.subscription_type.name }}">{{ form.subscription_type.label }}</label> {{ form.subscription_type }}</p>
<p>{{ form.payment_method.errors }}<label for="{{ form.payment_method.name }}">{{ form.payment_method.label }}</label> {{ <p>{{ form.payment_method.errors }}<label for="{{ form.payment_method.name }}">{{ form.payment_method.label }}</label> {{

View File

@ -35,6 +35,7 @@ import random
from subscription.models import Subscription from subscription.models import Subscription
from core.views.forms import SelectDateTime from core.views.forms import SelectDateTime
from core.models import User from core.models import User
from core.views.forms import SelectDate
class SelectionDateForm(forms.Form): class SelectionDateForm(forms.Form):
@ -71,6 +72,7 @@ class SubscriptionForm(forms.ModelForm):
max_length=User._meta.get_field("first_name").max_length max_length=User._meta.get_field("first_name").max_length
) )
self.fields["email"] = forms.EmailField() self.fields["email"] = forms.EmailField()
self.fields["date_of_birth"] = forms.DateTimeField(widget=SelectDate)
self.fields.move_to_end("subscription_type") self.fields.move_to_end("subscription_type")
self.fields.move_to_end("payment_method") self.fields.move_to_end("payment_method")
self.fields.move_to_end("location") self.fields.move_to_end("location")
@ -88,6 +90,7 @@ class SubscriptionForm(forms.ModelForm):
and "last_name" not in self.errors.as_data() and "last_name" not in self.errors.as_data()
and "first_name" not in self.errors.as_data() and "first_name" not in self.errors.as_data()
and "email" not in self.errors.as_data() and "email" not in self.errors.as_data()
and "date_of_birth" not in self.errors.as_data()
): ):
self.errors.pop("member", None) self.errors.pop("member", None)
if self.errors: if self.errors:
@ -102,6 +105,7 @@ class SubscriptionForm(forms.ModelForm):
last_name=self.cleaned_data.get("last_name"), last_name=self.cleaned_data.get("last_name"),
first_name=self.cleaned_data.get("first_name"), first_name=self.cleaned_data.get("first_name"),
email=self.cleaned_data.get("email"), email=self.cleaned_data.get("email"),
date_of_birth=self.cleaned_data.get("date_of_birth"),
) )
u.generate_username() u.generate_username()
u.set_password(str(random.randrange(1000000, 10000000))) u.set_password(str(random.randrange(1000000, 10000000)))
@ -111,6 +115,7 @@ class SubscriptionForm(forms.ModelForm):
self.errors.pop("last_name", None) self.errors.pop("last_name", None)
self.errors.pop("first_name", None) self.errors.pop("first_name", None)
self.errors.pop("email", None) self.errors.pop("email", None)
self.errors.pop("date_of_birth", None)
if cleaned_data.get("member") is None: if cleaned_data.get("member") is None:
# This should be handled here, but it is done in the Subscription model's clean method # This should be handled here, but it is done in the Subscription model's clean method
# TODO investigate why! # TODO investigate why!