capradeepgujaran commited on
Commit
9125678
·
verified ·
1 Parent(s): 9df8340

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -22
app.py CHANGED
@@ -617,11 +617,17 @@ def create_quiz_interface():
617
  variant="primary",
618
  size="lg"
619
  )
620
-
621
  # Results Section in Assessment Tab
622
  with gr.Column(visible=False) as results_group:
623
- result_message = gr.Markdown("") # Added this component
624
- feedback_box = gr.Markdown("")
 
 
 
 
 
 
625
  gr.Markdown("---") # Separator
626
  with gr.Row(equal_height=True):
627
  reset_btn = gr.Button(
@@ -635,7 +641,8 @@ def create_quiz_interface():
635
  variant="primary",
636
  size="lg",
637
  visible=False
638
- )
 
639
 
640
  # Certification Tab
641
  with gr.Tab(id=3, label="🎓 Step 3: Get Certified"):
@@ -749,7 +756,7 @@ def create_quiz_interface():
749
  return navigate(1, current_idx, questions, answers, current_answer)
750
 
751
  def on_submit(questions, answers, current_idx, current_answer):
752
- """Handle quiz submission with proper Markdown rendering"""
753
  final_answers = list(answers)
754
  if 0 <= current_idx < len(final_answers):
755
  final_answers[current_idx] = current_answer
@@ -763,54 +770,56 @@ def create_quiz_interface():
763
  gr.update(visible=True),
764
  gr.update(visible=True),
765
  gr.update(visible=False),
766
- gr.update(visible=False),
767
  gr.update(visible=False)
768
  ]
769
 
770
  score, passed, feedback = quiz_app.calculate_score(final_answers[:len(questions)])
771
 
772
- # Create feedback content using pure Markdown
773
  feedback_content = f"""# Assessment Results
774
 
775
- Score: {score:.1f}%
776
 
777
  """
778
 
779
  for i, (q, f) in enumerate(zip(questions, feedback)):
 
 
 
 
780
  feedback_content += f"""### Question {i+1}
781
  {q.question}
782
 
783
- {':white_check_mark:' if f.is_correct else ':x:'} Your answer: {f.selected or 'No answer'}
784
- {'' if f.is_correct else f'Correct answer: {f.correct_answer}'}
785
 
786
  """
787
 
788
- # Add summary box using pure Markdown
789
  if passed:
790
  feedback_content += f"""
791
  ---
792
- # 🎉 Congratulations!
793
  You passed with a score of {score:.1f}%!
794
  """
795
  else:
796
  feedback_content += f"""
797
  ---
798
- # Need to improve
799
  You scored {score:.1f}%. You need 80% or higher to pass.
800
  Please try again.
801
  """
802
 
803
  return [
804
  feedback_content, # feedback_box
805
- gr.update(visible=True), # results_group
806
- score, # score_display
807
- "🎉 Passed!" if passed else "Please try again", # result_message
808
- gr.update(visible=False), # question_box
809
- gr.update(visible=not passed), # reset_btn
810
- gr.update(visible=passed), # view_cert_btn
811
- gr.update(visible=True), # back_to_assessment
812
- gr.update(visible=False) # profile_tab
813
- ]
814
 
815
  # Event Handlers
816
  generate_btn.click(
 
617
  variant="primary",
618
  size="lg"
619
  )
620
+
621
  # Results Section in Assessment Tab
622
  with gr.Column(visible=False) as results_group:
623
+ result_message = gr.Markdown(
624
+ label="Result",
625
+ show_label=True
626
+ )
627
+ feedback_box = gr.Markdown(
628
+ label="Detailed Feedback",
629
+ show_label=True
630
+ )
631
  gr.Markdown("---") # Separator
632
  with gr.Row(equal_height=True):
633
  reset_btn = gr.Button(
 
641
  variant="primary",
642
  size="lg",
643
  visible=False
644
+ )
645
+
646
 
647
  # Certification Tab
648
  with gr.Tab(id=3, label="🎓 Step 3: Get Certified"):
 
756
  return navigate(1, current_idx, questions, answers, current_answer)
757
 
758
  def on_submit(questions, answers, current_idx, current_answer):
759
+ """Handle quiz submission with proper Markdown rendering and emojis"""
760
  final_answers = list(answers)
761
  if 0 <= current_idx < len(final_answers):
762
  final_answers[current_idx] = current_answer
 
770
  gr.update(visible=True),
771
  gr.update(visible=True),
772
  gr.update(visible=False),
 
773
  gr.update(visible=False)
774
  ]
775
 
776
  score, passed, feedback = quiz_app.calculate_score(final_answers[:len(questions)])
777
 
778
+ # Create feedback content using proper Markdown with emojis
779
  feedback_content = f"""# Assessment Results
780
 
781
+ **Score: {score:.1f}%**
782
 
783
  """
784
 
785
  for i, (q, f) in enumerate(zip(questions, feedback)):
786
+ icon = "✅" if f.is_correct else "❌"
787
+ color = "green" if f.is_correct else "red"
788
+
789
+ # Using markdown syntax with color formatting
790
  feedback_content += f"""### Question {i+1}
791
  {q.question}
792
 
793
+ {icon} **Your answer:** {f.selected or 'No answer'}
794
+ {'' if f.is_correct else f'**Correct answer:** {f.correct_answer}'}
795
 
796
  """
797
 
798
+ # Add summary box
799
  if passed:
800
  feedback_content += f"""
801
  ---
802
+ ## 🎉 Congratulations!
803
  You passed with a score of {score:.1f}%!
804
  """
805
  else:
806
  feedback_content += f"""
807
  ---
808
+ ## Need Improvement
809
  You scored {score:.1f}%. You need 80% or higher to pass.
810
  Please try again.
811
  """
812
 
813
  return [
814
  feedback_content, # feedback_box
815
+ gr.update(visible=True), # results_group
816
+ score, # score_display
817
+ f"Score: {score:.1f}%", # result_message
818
+ gr.update(visible=False), # question_box
819
+ gr.update(visible=not passed), # reset_btn
820
+ gr.update(visible=passed), # view_cert_btn
821
+ gr.update(selected=2) # tabs
822
+ ]
 
823
 
824
  # Event Handlers
825
  generate_btn.click(