Ejemplo n.º 1
0
    def modificar_plan(self):
        if request.method == 'GET':
            planes = Plan.all()
            usuario = Usuario.encontrar_por_id(session['id'])
            plan_del_usuario = Plan.encontrar_por_id(usuario['plan_id'])
            return render_template('usuarios/modificar_plan.html',
                                   planes=planes,
                                   id_plan_del_usuario=plan_del_usuario['id'])

        elif request.method == 'POST':
            errores = []
            cantidad_perfiles_del_usuario = Plan.numero_de_perfiles_del_usuario_con_id(
                session['id'])['COUNT(*)']
            plan_nuevo = Plan.encontrar_por_id(request.form['plan_id'])

            if (plan_nuevo['perfiles_max'] >= cantidad_perfiles_del_usuario):
                # Solo entra aca cuando el usuario puede cambiar de plan
                Usuario.modificar_plan_id(session['id'], plan_nuevo['id'])

                usuario = Usuario.encontrar_por_id(session['id'])
                perfiles_creados = Usuario.cantidad_de_perfiles_creados_por_el_usuario_con_id(
                    session['id'])
                plan = Plan.encontrar_por_id(usuario['plan_id'])
                mensaje_de_exito = "Enhorabuena, ¡Su plan fue actualizado con exito!"
                return render_template('usuarios/detalles.html',
                                       usuario=usuario,
                                       plan=plan,
                                       perfiles_creados=perfiles_creados,
                                       mensaje_de_exito=mensaje_de_exito)
            else:
                # Solo entra aca cuando el usuario tiene más perfiles creados de los que permite el plan nuevo.
                # Por lo tanto no se puede cambiar el plan
                planes = Plan.all()
                usuario = Usuario.encontrar_por_id(session['id'])
                plan_del_usuario = Plan.encontrar_por_id(usuario['plan_id'])

                perfiles_a_borrar = abs(plan_nuevo['perfiles_max'] -
                                        cantidad_perfiles_del_usuario)
                errores.append(
                    "El usuario actual excede la cantidad maxima de perfiles permitidos, debera borrar "
                    + str(perfiles_a_borrar) +
                    " perfil/es para poder realizar el cambio.")
                return render_template(
                    'usuarios/modificar_plan.html',
                    planes=planes,
                    id_plan_del_usuario=plan_del_usuario['id'],
                    errores=errores)
