def register_view(request): emailUser = None if request.method == "POST": reg = RegistrationStandardForm(request.POST) if reg.is_valid(): u_name = reg.cleaned_data['username'] u_email = reg.cleaned_data['email'] u_password = reg.cleaned_data['password'] u_gender = reg.cleaned_data['gender'] u_newsletter = reg.cleaned_data['newsletter'] u = User.objects.create_user(u_name, u_email, u_password) u.is_active = False # Como default no activamos # Generamos una llave de activacion para enviarle a su correo. u.save() # Guardamos al usuario signer = Signer() salt = signer.sign(u.username) activation_key = salt now = datetime.datetime.utcnow().replace(tzinfo=utc) #Obtenemos la fecha actual según la zona horariaa key_expires = now + datetime.timedelta(2) # Creamos una fecha de expiracion por 3 dias p = userProfile() p.user = u # ligamos al usuario p.gender = u_gender p.activationKey = activation_key p.keyExpires = key_expires p.save() # Guardamos el perfil del Usuario. #Enviamos email de confirmacion. if u_newsletter: n = newsletter() n.usuario = u n.save() emailUser = u.email subject = 'Bienvenido a InfoSalud' from_email = '*****@*****.**' to = emailUser text_content = '' html_content = '<p>Estamos muy contentos de que te encuentres con <strong> Nosotros !!!</strong></p><br>Tu Nombre de usuario es: %s <br><br> Para activar tu cuenta por favor haz clic <a href="%s/cuenta/confirmar/%s/%s/">en este link</a> <br><br><h3> Esta cuenta debera ser confirmada en un lapso no mayor de 48 horas.</h3><h3>Atentamente: <strong>El equipo de InfoSalud.</strong></h3>'%(u.username,settings.URL_SERVER,u.username,p.activationKey) msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) msg.attach_alternative(html_content, "text/html") msg.send() mensaje = '<h2>Estimado: %s </h2><br/><h3>Hemos enviado un correo a: %s </h3>para que nos confirmes tu cuenta.<br><p> Esta cuenta deberá ser activada en las próximas 48 horas</p><br/><p> de lo contrario la solicitud será cancelada.</p><br/>InfoSalud Team.' ctx = {'mensaje':mensaje,'tipo':'exito'} return render_to_response('security/sendEmailConfirm.html',context_instance=RequestContext(request)) else: form = LoginForm() ctx = {'form':form,'register_form':reg,'errores':'hubo errores en la validacion de los campos, revisa el correo eelectronico y usuario.'} return render_to_response('security/loginStandard.html',ctx,context_instance=RequestContext(request)) else: # is get form = RegistrationStandardForm(initial={'newsletter':True}) reg = RegistrationStandardForm() form = LoginForm() ctx = {'form':form,'register_form':reg,'email':emailUser} return render_to_response('security/loginStandard.html',ctx,context_instance=RequestContext(request))
perfil_usuario = [] if usuario.is_active: if request.method == "GET": noticias = noticia.objects.all().order_by('-id')[:4] form = edit_newsletter(initial={ 'newsletter':newslett }) ctx = {"dato_user":usuario,'perfil':perfil_usuario,'yo':yo,'form':form,'subscrito':newslett,'id_usuario':my_id,'noticias':noticias} return render_to_response('perfiles/usuario/perfil.html',ctx,context_instance=RequestContext(request)) else: form = edit_newsletter(request.POST) if form.is_valid(): news = form.cleaned_data['newsletter'] if news: n = newsletter() n.usuario = usuario n.save() mensaje = "Te has suscrito con éxito a nuestro sistema de notificacion por email." ctx = {"mensaje":mensaje,'tipo':"exito"} return render_to_response('mensajes/mensajes.html',ctx,context_instance=RequestContext(request)) else: n = newsletter.objects.get(usuario_id=my_id).delete() mensaje = "Has eliminado la suscripcion con éxito." ctx = {"mensaje":mensaje,'tipo':"exito"} return render_to_response('mensajes/mensajes.html',ctx,context_instance=RequestContext(request)) else: ctx = {"dato_user":usuario,'perfil':perfil_usuario,'yo':yo,'form':form,'subscrito':newslett,'id_usuario':my_id} return render_to_response('perfiles/usuario/perfil.html',ctx,context_instance=RequestContext(request)) else: mensaje = "Aun no has activado tu perfil, revisa la bandeja de entrada del correo electronico que usaste al registrarte en InfoSalud."