AIdeaText commited on
Commit
6d6e0b9
·
verified ·
1 Parent(s): 4689360

Update modules/ui/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui/ui.py +84 -87
modules/ui/ui.py CHANGED
@@ -477,93 +477,90 @@ def user_page(lang_code, t):
477
 
478
  tabs = st.tabs(tab_names)
479
 
480
- # Manejar el contenido de cada tab
481
- for index, tab in enumerate(tabs):
482
- with tab:
483
- try:
484
- # Actualizar el tab seleccionado solo si no hay un análisis activo
485
- if tab.selected and st.session_state.selected_tab != index:
486
- can_switch = True
487
- for state_key in st.session_state.tab_states.keys():
488
- if st.session_state.tab_states[state_key] and index != get_tab_index(state_key):
489
- can_switch = False
490
- break
491
- if can_switch:
492
- st.session_state.selected_tab = index
493
-
494
- if index == 0: # Situación actual
495
- st.session_state.tab_states['current_situation_active'] = True
496
- display_current_situation_interface(
497
- st.session_state.lang_code,
498
- st.session_state.nlp_models,
499
- t.get('CURRENT_SITUATION', {})
500
- )
501
-
502
- elif index == 1: # Morfosintáctico
503
- st.session_state.tab_states['morpho_active'] = True
504
- display_morphosyntax_interface(
505
- st.session_state.lang_code,
506
- st.session_state.nlp_models,
507
- t.get('MORPHOSYNTACTIC', {})
508
- )
509
-
510
-
511
- elif index == 2: # Semántico Vivo
512
- st.session_state.tab_states['semantic_live_active'] = True
513
- display_semantic_live_interface(
514
- st.session_state.lang_code,
515
- st.session_state.nlp_models,
516
- t.get('SEMANTIC_LIVE', {})
517
- )
518
-
519
- elif index == 3: # Semántico
520
- st.session_state.tab_states['semantic_active'] = True
521
- display_semantic_interface(
522
- st.session_state.lang_code,
523
- st.session_state.nlp_models,
524
- t.get('SEMANTIC', {})
525
- )
526
-
527
- elif index == 4: # Discurso Vivo
528
- st.session_state.tab_states['discourse_live_active'] = True
529
- display_discourse_live_interface(
530
- st.session_state.lang_code,
531
- st.session_state.nlp_models,
532
- t.get('DISCOURSE_LIVE', {})
533
- )
534
-
535
-
536
- elif index == 5: # Discurso
537
- st.session_state.tab_states['discourse_active'] = True
538
- display_discourse_interface(
539
- st.session_state.lang_code,
540
- st.session_state.nlp_models,
541
- t.get('DISCOURSE', {})
542
- )
543
-
544
- elif index == 6: # Actividades
545
- st.session_state.tab_states['activities_active'] = True
546
- display_student_activities(
547
- username=st.session_state.username,
548
- lang_code=st.session_state.lang_code,
549
- t=t.get('ACTIVITIES', {})
550
- )
551
-
552
- elif index == 7: # Feedback
553
- st.session_state.tab_states['feedback_active'] = True
554
- display_feedback_form(
555
- st.session_state.lang_code,
556
- lang_code=st.session_state.lang_code,
557
- t=t.get('FEEDBACK', {})
558
- )
559
-
560
- except Exception as e:
561
- # Desactivar el estado en caso de error
562
- state_key = get_state_key_for_index(index)
563
- if state_key:
564
- st.session_state.tab_states[state_key] = False
565
- logger.error(f"Error en tab {index}: {str(e)}")
566
- st.error(t.get('tab_error', 'Error al cargar esta sección'))
567
 
568
  # Funciones auxiliares para manejar los estados de los tabs
569
  def get_tab_index(state_key):
 
477
 
478
  tabs = st.tabs(tab_names)
479
 
