def edit_profile(request): """Edit user profile view.""" # Don't user request.user user = User.objects.get(pk=request.user.id) profile = user.userprofile user_groups = stringify_groups(profile.groups.all().order_by('name')) user_skills = stringify_groups(profile.skills.all().order_by('name')) user_languages = stringify_groups(profile.languages.all().order_by('name')) user_form = forms.UserForm(request.POST or None, instance=user) AccountsFormset = inlineformset_factory(UserProfile, ExternalAccount, extra=1) accounts_formset = AccountsFormset(request.POST or None, instance=profile) new_profile = False form = forms.ProfileForm if not profile.is_complete: new_profile = True form = forms.RegisterForm profile_form = form(request.POST or None, request.FILES or None, instance=profile, locale=request.locale, initial=dict(groups=user_groups, skills=user_skills, languages=user_languages)) email_form = forms.EmailForm(request.POST or None, initial={'email': request.user.email, 'user_id': request.user.id}) if (user_form.is_valid() and profile_form.is_valid() and accounts_formset.is_valid() and email_form.is_valid()): old_username = request.user.username user_form.save() profile_form.save() accounts_formset.save() # Notify the user that their old profile URL won't work. if new_profile: update_invites(request) messages.info(request, _(u'Your account has been created.')) elif user.username != old_username: messages.info(request, _(u'You changed your username; please note your ' 'profile URL has also changed.')) if email_form.email_changed(): return render(request, 'phonebook/verify_email.html', {'email': email_form.cleaned_data['email']}) return redirect('phonebook:profile_view', user.username) data = dict(profile_form=profile_form, user_form=user_form, accounts_formset = accounts_formset, email_form = email_form, user_groups=user_groups, my_vouches=UserProfile.objects.filter(vouched_by=profile), profile=request.user.userprofile, apps=user.apiapp_set.filter(is_active=True)) # If there are form errors, don't send a 200 OK. status = 400 if (profile_form.errors or user_form.errors) else 200 return render(request, 'phonebook/edit_profile.html', data, status=status)
def register(request): """Registers Users. Pulls out an invite code if it exists and auto validates the user if so. Single-purpose view. """ # TODO already vouched users can be re-vouched? if 'code' in request.GET: request.session['invite-code'] = request.GET['code'] if (request.user.is_authenticated() and not request.user.userprofile.is_vouched): update_invites(request) return redirect('phonebook:home')
def register(request): """Registers Users. Pulls out an invite code if it exists and auto validates the user if so. Single-purpose view. """ # TODO already vouched users can be re-vouched? if 'code' in request.GET: request.session['invite-code'] = request.GET['code'] if request.user.is_authenticated(): if not request.user.userprofile.is_vouched: update_invites(request) else: messages.info(request, _("You've been invited to join Mozillians.org! " "Sign in and then you can create a profile.")) return redirect('phonebook:home')
def register(request): """Registers Users. Pulls out an invite code if it exists and auto validates the user if so. Single-purpose view. """ # TODO already vouched users can be re-vouched? if 'code' in request.GET: request.session['invite-code'] = request.GET['code'] if request.user.is_authenticated(): if not request.user.userprofile.is_vouched: update_invites(request) else: messages.info(request, _("You've been invited to join Mozillians.org!" "Sign in and then you can create a profile.")) return redirect('phonebook:home')