暂无描述

visitas_oficina.py 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # coding=utf-8
  2. from connect import connection, engine, metadata
  3. import sqlalchemy as db
  4. from flask import jsonify, redirect, url_for, render_template
  5. import json
  6. # import index.py
  7. from funciones import valida_fecha_2
  8. col1=[{"label":"Razon","type":"text","name":"razon","require":"1"}]
  9. col1_add=[{"label":"Administrador","type":"list","name":"administradora_id","require":"1"},
  10. {"label":"Estudiante","type":"list","name":"estudiante_id","require":"1"},
  11. {"label":"Razon","type":"text","name":"razon","require":"1"}]
  12. col2=[{"label":"Acciones","type":"text","name":"acciones","require":"1"},
  13. {"label":"Fecha","type":"datetime-local","name":"fecha","require":"1"}]
  14. form_order= {"entradas":{"col1":col1,"col2":col2}}
  15. form_order_add= {"entradas":{"col1":col1_add,"col2":col2}}
  16. visita_col=["razon", "acciones", 'fecha']
  17. visita_col_add=["razon", "acciones", 'fecha', 'administradora_id', 'estudiante_id']
  18. def prepara_values_visita(data):
  19. values_list={}
  20. for item in visita_col:
  21. values_list.update({item:data[item]})
  22. return values_list
  23. def prepara_values_visita_add(data):
  24. values_list={}
  25. for item in visita_col_add:
  26. values_list.update({item:data[item]})
  27. return values_list
  28. # esta funcion se encarga de editar las entradas de visitas
  29. def edit(data):
  30. visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
  31. values_list=prepara_values_visita(data)
  32. query = db.update(visitas_oficina).values(values_list)
  33. query = query.where(visitas_oficina.columns.id == data['id'])
  34. ResultProxy = connection.execute(query,values_list)
  35. return redirect(url_for("formas",perfil='admin', accion="edit", tipo="visitas_oficina", id=data['id']))
  36. # esta funcion se encarga de crear nuevas entradas a las visitas
  37. def add(data):
  38. visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
  39. values_list=prepara_values_visita_add(data)
  40. query = db.insert(visitas_oficina).values(values_list)
  41. ResultProxy = connection.execute(query,values_list)
  42. return redirect(url_for("formas",perfil='admin', accion="add", tipo="visitas_oficina", id=data['id']))
  43. def conseguir_lista(tabla):
  44. values= {}
  45. personas = db.Table(tabla, metadata, autoload=True, autoload_with=engine)
  46. usuarios = db.Table('usuarios', metadata, autoload=True, autoload_with=engine)
  47. query = db.select([usuarios.columns.nombres, usuarios.columns.apellidos, usuarios.columns.id])
  48. query = query.select_from(personas).where(personas.columns.user_id == usuarios.columns.id)
  49. result = connection.execute(query).fetchall()
  50. i = 0
  51. for persona in result:
  52. value = {}
  53. value.update({"name":persona[0] + ' ' + persona[1]})
  54. value.update({"id":persona[2]})
  55. values.update({"value"+str(i):value})
  56. i+=1
  57. return values
  58. # cuando se desea add datos de la base de datos, esta funcion
  59. def add_form():
  60. i=1
  61. orden=1
  62. entradas={}
  63. for col in form_order_add["entradas"]:
  64. col_data=[]
  65. for item in form_order_add["entradas"][col]:
  66. item.update({"tabindex":orden})
  67. if(item['label'] == 'Administrador'):
  68. values = conseguir_lista('administracion')
  69. item.update({"values":values})
  70. if(item['label'] == 'Estudiante'):
  71. values = conseguir_lista('estudiantes')
  72. item.update({"values":values})
  73. item.update({"disabled":False})
  74. orden+=1
  75. entradas.update({"col"+str(i):col_data})
  76. i+=1
  77. data= {"titulo":"Administrador","accion":"Añadir"}
  78. data.update(form_order_add)
  79. data.update({"abled":True})
  80. return jsonify(data)
  81. # cuando se desea editar datos de la base de datos, esta funcion llena los campos con los valores actulaes.
  82. def edit_form(id, disabled=False):
  83. visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
  84. query = db.select([visitas_oficina.columns.razon, visitas_oficina.columns.acciones, visitas_oficina.columns.fecha])
  85. query = query.select_from(visitas_oficina).where(visitas_oficina.columns.id == id)
  86. result = connection.execute(query).fetchall()
  87. if not len(result):
  88. return False
  89. for row in result:
  90. row_as_dict = dict(row)
  91. i=1
  92. orden=1
  93. entradas={}
  94. for col in form_order["entradas"]:
  95. col_data=[]
  96. for item in form_order["entradas"][col]:
  97. if item["type"]=="select":
  98. item.update({"value":{"id":row_as_dict[item["name"]]}})
  99. elif item["type"]=="checkbox":
  100. item.update({"value":int(row_as_dict[item["name"]])})
  101. elif item["type"]=="datetime-local":
  102. item.update({"value":valida_fecha_2(str(row_as_dict[item["name"]]))})
  103. else:
  104. item.update({"value":str(row_as_dict[item["name"]])})
  105. item.update({"tabindex":orden})
  106. item.update({"disabled":disabled})
  107. col_data.append(item)
  108. orden+=1
  109. entradas.update({"col"+str(i):col_data})
  110. i+=1
  111. data= {"titulo":"Visitas Oficina","accion":"Editar"}
  112. data.update({"entradas":entradas})
  113. abled=True
  114. if disabled:
  115. abled=False
  116. data.update({"abled":abled})
  117. return jsonify(data)