Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)