File size: 1,741 Bytes
217abc3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import json

def format_quiz_for_ui(questions_json):
    """Format quiz questions for display in the UI."""
    if not questions_json:
        return "No questions to format."
    
    try:
        questions = json.loads(questions_json)
        
        # Sort questions by rank if available
        try:
            questions = sorted(questions, key=lambda q: q.get('rank', 999))
        except Exception as e:
            print(f"Warning: Could not sort by rank: {e}")
        
        formatted_output = ""
        for i, question in enumerate(questions, 1):
            # Add question with rank if available
            rank_info = ""
            if 'rank' in question:
                rank_info = f" [Rank: {question['rank']}]"
            
            formatted_output += f"**Question {i}{rank_info}:** {question['question_text']}\n\n"
            
            # Add ranking reasoning if available
            if 'ranking_reasoning' in question:
                formatted_output += f"Ranking Reasoning: {question['ranking_reasoning']}\n\n"
            
            options = question['options']
            option_letters = ['A', 'B', 'C', 'D']
            
            # Add each option with its letter
            for j, option in enumerate(options):
                letter = option_letters[j]
                correct_marker = " [Correct]" if option['is_correct'] else ""
                
                formatted_output += f"\t• {letter}{correct_marker}: {option['text']}\n"
                formatted_output += f"\t  ◦ Feedback: {option['feedback']}\n\n"
            
            formatted_output += "\n"
        
        return formatted_output
    
    except Exception as e:
        return f"Error formatting quiz: {str(e)}"