예제 #1
0
파일: decorators.py 프로젝트: REANNZ/djnro
 def wrap(request, *args, **kw):
     user = request.user
     try:
         profile = request.user.userprofile
         if profile.is_social_active is True:
             return function(request, *args, **kw)
         else:
             status = _(
                 "User account <strong>%(username)s</strong> is pending"
                 " activation. Administrators have been notified and will"
                 " activate this account within the next days. <br>If this"
                 " account has remained inactive for a long time contact"
                 " your technical coordinator or %(nroname)s Helpdesk") % {
                 'username': user.username,
                 'nroname': edumanage.views.get_nro_name(request.LANGUAGE_CODE)
                 }
             return render(
                 request,
                 'status.html',
                 {
                     'status': status,
                     'inactive': True
                 },
             )
     except UserProfile.DoesNotExist:
         form = UserProfileForm()
         form.fields['user'] = forms.ModelChoiceField(
             queryset=User.objects.filter(pk=user.pk), empty_label=None
         )
         nomail = False
         if not user.email:
             nomail = True
             form.fields['email'] = forms.CharField()
         else:
             form.fields['email'] = forms.CharField(initial=user.email)
         form.fields['institution'] = forms.ModelChoiceField(
             queryset=Institution.objects.all(),
             empty_label=None
         )
         return render(
             request,
             'registration/select_institution.html',
             {
                 'form': form,
                 'nomail': nomail
             }
         )
예제 #2
0
 def wrap(request, *args, **kw):
     user = request.user
     try:
         profile = request.user.userprofile
         if profile.is_social_active is True:
             return function(request, *args, **kw)
         else:
             status = _(
                 "User account <strong>%s</strong> is pending activation. Administrators have been notified and will activate this account within the next days. <br>If this account has remained inactive for a long time contact your technical coordinator or %s Helpdesk"
             ) % (user.username,
                  edumanage.views.get_nro_name(request.LANGUAGE_CODE))
             return render(
                 request,
                 'status.html',
                 {
                     'status': status,
                     'inactive': True
                 },
             )
     except UserProfile.DoesNotExist:
         form = UserProfileForm()
         form.fields['user'] = forms.ModelChoiceField(
             queryset=User.objects.filter(pk=user.pk), empty_label=None)
         nomail = False
         if not user.email:
             nomail = True
             form.fields['email'] = forms.CharField()
         else:
             form.fields['email'] = forms.CharField(initial=user.email)
         form.fields['institution'] = forms.ModelChoiceField(
             queryset=Institution.objects.all(), empty_label=None)
         return render(request, 'registration/select_institution.html', {
             'form': form,
             'nomail': nomail
         })
예제 #3
0
파일: views.py 프로젝트: br00k/djnro
def activate(request, activation_key):
    account = None
    if request.method == "GET":
        # Normalize before trying anything with it.
        activation_key = activation_key.lower()
        try:
            rp = RegistrationProfile.objects.get(activation_key=activation_key)
        except RegistrationProfile.DoesNotExist:
            return render(
                request, 'registration/activate.html', {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                })
        try:
            user_profile = rp.user.get_profile()
        except UserProfile.DoesNotExist:
            return render(
                request, 'registration/activate.html', {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                })
        form = UserProfileForm(instance=user_profile)
        form.fields['user'] = forms.ModelChoiceField(
            queryset=User.objects.filter(pk=rp.user.pk), empty_label=None)
        form.fields['institution'] = forms.ModelChoiceField(
            queryset=Institution.objects.all(), empty_label=None)
        return render(
            request, 'registration/activate_edit.html', {
                'account': account,
                'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
                'form': form
            })
    if request.method == "POST":
        request_data = request.POST.copy()
        try:
            user = User.objects.get(pk=request_data['user'])
            up = user.get_profile()
            up.institution = Institution.objects.get(
                pk=request_data['institution'])
            up.save()

        except:
            return render(
                request, 'registration/activate_edit.html', {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                })
        # Normalize before trying anything with it.
        activation_key = activation_key.lower()
        try:
            rp = RegistrationProfile.objects.get(activation_key=activation_key)
            account = RegistrationProfile.objects.activate_user(activation_key)
            up.is_social_active = True
            up.save()
            logger.info('Activating user %s' % rp.user.username)
        except Exception as e:
            logger.info('An error occured: %s' % e)
            pass

        if account:
            # A user has been activated
            email = render_to_string('registration/activation_complete.txt', {
                'site': Site.objects.get_current(),
                'user': account
            })
            send_mail(
                _('%sUser account activated') % settings.EMAIL_SUBJECT_PREFIX,
                email, settings.SERVER_EMAIL, account.email.split(';'))
        return render(
            request, 'registration/activate.html', {
                'account': account,
                'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
            })
예제 #4
0
파일: views.py 프로젝트: sergafts/djnro
def activate(request, activation_key):
    account = None
    if request.method == "GET":
        # Normalize before trying anything with it.
        activation_key = activation_key.lower()
        try:
            rp = RegistrationProfile.objects.get(activation_key=activation_key)
        except RegistrationProfile.DoesNotExist:
            return render(
                request,
                'registration/activate.html',
                {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                }
            )
        try:
            user_profile = rp.user.get_profile()
        except UserProfile.DoesNotExist:
            return render(
                request,
                'registration/activate.html',
                {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                }
            )
        form = UserProfileForm(instance=user_profile)
        form.fields['user'] = forms.ModelChoiceField(
            queryset=User.objects.filter(pk=rp.user.pk), empty_label=None
        )
        form.fields['institution'] = forms.ModelChoiceField(
            queryset=Institution.objects.all(), empty_label=None
        )
        return render(
            request,
            'registration/activate_edit.html',
            {
                'account': account,
                'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
                'form': form
            }
        )
    if request.method == "POST":
        request_data = request.POST.copy()
        try:
            user = User.objects.get(pk=request_data['user'])
            up = user.get_profile()
            up.institution = Institution.objects.get(
                pk=request_data['institution']
            )
            up.save()

        except:
            return render(
                request,
                'registration/activate_edit.html',
                {
                    'account': account,
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
                }
            )
        # Normalize before trying anything with it.
        activation_key = activation_key.lower()
        try:
            rp = RegistrationProfile.objects.get(activation_key=activation_key)
            account = RegistrationProfile.objects.activate_user(activation_key)
            up.is_social_active = True
            up.save()
            logger.info('Activating user %s' % rp.user.username)
        except Exception as e:
            logger.info('An error occured: %s' % e)
            pass

        if account:
            # A user has been activated
            email = render_to_string(
                'registration/activation_complete.txt',
                {
                    'site': Site.objects.get_current(),
                    'user': account
                }
            )
            send_mail(
                _('%sUser account activated') % settings.EMAIL_SUBJECT_PREFIX,
                email,
                settings.SERVER_EMAIL,
                account.email.split(';')
            )
        return render(
            request,
            'registration/activate.html',
            {
                'account': account,
                'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
            }
        )