src/core/forms.py
changeset 91 3bbf7371378a
child 334 169b7cfd1f58
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/forms.py	Mon Aug 19 12:12:17 2013 +0200
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Aug 1, 2013
+
+@author: ymh
+'''
+from django.conf import settings
+from django.contrib.auth import get_user_model
+from django.contrib.auth.forms import (UserChangeForm as AuthUserChangeForm, 
+    UserCreationForm as AuthUserCreationForm)
+from django.core.exceptions import ValidationError
+from django.forms.fields import ChoiceField
+from django.utils.translation import ugettext as _
+
+
+User = get_user_model()
+
+class UserCreationform(AuthUserCreationForm):
+    class Meta:
+        model = User
+        
+    def clean_username(self):
+        # Since User.username is unique, this check is redundant,
+        # but it sets a nicer error message than the ORM. See #13147.
+        username = self.cleaned_data["username"]
+        try:
+            User.objects.get(username=username)
+        except User.DoesNotExist:
+            return username
+        raise ValidationError(self.error_messages['duplicate_username'])    
+    
+
+class UserChangeForm(AuthUserChangeForm):
+    language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
+    class Meta:
+        model = User