Browse Source

admin y enfermeria pueden ver sus visitas.

los botones de añadir y editar van a la pagina corecta, pero aun falta trabjar en estas.
Oniel Méndez Nieves 4 years ago
parent
commit
06c63efcad

BIN
__pycache__/adminver.cpython-36.pyc View File


BIN
__pycache__/enfermera.cpython-36.pyc View File


BIN
__pycache__/enfermeria.cpython-36.pyc View File


BIN
__pycache__/visita.cpython-36.pyc View File


BIN
__pycache__/visitas_oficina.cpython-36.pyc View File


+ 103
- 0
adminver.py View File

@@ -0,0 +1,103 @@
1
+# coding=utf-8
2
+# from sqlalchemy import metadata
3
+import sqlalchemy as db
4
+
5
+# connect to server
6
+engine = db.create_engine('mysql+pymysql://root:@0.0.0.0/registro_escolar_1')
7
+
8
+connection = engine.connect()
9
+# estudiantes = db.Table('estudiantes', metadata, autoload=True, autoload_with=engine)
10
+# usuarios = db.Table('usuarios', metadata, autoload=True, autoload_with=engine)
11
+
12
+def visita():
13
+    query ='SELECT t1.id, t2.nombres e_nombre, t2.apellidos e_apellido,\
14
+                t1.nombres p_nombre, t1.apellidos p_apellido, t1.razon, t1.acciones\
15
+            FROM (SELECT v.id, u.nombres, u.apellidos,v.razon, v.acciones\
16
+                  	FROM visitas_oficina v, usuarios u\
17
+                  	WHERE v.estudiante_id = u.id) t1,\
18
+            	 (SELECT v.id, u.nombres, u.apellidos\
19
+                  	FROM visitas_oficina v, usuarios u\
20
+                  	WHERE v.administradora_id = u.id) t2\
21
+            WHERE t1.id=t2.id'
22
+    result_db = connection.execute(query).fetchall()
23
+
24
+    ###### headers
25
+
26
+    headers = '['
27
+    headers += '{"nombre":"Nombre Administrador"}'
28
+    headers += ','
29
+    headers += '{"nombre":"Nombre Estudiante"}'
30
+    headers += ','
31
+    headers += '{"nombre":"Razon"}'
32
+    headers += ','
33
+    headers += '{"nombre":"Informacion"}'
34
+    headers += ','
35
+    headers += '{"nombre":"Editar"}'
36
+    headers += ']'
37
+
38
+    ###### tabla
39
+
40
+    modal_content = '['
41
+    tabla = '['
42
+    i = 0
43
+    len_result = len(result_db)
44
+    for q in result_db:
45
+        i = i+1
46
+        tabla           += '{'
47
+        modal_content   += '{'
48
+        tabla           += '"Nombre Administrador":"'+(q[1])+' '+(q[2])+'"'
49
+        modal_content   += '"Nombre Administrador":"'+(q[1])+' '+(q[2])+'"'
50
+        tabla           += ','
51
+        modal_content   += ','
52
+        tabla           += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
53
+        modal_content   += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
54
+        tabla           += ','
55
+        modal_content   += ','
56
+
57
+        tabla           += '"Razon":"'+(q[5])+'"'
58
+        modal_content   += '"Razon":"'+(q[5])+'"'
59
+        modal_content   += ','
60
+        modal_content   += '"Explicación":"'+(q[6])+'"'
61
+
62
+
63
+        tabla           += ','
64
+        modal_content   += ','
65
+        tabla           += '"user_id":"'+str(q[0])+'"'
66
+        modal_content   += '"user_id":"'+str(q[0])+'"'
67
+        tabla           += '}'
68
+        modal_content   += '}'
69
+        if i < len_result:
70
+            tabla        += ','
71
+            modal_content+= ','
72
+    tabla               += ']'
73
+    modal_content       += ']'
74
+
75
+    ###### info
76
+
77
+    info = '{'
78
+    info += '"dash_name":"Administración- Manejar Visitas"'
79
+    info += ','
80
+    info += '"dash_link":"/admin/ver/"'
81
+    info += ','
82
+    info += '"dash_sub_name":"Visitas hechas"'
83
+    info += ','
84
+    info += '"add":"Anadir Visita"'
85
+    info += ','
86
+    info += '"add_link":"/admin/forma/add/visitas_oficina/"'
87
+    info += ','
88
+    info += '"dir1":"#"'
89
+    info += ','
90
+    info += '"dir2":"/admin/forma/edit/visitas_oficina/"'
91
+    info += '}'
92
+
93
+    ###### modal
94
+    modal = '{'
95
+    modal += '"infoName":"Ver informacion"'
96
+    modal += ','
97
+    modal += '"editName":"#"'
98
+    modal += '}'
99
+
100
+    result = '{"headers":'+headers+',"tabla":'+tabla+',"modal_content":'+modal_content+',"info":'+info+',"modal":'+modal+'}'
101
+
102
+    # print(result)
103
+    return(result)

