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 } )
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 })
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 })
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 } )