Nessuna descrizione

visitas_enfermeria.py 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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":"Enfermera","type":"list","name":"enfermera_id","enfermera":"1"},
  10. {"label":"Estudiante","type":"list","name":"estudiante_id","estudiante":"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', 'enfermera_id', 'estudiante_id']
  18. def prepara_values_visita(data):
  19. values_list={}
  20. for item in visita_col:
  21. if item=="datetime-local":
  22. values_list.update({item:valida_fecha_2(data[item])})
  23. else:
  24. values_list.update({item:data[item]})
  25. return values_list
  26. def prepara_values_visita_add(data):
  27. values_list={}
  28. for item in visita_col_add:
  29. if item=="datetime-local":
  30. values_list.update({item:valida_fecha_2(data[item])})
  31. else:
  32. values_list.update({item:data[item]})
  33. return values_list
  34. # esta funcion se encarga de editar las entradas de visitas
  35. def edit(data):
  36. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  37. values_list=prepara_values_visita(data)
  38. query = db.update(visitas_enfermeria).values(values_list)
  39. query = query.where(visitas_enfermeria.columns.id == data['id'])
  40. ResultProxy = connection.execute(query,values_list)
  41. return redirect(url_for("formas",perfil='enfermeria', accion="edit", tipo="visitas_enfermeria", id=data['id']))
  42. # esta funcion se encarga de crear nuevas entradas a las visitas
  43. def add(data):
  44. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  45. values_list=prepara_values_visita_add(data)
  46. query = db.insert(visitas_enfermeria).values(values_list)
  47. ResultProxy = connection.execute(query,values_list)
  48. return redirect(url_for("formas",perfil='enfermeria', accion="add", tipo="visitas_enfermeria", id=data['id']))
  49. def conseguir_lista(tabla):
  50. values= {}
  51. personas = db.Table(tabla, metadata, autoload=True, autoload_with=engine)
  52. usuarios = db.Table('usuarios', metadata, autoload=True, autoload_with=engine)
  53. query = db.select([usuarios.columns.nombres, usuarios.columns.apellidos, usuarios.columns.id])
  54. query = query.select_from(personas).where(personas.columns.user_id == usuarios.columns.id)
  55. result = connection.execute(query).fetchall()
  56. i = 0
  57. for persona in result:
  58. value = {}
  59. value.update({"name":persona[0] + ' ' + persona[1]})
  60. value.update({"id":persona[2]})
  61. values.update({"value"+str(i):value})
  62. i+=1
  63. return values
  64. # cuando se desea add datos de la base de datos, esta funcion
  65. def add_form():
  66. i=1
  67. orden=1
  68. entradas={}
  69. for col in form_order_add["entradas"]:
  70. col_data=[]
  71. for item in form_order_add["entradas"][col]:
  72. item.update({"tabindex":orden})
  73. if(item['label'] == 'Enfermera'):
  74. values = conseguir_lista('enfermeras')
  75. item.update({"values":values})
  76. if(item['label'] == 'Estudiante'):
  77. values = conseguir_lista('estudiantes')
  78. item.update({"values":values})
  79. item.update({"disabled":False})
  80. orden+=1
  81. entradas.update({"col"+str(i):col_data})
  82. i+=1
  83. data= {"titulo":"Enfermera","accion":"Añadir"}
  84. data.update(form_order_add)
  85. data.update({"abled":True})
  86. return jsonify(data)
  87. def edit_form(id, disabled=False):
  88. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  89. query = db.select([visitas_enfermeria.columns.razon, visitas_enfermeria.columns.acciones, visitas_enfermeria.columns.fecha])
  90. query = query.select_from(visitas_enfermeria).where(visitas_enfermeria.columns.id == id)
  91. result = connection.execute(query).fetchall()
  92. if not len(result):
  93. return False
  94. for row in result:
  95. row_as_dict = dict(row)
  96. i=1
  97. orden=1
  98. entradas={}
  99. for col in form_order["entradas"]:
  100. col_data=[]
  101. for item in form_order["entradas"][col]:
  102. if item["type"]=="select":
  103. item.update({"value":{"id":row_as_dict[item["name"]]}})
  104. elif item["type"]=="checkbox":
  105. item.update({"value":int(row_as_dict[item["name"]])})
  106. elif item["type"]=="datetime-local":
  107. item.update({"value":valida_fecha_2(str(row_as_dict[item["name"]]))})
  108. else:
  109. item.update({"value":str(row_as_dict[item["name"]])})
  110. item.update({"tabindex":orden})
  111. item.update({"disabled":disabled})
  112. col_data.append(item)
  113. orden+=1
  114. entradas.update({"col"+str(i):col_data})
  115. i+=1
  116. data= {"titulo":"Visitas Enfermeria","accion":"Editar"}
  117. data.update({"entradas":entradas})
  118. abled=True
  119. if disabled:
  120. abled=False
  121. data.update({"abled":abled})
  122. return jsonify(data)