AIdeaText commited on
Commit
eaf0799
·
verified ·
1 Parent(s): 55ffd71

Update modules/database.py

Browse files
Files changed (1) hide show
  1. modules/database.py +32 -25
modules/database.py CHANGED
@@ -135,49 +135,56 @@ def get_student_data(username):
135
 
136
  try:
137
  logger.info(f"Buscando datos para el usuario: {username}")
138
- # Obtener todos los documentos para el usuario sin ordenar
139
  cursor = analysis_collection.find({"username": username})
140
 
141
- # Contar documentos
142
- count = analysis_collection.count_documents({"username": username})
143
- logger.info(f"Número de documentos encontrados para {username}: {count}")
144
-
145
- if count == 0:
146
- logger.info(f"No se encontraron datos para el usuario {username}")
147
- return None
148
-
149
- # Formatear los datos
150
  formatted_data = {
151
  "username": username,
152
  "entries": [],
153
- "entries_count": count,
154
- "word_count": {}
 
 
 
155
  }
156
 
157
  for entry in cursor:
158
  formatted_entry = {
159
  "timestamp": entry["timestamp"],
160
  "text": entry["text"],
161
- "word_count": entry.get("word_count", {}),
162
- "arc_diagrams": entry.get("arc_diagrams", []),
163
- "network_diagram": entry.get("network_diagram", "")
164
  }
165
- formatted_data["entries"].append(formatted_entry)
166
 
167
- # Agregar conteo de palabras
168
- for category, count in formatted_entry["word_count"].items():
169
- if category in formatted_data["word_count"]:
170
- formatted_data["word_count"][category] += count
171
- else:
172
- formatted_data["word_count"][category] = count
173
-
174
- # Ordenar las entradas por timestamp después de obtenerlas
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  formatted_data["entries"].sort(key=lambda x: x["timestamp"], reverse=True)
176
 
177
- # Convertir los timestamps a formato ISO después de ordenar
178
  for entry in formatted_data["entries"]:
179
  entry["timestamp"] = entry["timestamp"].isoformat()
180
 
 
 
 
 
181
  logger.info(f"Datos formateados para {username}: {formatted_data}")
182
  return formatted_data
183
 
 
135
 
136
  try:
137
  logger.info(f"Buscando datos para el usuario: {username}")
 
138
  cursor = analysis_collection.find({"username": username})
139
 
 
 
 
 
 
 
 
 
 
140
  formatted_data = {
141
  "username": username,
142
  "entries": [],
143
+ "entries_count": 0,
144
+ "word_count": {},
145
+ "semantic_analyses": [],
146
+ "discourse_analyses": [],
147
+ "chat_history": []
148
  }
149
 
150
  for entry in cursor:
151
  formatted_entry = {
152
  "timestamp": entry["timestamp"],
153
  "text": entry["text"],
154
+ "analysis_type": entry.get("analysis_type", "morphosyntax")
 
 
155
  }
 
156
 
157
+ if formatted_entry["analysis_type"] == "morphosyntax":
158
+ formatted_entry.update({
159
+ "word_count": entry.get("word_count", {}),
160
+ "arc_diagrams": entry.get("arc_diagrams", [])
161
+ })
162
+ for category, count in formatted_entry["word_count"].items():
163
+ formatted_data["word_count"][category] = formatted_data["word_count"].get(category, 0) + count
164
+
165
+ elif formatted_entry["analysis_type"] == "semantic":
166
+ formatted_entry["network_diagram"] = entry.get("network_diagram", "")
167
+ formatted_data["semantic_analyses"].append(formatted_entry)
168
+
169
+ elif formatted_entry["analysis_type"] == "discourse":
170
+ formatted_entry.update({
171
+ "graph1": entry.get("graph1", ""),
172
+ "graph2": entry.get("graph2", "")
173
+ })
174
+ formatted_data["discourse_analyses"].append(formatted_entry)
175
+
176
+ formatted_data["entries"].append(formatted_entry)
177
+
178
+ formatted_data["entries_count"] = len(formatted_data["entries"])
179
  formatted_data["entries"].sort(key=lambda x: x["timestamp"], reverse=True)
180
 
 
181
  for entry in formatted_data["entries"]:
182
  entry["timestamp"] = entry["timestamp"].isoformat()
183
 
184
+ # Obtener el historial del chat
185
+ chat_cursor = chat_collection.find({"username": username})
186
+ formatted_data["chat_history"] = list(chat_cursor)
187
+
188
  logger.info(f"Datos formateados para {username}: {formatted_data}")
189
  return formatted_data
190