AIdeaText commited on
Commit
90dbbee
·
verified ·
1 Parent(s): e087797

Update modules/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui.py +25 -48
modules/ui.py CHANGED
@@ -79,13 +79,11 @@ def display_chat_interface():
79
 
80
  ##########################################################################
81
 
82
- def display_student_progress(username):
83
- st.title(f"Progreso de {username}")
84
-
85
- student_data = get_student_data(username)
86
 
87
  if student_data and student_data['entries_count'] > 0:
88
- st.success(f"Datos obtenidos exitosamente para {username}")
89
 
90
  # Mostrar estadísticas generales
91
  st.header("Estadísticas Generales")
@@ -97,11 +95,7 @@ def display_student_progress(username):
97
  fig, ax = plt.subplots(figsize=(10, 6))
98
  categories = list(student_data['word_count'].keys())
99
  counts = list(student_data['word_count'].values())
100
-
101
- # Traducir las categorías
102
- translated_categories = [POS_TRANSLATIONS.get(cat, cat) for cat in categories]
103
-
104
- ax.bar(translated_categories, counts)
105
  ax.set_xlabel('Categoría')
106
  ax.set_ylabel('Conteo Total')
107
  ax.set_title('Conteo de Palabras por Categoría Gramatical')
@@ -110,49 +104,32 @@ def display_student_progress(username):
110
  else:
111
  st.info("No hay datos de conteo de palabras disponibles.")
112
 
113
- # Mostrar evolución del conteo de palabras
114
- st.subheader("Evolución del Conteo de Palabras")
115
- evolution_data = {}
116
- for entry in student_data['entries']:
117
- for category, count in entry['word_count'].items():
118
- if category not in evolution_data:
119
- evolution_data[category] = []
120
- evolution_data[category].append(count)
121
-
122
- if evolution_data:
123
- fig, ax = plt.subplots(figsize=(10, 6))
124
- for category, counts in evolution_data.items():
125
- ax.plot(range(1, len(counts) + 1), counts, label=POS_TRANSLATIONS.get(category, category))
126
- ax.set_xlabel('Número de Entrada')
127
- ax.set_ylabel('Conteo de Palabras')
128
- ax.set_title('Evolución del Conteo de Palabras por Categoría')
129
- ax.legend()
130
- st.pyplot(fig)
131
- else:
132
- st.info("No hay suficientes datos para mostrar la evolución del conteo de palabras.")
133
-
134
- # Lista colapsable de diagramas de arco
135
  st.header("Diagramas de Arco")
136
- arc_diagrams = [entry for entry in student_data['entries'] if entry.get('arc_diagrams')]
137
- if arc_diagrams:
138
- for i, entry in enumerate(arc_diagrams):
139
- timestamp = datetime.fromisoformat(entry['timestamp'])
140
- with st.expander(f"Diagrama de Arco - {timestamp.strftime('%Y-%m-%d %H:%M:%S')}"):
141
  st.write(entry['arc_diagrams'][0], unsafe_allow_html=True)
142
- else:
143
- st.info("No hay diagramas de arco disponibles.")
144
 
145
- # Lista colapsable de diagramas de red
146
  st.header("Diagramas de Red")
147
- network_diagrams = [entry for entry in student_data['entries'] if entry.get('network_diagram')]
148
- if network_diagrams:
149
- for i, entry in enumerate(network_diagrams):
150
- timestamp = datetime.fromisoformat(entry['timestamp'])
151
- with st.expander(f"Diagrama de Red - {timestamp.strftime('%Y-%m-%d %H:%M:%S')}"):
152
- st.image(entry['network_diagram'])
153
- else:
154
- st.info("No hay diagramas de red disponibles.")
 
 
155
 
 
 
 
 
 
156
  else:
157
  st.warning("No se encontraron datos para este estudiante.")
158
  st.info("Intenta realizar algunos análisis de texto primero.")
 
79
 
80
  ##########################################################################
81
 
82
+ def display_student_progress(student_data):
83
+ st.title(f"Progreso de {student_data['username']}")
 
 
84
 
85
  if student_data and student_data['entries_count'] > 0:
86
+ st.success(f"Datos obtenidos exitosamente para {student_data['username']}")
87
 
88
  # Mostrar estadísticas generales
89
  st.header("Estadísticas Generales")
 
95
  fig, ax = plt.subplots(figsize=(10, 6))
96
  categories = list(student_data['word_count'].keys())
97
  counts = list(student_data['word_count'].values())
98
+ ax.bar(categories, counts)
 
 
 
 
99
  ax.set_xlabel('Categoría')
100
  ax.set_ylabel('Conteo Total')
101
  ax.set_title('Conteo de Palabras por Categoría Gramatical')
 
104
  else:
105
  st.info("No hay datos de conteo de palabras disponibles.")
106
 
107
+ # Diagramas de Arco (consolidados)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  st.header("Diagramas de Arco")
109
+ with st.expander("Ver todos los Diagramas de Arco"):
110
+ for i, entry in enumerate(student_data['entries']):
111
+ if 'arc_diagrams' in entry and entry['arc_diagrams']:
112
+ st.subheader(f"Entrada {i+1} - {entry['timestamp']}")
 
113
  st.write(entry['arc_diagrams'][0], unsafe_allow_html=True)
 
 
114
 
115
+ # Diagramas de Red (consolidados)
116
  st.header("Diagramas de Red")
117
+ with st.expander("Ver todos los Diagramas de Red"):
118
+ for i, entry in enumerate(student_data['entries']):
119
+ if 'network_diagram' in entry and entry['network_diagram']:
120
+ st.subheader(f"Entrada {i+1} - {entry['timestamp']}")
121
+ try:
122
+ # Decodificar la imagen base64
123
+ image_bytes = base64.b64decode(entry['network_diagram'])
124
+ st.image(image_bytes)
125
+ except Exception as e:
126
+ st.error(f"Error al mostrar el diagrama de red: {str(e)}")
127
 
128
+ # Mostrar entradas recientes
129
+ st.header("Entradas Recientes")
130
+ for i, entry in enumerate(student_data['entries'][:5]): # Mostrar las 5 entradas más recientes
131
+ with st.expander(f"Entrada {i+1} - {entry['timestamp']}"):
132
+ st.write(entry['text'])
133
  else:
134
  st.warning("No se encontraron datos para este estudiante.")
135
  st.info("Intenta realizar algunos análisis de texto primero.")