AIdeaText commited on
Commit
4fcf2e1
verified
1 Parent(s): 571c6c6

Update modules/studentact/current_situation_interface.py

Browse files
modules/studentact/current_situation_interface.py CHANGED
@@ -91,7 +91,6 @@ ANALYSIS_DIMENSION_MAPPING = {
91
  }
92
 
93
  #Funci贸n principal ####################################
94
-
95
  def display_current_situation_interface(lang_code, nlp_models, t):
96
  """
97
  Interfaz simplificada con gr谩fico de radar para visualizar m茅tricas.
@@ -107,88 +106,104 @@ def display_current_situation_interface(lang_code, nlp_models, t):
107
  st.session_state.current_doc = None
108
  if 'current_metrics' not in st.session_state:
109
  st.session_state.current_metrics = None
110
-
 
 
 
 
 
 
 
 
111
  try:
112
- # 1. Selector de tipo de texto
113
- text_type = st.selectbox(
114
- "Tipo de texto",
 
115
  options=list(TEXT_TYPES.keys()),
116
  format_func=lambda x: TEXT_TYPES[x]['name'],
 
117
  help="Selecciona el tipo de texto para ajustar los criterios de evaluaci贸n"
118
  )
119
-
120
- # Guardar en estado
121
  st.session_state.current_text_type = text_type
122
-
123
- # 2. Container principal con 4 columnas
124
- with st.container():
125
- text_base_col, metrics_base_col, text_iter_col, metrics_iter_col = st.columns([1,1,1,1])
 
 
 
 
 
 
 
 
 
 
 
 
 
126
 
127
- # Columna 1: Texto Base
128
- with text_base_col:
129
- st.markdown("### Texto Base")
130
- text_base = st.text_area(
131
- "Texto original",
132
- height=400,
133
- key="text_base",
134
- value=st.session_state.get('base_text', ''),
 
 
 
 
 
 
 
 
 
 
 
 
135
  )
136
-
137
- if st.button("Analizar Base", type="primary", use_container_width=True):
138
- with st.spinner("Analizando texto base..."):
139
- doc = nlp_models[lang_code](text_base)
140
- metrics = analyze_text_dimensions(doc)
141
-
142
- # Guardar en estado
143
- st.session_state.base_text = text_base
144
- st.session_state.base_metrics = metrics
145
- st.session_state.show_base = True
146
-
147
- # Columna 2: M茅tricas Base
148
- with metrics_base_col:
149
- if st.session_state.get('show_base'):
150
- display_metrics_and_suggestions(
151
- st.session_state.base_metrics,
152
- text_type,
153
- "Base"
154
- )
155
-
156
- # Columna 3: Texto Iteraci贸n
157
- with text_iter_col:
158
- st.markdown("### Iteraci贸n")
159
- text_iter = st.text_area(
160
- "Nueva versi贸n",
161
- height=400,
162
- key="text_iter",
163
- value=st.session_state.get('iter_text', ''),
164
- disabled=not st.session_state.get('show_base')
 
 
 
 
 
 
 
165
  )
166
-
167
- if st.button(
168
- "Analizar Iteraci贸n",
169
- type="primary",
170
- use_container_width=True,
171
- disabled=not st.session_state.get('show_base')
172
- ):
173
- with st.spinner("Analizando iteraci贸n..."):
174
- doc = nlp_models[lang_code](text_iter)
175
- metrics = analyze_text_dimensions(doc)
176
-
177
- # Guardar en estado
178
- st.session_state.iter_text = text_iter
179
- st.session_state.iter_metrics = metrics
180
- st.session_state.show_iter = True
181
-
182
- # Columna 4: M茅tricas Iteraci贸n
183
- with metrics_iter_col:
184
- if st.session_state.get('show_iter'):
185
- display_metrics_and_suggestions(
186
- st.session_state.iter_metrics,
187
- text_type,
188
- "Iteraci贸n",
189
- show_suggestions=True
190
- )
191
-
192
  except Exception as e:
193
  logger.error(f"Error en interfaz: {str(e)}")
194
  st.error("Error al cargar la interfaz")
 
91
  }
92
 
93
  #Funci贸n principal ####################################
 
94
  def display_current_situation_interface(lang_code, nlp_models, t):
95
  """
96
  Interfaz simplificada con gr谩fico de radar para visualizar m茅tricas.
 
106
  st.session_state.current_doc = None
107
  if 'current_metrics' not in st.session_state:
108
  st.session_state.current_metrics = None
