refactor: assignments

This commit is contained in:
Jannat Patel
2022-10-28 19:22:48 +05:30
parent c6b917fa83
commit b3412b42b7
10 changed files with 183 additions and 63 deletions

View File

@@ -123,7 +123,7 @@
{% if lesson.edit_mode %}
{{ EditLesson(lesson) }}
{% else %}
{{ render_html(lesson.body, lesson.youtube, lesson.quiz_id) }}
{{ render_html(lesson) }}
{% endif %}
{% else %}
@@ -171,11 +171,30 @@
<!-- Edit Lesson -->
{% macro EditLesson(lesson) %}
<div class="medium mt-2" contenteditable="true" data-placeholder="{{ _('YouTube Video ID') }}"
id="youtube">{% if lesson.youtube %}{{ lesson.youtube }}{% endif %}</div>
<div class="d-flex mt-2 medium">
<div class="flex-grow-1" contenteditable="true" data-placeholder="{{ _('YouTube Video ID') }}"
id="youtube">{% if lesson.youtube %}{{ lesson.youtube }}{% endif %}</div>
<div class="flex-grow-1 ml-2" contenteditable="true" data-placeholder="{{ _('Quiz ID') }}"
id="quiz-id">{% if lesson.quiz_id %}{{ lesson.quiz_id }}{% endif %}</div>
</div>
<div id="body" {% if lesson.body %} data-body="{{ lesson.body }}" {% endif %}></div>
<div class="medium mb-4" contenteditable="true" data-placeholder="{{ _('Quiz ID') }}"
id="quiz-id">{% if lesson.quiz_id %}{{ lesson.quiz_id }}{% endif %}</div>
<div class="d-flex medium mx-0 mb-4">
<div class="flex-grow-1" contenteditable="true" data-placeholder="{{ _('Assignment Question') }}"
id="assignment-question">{% if lesson.question %}{{ lesson.question }}{% endif %}</div>
<select class="btn btn-default ml-2" id="file-type" data-type="{{ lesson.file_type }}">
<option selected> {{ _("File Type") }} </option>
<option value="Image"> {{ _("Image") }} </option>
<option value="Document"> {{ _("Document") }} </option>
<option value="PDF"> {{ _("PDF") }} </option>
</select>
</div>
<label class="preview" for="preview">
<input {% if lesson.include_in_preview %} checked {% endif %} type="checkbox" id="preview">

View File

@@ -2,6 +2,8 @@ frappe.ready(() => {
this.marked_as_complete = false;
this.quiz_submitted = false;
this.file_type;
let self = this;
localStorage.removeItem($("#quiz-title").data("name"));
@@ -9,6 +11,8 @@ frappe.ready(() => {
save_current_lesson();
set_file_type();
$(".option").click((e) => {
enable_check(e);
});
@@ -77,7 +81,6 @@ frappe.ready(() => {
});
if ($("#quiz-title").data("max-attempts")) {
let self = this;
window.addEventListener("beforeunload", (e) => {
e.returnValue = "";
if ($(".active-question").length && !self.quiz_submitted) {
@@ -89,6 +92,12 @@ frappe.ready(() => {
if ($("#body").length) {
make_editor();
}
$("#file-type").change((e) => {
$("#file-type option:selected" ).each(function() {
self.file_type = $(this).val();
});
});
});
@@ -318,8 +327,7 @@ const upload_file = (file, target) => {
let form_data = new FormData();
if (file.file_obj) {
form_data.append('file', file.file_obj, `${frappe.session.user}-${file.name}`);
form_data.append('folder', `${$(".title").attr("data-lesson")} ${$(".title").attr("data-course")}`)
form_data.append('file', file.file_obj, file.name);
}
xhr.send(form_data);
@@ -333,7 +341,6 @@ const create_lesson_work = (file, target) => {
args: {
assignment: file.file_url,
lesson: $(".title").attr("data-lesson"),
identifier: target.siblings(".attach-file").attr("id")
},
callback: (data) => {
target.siblings(".attach-file").addClass("hide");
@@ -398,17 +405,15 @@ const fetch_assignments = () => {
"lesson": $(".title").attr("data-lesson")
},
callback: (data) => {
if (data.message && data.message.length) {
const assignments = data.message;
for (let i in assignments) {
let target = $(`#${assignments[i]["id"]}`);
if (data.message) {
const assignment = data.message;
let target = $(".attach-file");
target.addClass("hide");
target.siblings(".submit-work").addClass("hide");
target.siblings(".preview-work").removeClass("hide");
target.siblings(".preview-work").find("a").attr("href", assignments[i]["assignment"]).text(assignments[i]["file_name"]);
target.siblings(".preview-work").find("a").attr("href", assignment.assignment).text(assignment.file_name);
}
}
}
});
};
@@ -449,6 +454,7 @@ const calculate_and_display_time = (percent_time) => {
const save_lesson = (e) => {
let lesson = $("#title").data("lesson");
let self = this;
frappe.call({
method: "lms.lms.doctype.lms_course.lms_course.save_lesson",
args: {
@@ -459,7 +465,9 @@ const save_lesson = (e) => {
"chapter": $("#title").data("chapter"),
"preview": $("#preview").prop("checked") ? 1 : 0,
"idx": $("#title").data("index"),
"lesson": lesson ? lesson : ""
"lesson": lesson ? lesson : "",
"question": $("#assignment-question").text(),
"file_type": self.file_type
},
callback: (data) => {;
frappe.show_alert({
@@ -531,3 +539,15 @@ const make_editor = () => {
$("#body .frappe-control").removeClass("hide-control");
$("#body .form-column").addClass("p-0");
};
const set_file_type = () => {
let file_type = $("#file-type").data("type");
if (file_type) {
$("#file-type option").each((i, elem) => {
if ($(elem).val() == file_type) {
$(elem).attr("selected", true);
}
})
}
}