def editUserDetail(request): context = RequestContext(request) # Get current user's details currentUser = User.objects.get(username=request.user.username) currentLabRatUser = LabRatUser.objects.get(user=request.user) currentDemographicSurvey = None if currentLabRatUser.userType=="rat": currentDemographicSurvey = DemographicsSurvey.objects.get(user__user=request.user) user_form = None # Form has been submitted if request.method == 'POST': user_form = EditUserForm(data=request.POST, instance=currentUser ) user_details_form = EditUserDetailsForm(data=request.POST, instance=currentLabRatUser) lab_rat_form = LabRatDetailsForm(data=request.POST, instance=currentDemographicSurvey) if user_details_form.is_valid() and (lab_rat_form.is_valid() or not currentLabRatUser.userType == "rat"): user_details_form.save() user = user_form.save() print user.password currentUser.set_password(user.password) currentUser.save() userDetails = user_details_form.save(commit=False) userDetails.user = user if 'picture' in request.FILES: userDetails.picture = request.FILES['picture'] userDetails.save() if currentLabRatUser.userType == "rat": lab_rat_form.save() return HttpResponseRedirect('/labRatsApp/profile/'+request.user.username) else: #print user_form.errors, user_rat_form.errors, user_details_form.errors print lab_rat_form.errors, user_details_form.errors else: LabUser = LabRatUser.objects.filter(user = request.user)[0] user_form = EditUserForm(instance=currentUser) user_details_form = EditUserDetailsForm(instance=currentLabRatUser) if LabUser.userType == "rat": lab_rat_form = LabRatDetailsForm(instance=currentDemographicSurvey) else: lab_rat_form = None return render_to_response('labRatsApp/settings.html', {'userForm' : user_form, 'userDetailsForm' : user_details_form, 'labRatDetailsForm' : lab_rat_form,'type':'Edit','url':'/labRatsApp/editProfile/'}, context)
def signUp(request): # Discourage logged in users from creating accounts if request.user.is_authenticated(): return HttpResponseRedirect("/labRatsApp/") context = RequestContext(request) registered = False # Form has been submitted if request.method == "POST": userForm = UserForm(data=request.POST) userDetailsForm = UserDetailsForm(data=request.POST) labRatDetailsForm = LabRatDetailsForm(data=request.POST) # Check type of user userHasValidDetails = userDetailsForm.is_valid() isRat = (userDetailsForm.cleaned_data.get('userType') == "rat") # Form data is valid if userForm.is_valid() and userHasValidDetails and ((isRat and labRatDetailsForm.is_valid()) or not isRat ): user = userForm.save() user.set_password(user.password) user.save() userDetails = userDetailsForm.save(commit=False) userDetails.user = user if 'picture' in request.FILES: userDetails.picture = request.FILES['picture'] userDetails.save() if(isRat): labRatDetails = labRatDetailsForm.save(commit=False) labRatDetails.user = userDetails labRatDetails.save() registered = True # Form data is invalid else: print userForm.errors, userDetailsForm.errors, labRatDetailsForm.errors # Form has not been submitted else: userForm = UserForm() userDetailsForm = UserDetailsForm() labRatDetailsForm = LabRatDetailsForm() return render_to_response('labRatsApp/register.html', {'registered': registered, 'userForm': userForm, 'userDetailsForm': userDetailsForm, 'labRatDetailsForm': labRatDetailsForm}, context)