109
+ if 'base_text' not in st.session_state:
110
+ st.session_state.base_text = ""
111
+ if 'iter_text' not in st.session_state:
112
+ st.session_state.iter_text = ""
113
+ if 'show_base' not in st.session_state:
114
+ st.session_state.show_base = False
115
+ if 'show_iter' not in st.session_state:
116
+ st.session_state.show_iter = False
117
+
118
  try:
119
+ # --- [1] Selector de tipo de texto con Radio Buttons ---
120
+ st.markdown("## Selecciona el tipo de texto")
121
+ text_type = st.radio(
122
+ "驴Qu茅 tipo de texto quieres analizar?",
123
  options=list(TEXT_TYPES.keys()),
124
  format_func=lambda x: TEXT_TYPES[x]['name'],
125
+ index=1, # puedes indicar un 铆ndice por defecto, p.e. 'student_essay'
126
  help="Selecciona el tipo de texto para ajustar los criterios de evaluaci贸n"
127
  )
128
+
 
129
  st.session_state.current_text_type = text_type
130
+
131
+ # --- [2] Contenedor principal en 4 columnas ---
132
+ st.markdown("---")
133
+ st.markdown("## An谩lisis de Texto en Cuatro Columnas")
134
+
135
+ # Usamos st.columns(4) para distribuir todo en partes iguales
136
+ text_base_col, metrics_base_col, text_iter_col, metrics_iter_col = st.columns(4, gap="medium")
137
+
138
+ # ------- Columna 1: Texto Base -------
139
+ with text_base_col:
140
+ st.markdown("### Texto Base")
141
+ text_base = st.text_area(
142
+ "Texto original",
143
+ height=300,
144
+ key="text_base",
145
+ value=st.session_state.base_text,
146
+ )
147
 
148
+ # Bot贸n para analizar base
149
+ if st.button("Analizar Base", key="btn_analizar_base"):
150
+ with st.spinner("Analizando texto base..."):
151
+ doc = nlp_models[lang_code](text_base)
152
+ metrics = analyze_text_dimensions(doc) # Llama a tu funci贸n de an谩lisis
153
+
154
+ # Guardar en estado
155
+ st.session_state.base_text = text_base
156
+ st.session_state.base_metrics = metrics
157
+ st.session_state.show_base = True
158
+
159
+ # ------- Columna 2: M茅tricas Base -------
160
+ with metrics_base_col:
161
+ st.markdown("### M茅tricas Base")
162
+ if st.session_state.show_base and 'base_metrics' in st.session_state:
163
+ display_metrics_and_suggestions(
164
+ st.session_state.base_metrics,
165
+ text_type,
166
+ title="Base",
167
+ show_suggestions=False # Solo mostrar las m茅tricas, sin sugerencias
168
  )
169
+
170
+ # ------- Columna 3: Texto Iteraci贸n -------
171
+ with text_iter_col:
172
+ st.markdown("### Iteraci贸n")
173
+ text_iter = st.text_area(
174
+ "Nueva versi贸n",
175
+ height=300,
176
+ key="text_iter",
177
+ value=st.session_state.iter_text,
178
+ disabled=not st.session_state.show_base # Se activa solo despu茅s de analizar la base
179
+ )
180
+
181
+ # Bot贸n para analizar iteraci贸n
182
+ if st.button(
183
+ "Analizar Iteraci贸n",
184
+ key="btn_analizar_iter",
185
+ disabled=not st.session_state.show_base
186
+ ):
187
+ with st.spinner("Analizando iteraci贸n..."):
188
+ doc = nlp_models[lang_code](text_iter)
189
+ metrics = analyze_text_dimensions(doc) # Llama a tu funci贸n de an谩lisis
190
+
191
+ # Guardar en estado
192
+ st.session_state.iter_text = text_iter
193
+ st.session_state.iter_metrics = metrics
194
+ st.session_state.show_iter = True
195
+
196
+ # ------- Columna 4: M茅tricas Iteraci贸n -------
197
+ with metrics_iter_col:
198
+ st.markdown("### M茅tricas Iteraci贸n")
199
+ if st.session_state.show_iter and 'iter_metrics' in st.session_state:
200
+ display_metrics_and_suggestions(
201
+ st.session_state.iter_metrics,
202
+ text_type,
203
+ title="Iteraci贸n",
204
+ show_suggestions=True # Aqu铆 s铆 mostramos sugerencias de mejora
205
  )
206
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  except Exception as e:
208
  logger.error(f"Error en interfaz: {str(e)}")
209
  st.error("Error al cargar la interfaz")