+ 5
- 3
dash-run.py View File

@@ -2,7 +2,7 @@
2 2
 from flask import Flask, render_template, render_template_string, redirect, request, session, escape, url_for, jsonify, abort
3 3
 import os
4 4
 
5
-import adminadmin, adminfacultad, adminenfermeria, adminencargados, adminestudiantes
5
+import adminadmin, adminfacultad, adminenfermeria, adminencargados, adminestudiantes, adminver
6 6
 import enfermeria
7 7
 
8 8
 
@@ -28,7 +28,7 @@ def perfil(perfil, pagina=None):
28 28
     if (perfil=='admin'):
29 29
         if (pagina==None):
30 30
             return render_template('dash.html', jscript="admin.js", pagina=pagina)
31
-        if(pagina in ['admin','facultad','enfermeria','encargados','estudiantes']):
31
+        if(pagina in ['admin','facultad','enfermeria','encargados','estudiantes','visita']):
32 32
             return render_template('table.html', jscript="adminver.js", pagina=pagina)
33 33
     if (perfil=='enfermeria'):
34 34
         if (pagina==None):
@@ -61,6 +61,8 @@ def datos(perfil, pagina=None):
61 61
             return adminencargados.encargados()
62 62
         if(pagina=="estudiantes"):
63 63
             return adminestudiantes.estudiantes()
64
+        if(pagina=="visita"):
65
+            return adminver.visita()
64 66
     if(perfil=="enfermeria"):
65 67
         if(pagina=="visitas"):
66 68
             return enfermeria.visitas()
@@ -109,7 +111,7 @@ def formaEst(perfil, accion, tipo, id=None):
109 111
     if perfil not in ["enfermera", "enfermeria", "admin", "administracion", "estudiante", "madre", "facultad"]:
110 112
         return {"error":True,"tipo":"tipo_incorrecto","opcion":tipo,"user_type":"<perfil>"}
111 113
     # print 'tipo'
112
-    if tipo not in ["enfermera", "enfermeria", "administracion", "estudiante", "madre", "facultad", 'visita']:
114
+    if tipo not in ["enfermera", "enfermeria", "administracion", "estudiante", "madre", "facultad", 'visitas_oficina', 'visitas_enfermeria']:
113 115
         return {"error":True,"tipo":"tipo_incorrecto","opcion":tipo,"user_type":"<perfil>"}
114 116
     # print 'accion'
115 117
     if accion not in ["edit", "add", "view"]:

+ 9
- 24
enfermeria.py View File

@@ -2,21 +2,6 @@
2 2
 # from sqlalchemy import metadata
3 3
 import sqlalchemy as db
4 4
 
5
-#########################
6
-# stack overflow:
7
-    # Python sanitizing html from a string
8
-def escape(htmlstring):
9
-    escapes = {'\"': '&quot;',
10
-               '\'': '&#39;',
11
-               '<': '&lt;',
12
-               '>': '&gt;'}
13
-    # This is done first to prevent escaping other escapes.
14
-    htmlstring = htmlstring.replace('&', '&amp;')
15
-    for seq, esc in escapes.iteritems():
16
-        htmlstring = htmlstring.replace(seq, esc)
17
-    return htmlstring
18
-#########################
19
-
20 5
 # connect to server
21 6
 engine = db.create_engine('mysql+pymysql://root:@0.0.0.0/registro_escolar_1')
22 7
 
@@ -60,19 +45,19 @@ def visitas():
60 45
         i = i+1
61 46
         tabla           += '{'
62 47
         modal_content   += '{'
63
-        tabla           += '"Nombre Enfermera":"'+escape(q[1])+' '+escape(q[2])+'"'
64
-        modal_content   += '"Nombre Enfermera":"'+escape(q[1])+' '+escape(q[2])+'"'
48
+        tabla           += '"Nombre Enfermera":"'+(q[1])+' '+(q[2])+'"'
49
+        modal_content   += '"Nombre Enfermera":"'+(q[1])+' '+(q[2])+'"'
65 50
         tabla           += ','
66 51
         modal_content   += ','
67
-        tabla           += '"Nombre Estudiante":"'+escape(q[3])+' '+escape(q[4])+'"'
68
-        modal_content   += '"Nombre Estudiante":"'+escape(q[3])+' '+escape(q[4])+'"'
52
+        tabla           += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
53
+        modal_content   += '"Nombre Estudiante":"'+(q[3])+' '+(q[4])+'"'
69 54
         tabla           += ','
