Changeset 82a4a12 in flexograder
- Timestamp:
- 03/03/26 10:17:25 (5 weeks ago)
- Branches:
- fake-data
- Parents:
- 6a4d3e8
- Files:
-
- 1 added
- 2 edited
-
flexograder/core_entities/exam.py (modified) (2 diffs)
-
flexograder/core_entities/exam_elements.py (modified) (2 diffs)
-
scripts/fake_exam_and_submissions.py (added)
Legend:
- Unmodified
- Added
- Removed
-
flexograder/core_entities/exam.py
r6a4d3e8 r82a4a12 7 7 import html 8 8 9 from flexoentity import FlexoEntity, EntityType, EntityState, Domain 9 from flexoentity import FlexoEntity, EntityType, EntityState, Domain, FlexOID 10 10 from .exam_elements import ExamElement, ChoiceQuestion, IDForm, element_factory 11 11 from .question_catalog import QuestionCatalog … … 222 222 self.layout.add_page(page_title) 223 223 224 225 224 226 def add_element_to_page(self, page_title: str, element: ExamElement): 225 227 """Assign an element to a page.""" 226 self.layout.assign_element(page_title, element.flexo_id) 228 229 # 1) Ensure it is registered 230 if element.flexo_id not in self.elements: 231 self.add_element(element) 232 233 # 2) Ensure page exists 234 page = self.ensure_page(page_title) 235 self.layout.assign_element(page_title, element.flexo_id) 227 236 228 237 def shuffle_options(self): -
flexograder/core_entities/exam_elements.py
r6a4d3e8 r82a4a12 73 73 74 74 return obj 75 76 def __init__(self, *, flexo_id, subtype=None, fingerprint=None, origin=None, 77 originator_id=None, owner_id=None,): 78 super().__init__( 79 flexo_id=flexo_id, 80 subtype=subtype, 81 fingerprint=fingerprint, 82 origin=origin, 83 originator_id=originator_id, 84 owner_id=owner_id, 85 ) 86 87 # --- Canonical content contract --- 88 self.topic: str = "" 89 self.subtopic: str = "" 90 self.text: str = "" 91 self.media: list = [] 75 92 76 93 @classmethod … … 430 447 owner_id=owner_id, 431 448 ) 432 433 449 self.text = text 434 450 self.fields = fields or [] 451 452 @classmethod 453 def with_domain_id(cls, domain_id: str, **kwargs): 454 text = kwargs.get("text", "") 455 fields = kwargs.get("fields", []) 456 457 flexo_id = FlexOID.safe_generate( 458 domain_id=domain_id, 459 entity_type=cls.ENTITY_TYPE.value, 460 state=EntityState.DRAFT.value, 461 text=text, 462 version=1, 463 ) 464 465 obj = cls( 466 text=text, 467 fields=fields, 468 flexo_id=flexo_id, 469 ) 470 471 obj.fingerprint = obj._compute_fingerprint() 472 return obj 435 473 436 474 def to_html(self) -> str:
Note:
See TracChangeset
for help on using the changeset viewer.
