Files
lms/school/lms/widgets/CourseCard.html
2021-10-25 16:27:04 +05:30

150 lines
5.3 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% set membership = course.get_membership(frappe.session.user) %}
{% set progress = frappe.utils.cint(membership.progress) %}
<div class="common-card-style course-card">
<div class="course-image {% if not course.image %}default-image{% endif %}" {% if course.image %}
style="background-image: url( {{ course.image }} );" {% endif %}>
<div class="course-tags">
{% for tag in course.get_tags() %}
<div class="course-card-pills">{{ tag }}</div>
{% endfor %}
{% if membership and not read_only %}
{% if progress < 100 %}  <div class="course-card-pills dark-pills ml-auto">{{ frappe.utils.rounded(progress) }}%
{{ _("Completed") }}
</div>
{% else %}
<div class="course-card-pills dark-pills ml-auto"> <img src="/assets/school/icons/check.svg"> {{ _("Completed")
}}</div>
{% endif %}
{% endif %}
</div>
{% if not course.image %}
<div class="default-image-text">{{ course.title[0] }}</div>
{% endif %}
</div>
<div class="course-card-content">
<div class="course-card-meta muted-text">
{% if course.get_chapters() | length %}
<span>
{{ course.get_chapters() | length }} {{ _("Chapters") }}
</span>
{% endif %}
{% if course.get_chapters() | length and course.get_upcoming_batches() | length %}
<span class="font-weight-bold ml-3 mr-3"> . </span>
{% endif %}
{% if course.get_upcoming_batches() | length %}
<span class="">
{{ course.get_upcoming_batches() | length }} {{ _("Open Batches") }}
</span>
{% endif %}
</div>
<div class="course-card-title">{{ course.title }}</div>
<div {% if not read_only %} class="mb-4" {% endif %}>
<span class="zindex">
{{ widgets.Avatar(member=course.get_instructor(), avatar_class="avatar-small") }}
<a class="button-links" href="{{ get_profile_url(course.get_instructor().username) }}">
<span class="course-instructor">
{{ course.get_instructor().full_name }}
</span>
</a>
</span>
<span class="course-student-count">
{% if course.get_students() | length %}
<span class="mr-4">
<img class="icon-background" src="/assets/school/icons/user.svg" />
{{ course.get_students() | length }}
</span> {% endif %}
{% set avg_rating = course.get_average_rating() %}
{% if avg_rating %}
<span class="">
<img class="icon-background" src="/assets/school/icons/rating.svg" />
{{ frappe.utils.flt(avg_rating, frappe.get_system_settings("float_precision") or 3) }}
</span>
{% endif %}
</span>
</div>
{% if read_only %}
<a class="stretched-link" href="/courses/{{ course.name }}"></a>
{% else %}
{% set lesson_index = course.get_lesson_index(membership.current_lesson) if membership and
membership.current_lesson else '1.1' %}
{% set query_parameter = "?batch=" + membership.batch if membership and
membership.batch else "" %}
{% set certificate = course.is_certified() %}
{% if certificate %}
<div class="view-course-link is-default">
_("Get Certificate") <img class="ml-3" src="/assets/school/icons/black-arrow.svg" />
</div>
<a class="stretched-link" href="/courses/{{ course.name }}/{{ certificate }}"></a>
{% elif course.enable_certification and progress == 100 %}
<div class="view-course-link is-default" id="certification" data-course="{{ course.name }}">
{{ _("Get Certificate") }} <img class="ml-3" src="/assets/school/icons/black-arrow.svg" />
</div>
{% elif progress == 100 %}
<div class="view-course-link is-default">
{{ _("Course Completed") }} <img class="ml-3" src="/assets/school/icons/black-arrow.svg" />
</div>
<a class="stretched-link" href="/courses/{{ course.name }}"></a>
{% elif course.upcoming %}
<div class="view-course-link is-secondary border">
{{ _("Upcoming Course") }} <img class="ml-3" src="/assets/school/icons/black-arrow.svg" />
</div>
<a class="stretched-link" href="/courses/{{ course.name }}"></a>
{% elif membership %}
<div class="view-course-link is-primary">
{{ _("Continue Course") }} <img class="ml-3" src="/assets/school/icons/white-arrow.svg" />
</div>
<a class="stretched-link" href="{{ course.get_learn_url(lesson_index) }}{{ query_parameter }}"></a>
{% else %}
<div class="view-course-link is-default">
{{ _("View Course") }} <img class="ml-3" src="/assets/school/icons/black-arrow.svg" />
</div>
<a class="stretched-link" href="/courses/{{ course.name }}"></a>
{% endif %}
{% endif %}
</div>
</div>
<script>
frappe.ready(() => {
trim_course_titles();
$("#certification").unbind().click((e) => {
create_certificate(e);
});
})
var trim_course_titles = () => {
$(".course-card-title").each((i, element) => {
var title = $(element).text();
var length = $(window).width() <= 375 ? 60 : 65;
var suffix = title.length > length ? "..." : "";
$(element).text(title.substring(0, length) + suffix);
});
}
var create_certificate = (e) => {
e.preventDefault();
course = $(e.currentTarget).attr("data-course");
frappe.call({
method: "school.lms.doctype.lms_certification.lms_certification.create_certificate",
args: {
"course": course
},
callback: (data) => {
window.location.href = `/courses/${course}/${data.message}`;
}
})
}
</script>