Spaces:
Sleeping
Sleeping
| 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)}" |