You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: implement submission file workflow with comprehensive testing
- Create Submission file model
- Add classes to handle file errors
- Develop SubmissionFileProcessor for create files in DB
- Add TestSubmissionFileProcessor with extensive test coverage
- Test file processing with different input types (bytes, file objects)
- Implement error handling tests for IO errors and invalid files
- Verify complete file processing workflow
- Validation tests for file addition in create_external_grader_detail
- Document architectural decisions with ADR
- Add test queue folder in .gitignore
Implemented by https://github.com/openedx/edx-submissions/pull/286
10
+
11
+
Context
12
+
*******
13
+
14
+
As part of the XQueue migration effort detailed in ADR 0001, we need to implement a file handling system within edx-submissions. Currently, XQueue manages file submissions through a tightly coupled approach.
15
+
16
+
### Current Limitations
17
+
18
+
1. **Inadequate File Management**: XQueue's approach relies on JSON strings in character fields, with size constraints and manual URL manipulation for file handling.
19
+
20
+
2. **Process Inefficiencies**: The current system uses synchronous HTTP for file retrieval, lacks proper validation, and tightly couples submission processing with file handling.
21
+
22
+
3. **Integration Challenges**: External graders depend on specific URL formats with HTTP-based retrieval, embedding file information directly in submission payloads.
23
+
24
+
Decision
25
+
********
26
+
27
+
We will implement a dedicated file management system for the assessment submission process, focusing on workflow and educational needs:
28
+
29
+
1. **Centralized Storage**: Create a unified repository for student-submitted files, ensuring they are properly associated with their assessments and accessible throughout the grading process.
30
+
31
+
2. **Streamlined Workflow**: Design a clear process where files are automatically processed during submission creation, securely stored, and efficiently delivered to grading systems.
32
+
33
+
3. **Consistent Experience**: Maintain compatibility with existing systems to ensure a smooth transition, allowing instructors and external graders to access files without changes to their established workflows.
0 commit comments