diff options
author | adityacp | 2017-04-07 15:52:53 +0530 |
---|---|---|
committer | adityacp | 2017-04-07 16:12:36 +0530 |
commit | 5938bbf5d6510dcb51096a7e943a2e2208d06b7b (patch) | |
tree | 9e0a49ef3fcdabed60ba9cffd9c27678ddfdb50e /yaksh/forms.py | |
parent | ad73f7b938b7620ab4be202dc33c699cf5cb4ac5 (diff) | |
download | online_test-5938bbf5d6510dcb51096a7e943a2e2208d06b7b.tar.gz online_test-5938bbf5d6510dcb51096a7e943a2e2208d06b7b.tar.bz2 online_test-5938bbf5d6510dcb51096a7e943a2e2208d06b7b.zip |
Change in forms, models, urls, views
- Add is_email_expired, activation_key, key_expiry_time in Profile model
- Add new functions activate_user and new_activation in views for verifying and activating user via email
- Change user_login and user_register functions in views for email verification
- Change in forms.py to verify email during registration
- Add activation urls in urls.py
Diffstat (limited to 'yaksh/forms.py')
-rw-r--r-- | yaksh/forms.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/yaksh/forms.py b/yaksh/forms.py index f7f7a10..ac4e1b0 100644 --- a/yaksh/forms.py +++ b/yaksh/forms.py @@ -5,7 +5,7 @@ from yaksh.models import get_model_class, Profile, Quiz, Question, TestCase, Cou from django.contrib.auth import authenticate from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType - +from django.conf import settings from taggit.managers import TaggableManager from taggit.forms import TagField from django.forms.models import inlineformset_factory @@ -18,6 +18,7 @@ except ImportError: from string import punctuation, digits import datetime import pytz +from .email_verification import generate_activation_key languages = ( ("select", "Select Language"), @@ -117,6 +118,12 @@ class UserRegisterForm(forms.Form): return c_pwd + def clean_email(self): + user_email = self.cleaned_data['email'] + if User.objects.filter(email=user_email).exists(): + raise forms.ValidationError("This email already exists") + return user_email + def save(self): u_name = self.cleaned_data["username"] u_name = u_name.lower() @@ -135,9 +142,19 @@ class UserRegisterForm(forms.Form): new_profile.department = cleaned_data["department"] new_profile.position = cleaned_data["position"] new_profile.timezone = cleaned_data["timezone"] + if settings.IS_DEVELOPMENT: + new_profile.is_email_verified = True + new_profile.save() + return u_name, pwd + else: + new_profile.activation_key = generate_activation_key(new_user.username) + new_profile.key_expiry_time = datetime.datetime.strftime( + datetime.datetime.now() + \ + datetime.timedelta(minutes=20), + "%Y-%m-%d %H:%M:%S" + ) new_profile.save() - - return u_name, pwd + return new_user.email, new_profile.activation_key class UserLoginForm(forms.Form): @@ -307,4 +324,3 @@ class QuestionPaperForm(forms.ModelForm): class Meta: model = QuestionPaper fields = ['shuffle_questions'] - |