No Description

adminver.py 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. from connect import connection
  2. import sqlalchemy as db
  3. # esta funcion se obtiene cuando un administrador quiere ver los perfiles de administradores
  4. # url: /admin/ver/admin
  5. def admin():
  6. ###### headers
  7. # headers contiene los titulos de las columnas
  8. headers = '['
  9. headers += '{"nombre":"Nombre"}'
  10. headers += ','
  11. headers += '{"nombre":"Posicion"}'
  12. headers += ','
  13. headers += '{"nombre":"Email"}'
  14. headers += ','
  15. headers += '{"nombre":"Informacion"}'
  16. headers += ','
  17. headers += '{"nombre":"Editar"}'
  18. headers += ']'
  19. #
  20. # headers={}
  21. # headers.update({"nombre":"Nombre"})
  22. # headers.update({"nombre":"Posicion"})
  23. # headers.update({"nombre":"Email"})
  24. # headers.update({"1":"Codigo"})
  25. # headers.update({"nombre":"Informacion"})
  26. # headers.update({"nombre":"Editar"})
  27. ###### tabla
  28. # tabla contiene la informacion que sale en las filas
  29. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  30. FROM usuarios u,administracion a \
  31. WHERE u.id = a.user_id'
  32. result_db = connection.execute(query).fetchall()
  33. tabla = '['
  34. i = 0
  35. len_result = len(result_db)
  36. for q in result_db:
  37. i = i+1
  38. tabla += '{'
  39. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  40. tabla += ','
  41. query = 'SELECT posicion FROM administracion a WHERE a.user_id = ' + str(q[0])
  42. posicion = connection.execute(query).fetchall()
  43. tabla += '"Posicion":"'+(str(posicion[0][0]))+'"'
  44. tabla += ','
  45. tabla += '"Email":"'+(q[3])+'"'
  46. tabla += ','
  47. tabla += '"user_id":"'+(str(q[0]))+'"'
  48. tabla += '}'
  49. if i < len_result:
  50. tabla += ','
  51. tabla += ']'
  52. ###### modal_content
  53. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  54. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  55. FROM usuarios u,administracion a \
  56. WHERE u.id = a.user_id'
  57. result_db = connection.execute(query).fetchall()
  58. modal_content = '['
  59. i = 0
  60. len_result = len(result_db)
  61. for q in result_db:
  62. i = i+1
  63. modal_content += '{'
  64. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  65. modal_content += ','
  66. query = 'SELECT posicion FROM administracion a WHERE a.user_id = ' + str(q[0])
  67. posicion = connection.execute(query).fetchall()
  68. modal_content += '"Posicion":"'+(str(posicion[0][0]))+'"'
  69. modal_content += ','
  70. modal_content += '"Email":"'+(q[3])+'"'
  71. modal_content += ','
  72. modal_content += '"user_id":"'+(str(q[0]))+'"'
  73. modal_content += '}'
  74. if i < len_result:
  75. modal_content += ','
  76. modal_content += ']'
  77. ###### info
  78. info = '{'
  79. info += '"dash_name":"Manejar Administracion"' #nombre en el header
  80. info += ','
  81. info += '"dash_link":"/admin/ver/"' #link si click el header
  82. info += ','
  83. info += '"dash_sub_name":"Administracion Registrados"' #titulo grande de la pagina
  84. info += ','
  85. info += '"add":"Anadir Administracion"' #texto en el boton para a~nadir perfil
  86. info += ','
  87. info += '"add_link":"/admin/forma/add/administracion/"' #direccion para el boton para a~nadir perfil
  88. info += ','
  89. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  90. info += ','
  91. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  92. info += ','
  93. info += '"dir2":"/admin/forma/edit/administracion/"' #direccion del segundo boton
  94. info += '}'
  95. ###### modal
  96. # modal contiene el titulo y la direccion parcial del modal
  97. modal = '{'
  98. modal += '"infoName":"Ver informacion"'
  99. modal += ','
  100. modal += '"editName":"/admin/ver/"'
  101. modal += '}'
  102. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  103. return(result)
  104. # esta funcion se obtiene cuando un administrador quiere ver los perfiles de encargados
  105. # url: /admin/ver/encargados
  106. def encargados():
  107. ###### headers
  108. # headers contiene los titulos de las columnas
  109. headers = '['
  110. headers += '{"nombre":"Nombre"}'
  111. headers += ','
  112. headers += '{"nombre":"Hijos matriculados"}'
  113. headers += ','
  114. headers += '{"nombre":"Especialidad"}'
  115. headers += ','
  116. headers += '{"nombre":"Informacion"}'
  117. headers += ','
  118. headers += '{"nombre":"Editar"}'
  119. headers += ']'
  120. ###### tabla
  121. # tabla contiene la informacion que sale en las filas
  122. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  123. FROM usuarios u,madres m \
  124. WHERE u.id = m.user_id'
  125. result_db = connection.execute(query).fetchall()
  126. tabla = '['
  127. i = 0
  128. len_result = len(result_db)
  129. for q in result_db:
  130. i = i+1
  131. tabla += '{'
  132. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  133. tabla += ','
  134. query = 'SELECT count(*) FROM madres_estudiantes me WHERE me.madre_id = ' + str(q[0])
  135. total_hijos = connection.execute(query).fetchall()
  136. tabla += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  137. tabla += ','
  138. tabla += '"Email":"'+(q[3])+'"'
  139. tabla += ','
  140. tabla += '"user_id":"'+str(q[0])+'"'
  141. tabla += '}'
  142. if i < len_result:
  143. tabla += ','
  144. tabla += ']'
  145. ###### modal_content
  146. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  147. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  148. FROM usuarios u,madres m \
  149. WHERE u.id = m.user_id'
  150. result_db = connection.execute(query).fetchall()
  151. modal_content = '['
  152. i = 0
  153. len_result = len(result_db)
  154. for q in result_db:
  155. i = i+1
  156. modal_content += '{'
  157. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  158. modal_content += ','
  159. query = 'SELECT count(*) FROM madres_estudiantes me WHERE me.madre_id = ' + str(q[0])
  160. total_hijos = connection.execute(query).fetchall()
  161. modal_content += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  162. modal_content += ','
  163. modal_content += '"Email":"'+(q[3])+'"'
  164. modal_content += ','
  165. modal_content += '"user_id":"'+str(q[0])+'"'
  166. modal_content += '}'
  167. if i < len_result:
  168. modal_content += ','
  169. modal_content += ']'
  170. ###### info
  171. info = '{'
  172. info += '"dash_name":"Manejar Encargados"' #nombre en el header
  173. info += ','
  174. info += '"dash_link":"/admin/ver/"' #link si click el header
  175. info += ','
  176. info += '"dash_sub_name":"Encargados Registrados"' #titulo grande de la pagina
  177. info += ','
  178. info += '"add":"Anadir Encargados"' #texto en el boton para a~nadir perfil
  179. info += ','
  180. info += '"add_link":"/admin/forma/add/madre/"' #direccion para el boton para a~nadir perfil
  181. info += ','
  182. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  183. info += ','
  184. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  185. info += ','
  186. info += '"dir2":"/admin/forma/edit/madre/"' #direccion del segundo boton
  187. info += '}'
  188. ###### modal
  189. # modal contiene el titulo y la direccion parcial del modal
  190. modal = '{'
  191. modal += '"infoName":"Ver informacion"'
  192. modal += ','
  193. modal += '"editName":"/admin/ver/"'
  194. modal += '}'
  195. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  196. return(result)
  197. # esta funcion se obtiene cuando un administrador quiere ver los perfiles de enfermeras
  198. # url: /admin/ver/enfermeria
  199. def enfermeria():
  200. ###### headers
  201. # headers contiene los titulos de las columnas
  202. headers = '['
  203. headers += '{"nombre":"Nombre"}'
  204. headers += ','
  205. headers += '{"nombre":"Especialidad"}'
  206. headers += ','
  207. headers += '{"nombre":"Email"}'
  208. headers += ','
  209. headers += '{"nombre":"Informacion"}'
  210. headers += ','
  211. headers += '{"nombre":"Editar"}'
  212. headers += ']'
  213. ###### tabla
  214. # tabla contiene la informacion que sale en las filas
  215. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  216. FROM usuarios u,enfermeras e \
  217. WHERE u.id = e.user_id'
  218. result_db = connection.execute(query).fetchall()
  219. tabla = '['
  220. i = 0
  221. len_result = len(result_db)
  222. for q in result_db:
  223. i = i+1
  224. tabla += '{'
  225. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  226. tabla += ','
  227. query = 'SELECT especialidad FROM enfermeras e WHERE e.user_id = ' + str(q[0])
  228. especialidad = connection.execute(query).fetchall()
  229. tabla += '"Especialidad":"'+(str(especialidad[0][0]))+'"'
  230. tabla += ','
  231. tabla += '"Email":"'+(q[3])+'"'
  232. tabla += ','
  233. tabla += '"user_id":"'+str(q[0])+'"'
  234. tabla += '}'
  235. if i < len_result:
  236. tabla += ','
  237. tabla += ']'
  238. ###### modal_content
  239. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  240. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  241. FROM usuarios u,enfermeras e \
  242. WHERE u.id = e.user_id'
  243. result_db = connection.execute(query).fetchall()
  244. modal_content = '['
  245. i = 0
  246. len_result = len(result_db)
  247. for q in result_db:
  248. i = i+1
  249. query = 'SELECT especialidad FROM enfermeras e WHERE e.user_id = ' + str(q[0])
  250. especialidad = connection.execute(query).fetchall()
  251. modal_content += '{'
  252. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  253. modal_content += ','
  254. modal_content += '"Especialidad":"'+(str(especialidad[0][0]))+'"'
  255. modal_content += ','
  256. modal_content += '"Email":"'+(q[3])+'"'
  257. modal_content += ','
  258. modal_content += '"user_id":"'+str(q[0])+'"'
  259. modal_content += '}'
  260. if i < len_result:
  261. modal_content += ','
  262. modal_content += ']'
  263. ###### info
  264. info = '{'
  265. info += '"dash_name":"Manejar Enfermeria"' #nombre en el header
  266. info += ','
  267. info += '"dash_link":"/admin/ver/"' #link si click el header
  268. info += ','
  269. info += '"dash_sub_name":"Enfermeras Registrados"' #titulo grande de la pagina
  270. info += ','
  271. info += '"add":"Anadir Enfermera"' #texto en el boton para a~nadir perfil
  272. info += ','
  273. info += '"add_link":"/admin/forma/add/enfermera/"' #direccion para el boton para a~nadir perfil
  274. info += ','
  275. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  276. info += ','
  277. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  278. info += ','
  279. info += '"dir2":"/admin/forma/edit/enfermera/"' #direccion del segundo boton
  280. info += '}'
  281. ###### modal
  282. # modal contiene el titulo y la direccion parcial del modal
  283. modal = '{'
  284. modal += '"infoName":"Ver informacion"'
  285. modal += ','
  286. modal += '"editName":"/admin/ver/"'
  287. modal += '}'
  288. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  289. return(result)
  290. # esta funcion se obtiene cuando un administrador quiere ver los perfiles de estudiantes
  291. # url: /admin/ver/estudiantes
  292. def estudiantes():
  293. ###### headers
  294. # headers contiene los titulos de las columnas
  295. headers = '['
  296. headers += '{"nombre":"Nombre"}'
  297. headers += ','
  298. headers += '{"nombre":"Grado"}'
  299. headers += ','
  300. headers += '{"nombre":"Email"}'
  301. headers += ','
  302. headers += '{"nombre":"Informacion"}'
  303. headers += ','
  304. headers += '{"nombre":"Editar"}'
  305. headers += ']'
  306. ###### tabla
  307. # tabla contiene la informacion que sale en las filas
  308. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  309. FROM usuarios u, estudiantes m \
  310. WHERE u.id = m.user_id'
  311. result_db = connection.execute(query).fetchall()
  312. tabla = '['
  313. i = 0
  314. len_result = len(result_db)
  315. for q in result_db:
  316. i = i+1
  317. tabla += '{'
  318. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  319. tabla += ','
  320. query = 'SELECT grado FROM estudiantes e WHERE e.user_id = ' + str(q[0])
  321. total_hijos = connection.execute(query).fetchall()
  322. tabla += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  323. tabla += ','
  324. tabla += '"Email":"'+(q[3])+'"'
  325. tabla += ','
  326. tabla += '"user_id":"'+str(q[0])+'"'
  327. tabla += '}'
  328. if i < len_result:
  329. tabla += ','
  330. tabla += ']'
  331. ###### modal_content
  332. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  333. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  334. FROM usuarios u, estudiantes m \
  335. WHERE u.id = m.user_id'
  336. result_db = connection.execute(query).fetchall()
  337. modal_content = '['
  338. i = 0
  339. len_result = len(result_db)
  340. for q in result_db:
  341. i = i+1
  342. query = 'SELECT grado FROM estudiantes e WHERE e.user_id = ' + str(q[0])
  343. total_hijos = connection.execute(query).fetchall()
  344. modal_content += '{'
  345. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  346. modal_content += ','
  347. modal_content += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  348. modal_content += ','
  349. modal_content += '"Email":"'+(q[3])+'"'
  350. modal_content += ','
  351. modal_content += '"user_id":"'+str(q[0])+'"'
  352. modal_content += '}'
  353. if i < len_result:
  354. modal_content += ','
  355. modal_content += ']'
  356. ###### info
  357. info = '{'
  358. info += '"dash_name":"Manejar Estudiantes"' #nombre en el header
  359. info += ','
  360. info += '"dash_link":"/admin/ver/"' #link al click el header
  361. info += ','
  362. info += '"dash_sub_name":"Estudiantes Registrados"' #titulo grande de la pagina
  363. info += ','
  364. info += '"add":"Anadir Estudiantes"' #texto en el boton para a~nadir perfil
  365. info += ','
  366. info += '"add_link":"/admin/forma/add/estudiante/"' #direccion para el boton para a~nadir perfil
  367. info += ','
  368. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  369. info += ','
  370. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  371. info += ','
  372. info += '"dir2":"/admin/forma/edit/estudiante/"' #direccion del segundo boton
  373. info += '}'
  374. ###### modal
  375. # modal contiene el titulo y la direccion parcial del modal
  376. modal = '{'
  377. modal += '"infoName":"Ver informacion"'
  378. modal += ','
  379. modal += '"editName":"/admin/ver/"'
  380. modal += '}'
  381. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  382. # print(result)
  383. return(result)
  384. # esta funcion se obtiene cuando un administrador quiere ver los perfiles de
  385. # url: /admin/ver/facultad
  386. def facultad():
  387. # headers contiene los titulos de las columnas
  388. ###### headers
  389. headers = '['
  390. headers += '{"nombre":"Nombre"}'
  391. headers += ','
  392. headers += '{"nombre":"Especialidad"}'
  393. headers += ','
  394. headers += '{"nombre":"Email"}'
  395. headers += ','
  396. headers += '{"nombre":"Informacion"}'
  397. headers += ','
  398. headers += '{"nombre":"Editar"}'
  399. headers += ']'
  400. ###### tabla
  401. # tabla contiene la informacion que sale en las filas
  402. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  403. FROM usuarios u,facultad f \
  404. WHERE u.id = f.user_id'
  405. result_db = connection.execute(query).fetchall()
  406. tabla = '['
  407. i = 0
  408. len_result = len(result_db)
  409. for q in result_db:
  410. i = i+1
  411. tabla += '{'
  412. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  413. tabla += ','
  414. query = 'SELECT f.especialidad FROM facultad f WHERE f.user_id =' + str(q[0])
  415. total_hijos = connection.execute(query).fetchall()
  416. tabla += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  417. tabla += ','
  418. tabla += '"Email":"'+(q[3])+'"'
  419. tabla += ','
  420. tabla += '"user_id":"'+str(q[0])+'"'
  421. tabla += '}'
  422. if i < len_result:
  423. tabla += ','
  424. tabla += ']'
  425. ###### modal_content
  426. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  427. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  428. FROM usuarios u,facultad f \
  429. WHERE u.id = f.user_id'
  430. result_db = connection.execute(query).fetchall()
  431. modal_content = '['
  432. i = 0
  433. len_result = len(result_db)
  434. for q in result_db:
  435. i = i+1
  436. query = 'SELECT f.especialidad FROM facultad f WHERE f.user_id =' + str(q[0])
  437. total_hijos = connection.execute(query).fetchall()
  438. modal_content += '{'
  439. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  440. modal_content += ','
  441. modal_content += '"Hijos Matriculados":"'+str(total_hijos[0][0])+'"'
  442. modal_content += ','
  443. modal_content += '"Email":"'+(q[3])+'"'
  444. modal_content += ','
  445. modal_content += '"user_id":"'+str(q[0])+'"'
  446. modal_content += '}'
  447. if i < len_result:
  448. modal_content += ','
  449. modal_content += ']'
  450. ###### info
  451. info = '{'
  452. info += '"dash_name":"Manejar Facultad"' #nombre en el header
  453. info += ','
  454. info += '"dash_link":"/admin/ver/"' #link si click el header
  455. info += ','
  456. info += '"dash_sub_name":"Facultad Registrados"' #titulo grande de la pagina
  457. info += ','
  458. info += '"add":"Anadir Facultad"' #texto en el boton para a~nadir perfil
  459. info += ','
  460. info += '"add_link":"/admin/forma/add/facultad/"' #direccion para el boton para a~nadir perfil
  461. info += ','
  462. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  463. info += ','
  464. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  465. info += ','
  466. info += '"dir2":"/admin/forma/edit/facultad/"' #direccion del segundo boton
  467. info += '}'
  468. ###### modal
  469. # modal contiene el titulo y la direccion parcial del modal
  470. modal = '{'
  471. modal += '"infoName":"Ver informacion"'
  472. modal += ','
  473. modal += '"editName":"/admin/ver/"'
  474. modal += '}'
  475. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  476. # print(result)
  477. return(result)
  478. # esta funcion se obtiene cuando un administrador quiere ver las visitas a la oficina
  479. # url: /admin/ver/visitas_oficina
  480. def visita():
  481. ###### headers
  482. # headers contiene los titulos de las columnas
  483. headers = '['
  484. headers += '{"nombre":"Dia y hora"}'
  485. headers += ','
  486. headers += '{"nombre":"Nombre Administrador"}'
  487. headers += ','
  488. headers += '{"nombre":"Nombre Estudiante"}'
  489. headers += ','
  490. headers += '{"nombre":"Informacion"}'
  491. headers += ','
  492. headers += '{"nombre":"Editar"}'
  493. headers += ']'
  494. ###### tabla
  495. # tabla contiene la informacion que sale en las filas
  496. query ='SELECT t1.id, t2.nombres e_nombre, t2.apellidos e_apellido,\
  497. t1.nombres p_nombre, t1.apellidos p_apellido, t1.razon, t1.acciones, t1.fecha\
  498. FROM (SELECT v.id, u.nombres, u.apellidos,v.razon, v.acciones, v.fecha\
  499. FROM visitas_oficina v, usuarios u\
  500. WHERE v.estudiante_id = u.id) t1,\
  501. (SELECT v.id, u.nombres, u.apellidos\
  502. FROM visitas_oficina v, usuarios u\
  503. WHERE v.administradora_id = u.id) t2\
  504. WHERE t1.id=t2.id'
  505. result_db = connection.execute(query).fetchall()
  506. tabla = '['
  507. i = 0
  508. len_result = len(result_db)
  509. for q in result_db:
  510. i = i+1
  511. dia = str(q[7]).split(' ')[0]
  512. hora = str(q[7]).split(' ')[1]
  513. hora = hora.split(':')
  514. hora = hora[0]+':'+hora[1]
  515. dia_hora = dia + ' ' + hora
  516. tabla += '{'
  517. tabla += '"Dia y hora":"'+dia_hora+'"'
  518. tabla += ','
  519. tabla += '"Nombre Administrador":"'+(q[1])+' '+(q[2])+'"'
  520. tabla += ','
  521. tabla += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
  522. tabla += ','
  523. tabla += '"user_id":"'+str(q[0])+'"'
  524. tabla += '}'
  525. if i < len_result:
  526. tabla += ','
  527. tabla += ']'
  528. ###### modal_content
  529. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  530. query ='SELECT t1.id, t2.nombres e_nombre, t2.apellidos e_apellido,\
  531. t1.nombres p_nombre, t1.apellidos p_apellido, t1.razon, t1.acciones, t1.fecha\
  532. FROM (SELECT v.id, u.nombres, u.apellidos,v.razon, v.acciones, v.fecha\
  533. FROM visitas_oficina v, usuarios u\
  534. WHERE v.estudiante_id = u.id) t1,\
  535. (SELECT v.id, u.nombres, u.apellidos\
  536. FROM visitas_oficina v, usuarios u\
  537. WHERE v.administradora_id = u.id) t2\
  538. WHERE t1.id=t2.id'
  539. result_db = connection.execute(query).fetchall()
  540. modal_content = '['
  541. i = 0
  542. len_result = len(result_db)
  543. for q in result_db:
  544. i = i+1
  545. dia = str(q[7]).split(' ')[0]
  546. hora = str(q[7]).split(' ')[1]
  547. hora = hora.split(':')
  548. hora = hora[0]+':'+hora[1]
  549. dia_hora = dia + ' ' + hora
  550. modal_content += '{'
  551. modal_content += '"Nombre Administrador":"'+(q[1])+' '+(q[2])+'"'
  552. modal_content += ','
  553. modal_content += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
  554. modal_content += ','
  555. modal_content += '"Dia y hora":"'+dia_hora+'"'
  556. modal_content += ','
  557. modal_content += '"Razon":"'+(q[5])+'"'
  558. modal_content += ','
  559. modal_content += '"Explicación":"'+(q[6])+'"'
  560. modal_content += ','
  561. modal_content += '"user_id":"'+str(q[0])+'"'
  562. modal_content += '}'
  563. if i < len_result:
  564. modal_content+= ','
  565. modal_content += ']'
  566. ###### info
  567. info = '{'
  568. info += '"dash_name":"Administración- Manejar Visitas"' #nombre en el header
  569. info += ','
  570. info += '"dash_link":"/admin/ver/"' #link si click el header
  571. info += ','
  572. info += '"dash_sub_name":"Visitas hechas"' #titulo grande de la pagina
  573. info += ','
  574. info += '"add":"Anadir Visita"' #texto en el boton para a~nadir perfil
  575. info += ','
  576. info += '"add_link":"/admin/forma/add/visitas_oficina/"' #direccion para el boton para a~nadir perfil
  577. info += ','
  578. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  579. info += ','
  580. info += '"bot2":"Editar"' #texto del segundo boton en una fila
  581. info += ','
  582. info += '"dir2":"/admin/forma/edit/visitas_oficina/"' #direccion del segundo boton
  583. info += '}'
  584. ###### modal
  585. # modal contiene el titulo y la direccion parcial del modal
  586. modal = '{'
  587. modal += '"infoName":"Ver informacion"'
  588. modal += ','
  589. modal += '"editName":"#"'
  590. modal += '}'
  591. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  592. return(result)
  593. # esta funcion se obtiene cuando un administrador quiere ver las visitas a la oficina
  594. # url: /admin/ver/visitas_oficina
  595. def transcripcion():
  596. ###### headers
  597. # headers contiene los titulos de las columnas
  598. headers = '['
  599. headers += '{"nombre":"Nombre"}'
  600. headers += ','
  601. headers += '{"nombre":"Grado"}'
  602. headers += ','
  603. headers += '{"nombre":"Email"}'
  604. headers += ','
  605. headers += '{"nombre":"Informacion"}'
  606. headers += ','
  607. headers += '{"nombre":"Transcripción"}'
  608. headers += ']'
  609. ###### tabla
  610. # tabla contiene la informacion que sale en las filas
  611. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  612. FROM usuarios u, estudiantes m \
  613. WHERE u.id = m.user_id'
  614. result_db = connection.execute(query).fetchall()
  615. tabla = '['
  616. i = 0
  617. len_result = len(result_db)
  618. for q in result_db:
  619. i = i+1
  620. tabla += '{'
  621. tabla += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  622. tabla += ','
  623. query = 'SELECT grado FROM estudiantes e WHERE e.user_id = ' + str(q[0])
  624. grado = connection.execute(query).fetchall()
  625. tabla += '"Grado":"'+str(grado[0][0])+'"'
  626. tabla += ','
  627. tabla += '"Email":"'+(q[3])+'"'
  628. tabla += ','
  629. tabla += '"user_id":"'+str(q[0])+'"'
  630. tabla += '}'
  631. if i < len_result:
  632. tabla += ','
  633. tabla += ']'
  634. ###### modal_content
  635. # modal_content contiene la informacion única de cada fila al presionar 'ver mas'
  636. query = 'SELECT u.id, u.nombres, u.apellidos, u.email \
  637. FROM usuarios u, estudiantes m \
  638. WHERE u.id = m.user_id'
  639. result_db = connection.execute(query).fetchall()
  640. modal_content = '['
  641. i = 0
  642. len_result = len(result_db)
  643. for q in result_db:
  644. i = i+1
  645. query = 'SELECT grado FROM estudiantes e WHERE e.user_id = ' + str(q[0])
  646. grado = connection.execute(query).fetchall()
  647. modal_content += '{'
  648. modal_content += '"Nombre":"'+(q[1])+' '+(q[2])+'"'
  649. modal_content += ','
  650. modal_content += '"Grado":"'+str(grado[0][0])+'"'
  651. modal_content += ','
  652. modal_content += '"Email":"'+(q[3])+'"'
  653. modal_content += ','
  654. modal_content += '"user_id":"'+str(q[0])+'"'
  655. modal_content += '}'
  656. if i < len_result:
  657. modal_content += ','
  658. modal_content += ']'
  659. ###### info
  660. info = '{'
  661. info += '"dash_name":"Manejar Estudiantes"' #nombre en el header
  662. info += ','
  663. info += '"dash_link":"/admin/ver/"' #link si click el header
  664. info += ','
  665. info += '"dash_sub_name":"Estudiantes Registrados"' #titulo grande de la pagina
  666. info += ','
  667. info += '"add":"Anadir Estudiantes"' #texto en el boton para a~nadir perfil
  668. info += ','
  669. info += '"add_link":"/admin/forma/add/estudiante/"' #direccion para el boton para a~nadir perfil
  670. info += ','
  671. info += '"bot1":"Ver Mas"' #texto del primer boton en una fila
  672. info += ','
  673. info += '"bot2":"Generar"' #texto del segundo boton en una fila
  674. info += ','
  675. info += '"dir2":"/admin/forma/crear/transcripcion/"' #direccion del segundo boton
  676. info += '}'
  677. ###### modal
  678. # modal contiene el titulo y la direccion parcial del modal
  679. modal = '{'
  680. modal += '"infoName":"Ver informacion"'
  681. modal += ','
  682. modal += '"editName":"/admin/ver/"'
  683. modal += '}'
  684. result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
  685. return(result)