Example #1
0
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))
Example #2
0
     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."