70 55
         modal_content   += ','
71 56
 
72
-        tabla           += '"Razon":"'+escape(q[5])+'"'
73
-        modal_content   += '"Razon":"'+escape(q[5])+'"'
57
+        tabla           += '"Razon":"'+(q[5])+'"'
58
+        modal_content   += '"Razon":"'+(q[5])+'"'
74 59
         modal_content   += ','
75
-        modal_content   += '"Explicación":"'+escape(q[6])+'"'
60
+        modal_content   += '"Explicación":"'+(q[6])+'"'
76 61
 
77 62
 
78 63
         tabla           += ','
@@ -98,11 +83,11 @@ def visitas():
98 83
     info += ','
99 84
     info += '"add":"Anadir Visita"'
100 85
     info += ','
101
-    info += '"add_link":"/enfermeria/forma/add/visita/"'
86
+    info += '"add_link":"/enfermeria/forma/add/visitas_enfermeria/"'
102 87
     info += ','
103 88
     info += '"dir1":"#"'
104 89
     info += ','
105
-    info += '"dir2":"/enfermeria/forma/edit/visita/"'
90
+    info += '"dir2":"/enfermeria/forma/edit/visitas_enfermeria/"'
106 91
     info += '}'
107 92
 
108 93
     ###### modal

+ 1
- 1
static/admin.js View File

@@ -48,7 +48,7 @@ dash.controller('dashController', function($scope){
48 48
     }
49 49
     ,{
50 50
       nombre:'Visitas oficina',
51
-      dir:'#10',
51
+      dir:'/admin/ver/visita/',
52 52
     }
53 53
   ];
54 54
   $scope.info = {

+ 1
- 1
static/enfermeria.js View File

@@ -12,7 +12,7 @@ dash.controller('dashController', function($scope){
12 12
     }
13 13
   ];
14 14
   $scope.info = {
15
-      dash_name:'Dashboard de Administracion',
15
+      dash_name:'Dashboard de Enfermera',
16 16
       dash_link:'/',
17 17
     };
18 18
 });

+ 9
- 10
static/forma.js View File

@@ -5,27 +5,26 @@ var forma = angular.module('forma', ['ngSanitize']);
5 5
 forma.controller('FormController', function FormController($http, $scope, accion, tipo, id, user_type, $window) {
6 6
   	console.log(accion +","+ tipo +","+ id);
7 7
   	var url = '/'+user_type+'/formaDatos/'+accion+'/'+tipo+'/'
8
-  	if(id!="none")
8
+  	if(id)
9 9
   	{
10 10
   		url+= id;
11 11
   	}
12 12
     $http.get(url).then(function(response) {
13 13
       if(response.data.error!==true)
14 14
       {
15
-		
15
+
16 16
 		  $scope.entradas = response.data.entradas;
17 17
 		  $scope.titulo = response.data.titulo;
18 18
 		  $scope.accion = response.data.accion;
19 19
 		  $scope.abled = response.data.abled;
20
-	  }
21
-	  else
22
-	  {
23
-	   	  $window.location.href = '/'+user_type+'/error/'+response.data.tipo;
24
-	    console.log(response.data);
25
-	  }
26
-	
20
+  	  }
21
+  	  else
22
+  	  {
23
+  	   	  $window.location.href = '/'+user_type+'/error/'+response.data.tipo;
24
+  	    console.log(response.data);
25
+  	  }
26
+
27 27
 //       $scope.selectedForm=
28 28
 //     console.log(response.data);
29 29
     });
30 30
 });
31
-

+ 77
- 0
visitas_enfermeria.py View File

