def profile_for_user(request, user): all_fields_are_required = request.GET.get('full', False) if request.method == 'POST': form = forms.UserProfileForm( all_fields_are_required=all_fields_are_required, data=request.POST) if form.is_valid(): form.fill_user_profile(user).save() return shortcuts.redirect('home') else: if hasattr(user, 'profile'): initial_data = {} for field_name in models.UserProfile.get_field_names(): initial_data[field_name] = getattr(user.profile, field_name) else: initial_data = { 'first_name': user.first_name, 'last_name': user.last_name } form = forms.UserProfileForm( all_fields_are_required=all_fields_are_required, initial=initial_data) return shortcuts.render( request, 'users/profile.html', { 'form': form, 'is_creating': not hasattr(user, 'profile'), 'is_confirming': request.GET.get('confirm', False) })
def find_similar_accounts(request): form = forms.UserProfileForm(all_fields_are_required=False, data=request.POST) form.full_clean() users = search_utils.SimilarAccountSearcher( form.fill_user_profile(request.user)).search() return django.http.JsonResponse( {user.id: _render_user_account(user) for user in users})
def register(request): if request.user.is_authenticated: return redirect('catalog:index') if request.method == 'POST': user_form = forms.UserForm(data=request.POST) user_profile_form = forms.UserProfileForm(data=request.POST) if user_form.is_valid() and user_profile_form.is_valid(): username = user_form.cleaned_data.get('username') messages.success( request, f'Congratulations! You are successfully registered as {username}.' ) user = user_form.save() # Password Hashing user.set_password(user.password) user.save() profile = user_profile_form.save(commit=False) # We need to state one to one relation before saving profile.user = user if 'profile_picture' in request.FILES: profile.profile_picture = request.FILES['profile_picture'] profile.save() return redirect('users:login') else: pass else: user_form = forms.UserForm() user_profile_form = forms.UserProfileForm() return render(request, 'users/register.html', { 'user_form': user_form, 'user_profile_form': user_profile_form })
def user_account(request): user = request.user if user.active_organization is None and 'organization_pk' not in request.session: return redirect(reverse('main')) form = forms.UserProfileForm(instance=user) token = Token.objects.get(user=user) if request.method == 'POST': form = forms.UserProfileForm(request.POST, instance=user) if form.is_valid(): form.save() return redirect(reverse('user-account')) return render(request, 'users/user_account.html', { 'settings': settings, 'user': user, 'user_profile_form': form, 'token': token })
def personal(request): if request.method == 'POST': msg = {} old_passwd = request.POST.get('old_passwd') new_password = request.POST.get('new_passwd') user = auth.authenticate(username=request.user.email,password=old_passwd) if user is not None: request.user.set_password(new_password) request.user.save() msg['msg'] = 'Password has been changed!' msg['res'] = 'success' else: msg['msg'] = 'Old password is incorrect!' msg['res'] = 'failed' return HttpResponse(json.dumps(msg)) else: return render(request,'personal.html',{'info_form':forms.UserProfileForm()})
def register(request): """Adds a new user by saving and linking User and UserProfile forms.""" if request.method != 'POST': return render(request, 'register.html') user_form = forms.UserForm(request.POST) profile_form = forms.UserProfileForm(request.POST) if user_form.is_valid() and profile_form.is_valid(): user = user_form.save() user.set_password(user.password) user.save() profile = profile_form.save(commit=False) profile.user = user profile.save() # Log the new user in return login(request)
def register(request): """Returns registration page and adds a new user to database.""" if request.method != 'POST': return render(request, 'register.html') user_form = forms.UserForm(request.POST) profile_form = forms.UserProfileForm(request.POST) if user_form.is_valid() and profile_form.is_valid(): user = user_form.save() user.set_password(user.password) user.save() profile = profile_form.save(commit=False) profile.user = user profile.save() # Log the new user in return login(request)