From dc9ab71d65b375550f28fe68f8d4262bf04863bc Mon Sep 17 00:00:00 2001 From: Yasin Date: Wed, 25 Sep 2013 12:28:37 +0200 Subject: [PATCH] Fix: models.py [removed depricated section], registration: fix minor bugs in view and templates. [jquery.validate.js not working] --- portal/models.py | 243 ------------------------ portal/registrationview.py | 20 +- portal/templates/registration_view.html | 4 +- 3 files changed, 13 insertions(+), 254 deletions(-) diff --git a/portal/models.py b/portal/models.py index 06cfa547..61feba3c 100644 --- a/portal/models.py +++ b/portal/models.py @@ -53,159 +53,6 @@ class Institution(models.Model): name = models.TextField() # list of associated email domains -# code borrowed from django-registration -# https://bitbucket.org/ubernostrum/django-registration/ - -#DEPRECATED -#class RegistrationManager(models.Manager): -# """ -# Custom manager for the ``RegistrationProfile`` model. -# -# The methods defined here provide shortcuts for account creation -# and activation (including generation and emailing of activation -# keys), and for cleaning out expired inactive accounts. -# -# """ -# def activate_user(self, activation_key): -# """ -# Validate an activation key and activate the corresponding -# ``User`` if valid. -# -# If the key is valid and has not expired, return the ``User`` -# after activating. -# -# If the key is not valid or has expired, return ``False``. -# -# If the key is valid but the ``User`` is already active, -# return ``False``. -# -# To prevent reactivation of an account which has been -# deactivated by site administrators, the activation key is -# reset to the string constant ``RegistrationProfile.ACTIVATED`` -# after successful activation. -# -# """ -# # Make sure the key we're trying conforms to the pattern of a -# # SHA1 hash; if it doesn't, no point trying to look it up in -# # the database. -# if SHA1_RE.search(activation_key): -# try: -# profile = self.get(activation_key=activation_key) -# except self.model.DoesNotExist: -# return False -# if not profile.activation_key_expired(): -# user = profile.user -# user.is_active = True -# user.save() -# profile.activation_key = self.model.ACTIVATED -# profile.save() -# return user -# return False -# -# def create_user(self, first_name, last_name, email, password): -# pending_user = self.create(first_name=first_name, last_name=last_name, email=email, password=password) -# return pending_user -# -# def create_inactive_user(self, first_name, last_name, email, password, site, -# send_email=True): -# """ -# Create a new, inactive ``User``, generate a -# ``RegistrationProfile`` and email its activation key to the -# ``User``, returning the new ``User``. -# -# By default, an activation email will be sent to the new -# user. To disable this, pass ``send_email=False``. -# -# """ -# salt = hashlib.sha1(str(random.random())).hexdigest()[:5] -# if isinstance(email, unicode): -# email = email.encode('utf-8') -# activation_key = hashlib.sha1(salt+email).hexdigest() -# -# new_user = PendingUser.objects.create_user(first_name, last_name, email, password) -# new_user.is_active = False -# new_user.activation_key=activation_key -# new_user.save() -# -# # We might not need this -# #registration_profile = self.create_profile(new_user) -# -# if send_email: -# new_user.send_activation_email(site) -# #registration_profile.send_activation_email(site) -# -# return new_user -# create_inactive_user = transaction.commit_on_success(create_inactive_user) -# -# def create_profile(self, user): -# """ -# Create a ``RegistrationProfile`` for a given -# ``User``, and return the ``RegistrationProfile``. -# -# The activation key for the ``RegistrationProfile`` will be a -# SHA1 hash, generated from a combination of the ``User``'s -# username and a random salt. -# -# """ -# salt = hashlib.sha1(str(random.random())).hexdigest()[:5] -# username = user.username -# if isinstance(username, unicode): -# username = username.encode('utf-8') -# activation_key = hashlib.sha1(salt+username).hexdigest() -# return self.create(user=user, -# activation_key=activation_key) -# -# def delete_expired_users(self): -# """ -# Remove expired instances of ``RegistrationProfile`` and their -# associated ``User``s. -# -# Accounts to be deleted are identified by searching for -# instances of ``RegistrationProfile`` with expired activation -# keys, and then checking to see if their associated ``User`` -# instances have the field ``is_active`` set to ``False``; any -# ``User`` who is both inactive and has an expired activation -# key will be deleted. -# -# It is recommended that this method be executed regularly as -# part of your routine site maintenance; this application -# provides a custom management command which will call this -# method, accessible as ``manage.py cleanupregistration``. -# -# Regularly clearing out accounts which have never been -# activated serves two useful purposes: -# -# 1. It alleviates the ocasional need to reset a -# ``RegistrationProfile`` and/or re-send an activation email -# when a user does not receive or does not act upon the -# initial activation email; since the account will be -# deleted, the user will be able to simply re-register and -# receive a new activation key. -# -# 2. It prevents the possibility of a malicious user registering -# one or more accounts and never activating them (thus -# denying the use of those usernames to anyone else); since -# those accounts will be deleted, the usernames will become -# available for use again. -# -# If you have a troublesome ``User`` and wish to disable their -# account while keeping it in the database, simply delete the -# associated ``RegistrationProfile``; an inactive ``User`` which -# does not have an associated ``RegistrationProfile`` will not -# be deleted. -# -# """ -# for profile in self.all(): -# try: -# if profile.activation_key_expired(): -# user = profile.user -# if not user.is_active: -# user.delete() -# profile.delete() -# except User.DoesNotExist: -# profile.delete() -#DEPRECATED - class PendingUser(models.Model): # NOTE We might consider migrating the fields to CharField, which would # simplify form creation in forms.py @@ -218,96 +65,6 @@ class PendingUser(models.Model): # institution authority_hrn = models.TextField() # models.ForeignKey(Institution) -#DEPRECATED -# objects = RegistrationManager() -# -# class Meta: -# verbose_name = _('registration profile') -# verbose_name_plural = _('registration profiles') -# -# def __unicode__(self): -# return u"Registration information for %s" % self.email -# -# def activation_key_expired(self): -# """ -# Determine whether this ``RegistrationProfile``'s activation -# key has expired, returning a boolean -- ``True`` if the key -# has expired. -# -# Key expiration is determined by a two-step process: -# -# 1. If the user has already activated, the key will have been -# reset to the string constant ``ACTIVATED``. Re-activating -# is not permitted, and so this method returns ``True`` in -# this case. -# -# 2. Otherwise, the date the user signed up is incremented by -# the number of days specified in the setting -# ``ACCOUNT_ACTIVATION_DAYS`` (which should be the number of -# days after signup during which a user is allowed to -# activate their account); if the result is less than or -# equal to the current date, the key has expired and this -# method returns ``True``. -# -# """ -# expiration_date = datetime.timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS) -# return self.activation_key == self.ACTIVATED or \ -# (self.user.date_joined + expiration_date <= datetime_now()) -# activation_key_expired.boolean = True -# -# def send_activation_email(self, site): -# """ -# Send an activation email to the user associated with this -# ``RegistrationProfile``. -# -# The activation email will make use of two templates: -# -# ``user_register_email_subject.txt`` -# This template will be used for the subject line of the -# email. Because it is used as the subject line of an email, -# this template's output **must** be only a single line of -# text; output longer than one line will be forcibly joined -# into only a single line. -# -# ``user_register_email.txt`` -# This template will be used for the body of the email. -# -# These templates will each receive the following context -# variables: -# -# ``activation_key`` -# The activation key for the new account. -# -# ``expiration_days`` -# The number of days remaining during which the account may -# be activated. -# -# ``site`` -# An object representing the site on which the user -# registered; depending on whether ``django.contrib.sites`` -# is installed, this may be an instance of either -# ``django.contrib.sites.models.Site`` (if the sites -# application is installed) or -# ``django.contrib.sites.models.RequestSite`` (if -# not). Consult the documentation for the Django sites -# framework for details regarding these objects' interfaces. -# -# """ -# ctx_dict = {'activation_key': self.activation_key, -# 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS, -# 'site': site} -# subject = render_to_string('user_register_email_subject.txt', -# ctx_dict) -# # Email subject *must not* contain newlines -# subject = ''.join(subject.splitlines()) -# -# message = render_to_string('user_register_email.txt', -# ctx_dict) -# -# send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.email]) -#DEPRECATED - - class PendingSlice(models.Model): slice_name = models.TextField() diff --git a/portal/registrationview.py b/portal/registrationview.py index 30a0ed39..d0455daf 100644 --- a/portal/registrationview.py +++ b/portal/registrationview.py @@ -11,6 +11,9 @@ from myslice.viewutils import topmenu_items from manifold.manifoldapi import execute_query from manifold.core.query import Query +from portal.models import PendingUser +from portal.actions import authority_get_pi_emails + # This is a rough porting from views.py # the former function-based view is now made a class # we redefine dispatch as it is simple @@ -102,21 +105,20 @@ class RegistrationView (View): # Send email ctx = { - first_name : reg_fname, - last_name : reg_lname, - #affiliation : reg_aff, - authority_hrn: reg_auth, - email : reg_email, - keypair : keypair, - cc_myself : True # form.cleaned_data['cc_myself'] + 'first_name' : reg_fname, + 'last_name' : reg_lname, + 'authority_hrn': reg_auth, + 'email' : reg_email, + 'keypair' : keypair, + 'cc_myself' : True # form.cleaned_data['cc_myself'] } - recipients = authority_get_pi_emails(authority_hrn) + recipients = authority_get_pi_emails(request,reg_auth) if ctx['cc_myself']: recipients.append(ctx['email']) msg = render_to_string('user_request_email.txt', ctx) - send_mail("Onelab New User request for %s submitted"%email, msg, email, recipients) + send_mail("Onelab New User request for %s submitted"%reg_email, msg, reg_email, recipients) return render(request, 'user_register_complete.html') diff --git a/portal/templates/registration_view.html b/portal/templates/registration_view.html index dcc239b6..e92503e8 100644 --- a/portal/templates/registration_view.html +++ b/portal/templates/registration_view.html @@ -4,8 +4,8 @@ - - + + {% endblock %} {% block unfold1_main %} -- 2.43.0