from Negocio import controller
import forms, functions
from flask import Flask, render_template, request, redirect, url_for, flash
   
def register(mysql, request):
   registerForm= forms.RegisterForm(request.form)
   if request.method == 'POST' and registerForm.validate():
      return controller.registraUsuario(mysql, request, registerForm)
   return render_template('register.html', form=registerForm)

def Index(mysql, request):
   if request.method=='GET':
      success= request.args.get('success')
      if success==None:
         if controller.usuarioIniciado():
               return redirect(url_for('home'))
         else:
            return render_template('Index.html')
      else:          
         return render_template('Index.html', success=success)
   return render_template('Index.html')
          

def home(mysql, request):
    if request.method== 'POST':
       controller.iniciarSesion(mysql, request)
    if controller.usuarioIniciado() and request.method== 'GET':
       return controller.mostrarRutinas(mysql, request)
    else:
        return redirect(url_for('Index'))

def historial_rutina(mysql, request):
    if controller.usuarioIniciado() and request.method== 'GET':
       return controller.mostrar_historial_rutina(mysql, request)
    else:
        return redirect(url_for('Index'))

def historial_usuario(mysql, request):
    if controller.usuarioIniciado() and request.method== 'GET':
       return controller.mostrar_historial_usuario(mysql, request)
    else:
        return redirect(url_for('Index'))

def perfil(mysql, request):
    if controller.usuarioIniciado and request.method=='GET':
        success= request.args.get('success')
        usuario=controller.datosUsuario(mysql, request)
        imc=functions.IMC(usuario[8], usuario[7])
        m_basal= controller.calcular_metabolismo_basal(mysql, usuario[7], usuario[8])
        return render_template('perfil.html', success=success, usuario=usuario, imc=imc, evaluacion=functions.evaluarIMC(imc), pg=functions.porcentajeGrasa(usuario[5], usuario[9], usuario[10], usuario[7], usuario[11]), m_basal=m_basal )
    else:
        return redirect(url_for('Index'))

def ActualizarPerfil(mysql, request):
   actualize_form= forms.PerfilForm(request.form)
   if request.method == 'POST' and controller.usuarioIniciado:
      if actualize_form.validate():
         return controller.actualizar_perfil(mysql, request)
      else:
         flash("Alguno de los datos es incorrecto")
         return redirect(url_for('actualizar_perfil', success=False))
   else:
      if request.method == 'GET' and controller.usuarioIniciado:
         datos=controller.formulario_perfil(mysql)
         return render_template('actualizar_perfil.html', form=actualize_form, datos=datos)
      return redirect(url_for('perfil'))

def administracionRutinas(mysql, request):
    if controller.usuarioIniciado():
        return render_template('administracion_rutinas.html')
    else:
        return redirect(url_for('Index'))

def crearRutina(mysql, request):
   if request.method =='POST' and controller.usuarioIniciado():
        return controller.agregarRutina(mysql, request)
   else:
      if controller.rutinaIniciada() and controller.usuarioIniciado():
         return controller.rutinaEnCurso(mysql, request)
      if controller.usuarioIniciado():
         return redirect(url_for('adm_rutinas'))
      else:
         return redirect(url_for('Index'))

def registrarEjerciciosRutina(mysql, request):
   if request.method == 'POST':
      return controller.registrarEjerciciosRutina(mysql, request)
   return redirect(url_for('adm_rutinas'))

def modificarRutina(mysql, request):
    if controller.usuarioIniciado():
      rutinas=controller.rutinasUsuario(mysql)
      rutinaEjercicios=controller.rutinaEjercicios(mysql)
      datosEjer=controller.datosEjercicios(mysql)
      return render_template('modify_rutina.html', rutinas=rutinas , ejercicios=datosEjer, rutinaEjer=rutinaEjercicios)
    else:
        return redirect(url_for('Index'))

def registrarModiciaciones(mysql, request):
   if request.method == 'POST':
      return controller.registrarModificaciones(mysql, request)
   return redirect(url_for('adm_rutinas'))

def eliminarRutina(mysql,request):
   if controller.usuarioIniciado():
      rutinas=controller.rutinasUsuario(mysql)
      rutinaEjercicios=controller.rutinaEjercicios(mysql)
      return render_template('delete_rutina.html', rutinas=rutinas , rutinaEjer=rutinaEjercicios)
   else:
      return redirect(url_for('Index'))

def registrarEliminacion(mysql, request):
    if request.method=='POST' and controller.usuarioIniciado():
        return controller.registrarEliminacion(mysql, request)
    else:
        return redirect(url_for('Index'))

def registrarEjercicios(mysql, request):
   if request.method == 'POST':
      return controller.registrarEjercicio(mysql, request)
   return redirect(url_for('ejercicios'))