@@ -0,0 +1,77 @@
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
8
+
9
+col1=[{"label":"Acciones","type":"text","name":"acciones","require":"1"}]
10
+col2=[{"label":"Razon","type":"text","name":"razon","require":"1"}]
11
+form_order= {"entradas":{"col1":col1,"col2":col2}}
12
+visita_col=["Razon", "Acciones"]
13
+
14
+def prepara_values_usuario(data):
15
+	pass
16
+
17
+def prepara_values_enfermera(data):
18
+	pass
19
+
20
+def edit(data):
21
+	pass
22
+
23
+def add(data):
24
+	pass
25
+
26
+
27
+def add_form():
28
+	i=1
29
+	orden=1
30
+	entradas={}
31
+	for col in form_order["entradas"]:
32
+		col_data=[]
33
+		for item in form_order["entradas"][col]:
34
+			item.update({"tabindex":orden})
35
+			item.update({"disabled":False})
36
+			orden+=1
37
+		entradas.update({"col"+str(i):col_data})
38
+		i+=1
39
+	data= {"titulo":"Enfermera","accion":"Añadir"}
40
+	data.update(form_order)
41
+	data.update({"abled":True})
42
+	return jsonify(data)
43
+
44
+def edit_form(id, disabled=False):
45
+	visitas_enfermeria = db.Table('visitas_enfermeria', metadata, autoload=True, autoload_with=engine)
46
+	query = db.select([visitas_enfermeria.columns.razon, visitas_enfermeria.columns.acciones])
47
+	query = query.select_from(visitas_enfermeria).where(visitas_enfermeria.columns.id == id)
48
+	result = connection.execute(query).fetchall()
49
+	if not len(result):
50
+		return False
51
+	for row in result:
52
+		row_as_dict = dict(row)
53
+	i=1
54
+	orden=1
55
+	entradas={}
56
+	for col in form_order["entradas"]:
57
+		col_data=[]
58
+		for item in form_order["entradas"][col]:
59
+			if item["type"]=="select":
60
+				item.update({"value":{"id":row_as_dict[item["name"]]}})
61
+			elif item["type"]=="checkbox":
62
+				item.update({"value":int(row_as_dict[item["name"]])})
63
+			else:
64
+				item.update({"value":str(row_as_dict[item["name"]])})
65
+			item.update({"tabindex":orden})
66
+			item.update({"disabled":disabled})
67
+			col_data.append(item)
68
+			orden+=1
69
+		entradas.update({"col"+str(i):col_data})
70
+		i+=1
71
+	data= {"titulo":"Visitas Enfermeria","accion":"Editar"}
72
+	data.update({"entradas":entradas})
73
+	abled=True
74
+	if disabled:
75
+		abled=False
76
+	data.update({"abled":abled})
77
+	return jsonify(data)

+ 77
- 0
visitas_oficina.py View File

@@ -0,0 +1,77 @@
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
8
+
9
+col1=[{"label":"Razon","type":"text","name":"razon","require":"1"}]
10
+col2=[{"label":"Acciones","type":"text","name":"acciones","require":"1"}]
11
+form_order= {"entradas":{"col1":col1,"col2":col2}}
12
+visita_col=["Razon", "Acciones"]
13
+
14
+def prepara_values_usuario(data):
15
+	pass
16
+
17
+def prepara_values_enfermera(data):
18
+	pass
19
+
20
+def edit(data):
21
+	pass
22
+
23
+def add(data):
24
+	pass
25
+
26
+
27
+def add_form():
28
+	i=1
29
+	orden=1
30
+	entradas={}
31
+	for col in form_order["entradas"]:
32
+		col_data=[]
33
+		for item in form_order["entradas"][col]:
34
+			item.update({"tabindex":orden})
35
+			item.update({"disabled":False})
36
+			orden+=1
37
+		entradas.update({"col"+str(i):col_data})
38
+		i+=1
39
+	data= {"titulo":"Enfermera","accion":"Añadir"}
40
+	data.update(form_order)
41
+	data.update({"abled":True})
42
+	return jsonify(data)
43
+
44
+def edit_form(id, disabled=False):
45
+	visitas_oficina = db.Table('visitas_oficina', metadata, autoload=True, autoload_with=engine)
46
+	query = db.select([visitas_oficina.columns.razon, visitas_oficina.columns.acciones])
47
+	query = query.select_from(visitas_oficina).where(visitas_oficina.columns.id == id)
48
+	result = connection.execute(query).fetchall()
49
+	if not len(result):
50
+		return False
51
+	for row in result:
52
+		row_as_dict = dict(row)
53
+	i=1
54
+	orden=1
55
+	entradas={}
56
+	for col in form_order["entradas"]:
57
+		col_data=[]
58
+		for item in form_order["entradas"][col]:
59
+			if item["type"]=="select":
60
+				item.update({"value":{"id":row_as_dict[item["name"]]}})
61
+			elif item["type"]=="checkbox":
62
+				item.update({"value":int(row_as_dict[item["name"]])})
63
+			else:
64
+				item.update({"value":str(row_as_dict[item["name"]])})
65
+			item.update({"tabindex":orden})
66
+			item.update({"disabled":disabled})
67
+			col_data.append(item)
68
+			orden+=1
69
+		entradas.update({"col"+str(i):col_data})
70
+		i+=1
71
+	data= {"titulo":"Visitas Enfermeria","accion":"Editar"}
72
+	data.update({"entradas":entradas})
73
+	abled=True
74
+	if disabled:
75
+		abled=False
76
+	data.update({"abled":abled})
77
+	return jsonify(data)