480
+ # Manejar el contenido de cada tab
481
+ for index, tab in enumerate(tabs):
482
+ with tab:
483
+ try:
484
+ # Actualizar el tab seleccionado solo si no hay un análisis activo
485
+ if tab.selected and st.session_state.selected_tab != index:
486
+ can_switch = True
487
+ for state_key in st.session_state.tab_states.keys():
488
+ if st.session_state.tab_states[state_key] and index != get_tab_index(state_key):
489
+ can_switch = False
490
+ break
491
+ if can_switch:
492
+ st.session_state.selected_tab = index
493
+
494
+ if index == 0: # Situación actual
495
+ st.session_state.tab_states['current_situation_active'] = True
496
+ display_current_situation_interface(
497
+ lang_code=st.session_state.lang_code,
498
+ nlp_models=st.session_state.nlp_models,
499
+ current_situation_t=t.get('CURRENT_SITUATION', {})
500
+ )
501
+
502
+ elif index == 1: # Morfosintáctico
503
+ st.session_state.tab_states['morpho_active'] = True
504
+ display_morphosyntax_interface(
505
+ lang_code=st.session_state.lang_code,
506
+ nlp_models=st.session_state.nlp_models,
507
+ morpho_t=t.get('MORPHOSYNTACTIC', {})
508
+ )
509
+
510
+ elif index == 2: # Semántico Vivo
511
+ st.session_state.tab_states['semantic_live_active'] = True
512
+ display_semantic_live_interface(
513
+ lang_code=st.session_state.lang_code,
514
+ nlp_models=st.session_state.nlp_models,
515
+ semantic_t=t.get('SEMANTIC', {}) # Asumiendo que usa las mismas traducciones que el análisis semántico normal
516
+ )
517
+
518
+ elif index == 3: # Semántico
519
+ st.session_state.tab_states['semantic_active'] = True
520
+ display_semantic_interface(
521
+ lang_code=st.session_state.lang_code,
522
+ nlp_models=st.session_state.nlp_models,
523
+ semantic_t=t.get('SEMANTIC', {})
524
+ )
525
+
526
+ elif index == 4: # Discurso Vivo
527
+ st.session_state.tab_states['discourse_live_active'] = True
528
+ display_discourse_live_interface(
529
+ lang_code=st.session_state.lang_code,
530
+ nlp_models=st.session_state.nlp_models,
531
+ discourse_t=t.get('DISCOURSE', {}) # Asumiendo que usa las mismas traducciones que el análisis de discurso normal
532
+ )
533
+
534
+ elif index == 5: # Discurso
535
+ st.session_state.tab_states['discourse_active'] = True
536
+ display_discourse_interface(
537
+ lang_code=st.session_state.lang_code,
538
+ nlp_models=st.session_state.nlp_models,
539
+ discourse_t=t.get('DISCOURSE', {})
540
+ )
541
+
542
+ elif index == 6: # Actividades
543
+ st.session_state.tab_states['activities_active'] = True
544
+ display_student_activities(
545
+ username=st.session_state.username,
546
+ lang_code=st.session_state.lang_code,
547
+ t=t.get('ACTIVITIES', {})
548
+ )
549
+
550
+ elif index == 7: # Feedback
551
+ st.session_state.tab_states['feedback_active'] = True
552
+ display_feedback_form(
553
+ lang_code=st.session_state.lang_code, # Solo pasarlo una vez
554
+ t=t.get('FEEDBACK', {})
555
+ )
556
+
557
+ except Exception as e:
558
+ # Desactivar el estado en caso de error
559
+ state_key = get_state_key_for_index(index)
560
+ if state_key:
561
+ st.session_state.tab_states[state_key] = False
562
+ logger.error(f"Error en tab {index}: {str(e)}")
563
+ st.error(t.get('tab_error', 'Error al cargar esta sección'))
 
 
 
564
 
565
  # Funciones auxiliares para manejar los estados de los tabs
566
  def get_tab_index(state_key):