123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- # coding=utf-8
- from connect import connection, engine, metadata
- import sqlalchemy as db
- from flask import jsonify, redirect, url_for, render_template
- import json
- # import index.py
- from funciones import valida_fecha_2
-
- col1=[{"label":"Razon","type":"text","name":"razon","require":"1"}]
- col1_add=[{"label":"Administrador","type":"list","name":"administradora_id","require":"1"},
- {"label":"Estudiante","type":"list","name":"estudiante_id","require":"1"},
- {"label":"Razon","type":"text","name":"razon","require":"1"}]
- col2=[{"label":"Acciones","type":"text","name":"acciones","require":"1"},
- {"label":"Fecha","type":"datetime-local","name":"fecha","require":"1"}]
- form_order= {"entradas":{"col1":col1,"col2":col2}}
- form_order_add= {"entradas":{"col1":col1_add,"col2":col2}}
- visita_col=["razon", "acciones", 'fecha']
- visita_col_add=["razon", "acciones", 'fecha', 'administradora_id', 'estudiante_id']
-
- def prepara_values_visita(data):
- values_list={}
- for item in visita_col:
- values_list.update({item:data[item]})
- return values_list
-
-
- def prepara_values_visita_add(data):
- values_list={}
- for item in visita_col_add:
- values_list.update({item:data[item]})
- return values_list
-
- # esta funcion se encarga de editar las entradas de visitas
- def edit(data):
- visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
- values_list=prepara_values_visita(data)
- query = db.update(visitas_oficina).values(values_list)
- query = query.where(visitas_oficina.columns.id == data['id'])
- ResultProxy = connection.execute(query,values_list)
-
- return redirect(url_for("formas",perfil='admin', accion="edit", tipo="visitas_oficina", id=data['id']))
-
- # esta funcion se encarga de crear nuevas entradas a las visitas
- def add(data):
- visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
- values_list=prepara_values_visita_add(data)
- query = db.insert(visitas_oficina).values(values_list)
- ResultProxy = connection.execute(query,values_list)
- return redirect(url_for("formas",perfil='admin', accion="add", tipo="visitas_oficina", id=data['id']))
-
-
- def conseguir_lista(tabla):
- values= {}
-
- personas = db.Table(tabla, metadata, autoload=True, autoload_with=engine)
- usuarios = db.Table('usuarios', metadata, autoload=True, autoload_with=engine)
- query = db.select([usuarios.columns.nombres, usuarios.columns.apellidos, usuarios.columns.id])
- query = query.select_from(personas).where(personas.columns.user_id == usuarios.columns.id)
- result = connection.execute(query).fetchall()
-
-
- i = 0
- for persona in result:
- value = {}
- value.update({"name":persona[0] + ' ' + persona[1]})
- value.update({"id":persona[2]})
- values.update({"value"+str(i):value})
- i+=1
-
- return values
-
-
- # cuando se desea add datos de la base de datos, esta funcion
- def add_form():
- i=1
- orden=1
- entradas={}
- for col in form_order_add["entradas"]:
- col_data=[]
- for item in form_order_add["entradas"][col]:
- item.update({"tabindex":orden})
- if(item['label'] == 'Administrador'):
- values = conseguir_lista('administracion')
- item.update({"values":values})
- if(item['label'] == 'Estudiante'):
- values = conseguir_lista('estudiantes')
- item.update({"values":values})
- item.update({"disabled":False})
- orden+=1
- entradas.update({"col"+str(i):col_data})
- i+=1
- data= {"titulo":"Administrador","accion":"Añadir"}
- data.update(form_order_add)
- data.update({"abled":True})
- return jsonify(data)
-
- # cuando se desea editar datos de la base de datos, esta funcion llena los campos con los valores actulaes.
- def edit_form(id, disabled=False):
- visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
- query = db.select([visitas_oficina.columns.razon, visitas_oficina.columns.acciones, visitas_oficina.columns.fecha])
- query = query.select_from(visitas_oficina).where(visitas_oficina.columns.id == id)
- result = connection.execute(query).fetchall()
- if not len(result):
- return False
- for row in result:
- row_as_dict = dict(row)
- i=1
- orden=1
- entradas={}
- for col in form_order["entradas"]:
- col_data=[]
- for item in form_order["entradas"][col]:
- if item["type"]=="select":
- item.update({"value":{"id":row_as_dict[item["name"]]}})
- elif item["type"]=="checkbox":
- item.update({"value":int(row_as_dict[item["name"]])})
- elif item["type"]=="datetime-local":
- item.update({"value":valida_fecha_2(str(row_as_dict[item["name"]]))})
- else:
- item.update({"value":str(row_as_dict[item["name"]])})
- item.update({"tabindex":orden})
- item.update({"disabled":disabled})
- col_data.append(item)
- orden+=1
- entradas.update({"col"+str(i):col_data})
- i+=1
- data= {"titulo":"Visitas Oficina","accion":"Editar"}
- data.update({"entradas":entradas})
- abled=True
- if disabled:
- abled=False
- data.update({"abled":abled})
- return jsonify(data)
|