- Rebuild GenerationPage.tsx from static placeholder to production-parity exam generation wizard with all 4 IELTS modules (Reading, Listening, Writing, Speaking) plus Level and Industry - Add per-module config: timer, CEFR difficulty tags, access type, entities, approval workflow, rubric, grading system, shuffling - Reading: AI passage generation, 5 exercise types (MCQ, Fill Blanks, Write Blanks, True/False, Paragraph Match), categories/types - Listening: 4 section types, AI context generation, TTS audio generation - Writing: Task 1/2, AI instruction generation, word limits, marks - Speaking: 3 parts, AI script generation, avatar video generation with 7 avatar options - Wire ExamStructuresPage to real CRUD API (list/create/delete) - Add backend exam_structure model and controller (/api/exam-structures) - Enhance ai_controller with 5 specialized generation handlers (passage, exercises, writing instructions, speaking script, listening context) - Add POST /api/exam/generation/submit for exam creation workflow - Fix media.service avatar video endpoint alignment - All 12 API tests passed, browser-verified with real OpenAI calls Made-with: Cursor
1.3 KiB
1.3 KiB
| 1 | id | name | model_id:id | group_id:id | perm_read | perm_write | perm_create | perm_unlink |
|---|---|---|---|---|---|---|---|---|
| 2 | access_encoach_exam_template_user | encoach.exam.template.user | model_encoach_exam_template | base.group_user | 1 | 1 | 1 | 1 |
| 3 | access_encoach_passage_user | encoach.passage.user | model_encoach_passage | base.group_user | 1 | 1 | 1 | 1 |
| 4 | access_encoach_audio_file_user | encoach.audio.file.user | model_encoach_audio_file | base.group_user | 1 | 1 | 1 | 1 |
| 5 | access_encoach_question_user | encoach.question.user | model_encoach_question | base.group_user | 1 | 1 | 1 | 1 |
| 6 | access_encoach_writing_prompt_user | encoach.writing.prompt.user | model_encoach_writing_prompt | base.group_user | 1 | 1 | 1 | 1 |
| 7 | access_encoach_speaking_card_user | encoach.speaking.card.user | model_encoach_speaking_card | base.group_user | 1 | 1 | 1 | 1 |
| 8 | access_encoach_rubric_user | encoach.rubric.user | model_encoach_rubric | base.group_user | 1 | 1 | 1 | 1 |
| 9 | access_encoach_exam_custom_user | encoach.exam.custom.user | model_encoach_exam_custom | base.group_user | 1 | 1 | 1 | 1 |
| 10 | access_encoach_exam_custom_section_user | encoach.exam.custom.section.user | model_encoach_exam_custom_section | base.group_user | 1 | 1 | 1 | 1 |
| 11 | access_encoach_exam_assignment_user | encoach.exam.assignment.user | model_encoach_exam_assignment | base.group_user | 1 | 1 | 1 | 1 |
| 12 | access_encoach_exam_structure_user | encoach.exam.structure.user | model_encoach_exam_structure | base.group_user | 1 | 1 | 1 | 1 |