subscriptions: add date_of_birth for new users created in subscription form

This commit is contained in:
Antoine Bartuccio 2018-10-16 00:44:32 +02:00
parent b2b03e530a
commit e24eb8ce37
Signed by: klmp200
GPG Key ID: E7245548C53F904B
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!