1
0
mirror of https://github.com/ae-utbm/sith.git synced 2025-05-16 14:34:04 +00:00

Merge branch 'formulaire_cotisation' into 'master'

subscriptions: add date_of_birth for new users created in subscription form

See merge request 
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
subscription
templates/subscription
views.py

@ -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> {{

@ -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!