Files
@ 6f3115aee8a9
Branch filter:
Location: symposion_app/symposion/forms.py - annotation
6f3115aee8a9
1.4 KiB
text/x-python
reorder signup fields
current implementation is not work on Django 1.7+
anymore. This modification activate feature
in Django 1.7+ and drop support for Django 1.6 and before.
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
current implementation is not work on Django 1.7+
anymore. This modification activate feature
in Django 1.7+ and drop support for Django 1.6 and before.
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
6f3115aee8a9 6f3115aee8a9 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 36ab6d599ffc d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 6f3115aee8a9 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 6f3115aee8a9 36ab6d599ffc d31953b54450 d31953b54450 d31953b54450 d31953b54450 d31953b54450 36ab6d599ffc 36ab6d599ffc d31953b54450 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 6f3115aee8a9 | from collections import OrderedDict
from django import forms
import account.forms
class SignupForm(account.forms.SignupForm):
first_name = forms.CharField()
last_name = forms.CharField()
email_confirm = forms.EmailField(label="Confirm Email")
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
del self.fields["username"]
key_order = [
"email",
"email_confirm",
"first_name",
"last_name",
"password",
"password_confirm"
]
self.fields = reorder_fields(self.fields, key_order)
def clean_email_confirm(self):
email = self.cleaned_data.get("email")
email_confirm = self.cleaned_data["email_confirm"]
if email:
if email != email_confirm:
raise forms.ValidationError(
"Email address must match previously typed email address")
return email_confirm
def reorder_fields(fields, order):
"""Reorder form fields by order, removing items not in order.
>>> reorder_fields(
... OrderedDict([('a', 1), ('b', 2), ('c', 3)]),
... ['b', 'c', 'a'])
OrderedDict([('b', 2), ('c', 3), ('a', 1)])
"""
for key, v in fields.items():
if key not in order:
del fields[key]
return OrderedDict(sorted(fields.items(), key=lambda k: order.index(k[0])))
|