[((6, 17, 6, 49), 'forms.RegisterForm', 'forms.RegisterForm', ({(6, 36, 6, 48): 'request.form'}, {}), '(request.form)', False, 'import forms, functions\n'), ((9, 10, 9, 61), 'flask.render_template', 'render_template', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((21, 10, 21, 39), 'flask.render_template', 'render_template', ({(21, 26, 21, 38): '"""Index.html"""'}, {}), "('Index.html')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((55, 19, 55, 49), 'forms.PerfilForm', 'forms.PerfilForm', ({(55, 36, 55, 48): 'request.form'}, {}), '(request.form)', False, 'import forms, functions\n'), ((69, 7, 69, 35), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((91, 7, 91, 35), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((105, 6, 105, 34), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((8, 13, 8, 69), 'Negocio.controller.registraUsuario', 'controller.registraUsuario', ({(8, 40, 8, 45): 'mysql', (8, 47, 8, 54): 'request', (8, 56, 8, 68): 'registerForm'}, {}), '(mysql, request, registerForm)', False, 'from Negocio import controller\n'), ((13, 15, 13, 42), 'flask.request.args.get', 'request.args.get', ({(13, 32, 13, 41): '"""success"""'}, {}), "('success')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((26, 7, 26, 47), 'Negocio.controller.iniciarSesion', 'controller.iniciarSesion', ({(26, 32, 26, 37): 'mysql', (26, 39, 26, 46): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((27, 7, 27, 35), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((28, 14, 28, 55), 'Negocio.controller.mostrarRutinas', 'controller.mostrarRutinas', ({(28, 40, 28, 45): 'mysql', (28, 47, 28, 54): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((33, 7, 33, 35), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((34, 14, 34, 65), 'Negocio.controller.mostrar_historial_rutina', 'controller.mostrar_historial_rutina', ({(34, 50, 34, 55): 'mysql', (34, 57, 34, 64): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((39, 7, 39, 35), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((40, 14, 40, 66), 'Negocio.controller.mostrar_historial_usuario', 'controller.mostrar_historial_usuario', ({(40, 51, 40, 56): 'mysql', (40, 58, 40, 65): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((46, 17, 46, 44), 'flask.request.args.get', 'request.args.get', ({(46, 34, 46, 43): '"""success"""'}, {}), "('success')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((47, 16, 47, 55), 'Negocio.controller.datosUsuario', 'controller.datosUsuario', ({(47, 40, 47, 45): 'mysql', (47, 47, 47, 54): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((48, 12, 48, 49), 'functions.IMC', 'functions.IMC', ({(48, 26, 48, 36): 'usuario[8]', (48, 38, 48, 48): 'usuario[7]'}, {}), '(usuario[8], usuario[7])', False, 'import forms, functions\n'), ((49, 17, 49, 85), 'Negocio.controller.calcular_metabolismo_basal', 'controller.calcular_metabolismo_basal', ({(49, 55, 49, 60): 'mysql', (49, 62, 49, 72): 'usuario[7]', (49, 74, 49, 84): 'usuario[8]'}, {}), '(mysql, usuario[7], usuario[8])', False, 'from Negocio import controller\n'), ((70, 15, 70, 61), 'flask.render_template', 'render_template', ({(70, 31, 70, 60): '"""administracion_rutinas.html"""'}, {}), "('administracion_rutinas.html')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((75, 34, 75, 62), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((76, 15, 76, 55), 'Negocio.controller.agregarRutina', 'controller.agregarRutina', ({(76, 40, 76, 45): 'mysql', (76, 47, 76, 54): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((80, 9, 80, 37), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((87, 13, 87, 65), 'Negocio.controller.registrarEjerciciosRutina', 'controller.registrarEjerciciosRutina', ({(87, 50, 87, 55): 'mysql', (87, 57, 87, 64): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((88, 19, 88, 41), 'flask.url_for', 'url_for', ({(88, 27, 88, 40): '"""adm_rutinas"""'}, {}), "('adm_rutinas')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((92, 14, 92, 46), 'Negocio.controller.rutinasUsuario', 'controller.rutinasUsuario', ({(92, 40, 92, 45): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((93, 23, 93, 57), 'Negocio.controller.rutinaEjercicios', 'controller.rutinaEjercicios', ({(93, 51, 93, 56): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((94, 16, 94, 49), 'Negocio.controller.datosEjercicios', 'controller.datosEjercicios', ({(94, 43, 94, 48): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((95, 13, 95, 119), 'flask.render_template', 'render_template', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((101, 13, 101, 63), 'Negocio.controller.registrarModificaciones', 'controller.registrarModificaciones', ({(101, 48, 101, 53): 'mysql', (101, 55, 101, 62): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((102, 19, 102, 41), 'flask.url_for', 'url_for', ({(102, 27, 102, 40): '"""adm_rutinas"""'}, {}), "('adm_rutinas')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((106, 14, 106, 46), 'Negocio.controller.rutinasUsuario', 'controller.rutinasUsuario', ({(106, 40, 106, 45): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((107, 23, 107, 57), 'Negocio.controller.rutinaEjercicios', 'controller.rutinaEjercicios', ({(107, 51, 107, 56): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((108, 13, 108, 97), 'flask.render_template', 'render_template', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((113, 34, 113, 62), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((114, 15, 114, 62), 'Negocio.controller.registrarEliminacion', 'controller.registrarEliminacion', ({(114, 47, 114, 52): 'mysql', (114, 54, 114, 61): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((120, 13, 120, 58), 'Negocio.controller.registrarEjercicio', 'controller.registrarEjercicio', ({(120, 43, 120, 48): 'mysql', (120, 50, 120, 57): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((121, 19, 121, 40), 'flask.url_for', 'url_for', ({(121, 27, 121, 39): '"""ejercicios"""'}, {}), "('ejercicios')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((15, 12, 15, 40), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((20, 16, 20, 62), 'flask.render_template', 'render_template', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((30, 24, 30, 40), 'flask.url_for', 'url_for', ({(30, 32, 30, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((36, 24, 36, 40), 'flask.url_for', 'url_for', ({(36, 32, 36, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((42, 24, 42, 40), 'flask.url_for', 'url_for', ({(42, 32, 42, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((52, 24, 52, 40), 'flask.url_for', 'url_for', ({(52, 32, 52, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((58, 16, 58, 60), 'Negocio.controller.actualizar_perfil', 'controller.actualizar_perfil', ({(58, 45, 58, 50): 'mysql', (58, 52, 58, 59): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((60, 9, 60, 51), 'flask.flash', 'flash', ({(60, 15, 60, 50): '"""Alguno de los datos es incorrecto"""'}, {}), "('Alguno de los datos es incorrecto')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((64, 15, 64, 50), 'Negocio.controller.formulario_perfil', 'controller.formulario_perfil', ({(64, 44, 64, 49): 'mysql'}, {}), '(mysql)', False, 'from Negocio import controller\n'), ((65, 16, 65, 91), 'flask.render_template', 'render_template', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((66, 22, 66, 39), 'flask.url_for', 'url_for', ({(66, 30, 66, 38): '"""perfil"""'}, {}), "('perfil')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((72, 24, 72, 40), 'flask.url_for', 'url_for', ({(72, 32, 72, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((78, 9, 78, 36), 'Negocio.controller.rutinaIniciada', 'controller.rutinaIniciada', ({}, {}), '()', False, 'from Negocio import controller\n'), ((78, 41, 78, 69), 'Negocio.controller.usuarioIniciado', 'controller.usuarioIniciado', ({}, {}), '()', False, 'from Negocio import controller\n'), ((79, 16, 79, 56), 'Negocio.controller.rutinaEnCurso', 'controller.rutinaEnCurso', ({(79, 41, 79, 46): 'mysql', (79, 48, 79, 55): 'request'}, {}), '(mysql, request)', False, 'from Negocio import controller\n'), ((97, 24, 97, 40), 'flask.url_for', 'url_for', ({(97, 32, 97, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((110, 22, 110, 38), 'flask.url_for', 'url_for', ({(110, 30, 110, 37): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((116, 24, 116, 40), 'flask.url_for', 'url_for', ({(116, 32, 116, 39): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((18, 19, 18, 48), 'flask.render_template', 'render_template', ({(18, 35, 18, 47): '"""Index.html"""'}, {}), "('Index.html')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((50, 100, 50, 125), 'functions.evaluarIMC', 'functions.evaluarIMC', ({(50, 121, 50, 124): 'imc'}, {}), '(imc)', False, 'import forms, functions\n'), ((50, 130, 50, 217), 'functions.porcentajeGrasa', 'functions.porcentajeGrasa', ({(50, 156, 50, 166): 'usuario[5]', (50, 168, 50, 178): 'usuario[9]', (50, 180, 50, 191): 'usuario[10]', (50, 193, 50, 203): 'usuario[7]', (50, 205, 50, 216): 'usuario[11]'}, {}), '(usuario[5], usuario[9], usuario[10], usuario[7],\n    usuario[11])', False, 'import forms, functions\n'), ((61, 25, 61, 68), 'flask.url_for', 'url_for', (), '', False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((81, 25, 81, 47), 'flask.url_for', 'url_for', ({(81, 33, 81, 46): '"""adm_rutinas"""'}, {}), "('adm_rutinas')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((83, 25, 83, 41), 'flask.url_for', 'url_for', ({(83, 33, 83, 40): '"""Index"""'}, {}), "('Index')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n'), ((16, 31, 16, 46), 'flask.url_for', 'url_for', ({(16, 39, 16, 45): '"""home"""'}, {}), "('home')", False, 'from flask import Flask, render_template, request, redirect, url_for, flash\n')]