diff --git a/frontend/src/components/Assignment.vue b/frontend/src/components/Assignment.vue index 2f4b2745..32697bd6 100644 --- a/frontend/src/components/Assignment.vue +++ b/frontend/src/components/Assignment.vue @@ -26,8 +26,8 @@
-
-
+
+
{{ __('Submission') }}
@@ -53,7 +53,7 @@ !['Pass', 'Fail'].includes(submissionResource.doc?.status) && submissionResource.doc?.owner == user.data?.name " - class="bg-surface-blue-2 text-ink-blue-2 p-3 rounded-md leading-5 text-sm mb-4" + class="bg-surface-blue-2 text-ink-blue-2 p-3 rounded-md leading-5 text-sm" > {{ __("You've successfully submitted the assignment.") }} {{ @@ -63,12 +63,17 @@ }} {{ __('Feel free to make edits to your submission if needed.') }}
-
-
- {{ __('Add your assignment as {0}').format(assignment.data.type) }} +
+
+ {{ __('Upload Assignment') }} +
+
+ {{ + __('You can only upload {0} files').format(assignment.data.type) + }}
-
- -
+
- - {{ submissionFile.file_name }} - - - {{ getFileSize(submissionFile.file_size) }} - +
+
+ +
+ + {{ + submissionResource.doc.assignment_attachment + .split('/') + .pop() + }} + +
-
- {{ __('Comments by Evaluator') }}: +
+ {{ __('Comments by Evaluator') }}
@@ -204,10 +212,8 @@ import { } from 'frappe-ui' import { computed, inject, onMounted, onBeforeUnmount, ref, watch } from 'vue' import { FileText, X } from 'lucide-vue-next' -import { getFileSize } from '@/utils' import { useRouter } from 'vue-router' -const submissionFile = ref(null) const answer = ref(null) const comments = ref(null) const router = useRouter() @@ -266,9 +272,7 @@ const newSubmission = createResource({ assignment: props.assignmentID, member: user.data?.name, } - if (showUploader()) { - doc.assignment_attachment = submissionFile.value.file_url - } else { + if (!showUploader()) { doc.answer = answer.value } return { @@ -277,19 +281,6 @@ const newSubmission = createResource({ }, }) -const imageResource = createResource({ - url: 'lms.lms.api.get_file_info', - makeParams(values) { - return { - file_url: values.image, - } - }, - auto: false, - onSuccess(data) { - submissionFile.value = data - }, -}) - const submissionResource = createDocumentResource({ doctype: 'LMS Assignment Submission', name: props.submissionName, @@ -302,11 +293,6 @@ const submissionResource = createDocumentResource({ watch(submissionResource, () => { if (submissionResource.doc) { - if (submissionResource.doc.assignment_attachment) { - imageResource.reload({ - image: submissionResource.doc.assignment_attachment, - }) - } if (submissionResource.doc.answer) { answer.value = submissionResource.doc.answer } @@ -315,7 +301,10 @@ watch(submissionResource, () => { } if (submissionResource.isDirty) { isDirty.value = true - } else if (showUploader() && !submissionFile.value) { + } else if ( + showUploader() && + !submissionResource.doc.assignment_attachment + ) { isDirty.value = true } else if (!showUploader() && !answer.value) { isDirty.value = true @@ -325,11 +314,17 @@ watch(submissionResource, () => { } }) -watch(submissionFile, () => { - if (props.submissionName == 'new' && submissionFile.value) { - isDirty.value = true +watch( + () => submissionResource.doc, + () => { + if ( + props.submissionName == 'new' && + submissionResource.doc?.assignment_attachment + ) { + isDirty.value = true + } } -}) +) const submitAssignment = () => { if (props.submissionName != 'new') { @@ -341,13 +336,13 @@ const submitAssignment = () => { submissionResource.setValue.submit( { ...submissionResource.doc, - assignment_attachment: submissionFile.value?.file_url, evaluator: evaluator, comments: comments.value, answer: answer.value, }, { onSuccess(data) { + isDirty.value = false toast.success(__('Changes saved successfully')) }, } @@ -388,7 +383,7 @@ const addNewSubmission = () => { const saveSubmission = (file) => { isDirty.value = true - submissionFile.value = file + submissionResource.doc.assignment_attachment = file.file_url } const markLessonProgress = () => { @@ -439,7 +434,7 @@ const validateFile = (file) => { const removeSubmission = () => { isDirty.value = true - submissionFile.value = null + submissionResource.doc.assignment_attachment = '' } const canGradeSubmission = computed(() => { diff --git a/frontend/src/components/BatchOverlay.vue b/frontend/src/components/BatchOverlay.vue index 82a4bcb3..9324d6a9 100644 --- a/frontend/src/components/BatchOverlay.vue +++ b/frontend/src/components/BatchOverlay.vue @@ -1,7 +1,7 @@