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)}"