Ejemplo n.º 2
0
    def registeruser(self):
        # _firstname = request.form.get('firstname', '')
        # _lastname = request.form.get('lastname', '')
        # _email = request.form.get('email', '')
        # _password = request.form.get('password', '')
        # return sendResponse(authmodel.registerUser(_firstname,_lastname,_email,_password))

        errores = []

        email = request.form["email"]
        if Usuario.existe_usuario_con_email(email):
            errores.append(
                'El email ya esta en uso, por favor seleccione otro.')

        contraseña = request.form["password"]
        # https://kite.com/python/answers/how-to-check-if-a-string-contains-letters-in-python
        tiene_letras = contraseña.lower().islower()
        # https://stackoverflow.com/questions/5188792/how-to-check-a-string-for-specific-characters
        tiene_numeros = '0' in contraseña or '1' in contraseña or '2' in contraseña or '3' in contraseña or '4' in contraseña or '5' in contraseña or '6' in contraseña or '7' in contraseña or '8' in contraseña or '9' in contraseña
        tiene_simbolos = "'" in contraseña or '¿' in contraseña or '?' in contraseña or '¡' in contraseña or '!' in contraseña or '#' in contraseña or '@' in contraseña or '.' in contraseña or '-' in contraseña or '_' in contraseña
        longitud_de_caracteres_valido = (contraseña.__len__() >= 8)
        contraseña_valida = tiene_letras and tiene_numeros and tiene_simbolos and longitud_de_caracteres_valido

        if not contraseña_valida:
            errores.append('Contraseña inválida.')

        # El número de la tarjeta tiene que ser de 16 digitos
        # El pin de la tiene que ser de 3 digitos
        tarjetaNumero_valido = (request.form["tarjetaNumero"].__len__() != 16)
        tarjetaPin_valido = (request.form["tarjetaPin"].__len__() != 3)

        # https://learnandlearn.com/python-programming/python-reference/python-get-current-date
        # Pregunto si la fecha de expiración ingresada para la tarjeta es mayor al día de hoy ...
        # ... con esto compruebo si es válida o no.
        feha_de_hoy = datetime.today()
        tarjetaFechaDeExpiracion = datetime.strptime(
            request.form["tarjetaFechaDeExpiracion"], "%Y-%m-%d")
        if (feha_de_hoy >= tarjetaFechaDeExpiracion
            ) or tarjetaNumero_valido or tarjetaPin_valido:
            errores.append(
                'Los datos proporcionados acerca la tarjeta de crédito no son válidos.'
            )

        if errores:
            # Solo entra aca si el arreglo tiene elementos, osea que hay errores.
            planes = Plan.all()
            usuario = request.form
            return render_template('registrar.html',
                                   planes=planes,
                                   errores=errores,
                                   usuario=usuario)
        else:
            # Solo entra aca si el arreglo esta vacio, esto significa que no hay ...
            # ... errores y el registro se realiza de forma exitosa.
            usuario = Usuario.crear(request.form)
            mensaje_de_exito = "Enhorabuena, ¡Su usuario fue creado con exito!"
            return render_template("login.html",
                                   mensaje_de_exito=mensaje_de_exito)
Ejemplo n.º 3
0
 def register(self):
     planes = Plan.all()
     return render_template('registrar.html', planes=planes)
Ejemplo n.º 4
0
    def crear_perfil(self, id):
        errores = []
        p = []
        user = Usuario.encontrar_por_id(id)
        perfiles = Perfiles.all()
        planes = Plan.all()
        contador = 0
        ok = False
        if user['plan_id'] == 2:
            for perfil in perfiles:  # cuento cuantos perfiles tengo y los guardo en otro arreglo
                if perfil['id_usuario'] == user['id']:
                    contador = contador + 1
                    p.append(perfil)
            print(p)
            if contador < 4:
                if request.method == 'POST':
                    for per in p:
                        if per['nombre'] == request.form["nombre"]:
                            ok = True
                    if ok == True:
                        errores.append(
                            "Ya existe un perfil con el nombre especificado.")

                    else:
                        foto = request.form['foto']
                        nombre = request.form['nombre']
                        Perfiles.crear(
                            dict([('nombre', nombre), ('foto', foto),
                                  ('id_usuario', id)]))
                        return redirect(
                            url_for('ver_perfiles', id=session['id']))
            else:

                flash('Ya no puede agregar mas contactos!!!!!')
            return render_template("/usuarios/crearPerfil.html",
                                   usuario=user,
                                   errores=errores)
            # return redirect(url_for('ver_perfiles', id=session['id'], errores=errores))
        else:
            if user['plan_id'] == 1:
                for perfil in perfiles:
                    if perfil['id_usuario'] == user['id']:
                        contador = contador + 1
                        p.append(perfil)

            if contador < 2:
                if request.method == 'POST':
                    for per in p:
                        if per['nombre'] == request.form["nombre"]:
                            ok = True
                    if ok == True:
                        errores.append(
                            "Ya existe un perfil con el nombre especificado.")

                    else:
                        foto = request.form['foto']
                        nombre = request.form['nombre']
                        Perfiles.crear(
                            dict([('nombre', nombre), ('foto', foto),
                                  ('id_usuario', id)]))
                        return redirect(
                            url_for('ver_perfiles', id=session['id']))
            else:

                flash('Ya no puede agregar mas contactos!!!!!')

            return render_template("/usuarios/crearPerfil.html",
                                   p=p,
                                   usuario=user,
                                   errores=errores)