DHEIVER commited on
Commit
12f8193
·
verified ·
1 Parent(s): a75ba0e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -25
app.py CHANGED
@@ -468,16 +468,15 @@ def create_interface():
468
  # Questões
469
  radio_components = []
470
  for i, questao in enumerate(DISC_QUESTIONS, 1):
471
- with gr.Box(elem_classes="question-card"):
472
  gr.Markdown(f"### Questão {i}: {questao['pergunta']}")
473
- with gr.Column():
474
- radio = gr.Radio(
475
- choices=[f"{perfil} - {desc}" for perfil, desc in questao['opcoes']],
476
- label="Selecione a opção mais adequada:",
477
- scale=0,
478
- interactive=True
479
- )
480
- radio_components.append(radio)
481
 
482
  # Botão de análise
483
  with gr.Row(elem_classes="center"):
@@ -489,7 +488,7 @@ def create_interface():
489
  )
490
 
491
  # Área de resultados
492
- with gr.Box(visible=False, elem_classes="result-card") as result_box:
493
  gr.Markdown("## 📊 Resultado da Análise")
494
 
495
  with gr.Row():
@@ -498,7 +497,7 @@ def create_interface():
498
 
499
  # Métricas principais
500
  with gr.Column():
501
- with gr.Box():
502
  gr.Markdown("### Perfis Principais")
503
  perfil_dominante = gr.Textbox(
504
  label="Perfil Dominante",
@@ -512,8 +511,8 @@ def create_interface():
512
  )
513
 
514
  # Relatório detalhado
515
- with gr.Accordion("📝 Relatório Detalhado", open=True):
516
- output = gr.Markdown()
517
 
518
  # Botões de ação
519
  with gr.Row():
@@ -530,6 +529,28 @@ def create_interface():
530
  """)
531
 
532
  # Event handlers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
533
  def update_display(*answers):
534
  """Atualiza a visibilidade dos componentes baseado nas respostas."""
535
  if all(a is not None for a in answers):
@@ -575,18 +596,6 @@ def create_interface():
575
  ]
576
  )
577
 
578
- # Exemplo simples de geração de PDF (você precisará implementar a função real)
579
- def generate_pdf(report_text):
580
- # Implementar geração real de PDF aqui
581
- return "report.pdf"
582
-
583
- download_btn.click(
584
- generate_pdf,
585
- inputs=[output],
586
- outputs=gr.File()
587
- )
588
-
589
- # Função de compartilhamento (exemplo)
590
  def share_results():
591
  return gr.Info("Link de compartilhamento copiado!")
592
 
 
468
  # Questões
469
  radio_components = []
470
  for i, questao in enumerate(DISC_QUESTIONS, 1):
471
+ with gr.Group(elem_classes="question-card"):
472
  gr.Markdown(f"### Questão {i}: {questao['pergunta']}")
473
+ radio = gr.Radio(
474
+ choices=[f"{perfil} - {desc}" for perfil, desc in questao['opcoes']],
475
+ label="Selecione a opção mais adequada:",
476
+ scale=0,
477
+ interactive=True
478
+ )
479
+ radio_components.append(radio)
 
480
 
481
  # Botão de análise
482
  with gr.Row(elem_classes="center"):
 
488
  )
489
 
490
  # Área de resultados
491
+ with gr.Group(visible=False, elem_classes="result-card") as result_box:
492
  gr.Markdown("## 📊 Resultado da Análise")
493
 
494
  with gr.Row():
 
497
 
498
  # Métricas principais
499
  with gr.Column():
500
+ with gr.Group():
501
  gr.Markdown("### Perfis Principais")
502
  perfil_dominante = gr.Textbox(
503
  label="Perfil Dominante",
 
511
  )
512
 
513
  # Relatório detalhado
514
+ gr.Markdown("### 📝 Relatório Detalhado")
515
+ output = gr.Markdown()
516
 
517
  # Botões de ação
518
  with gr.Row():
 
529
  """)
530
 
531
  # Event handlers
532
+ def process_and_visualize(*answers):
533
+ """Processa respostas e gera visualizações."""
534
+ percentuais = calcular_perfil(answers)
535
+
536
+ # Criar gráfico
537
+ fig = create_disc_plot(percentuais)
538
+
539
+ # Gerar relatório
540
+ report = gerar_relatorio_personalizado(percentuais)
541
+
542
+ # Identificar perfis principais
543
+ sorted_profiles = dict(sorted(percentuais.items(), key=lambda x: x[1], reverse=True))
544
+ main_profile = list(sorted_profiles.keys())[0]
545
+ secondary_profile = list(sorted_profiles.keys())[1]
546
+
547
+ return {
548
+ plot: fig,
549
+ perfil_dominante: f"{main_profile} ({sorted_profiles[main_profile]:.1f}%)",
550
+ perfil_secundario: f"{secondary_profile} ({sorted_profiles[secondary_profile]:.1f}%)",
551
+ output: report
552
+ }
553
+
554
  def update_display(*answers):
555
  """Atualiza a visibilidade dos componentes baseado nas respostas."""
556
  if all(a is not None for a in answers):
 
596
  ]
597
  )
598
 
 
 
 
 
 
 
 
 
 
 
 
 
599
  def share_results():
600
  return gr.Info("Link de compartilhamento copiado!")
601