Fix: models.py [removed depricated section], registration: fix minor bugs in view...
authorYasin <mohammed-yasin.rahman@lip6.fr>
Wed, 25 Sep 2013 10:28:37 +0000 (12:28 +0200)
committerYasin <mohammed-yasin.rahman@lip6.fr>
Wed, 25 Sep 2013 10:28:37 +0000 (12:28 +0200)
portal/models.py
portal/registrationview.py
portal/templates/registration_view.html

index 06cfa54..61feba3 100644 (file)
@@ -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()
index 30a0ed3..d0455da 100644 (file)
@@ -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')
 
index dcc239b..e92503e 100644 (file)
@@ -4,8 +4,8 @@
 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/onelab.css" />
 <!-- xxx ideally only onelab.css but ... xxx -->
 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/registration.css" />
-<script type="text/javascript" src="{{STATIC_URL}}/jquery.validate.js"></script> 
-<script type="text/javascript" src="{{STATIC_URL}}/my_account.register.js"></script>
+<script type="text/javascript" src="{{STATIC_URL}}/js/jquery.validate.js"></script> 
+<script type="text/javascript" src="{{STATIC_URL}}/js/my_account.register.js"></script>
 {% endblock %}                              
                                     
 {% block unfold1_main %}