@studious-lms/server 1.22.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +0 -1
- package/data/curriculum/nepal-cdc-g4-g5/README.md +90 -0
- package/data/curriculum/nepal-cdc-g4-g5/manifest.json +97 -0
- package/data/curriculum/nepal-cdc-g4-g5/proficiency-scale.json +76 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/english.json +6936 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/health-physical-creative-arts.json +3401 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/mathematics.json +1511 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/nepali.json +7928 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/science-technology.json +2420 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/social-studies.json +2177 -0
- package/dist/lib/assignmentTypeDefaults.d.ts +41 -0
- package/dist/lib/assignmentTypeDefaults.d.ts.map +1 -0
- package/dist/lib/assignmentTypeDefaults.js +167 -0
- package/dist/lib/assignmentTypeDefaults.js.map +1 -0
- package/dist/lib/config/env.d.ts +0 -8
- package/dist/lib/config/env.d.ts.map +1 -1
- package/dist/lib/config/env.js +2 -5
- package/dist/lib/config/env.js.map +1 -1
- package/dist/lib/feePdf.d.ts +19 -0
- package/dist/lib/feePdf.d.ts.map +1 -0
- package/dist/lib/feePdf.js +167 -0
- package/dist/lib/feePdf.js.map +1 -0
- package/dist/lib/feePdfFormat.d.ts +4 -0
- package/dist/lib/feePdfFormat.d.ts.map +1 -0
- package/dist/lib/feePdfFormat.js +16 -0
- package/dist/lib/feePdfFormat.js.map +1 -0
- package/dist/lib/idCardPdf.d.ts +26 -0
- package/dist/lib/idCardPdf.d.ts.map +1 -0
- package/dist/lib/idCardPdf.js +272 -0
- package/dist/lib/idCardPdf.js.map +1 -0
- package/dist/lib/pdfLetterhead.d.ts +41 -0
- package/dist/lib/pdfLetterhead.d.ts.map +1 -0
- package/dist/lib/pdfLetterhead.js +86 -0
- package/dist/lib/pdfLetterhead.js.map +1 -0
- package/dist/lib/transcriptPdf.d.ts +55 -0
- package/dist/lib/transcriptPdf.d.ts.map +1 -0
- package/dist/lib/transcriptPdf.js +303 -0
- package/dist/lib/transcriptPdf.js.map +1 -0
- package/dist/models/academicCalendar.d.ts +198 -0
- package/dist/models/academicCalendar.d.ts.map +1 -0
- package/dist/models/academicCalendar.js +106 -0
- package/dist/models/academicCalendar.js.map +1 -0
- package/dist/models/agenda.d.ts +8 -0
- package/dist/models/agenda.d.ts.map +1 -1
- package/dist/models/announcement.d.ts +2 -0
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/assignment.d.ts +66 -0
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/attendance.d.ts +659 -21
- package/dist/models/attendance.d.ts.map +1 -1
- package/dist/models/attendance.js +544 -75
- package/dist/models/attendance.js.map +1 -1
- package/dist/models/auth.d.ts +2 -0
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/class.d.ts +12 -0
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +3 -2
- package/dist/models/class.js.map +1 -1
- package/dist/models/event.d.ts +16 -0
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/fees.d.ts +554 -0
- package/dist/models/fees.d.ts.map +1 -0
- package/dist/models/fees.js +278 -0
- package/dist/models/fees.js.map +1 -0
- package/dist/models/file.d.ts +29 -0
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/folder.d.ts +2 -0
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/labChat.d.ts +2 -0
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/marketplace.d.ts +178 -0
- package/dist/models/marketplace.d.ts.map +1 -0
- package/dist/models/marketplace.js +115 -0
- package/dist/models/marketplace.js.map +1 -0
- package/dist/models/moduleItem.d.ts +304 -0
- package/dist/models/moduleItem.d.ts.map +1 -0
- package/dist/models/moduleItem.js +78 -0
- package/dist/models/moduleItem.js.map +1 -0
- package/dist/models/newtonChat.d.ts +1 -0
- package/dist/models/newtonChat.d.ts.map +1 -1
- package/dist/models/school.d.ts +193 -0
- package/dist/models/school.d.ts.map +1 -1
- package/dist/models/school.js +80 -2
- package/dist/models/school.js.map +1 -1
- package/dist/models/section.d.ts +4 -0
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/worksheet.d.ts +19 -0
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/models/worksheet.js +2 -2
- package/dist/models/worksheet.js.map +1 -1
- package/dist/routers/_app.d.ts +11605 -7133
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +12 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/academicCalendar.d.ts +229 -0
- package/dist/routers/academicCalendar.d.ts.map +1 -0
- package/dist/routers/academicCalendar.js +75 -0
- package/dist/routers/academicCalendar.js.map +1 -0
- package/dist/routers/admin.d.ts +2 -0
- package/dist/routers/admin.d.ts.map +1 -1
- package/dist/routers/agenda.d.ts +8 -0
- package/dist/routers/agenda.d.ts.map +1 -1
- package/dist/routers/assignment.d.ts +75 -0
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +10 -2
- package/dist/routers/assignment.js.map +1 -1
- package/dist/routers/attendance.d.ts +103 -0
- package/dist/routers/attendance.d.ts.map +1 -1
- package/dist/routers/attendance.js +8 -5
- package/dist/routers/attendance.js.map +1 -1
- package/dist/routers/class.d.ts +27 -0
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +6 -2
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/event.d.ts +8 -0
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/fees.d.ts +513 -0
- package/dist/routers/fees.d.ts.map +1 -0
- package/dist/routers/fees.js +88 -0
- package/dist/routers/fees.js.map +1 -0
- package/dist/routers/file.d.ts +2 -0
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/gradebook.d.ts +4 -1
- package/dist/routers/gradebook.d.ts.map +1 -1
- package/dist/routers/marketplace.d.ts +371 -0
- package/dist/routers/marketplace.d.ts.map +1 -0
- package/dist/routers/marketplace.js +87 -0
- package/dist/routers/marketplace.js.map +1 -0
- package/dist/routers/moduleItem.d.ts +263 -0
- package/dist/routers/moduleItem.d.ts.map +1 -0
- package/dist/routers/moduleItem.js +60 -0
- package/dist/routers/moduleItem.js.map +1 -0
- package/dist/routers/parent.d.ts +169 -0
- package/dist/routers/parent.d.ts.map +1 -0
- package/dist/routers/parent.js +49 -0
- package/dist/routers/parent.js.map +1 -0
- package/dist/routers/school.d.ts +476 -6
- package/dist/routers/school.d.ts.map +1 -1
- package/dist/routers/school.js +130 -4
- package/dist/routers/school.js.map +1 -1
- package/dist/routers/worksheet.d.ts +27 -0
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/routers/worksheet.js +10 -3
- package/dist/routers/worksheet.js.map +1 -1
- package/dist/services/academicCalendar.d.ts +173 -0
- package/dist/services/academicCalendar.d.ts.map +1 -0
- package/dist/services/academicCalendar.js +214 -0
- package/dist/services/academicCalendar.js.map +1 -0
- package/dist/services/adminInstitution.d.ts +2 -0
- package/dist/services/adminInstitution.d.ts.map +1 -1
- package/dist/services/agenda.d.ts +8 -0
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/assignment.d.ts +75 -0
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/assignment.js +91 -12
- package/dist/services/assignment.js.map +1 -1
- package/dist/services/attendance.d.ts +323 -10
- package/dist/services/attendance.d.ts.map +1 -1
- package/dist/services/attendance.js +385 -25
- package/dist/services/attendance.js.map +1 -1
- package/dist/services/attendanceMerge.d.ts +53 -0
- package/dist/services/attendanceMerge.d.ts.map +1 -0
- package/dist/services/attendanceMerge.js +87 -0
- package/dist/services/attendanceMerge.js.map +1 -0
- package/dist/services/attendanceRate.d.ts +24 -0
- package/dist/services/attendanceRate.d.ts.map +1 -0
- package/dist/services/attendanceRate.js +31 -0
- package/dist/services/attendanceRate.js.map +1 -0
- package/dist/services/attendanceStats.d.ts +22 -0
- package/dist/services/attendanceStats.d.ts.map +1 -0
- package/dist/services/attendanceStats.js +45 -0
- package/dist/services/attendanceStats.js.map +1 -0
- package/dist/services/class.d.ts +27 -0
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +26 -3
- package/dist/services/class.js.map +1 -1
- package/dist/services/event.d.ts +8 -0
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/fees.d.ts +422 -0
- package/dist/services/fees.d.ts.map +1 -0
- package/dist/services/fees.js +310 -0
- package/dist/services/fees.js.map +1 -0
- package/dist/services/feesAuthz.d.ts +49 -0
- package/dist/services/feesAuthz.d.ts.map +1 -0
- package/dist/services/feesAuthz.js +52 -0
- package/dist/services/feesAuthz.js.map +1 -0
- package/dist/services/file.d.ts +4 -0
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/gradebook.d.ts +18 -1
- package/dist/services/gradebook.d.ts.map +1 -1
- package/dist/services/gradebook.js +57 -2
- package/dist/services/gradebook.js.map +1 -1
- package/dist/services/idCard.d.ts +11 -0
- package/dist/services/idCard.d.ts.map +1 -0
- package/dist/services/idCard.js +122 -0
- package/dist/services/idCard.js.map +1 -0
- package/dist/services/marketplace.d.ts +301 -0
- package/dist/services/marketplace.d.ts.map +1 -0
- package/dist/services/marketplace.js +628 -0
- package/dist/services/marketplace.js.map +1 -0
- package/dist/services/moduleItem.d.ts +196 -0
- package/dist/services/moduleItem.d.ts.map +1 -0
- package/dist/services/moduleItem.js +188 -0
- package/dist/services/moduleItem.js.map +1 -0
- package/dist/services/notification.d.ts +58 -0
- package/dist/services/notification.d.ts.map +1 -1
- package/dist/services/notification.js +30 -2
- package/dist/services/notification.js.map +1 -1
- package/dist/services/parentPortal.d.ts +133 -0
- package/dist/services/parentPortal.d.ts.map +1 -0
- package/dist/services/parentPortal.js +328 -0
- package/dist/services/parentPortal.js.map +1 -0
- package/dist/services/school.d.ts +122 -3
- package/dist/services/school.d.ts.map +1 -1
- package/dist/services/school.js +179 -47
- package/dist/services/school.js.map +1 -1
- package/dist/services/studentImport.d.ts +34 -0
- package/dist/services/studentImport.d.ts.map +1 -0
- package/dist/services/studentImport.js +236 -0
- package/dist/services/studentImport.js.map +1 -0
- package/dist/services/transcript.d.ts +61 -0
- package/dist/services/transcript.d.ts.map +1 -0
- package/dist/services/transcript.js +243 -0
- package/dist/services/transcript.js.map +1 -0
- package/dist/services/worksheet.d.ts +22 -0
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/services/worksheet.js +94 -2
- package/dist/services/worksheet.js.map +1 -1
- package/dist/trpc.d.ts +1 -1
- package/dist/trpc.d.ts.map +1 -1
- package/dist/trpc.js +5 -5
- package/dist/trpc.js.map +1 -1
- package/dist/utils/adminPanelAccess.d.ts +4 -5
- package/dist/utils/adminPanelAccess.d.ts.map +1 -1
- package/dist/utils/adminPanelAccess.js +12 -34
- package/dist/utils/adminPanelAccess.js.map +1 -1
- package/package.json +2 -1
- package/prisma/migrations/20260804120000_add_attendance_records_and_excusals/migration.sql +114 -0
- package/prisma/migrations/20260804120100_add_fee_plans_invoices_payments/migration.sql +101 -0
- package/prisma/migrations/20260804120200_add_marketplace_listings/migration.sql +54 -0
- package/prisma/migrations/20260804120300_content_platform_b3_b9/migration.sql +63 -0
- package/prisma/migrations/20260804120400_c_academic_ops/migration.sql +77 -0
- package/prisma/schema.prisma +371 -11
- package/scripts/import-nepal-cdc-curriculum.ts +379 -0
- package/src/lib/assignmentTypeDefaults.ts +222 -0
- package/src/lib/config/env.ts +0 -3
- package/src/lib/feePdf.ts +199 -0
- package/src/lib/feePdfFormat.ts +14 -0
- package/src/lib/idCardPdf.ts +336 -0
- package/src/lib/pdfLetterhead.ts +124 -0
- package/src/lib/transcriptPdf.ts +502 -0
- package/src/models/academicCalendar.ts +139 -0
- package/src/models/attendance.ts +704 -73
- package/src/models/class.ts +1 -0
- package/src/models/fees.ts +349 -0
- package/src/models/marketplace.ts +158 -0
- package/src/models/moduleItem.ts +107 -0
- package/src/models/school.ts +95 -0
- package/src/models/worksheet.ts +2 -0
- package/src/routers/_app.ts +10 -0
- package/src/routers/academicCalendar.ts +103 -0
- package/src/routers/assignment.ts +8 -0
- package/src/routers/attendance.ts +7 -3
- package/src/routers/class.ts +4 -0
- package/src/routers/fees.ts +126 -0
- package/src/routers/marketplace.ts +134 -0
- package/src/routers/moduleItem.ts +89 -0
- package/src/routers/parent.ts +68 -0
- package/src/routers/school.ts +184 -1
- package/src/routers/worksheet.ts +11 -0
- package/src/services/academicCalendar.ts +299 -0
- package/src/services/assignment.ts +122 -12
- package/src/services/attendance.ts +548 -26
- package/src/services/attendanceMerge.ts +139 -0
- package/src/services/attendanceRate.ts +41 -0
- package/src/services/attendanceStats.ts +63 -0
- package/src/services/class.ts +25 -1
- package/src/services/fees.ts +424 -0
- package/src/services/feesAuthz.ts +77 -0
- package/src/services/gradebook.ts +70 -0
- package/src/services/idCard.ts +147 -0
- package/src/services/marketplace.ts +785 -0
- package/src/services/moduleItem.ts +274 -0
- package/src/services/notification.ts +43 -0
- package/src/services/parentPortal.ts +380 -0
- package/src/services/school.ts +243 -45
- package/src/services/studentImport.ts +273 -0
- package/src/services/transcript.ts +313 -0
- package/src/services/worksheet.ts +111 -0
- package/src/trpc.ts +3 -3
- package/src/utils/adminPanelAccess.ts +12 -35
- package/tests/unit/assignmentTypeDefaults.test.ts +52 -0
- package/tests/unit/lib/feePdf.test.ts +15 -0
- package/tests/unit/lib/idCardPdf.test.ts +40 -0
- package/tests/unit/lib/transcriptPdf.test.ts +111 -0
- package/tests/unit/services/attendanceMerge.test.ts +90 -0
- package/tests/unit/services/attendanceRate.test.ts +38 -0
- package/tests/unit/services/attendanceStats.test.ts +54 -0
|
@@ -89,6 +89,9 @@ export declare function getAssignment(id: string, _classId: string): Promise<{
|
|
|
89
89
|
order: number | null;
|
|
90
90
|
gradingBoundaryId: string | null;
|
|
91
91
|
gradeCategoryId: string | null;
|
|
92
|
+
timeLimitMinutes: number | null;
|
|
93
|
+
singleAttempt: boolean;
|
|
94
|
+
allowLateSubmissions: boolean;
|
|
92
95
|
}>;
|
|
93
96
|
export declare function getSubmission(assignmentId: string, studentId: string): Promise<{
|
|
94
97
|
late: boolean;
|
|
@@ -106,6 +109,7 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
106
109
|
discussionsEnabled: boolean;
|
|
107
110
|
studentsCanCreateDiscussions: boolean;
|
|
108
111
|
studentsCanReply: boolean;
|
|
112
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
109
113
|
treatMissingAsZero: boolean;
|
|
110
114
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
111
115
|
};
|
|
@@ -147,6 +151,9 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
147
151
|
order: number | null;
|
|
148
152
|
gradingBoundaryId: string | null;
|
|
149
153
|
gradeCategoryId: string | null;
|
|
154
|
+
timeLimitMinutes: number | null;
|
|
155
|
+
singleAttempt: boolean;
|
|
156
|
+
allowLateSubmissions: boolean;
|
|
150
157
|
};
|
|
151
158
|
attachments: {
|
|
152
159
|
path: string;
|
|
@@ -176,6 +183,7 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
176
183
|
announcementId: string | null;
|
|
177
184
|
discussionId: string | null;
|
|
178
185
|
discussionReplyId: string | null;
|
|
186
|
+
moduleItemId: string | null;
|
|
179
187
|
schoolDevelopementProgramId: string | null;
|
|
180
188
|
}[];
|
|
181
189
|
annotations: {
|
|
@@ -206,6 +214,7 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
206
214
|
announcementId: string | null;
|
|
207
215
|
discussionId: string | null;
|
|
208
216
|
discussionReplyId: string | null;
|
|
217
|
+
moduleItemId: string | null;
|
|
209
218
|
schoolDevelopementProgramId: string | null;
|
|
210
219
|
}[];
|
|
211
220
|
student: {
|
|
@@ -244,6 +253,7 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
244
253
|
discussionsEnabled: boolean;
|
|
245
254
|
studentsCanCreateDiscussions: boolean;
|
|
246
255
|
studentsCanReply: boolean;
|
|
256
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
247
257
|
treatMissingAsZero: boolean;
|
|
248
258
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
249
259
|
};
|
|
@@ -285,6 +295,9 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
285
295
|
order: number | null;
|
|
286
296
|
gradingBoundaryId: string | null;
|
|
287
297
|
gradeCategoryId: string | null;
|
|
298
|
+
timeLimitMinutes: number | null;
|
|
299
|
+
singleAttempt: boolean;
|
|
300
|
+
allowLateSubmissions: boolean;
|
|
288
301
|
};
|
|
289
302
|
attachments: {
|
|
290
303
|
path: string;
|
|
@@ -314,6 +327,7 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
314
327
|
announcementId: string | null;
|
|
315
328
|
discussionId: string | null;
|
|
316
329
|
discussionReplyId: string | null;
|
|
330
|
+
moduleItemId: string | null;
|
|
317
331
|
schoolDevelopementProgramId: string | null;
|
|
318
332
|
}[];
|
|
319
333
|
annotations: {
|
|
@@ -344,6 +358,7 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
344
358
|
announcementId: string | null;
|
|
345
359
|
discussionId: string | null;
|
|
346
360
|
discussionReplyId: string | null;
|
|
361
|
+
moduleItemId: string | null;
|
|
347
362
|
schoolDevelopementProgramId: string | null;
|
|
348
363
|
}[];
|
|
349
364
|
student: {
|
|
@@ -394,6 +409,7 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
394
409
|
discussionsEnabled: boolean;
|
|
395
410
|
studentsCanCreateDiscussions: boolean;
|
|
396
411
|
studentsCanReply: boolean;
|
|
412
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
397
413
|
treatMissingAsZero: boolean;
|
|
398
414
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
399
415
|
};
|
|
@@ -431,6 +447,9 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
431
447
|
order: number | null;
|
|
432
448
|
gradingBoundaryId: string | null;
|
|
433
449
|
gradeCategoryId: string | null;
|
|
450
|
+
timeLimitMinutes: number | null;
|
|
451
|
+
singleAttempt: boolean;
|
|
452
|
+
allowLateSubmissions: boolean;
|
|
434
453
|
};
|
|
435
454
|
attachments: ({
|
|
436
455
|
thumbnail: {
|
|
@@ -461,6 +480,7 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
461
480
|
announcementId: string | null;
|
|
462
481
|
discussionId: string | null;
|
|
463
482
|
discussionReplyId: string | null;
|
|
483
|
+
moduleItemId: string | null;
|
|
464
484
|
schoolDevelopementProgramId: string | null;
|
|
465
485
|
} | null;
|
|
466
486
|
} & {
|
|
@@ -491,6 +511,7 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
491
511
|
announcementId: string | null;
|
|
492
512
|
discussionId: string | null;
|
|
493
513
|
discussionReplyId: string | null;
|
|
514
|
+
moduleItemId: string | null;
|
|
494
515
|
schoolDevelopementProgramId: string | null;
|
|
495
516
|
})[];
|
|
496
517
|
student: {
|
|
@@ -546,6 +567,10 @@ export declare function createAssignmentRecord(userId: string, input: {
|
|
|
546
567
|
gradingBoundaryId?: string;
|
|
547
568
|
inProgress?: boolean;
|
|
548
569
|
sourceAssignmentId?: string;
|
|
570
|
+
timeLimitMinutes?: number | null;
|
|
571
|
+
singleAttempt?: boolean;
|
|
572
|
+
allowLateSubmissions?: boolean;
|
|
573
|
+
applyTypeDefaults?: boolean;
|
|
549
574
|
}): Promise<{
|
|
550
575
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
551
576
|
class: {
|
|
@@ -603,6 +628,9 @@ export declare function duplicateAssignmentRecord(assignmentId: string, classId:
|
|
|
603
628
|
order: number | null;
|
|
604
629
|
gradingBoundaryId: string | null;
|
|
605
630
|
gradeCategoryId: string | null;
|
|
631
|
+
timeLimitMinutes: number | null;
|
|
632
|
+
singleAttempt: boolean;
|
|
633
|
+
allowLateSubmissions: boolean;
|
|
606
634
|
}>;
|
|
607
635
|
export declare function updateAssignmentRecord(userId: string, input: {
|
|
608
636
|
id: string;
|
|
@@ -630,6 +658,10 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
630
658
|
acceptWorksheet?: boolean;
|
|
631
659
|
gradeWithAI?: boolean;
|
|
632
660
|
studentIds?: string[];
|
|
661
|
+
timeLimitMinutes?: number | null;
|
|
662
|
+
singleAttempt?: boolean;
|
|
663
|
+
allowLateSubmissions?: boolean;
|
|
664
|
+
applyTypeDefaults?: boolean;
|
|
633
665
|
}): Promise<{
|
|
634
666
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
635
667
|
class: {
|
|
@@ -645,6 +677,7 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
645
677
|
discussionsEnabled: boolean;
|
|
646
678
|
studentsCanCreateDiscussions: boolean;
|
|
647
679
|
studentsCanReply: boolean;
|
|
680
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
648
681
|
treatMissingAsZero: boolean;
|
|
649
682
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
650
683
|
};
|
|
@@ -701,6 +734,7 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
701
734
|
announcementId: string | null;
|
|
702
735
|
discussionId: string | null;
|
|
703
736
|
discussionReplyId: string | null;
|
|
737
|
+
moduleItemId: string | null;
|
|
704
738
|
schoolDevelopementProgramId: string | null;
|
|
705
739
|
} | null;
|
|
706
740
|
thumbnailId: string | null;
|
|
@@ -751,6 +785,7 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
751
785
|
discussionsEnabled: boolean;
|
|
752
786
|
studentsCanCreateDiscussions: boolean;
|
|
753
787
|
studentsCanReply: boolean;
|
|
788
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
754
789
|
treatMissingAsZero: boolean;
|
|
755
790
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
756
791
|
};
|
|
@@ -788,6 +823,9 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
788
823
|
order: number | null;
|
|
789
824
|
gradingBoundaryId: string | null;
|
|
790
825
|
gradeCategoryId: string | null;
|
|
826
|
+
timeLimitMinutes: number | null;
|
|
827
|
+
singleAttempt: boolean;
|
|
828
|
+
allowLateSubmissions: boolean;
|
|
791
829
|
};
|
|
792
830
|
attachments: {
|
|
793
831
|
path: string;
|
|
@@ -817,6 +855,7 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
817
855
|
announcementId: string | null;
|
|
818
856
|
discussionId: string | null;
|
|
819
857
|
discussionReplyId: string | null;
|
|
858
|
+
moduleItemId: string | null;
|
|
820
859
|
schoolDevelopementProgramId: string | null;
|
|
821
860
|
}[];
|
|
822
861
|
student: {
|
|
@@ -875,6 +914,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
875
914
|
discussionsEnabled: boolean;
|
|
876
915
|
studentsCanCreateDiscussions: boolean;
|
|
877
916
|
studentsCanReply: boolean;
|
|
917
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
878
918
|
treatMissingAsZero: boolean;
|
|
879
919
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
880
920
|
};
|
|
@@ -912,6 +952,9 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
912
952
|
order: number | null;
|
|
913
953
|
gradingBoundaryId: string | null;
|
|
914
954
|
gradeCategoryId: string | null;
|
|
955
|
+
timeLimitMinutes: number | null;
|
|
956
|
+
singleAttempt: boolean;
|
|
957
|
+
allowLateSubmissions: boolean;
|
|
915
958
|
};
|
|
916
959
|
attachments: ({
|
|
917
960
|
thumbnail: {
|
|
@@ -942,6 +985,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
942
985
|
announcementId: string | null;
|
|
943
986
|
discussionId: string | null;
|
|
944
987
|
discussionReplyId: string | null;
|
|
988
|
+
moduleItemId: string | null;
|
|
945
989
|
schoolDevelopementProgramId: string | null;
|
|
946
990
|
} | null;
|
|
947
991
|
} & {
|
|
@@ -972,6 +1016,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
972
1016
|
announcementId: string | null;
|
|
973
1017
|
discussionId: string | null;
|
|
974
1018
|
discussionReplyId: string | null;
|
|
1019
|
+
moduleItemId: string | null;
|
|
975
1020
|
schoolDevelopementProgramId: string | null;
|
|
976
1021
|
})[];
|
|
977
1022
|
annotations: ({
|
|
@@ -1003,6 +1048,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
1003
1048
|
announcementId: string | null;
|
|
1004
1049
|
discussionId: string | null;
|
|
1005
1050
|
discussionReplyId: string | null;
|
|
1051
|
+
moduleItemId: string | null;
|
|
1006
1052
|
schoolDevelopementProgramId: string | null;
|
|
1007
1053
|
} | null;
|
|
1008
1054
|
} & {
|
|
@@ -1033,6 +1079,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
1033
1079
|
announcementId: string | null;
|
|
1034
1080
|
discussionId: string | null;
|
|
1035
1081
|
discussionReplyId: string | null;
|
|
1082
|
+
moduleItemId: string | null;
|
|
1036
1083
|
schoolDevelopementProgramId: string | null;
|
|
1037
1084
|
})[];
|
|
1038
1085
|
student: {
|
|
@@ -1109,6 +1156,9 @@ export declare function attachAssignmentToEventRecord(teacherId: string, assignm
|
|
|
1109
1156
|
order: number | null;
|
|
1110
1157
|
gradingBoundaryId: string | null;
|
|
1111
1158
|
gradeCategoryId: string | null;
|
|
1159
|
+
timeLimitMinutes: number | null;
|
|
1160
|
+
singleAttempt: boolean;
|
|
1161
|
+
allowLateSubmissions: boolean;
|
|
1112
1162
|
};
|
|
1113
1163
|
}>;
|
|
1114
1164
|
export declare function detachAssignmentFromEventRecord(teacherId: string, assignmentId: string): Promise<{
|
|
@@ -1159,6 +1209,9 @@ export declare function detachAssignmentFromEventRecord(teacherId: string, assig
|
|
|
1159
1209
|
order: number | null;
|
|
1160
1210
|
gradingBoundaryId: string | null;
|
|
1161
1211
|
gradeCategoryId: string | null;
|
|
1212
|
+
timeLimitMinutes: number | null;
|
|
1213
|
+
singleAttempt: boolean;
|
|
1214
|
+
allowLateSubmissions: boolean;
|
|
1162
1215
|
};
|
|
1163
1216
|
}>;
|
|
1164
1217
|
export declare function getAvailableEventsForAssignment(teacherId: string, assignmentId: string): Promise<{
|
|
@@ -1215,6 +1268,7 @@ export declare function attachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1215
1268
|
announcementId: string | null;
|
|
1216
1269
|
discussionId: string | null;
|
|
1217
1270
|
discussionReplyId: string | null;
|
|
1271
|
+
moduleItemId: string | null;
|
|
1218
1272
|
schoolDevelopementProgramId: string | null;
|
|
1219
1273
|
}[];
|
|
1220
1274
|
teacher: {
|
|
@@ -1264,6 +1318,9 @@ export declare function attachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1264
1318
|
order: number | null;
|
|
1265
1319
|
gradingBoundaryId: string | null;
|
|
1266
1320
|
gradeCategoryId: string | null;
|
|
1321
|
+
timeLimitMinutes: number | null;
|
|
1322
|
+
singleAttempt: boolean;
|
|
1323
|
+
allowLateSubmissions: boolean;
|
|
1267
1324
|
}>;
|
|
1268
1325
|
export declare function detachMarkSchemeRecord(teacherId: string, assignmentId: string): Promise<{
|
|
1269
1326
|
markScheme: {
|
|
@@ -1308,6 +1365,7 @@ export declare function detachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1308
1365
|
announcementId: string | null;
|
|
1309
1366
|
discussionId: string | null;
|
|
1310
1367
|
discussionReplyId: string | null;
|
|
1368
|
+
moduleItemId: string | null;
|
|
1311
1369
|
schoolDevelopementProgramId: string | null;
|
|
1312
1370
|
}[];
|
|
1313
1371
|
teacher: {
|
|
@@ -1357,6 +1415,9 @@ export declare function detachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1357
1415
|
order: number | null;
|
|
1358
1416
|
gradingBoundaryId: string | null;
|
|
1359
1417
|
gradeCategoryId: string | null;
|
|
1418
|
+
timeLimitMinutes: number | null;
|
|
1419
|
+
singleAttempt: boolean;
|
|
1420
|
+
allowLateSubmissions: boolean;
|
|
1360
1421
|
}>;
|
|
1361
1422
|
export declare function attachGradingBoundaryRecord(teacherId: string, assignmentId: string, gradingBoundaryId: string | null): Promise<{
|
|
1362
1423
|
gradingBoundary: {
|
|
@@ -1401,6 +1462,7 @@ export declare function attachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1401
1462
|
announcementId: string | null;
|
|
1402
1463
|
discussionId: string | null;
|
|
1403
1464
|
discussionReplyId: string | null;
|
|
1465
|
+
moduleItemId: string | null;
|
|
1404
1466
|
schoolDevelopementProgramId: string | null;
|
|
1405
1467
|
}[];
|
|
1406
1468
|
teacher: {
|
|
@@ -1450,6 +1512,9 @@ export declare function attachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1450
1512
|
order: number | null;
|
|
1451
1513
|
gradingBoundaryId: string | null;
|
|
1452
1514
|
gradeCategoryId: string | null;
|
|
1515
|
+
timeLimitMinutes: number | null;
|
|
1516
|
+
singleAttempt: boolean;
|
|
1517
|
+
allowLateSubmissions: boolean;
|
|
1453
1518
|
}>;
|
|
1454
1519
|
export declare function detachGradingBoundaryRecord(teacherId: string, assignmentId: string): Promise<{
|
|
1455
1520
|
gradingBoundary: {
|
|
@@ -1494,6 +1559,7 @@ export declare function detachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1494
1559
|
announcementId: string | null;
|
|
1495
1560
|
discussionId: string | null;
|
|
1496
1561
|
discussionReplyId: string | null;
|
|
1562
|
+
moduleItemId: string | null;
|
|
1497
1563
|
schoolDevelopementProgramId: string | null;
|
|
1498
1564
|
}[];
|
|
1499
1565
|
teacher: {
|
|
@@ -1543,6 +1609,9 @@ export declare function detachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1543
1609
|
order: number | null;
|
|
1544
1610
|
gradingBoundaryId: string | null;
|
|
1545
1611
|
gradeCategoryId: string | null;
|
|
1612
|
+
timeLimitMinutes: number | null;
|
|
1613
|
+
singleAttempt: boolean;
|
|
1614
|
+
allowLateSubmissions: boolean;
|
|
1546
1615
|
}>;
|
|
1547
1616
|
export declare function reorderAssignmentRecord(teacherId: string, input: {
|
|
1548
1617
|
classId: string;
|
|
@@ -1575,6 +1644,9 @@ export declare function reorderAssignmentRecord(teacherId: string, input: {
|
|
|
1575
1644
|
order: number | null;
|
|
1576
1645
|
gradingBoundaryId: string | null;
|
|
1577
1646
|
gradeCategoryId: string | null;
|
|
1647
|
+
timeLimitMinutes: number | null;
|
|
1648
|
+
singleAttempt: boolean;
|
|
1649
|
+
allowLateSubmissions: boolean;
|
|
1578
1650
|
} | null>;
|
|
1579
1651
|
export declare function moveAssignmentRecord(teacherId: string, input: {
|
|
1580
1652
|
id: string;
|
|
@@ -1606,5 +1678,8 @@ export declare function moveAssignmentRecord(teacherId: string, input: {
|
|
|
1606
1678
|
order: number | null;
|
|
1607
1679
|
gradingBoundaryId: string | null;
|
|
1608
1680
|
gradeCategoryId: string | null;
|
|
1681
|
+
timeLimitMinutes: number | null;
|
|
1682
|
+
singleAttempt: boolean;
|
|
1683
|
+
allowLateSubmissions: boolean;
|
|
1609
1684
|
} | null>;
|
|
1610
1685
|
//# sourceMappingURL=assignment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"AAgCA,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,oBAGhD;AAED,wBAAsB,WAAW;;;;;;;;;;;KAMhC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAU/D;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAa1E;AAED,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAY5F;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM3E;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;GAyOF;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCf;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkQF;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;GAsCxF;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2LF;AA2BD,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GF;AAED,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BhB;AAED,wBAAsB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAW5F;AAED,wBAAsB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;GAW5F;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC5B;AAED,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBnF;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCjC;AAED,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBxF;AAiED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4EF;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmCF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Assignment service – create, read, update, delete assignments and submissions.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
5
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ab5f6a35-524a-5889-ac7f-1d40cd990693")}catch(e){}}();
|
|
6
6
|
import { TRPCError } from "@trpc/server";
|
|
7
7
|
import { prisma } from "../lib/prisma.js";
|
|
8
8
|
import { findAssignmentById, findAssignmentWithDetails, findAssignmentWithClassForTeacher, findAssignmentForDelete, findAssignmentsDueToday, findSubmissionByAssignmentAndStudent, findSubmissionByIdForClassMember, findSubmissionForUpdate, findSubmissionForTeacherUpdate, findSubmissionsByAssignmentForTeacher, createSubmission, findSectionsByClassId, findAvailableEventsForAssignment, attachAssignmentToEvent, detachAssignmentFromEvent, duplicateAssignment, } from "../models/assignment.js";
|
|
@@ -13,6 +13,7 @@ import { enqueueRunJob } from "../workers/queues.js";
|
|
|
13
13
|
import { logger } from "../utils/logger.js";
|
|
14
14
|
import { invalidateStudentProgressInferenceCache } from "./studentProgressInferenceCache.js";
|
|
15
15
|
import { enqueueEmbedding } from "./embedding.js";
|
|
16
|
+
import { resolveAssignmentBehavior } from "../lib/assignmentTypeDefaults.js";
|
|
16
17
|
export async function assignmentExists(id) {
|
|
17
18
|
const assignment = await findAssignmentById(id);
|
|
18
19
|
return !!assignment;
|
|
@@ -70,7 +71,18 @@ export async function getSubmissions(assignmentId, teacherId) {
|
|
|
70
71
|
}));
|
|
71
72
|
}
|
|
72
73
|
export async function createAssignmentRecord(userId, input) {
|
|
73
|
-
const { classId, id, title, instructions, dueDate, files, existingFileIds, aiPolicyLevel,
|
|
74
|
+
const { classId, id, title, instructions, dueDate, files, existingFileIds, aiPolicyLevel, worksheetIds, gradeWithAI, studentIds, maxGrade, graded, weight, sectionId, type, markSchemeId, gradingBoundaryId, inProgress, sourceAssignmentId, } = input;
|
|
75
|
+
const behavior = resolveAssignmentBehavior({
|
|
76
|
+
type,
|
|
77
|
+
acceptFiles: input.acceptFiles,
|
|
78
|
+
acceptExtendedResponse: input.acceptExtendedResponse,
|
|
79
|
+
acceptWorksheet: input.acceptWorksheet,
|
|
80
|
+
singleAttempt: input.singleAttempt,
|
|
81
|
+
allowLateSubmissions: input.allowLateSubmissions,
|
|
82
|
+
timeLimitMinutes: input.timeLimitMinutes,
|
|
83
|
+
applyTypeDefaults: input.applyTypeDefaults,
|
|
84
|
+
});
|
|
85
|
+
const { acceptFiles, acceptExtendedResponse, acceptWorksheet, singleAttempt, allowLateSubmissions, timeLimitMinutes, } = behavior;
|
|
74
86
|
if (sourceAssignmentId && (!studentIds || studentIds.length === 0)) {
|
|
75
87
|
throw new TRPCError({
|
|
76
88
|
code: "BAD_REQUEST",
|
|
@@ -121,6 +133,9 @@ export async function createAssignmentRecord(userId, input) {
|
|
|
121
133
|
acceptFiles,
|
|
122
134
|
acceptExtendedResponse,
|
|
123
135
|
acceptWorksheet,
|
|
136
|
+
singleAttempt,
|
|
137
|
+
allowLateSubmissions,
|
|
138
|
+
...(timeLimitMinutes !== undefined && { timeLimitMinutes }),
|
|
124
139
|
...(worksheetIds?.length && {
|
|
125
140
|
worksheets: { connect: worksheetIds.map((id) => ({ id })) },
|
|
126
141
|
}),
|
|
@@ -295,6 +310,31 @@ export async function updateAssignmentRecord(userId, input) {
|
|
|
295
310
|
message: "Assignment not found",
|
|
296
311
|
});
|
|
297
312
|
}
|
|
313
|
+
const nextType = input.type ?? assignment.type;
|
|
314
|
+
const behaviorTouched = input.type !== undefined ||
|
|
315
|
+
input.acceptFiles !== undefined ||
|
|
316
|
+
input.acceptExtendedResponse !== undefined ||
|
|
317
|
+
input.acceptWorksheet !== undefined ||
|
|
318
|
+
input.singleAttempt !== undefined ||
|
|
319
|
+
input.allowLateSubmissions !== undefined ||
|
|
320
|
+
input.timeLimitMinutes !== undefined ||
|
|
321
|
+
input.applyTypeDefaults === true;
|
|
322
|
+
const behavior = behaviorTouched
|
|
323
|
+
? resolveAssignmentBehavior({
|
|
324
|
+
type: nextType,
|
|
325
|
+
acceptFiles: input.acceptFiles ?? assignment.acceptFiles,
|
|
326
|
+
acceptExtendedResponse: input.acceptExtendedResponse ?? assignment.acceptExtendedResponse,
|
|
327
|
+
acceptWorksheet: input.acceptWorksheet ?? assignment.acceptWorksheet,
|
|
328
|
+
singleAttempt: input.singleAttempt ?? assignment.singleAttempt,
|
|
329
|
+
allowLateSubmissions: input.allowLateSubmissions ?? assignment.allowLateSubmissions,
|
|
330
|
+
timeLimitMinutes: input.timeLimitMinutes !== undefined
|
|
331
|
+
? input.timeLimitMinutes
|
|
332
|
+
: assignment.timeLimitMinutes,
|
|
333
|
+
// On update, only re-apply type defaults when type changes or explicitly requested.
|
|
334
|
+
applyTypeDefaults: input.applyTypeDefaults === true ||
|
|
335
|
+
(input.type !== undefined && input.type !== assignment.type),
|
|
336
|
+
})
|
|
337
|
+
: null;
|
|
298
338
|
const submissionData = input.studentIds
|
|
299
339
|
? (input.studentIds.length > 0
|
|
300
340
|
? input.studentIds.map((studentId) => ({ student: { connect: { id: studentId } } }))
|
|
@@ -326,13 +366,18 @@ export async function updateAssignmentRecord(userId, input) {
|
|
|
326
366
|
...(input.weight && { weight: input.weight }),
|
|
327
367
|
...(input.type && { type: input.type }),
|
|
328
368
|
...(input.inProgress !== undefined && { inProgress: input.inProgress }),
|
|
329
|
-
...(
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
369
|
+
...(behavior
|
|
370
|
+
? {
|
|
371
|
+
acceptFiles: behavior.acceptFiles,
|
|
372
|
+
acceptExtendedResponse: behavior.acceptExtendedResponse,
|
|
373
|
+
acceptWorksheet: behavior.acceptWorksheet,
|
|
374
|
+
singleAttempt: behavior.singleAttempt,
|
|
375
|
+
allowLateSubmissions: behavior.allowLateSubmissions,
|
|
376
|
+
...(behavior.timeLimitMinutes !== undefined && {
|
|
377
|
+
timeLimitMinutes: behavior.timeLimitMinutes,
|
|
378
|
+
}),
|
|
379
|
+
}
|
|
380
|
+
: {}),
|
|
336
381
|
...(input.gradeWithAI !== undefined && { gradeWithAI: input.gradeWithAI }),
|
|
337
382
|
...(input.studentIds && {
|
|
338
383
|
assignedTo: {
|
|
@@ -502,8 +547,26 @@ export async function updateSubmissionRecord(userId, input) {
|
|
|
502
547
|
});
|
|
503
548
|
}
|
|
504
549
|
if (submit !== undefined) {
|
|
505
|
-
|
|
506
|
-
|
|
550
|
+
const assignment = submission.assignment;
|
|
551
|
+
const isLate = assignment.dueDate < new Date();
|
|
552
|
+
const becomingSubmitted = !submission.submitted;
|
|
553
|
+
if (becomingSubmitted && isLate && assignment.allowLateSubmissions === false) {
|
|
554
|
+
throw new TRPCError({
|
|
555
|
+
code: "BAD_REQUEST",
|
|
556
|
+
message: "Late submissions are not allowed for this assignment",
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
// Single-attempt: once submitted, students may not unsubmit.
|
|
560
|
+
if (!becomingSubmitted &&
|
|
561
|
+
submission.submitted &&
|
|
562
|
+
assignment.singleAttempt) {
|
|
563
|
+
throw new TRPCError({
|
|
564
|
+
code: "BAD_REQUEST",
|
|
565
|
+
message: "This assignment only allows a single attempt",
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
if (assignment.acceptWorksheet &&
|
|
569
|
+
assignment.gradeWithAI) {
|
|
507
570
|
const worksheetResponses = await prisma.studentWorksheetResponse.findMany({
|
|
508
571
|
where: { submissionId: submission.id },
|
|
509
572
|
select: { id: true },
|
|
@@ -540,6 +603,22 @@ export async function updateSubmissionRecord(userId, input) {
|
|
|
540
603
|
},
|
|
541
604
|
});
|
|
542
605
|
}
|
|
606
|
+
const isLateUpdate = submission.assignment.dueDate < new Date();
|
|
607
|
+
if (isLateUpdate &&
|
|
608
|
+
submission.assignment.allowLateSubmissions === false &&
|
|
609
|
+
(newAttachments?.length || existingFileIds?.length)) {
|
|
610
|
+
throw new TRPCError({
|
|
611
|
+
code: "BAD_REQUEST",
|
|
612
|
+
message: "Late file submissions are not allowed for this assignment",
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
if (submission.assignment.acceptFiles === false &&
|
|
616
|
+
newAttachments?.length) {
|
|
617
|
+
throw new TRPCError({
|
|
618
|
+
code: "BAD_REQUEST",
|
|
619
|
+
message: "This assignment does not accept file submissions",
|
|
620
|
+
});
|
|
621
|
+
}
|
|
543
622
|
let uploadedFiles = [];
|
|
544
623
|
if (newAttachments?.length) {
|
|
545
624
|
uploadedFiles = await createDirectUploadFiles(newAttachments, userId, undefined, undefined, submission.id);
|
|
@@ -1011,4 +1090,4 @@ export async function moveAssignmentRecord(teacherId, input) {
|
|
|
1011
1090
|
}, { maxWait: 5000, timeout: 10000 });
|
|
1012
1091
|
}
|
|
1013
1092
|
//# sourceMappingURL=assignment.js.map
|
|
1014
|
-
//# debugId=
|
|
1093
|
+
//# debugId=ab5f6a35-524a-5889-ac7f-1d40cd990693
|