No Description

visitas_enfermeria.py 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. col2=[{"label":"Acciones","type":"text","name":"acciones","require":"1"},
  10. {"label":"Fecha","type":"datetime-local","name":"fecha","require":"1"}]
  11. form_order= {"entradas":{"col1":col1,"col2":col2}}
  12. visita_col=["razon", "acciones", 'fecha']
  13. def prepara_values_visita(data):
  14. values_list={}
  15. for item in visita_col:
  16. if item=="datetime-local":
  17. values_list.update({item:valida_fecha_2(data[item])})
  18. else:
  19. values_list.update({item:data[item]})
  20. return values_list
  21. # esta funcion se encarga de editar las entradas de visitas
  22. def edit(data):
  23. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  24. values_list=prepara_values_visita(data)
  25. query = db.update(visitas_enfermeria).values(values_list)
  26. query = query.where(visitas_enfermeria.columns.id == data['id'])
  27. ResultProxy = connection.execute(query,values_list)
  28. return redirect(url_for("formas",perfil='enfermeria', accion="edit", tipo="visitas_enfermeria", id=data['id']))
  29. # esta funcion se encarga de crear nuevas entradas a las visitas
  30. def add(data):
  31. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  32. values_list=prepara_values_visita(data)
  33. query = db.insert(visitas_enfermeria).values(values_list)
  34. ResultProxy = connection.execute(query,values_list)
  35. return redirect(url_for("formas",perfil='enfermeria', accion="edit", tipo="visitas_enfermeria", id=data['id']))
  36. # cuando se desea add datos de la base de datos, esta funcion
  37. def add_form():
  38. i=1
  39. orden=1
  40. entradas={}
  41. for col in form_order["entradas"]:
  42. col_data=[]
  43. for item in form_order["entradas"][col]:
  44. item.update({"tabindex":orden})
  45. item.update({"disabled":False})
  46. orden+=1
  47. entradas.update({"col"+str(i):col_data})
  48. i+=1
  49. data= {"titulo":"Enfermera","accion":"Añadir"}
  50. data.update(form_order)
  51. data.update({"abled":True})
  52. return jsonify(data)
  53. def edit_form(id, disabled=False):
  54. visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
  55. query = db.select([visitas_enfermeria.columns.razon, visitas_enfermeria.columns.acciones, visitas_enfermeria.columns.fecha])
  56. query = query.select_from(visitas_enfermeria).where(visitas_enfermeria.columns.id == id)
  57. result = connection.execute(query).fetchall()
  58. if not len(result):
  59. return False
  60. for row in result:
  61. row_as_dict = dict(row)
  62. i=1
  63. orden=1
  64. entradas={}
  65. for col in form_order["entradas"]:
  66. col_data=[]
  67. for item in form_order["entradas"][col]:
  68. if item["type"]=="select":
  69. item.update({"value":{"id":row_as_dict[item["name"]]}})
  70. elif item["type"]=="checkbox":
  71. item.update({"value":int(row_as_dict[item["name"]])})
  72. elif item["type"]=="datetime-local":
  73. item.update({"value":valida_fecha_2(str(row_as_dict[item["name"]]))})
  74. else:
  75. item.update({"value":str(row_as_dict[item["name"]])})
  76. item.update({"tabindex":orden})
  77. item.update({"disabled":disabled})
  78. col_data.append(item)
  79. orden+=1
  80. entradas.update({"col"+str(i):col_data})
  81. i+=1
  82. data= {"titulo":"Visitas Enfermeria","accion":"Editar"}
  83. data.update({"entradas":entradas})
  84. abled=True
  85. if disabled:
  86. abled=False
  87. data.update({"abled":abled})
  88. return jsonify(data)