Esempio n. 1
0
def form(request):
	form = ProfileForm(auto_id='%s')
	
	if request.POST:
		form = ProfileForm(auto_id='%s', data=request.POST)
		
		if(form.is_valid()):
			# create DISABLED user
			user = User.objects.create_user(form.cleaned_data['username'], form.cleaned_data['email'], '')
			
			user.first_name = form.cleaned_data.get('first_name')
			user.last_name  = form.cleaned_data.get('last_name')
			
			user.is_active  = 0
			
			user.save()
			
			# populate user's profile
			Profile.objects.create(
				user       = user,
				auth_type  = 'local',
				sur_name   = form.cleaned_data.get('sur_name')
			)
			
			# prepare activation code
			md5hash = hashlib.md5()
			md5hash.update(str(user.id+int(random.random()*50)))
			
			Activation.objects.create(
				user  = user,
				type  = 'email',
				value = form.cleaned_data['email'],
				code  = md5hash.hexdigest()
			)
			
			# send HTML email to newly registered user
			user.get_profile().send_email(
				'Активация учетной записи на портале mamochkam.com',
				ACTIVATION_MESSAGE['text'](md5hash.hexdigest()),
				ACTIVATION_MESSAGE['html'](md5hash.hexdigest())
			)
				
			return render_to_response('user/register/thanx.html', {
				'email': user.email
			}, context_instance=RequestContext(request))
	
	return render_to_response(
		'user/register/form.html',
		{'form': form},
		context_instance=RequestContext(request)
	)
Esempio n. 2
0
def form(request):
	profile = Profile.objects.get(user=request.user)
	
	form = ProfileForm(auto_id='%s', initial={
		'id'        : request.user.id,
		'username'  : request.user.username,
		'email'     : request.user.email,
		'avatar'    : profile.avatar,
		
		'first_name': request.user.first_name,
		'sur_name'  : profile.sur_name,
		'last_name' : request.user.last_name,
		
		'gender'    : profile.gender,
		'birthdate' : profile.birthdate,
		
		'phone'     : profile.phone,
		'icq'       : profile.icq,
	})
	
	if request.POST:
		form = ProfileForm(auto_id='%s', data=request.POST, files=request.FILES)
		
		if(form.is_valid()):	
			# update user info and profile
			User.objects.filter(id=request.user.id).update(
				username   = form.cleaned_data.get('username'),
				email      = form.cleaned_data.get('email'),
				first_name = form.cleaned_data.get('first_name'),
				last_name  = form.cleaned_data.get('last_name')
			)
			
			Profile.objects.filter(id=request.user.get_profile().id).update(
				user      = request.user,
				avatar    = request.FILES and 'upload/avatars/'+str(request.user.id) or '',
				sur_name  = form.cleaned_data.get('sur_name'),
				gender    = form.cleaned_data.get('gender'),
				birthdate = form.cleaned_data.get('birthdate'),
				phone     = form.cleaned_data.get('phone'),
				icq       = form.cleaned_data.get('icq')
			)
			
			# resize and save uploaded avatar
			if request.FILES:
				filename = settings.UPLOAD_ROOT+'avatars/'+str(request.user.id)
				
				avatar = open(filename,'wb+')
				for chunk in request.FILES['avatar'].chunks(): avatar.write(chunk)
				avatar.close()
				
				image = Image.open(filename)
				
				if image.mode not in ('L', 'RGB'):
					image = image.convert('RGB')
				
				image.thumbnail((70, 70), Image.ANTIALIAS)
				image.save(filename, image.format)
				
				Profile.objects.filter(id=form.cleaned_data.get('id')).update(
					avatar='upload/avatars/'+str(request.user.id)
				)
			
			profile = Profile.objects.get(user=request.user)
				
	return render_to_response('user/profile.html', {
		'form'   : form,
		'profile': profile,
	}, context_instance=RequestContext(request))