UI fixes for course card
This commit is contained in:
parent
be7fadc521
commit
fdbabde80a
@ -33,8 +33,16 @@
|
|||||||
import AButton from './Button.vue';
|
import AButton from './Button.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['course', 'courseMeta', 'program_name'],
|
props: ['course', 'program_name'],
|
||||||
name: "CourseCard",
|
name: "CourseCard",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
courseMeta: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getCourseMeta().then(data => this.courseMeta = data)
|
||||||
|
},
|
||||||
components: {
|
components: {
|
||||||
AButton
|
AButton
|
||||||
},
|
},
|
||||||
@ -68,7 +76,12 @@ export default {
|
|||||||
if(content_type == 'Video') return 'fa fa-play'
|
if(content_type == 'Video') return 'fa fa-play'
|
||||||
if(content_type == 'Article') return 'fa fa-file-text-o'
|
if(content_type == 'Article') return 'fa fa-file-text-o'
|
||||||
if(content_type == 'Quiz') return 'fa fa-question-circle-o'
|
if(content_type == 'Quiz') return 'fa fa-question-circle-o'
|
||||||
}
|
},
|
||||||
|
getCourseMeta() {
|
||||||
|
return lms.call('get_course_meta', {
|
||||||
|
course_name: this.course.name
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<TopSection v-bind:title="program.program_name" v-bind:description="program.description">
|
<TopSection v-bind:title="program.program_name" v-bind:description="program.description">
|
||||||
</TopSection>
|
</TopSection>
|
||||||
<CardList :title="'Courses'" :description="''">
|
<CardList :title="'Courses'" :description="''">
|
||||||
<CourseCard slot="card-list-slot" v-for="course in course_data" :course="course.course" :program_name="program_name" :courseMeta="course.meta" :key="course.course.name + course.meta.flag"/>
|
<CourseCard slot="card-list-slot" v-for="course in courseData" :course="course" :program_name="program_name" :key="course.name"/>
|
||||||
</CardList>
|
</CardList>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -24,7 +24,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
program: {},
|
program: {},
|
||||||
course_data: []
|
courseData: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
@ -32,11 +32,10 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getProgramDetails().then(data => this.program = data);
|
this.getProgramDetails().then(data => this.program = data);
|
||||||
this.getCourses().then(data => this.course_data = data);
|
this.getCourses().then(data => this.courseData = data);
|
||||||
|
|
||||||
// lms.on(`course-completed`, (course_name) => {
|
// lms.on(`course-completed`, (course_name) => {
|
||||||
// const course = this.course_data.findIndex(c => c.name === course_name);
|
// const course = this.courseData.findIndex(c => c.name === course_name);
|
||||||
// this.course_data[course].completed = true;
|
// this.courseData[course].completed = true;
|
||||||
// });
|
// });
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@ -64,8 +64,7 @@ def get_program_details(program_name):
|
|||||||
def get_courses(program_name):
|
def get_courses(program_name):
|
||||||
program = frappe.get_doc('Program', program_name)
|
program = frappe.get_doc('Program', program_name)
|
||||||
courses = program.get_course_list()
|
courses = program.get_course_list()
|
||||||
course_data = [{'meta':get_course_meta(utils.get_course_enrollment(item.name)), 'course':item} for item in courses]
|
return courses
|
||||||
return course_data
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_next_content(content, content_type, course):
|
def get_next_content(content, content_type, course):
|
||||||
@ -171,7 +170,7 @@ def get_course_progress(course_enrollment):
|
|||||||
course = frappe.get_doc('Course', course_enrollment.course)
|
course = frappe.get_doc('Course', course_enrollment.course)
|
||||||
contents = course.get_contents()
|
contents = course.get_contents()
|
||||||
progress = []
|
progress = []
|
||||||
for index, content in enumerate(contents):
|
for content in contents:
|
||||||
if content.doctype in ('Article', 'Video'):
|
if content.doctype in ('Article', 'Video'):
|
||||||
status = check_content_completion(content.name, content.doctype, course_enrollment.name)
|
status = check_content_completion(content.name, content.doctype, course_enrollment.name)
|
||||||
progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status})
|
progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status})
|
||||||
@ -192,16 +191,18 @@ def check_quiz_completion(quiz, enrollment_name):
|
|||||||
status = bool(len(attempts) == quiz.max_attempts)
|
status = bool(len(attempts) == quiz.max_attempts)
|
||||||
score = None
|
score = None
|
||||||
result = None
|
result = None
|
||||||
if attempts and quiz.grading_basis == 'Last Highest Score':
|
if attempts:
|
||||||
attempts = sorted(attempts, key = lambda i: int(i.score), reverse=True)
|
if quiz.grading_basis == 'Last Highest Score':
|
||||||
score = attempts[0]['score']
|
attempts = sorted(attempts, key = lambda i: int(i.score), reverse=True)
|
||||||
result = attempts[0]['status']
|
score = attempts[0]['score']
|
||||||
if result == 'Pass':
|
result = attempts[0]['status']
|
||||||
status = True
|
if result == 'Pass':
|
||||||
|
status = True
|
||||||
return status, score, result
|
return status, score, result
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
def get_course_meta(course_enrollment):
|
def get_course_meta(course_name):
|
||||||
|
course_enrollment = utils.get_course_enrollment(course_name)
|
||||||
# course_enrollment = frappe.get_doc("Course Enrollment", course_enrollment_name)
|
# course_enrollment = frappe.get_doc("Course Enrollment", course_enrollment_name)
|
||||||
progress = get_course_progress(course_enrollment)
|
progress = get_course_progress(course_enrollment)
|
||||||
count = sum([act['is_complete'] for act in progress])
|
count = sum([act['is_complete'] for act in progress])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user