refactor: seperate module for hackathon
This commit is contained in:
@@ -16,13 +16,9 @@
|
||||
<li class="breadcrumb-item" aria-current="page"><a href="/courses">Courses</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
{% if course_enrolled %}
|
||||
<p>
|
||||
<div class="badge badge-info">Enrolled</div>
|
||||
</p>
|
||||
{% endif %}
|
||||
<div class="badge badge-info enrollment-badge hide">Enrolled</div>
|
||||
<div>
|
||||
{% if not course_enrolled %}
|
||||
{% if not course_enrolled and frappe.session.user != "Guest" %}
|
||||
<button class="btn btn-dark btn-enroll float-right" data-course={{course.name}}>Enroll</button>
|
||||
{% endif %}
|
||||
<h1>{{ course.title }}</h1>
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
/* frappe.ready(() => {
|
||||
var url_params = new URLSearchParams(window.location.search);
|
||||
frappe.call('community.www.courses.course.has_enrolled', { course: url_params.get("course") }, (data) => {
|
||||
if (data.message) {
|
||||
$(".btn-enroll").addClass("hide");
|
||||
$(".enrollment-details").removeClass("hide");
|
||||
}
|
||||
})
|
||||
}) */
|
||||
frappe.ready(() => {
|
||||
if(frappe.session.user != "Guest"){
|
||||
var url_params = new URLSearchParams(window.location.search);
|
||||
frappe.call('community.www.courses.course.has_enrolled', { course: url_params.get("course") }, (data) => {
|
||||
if (data.message) {
|
||||
show_enrollment_badge()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
var show_enrollment_badge = () => {
|
||||
$(".btn-enroll").addClass("hide");
|
||||
$(".enrollment-badge").removeClass("hide");
|
||||
}
|
||||
|
||||
$('.btn-enroll').on('click', (e) => {
|
||||
frappe.call('community.www.courses.course.enroll', { course: $(e.target).attr("data-course") }, (data) => {
|
||||
$(".btn-enroll").addClass("hide");
|
||||
$(".enrollment-details").removeClass("hide");
|
||||
});
|
||||
frappe.call('community.www.courses.course.enroll', { course: $(e.target).attr("data-course") }, (data) => {
|
||||
show_enrollment_badge()
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ def get_course(name):
|
||||
)
|
||||
return course
|
||||
|
||||
@frappe.whitelist()
|
||||
def has_enrolled(course):
|
||||
return frappe.db.get_value("Community Course Enrollment", {"course": course, "owner": frappe.session.user})
|
||||
|
||||
@@ -29,7 +30,8 @@ def has_enrolled(course):
|
||||
def enroll(course):
|
||||
return frappe.get_doc({
|
||||
"doctype": "Community Course Enrollment",
|
||||
"course": course
|
||||
"course": course,
|
||||
"user": frappe.session.user
|
||||
}).save()
|
||||
|
||||
|
||||
@@ -9,5 +9,4 @@ def get_courses():
|
||||
"Community Course",
|
||||
fields=['name', 'title', 'description']
|
||||
)
|
||||
print(courses)
|
||||
return courses
|
||||
@@ -8,8 +8,6 @@ def get_context(context):
|
||||
topic_name = get_queryparam("topic", '/courses?course=' + course_name)
|
||||
context.topic = get_topic(course_name, topic_name)
|
||||
|
||||
print("topic", context.topic)
|
||||
|
||||
def get_queryparam(name, redirect_when_not_found):
|
||||
try:
|
||||
return frappe.form_dict[name]
|
||||
|
||||
@@ -31,6 +31,13 @@
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.no-courses {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 5rem 0 5rem 0;
|
||||
}
|
||||
@@ -40,11 +47,11 @@
|
||||
{% macro card(course) %}
|
||||
<div class="col-sm-4 mb-4 text-left">
|
||||
<a href="//courses/course?course={{course.name}}" class="no-decoration no-underline">
|
||||
<div class="card h-100">
|
||||
<div class='card-body'>
|
||||
<h5 class='card-title'>{{ course.title }}</h5>
|
||||
<div class="card h-100">
|
||||
<div class='card-body'>
|
||||
<h5 class='card-title'>{{ course.title }}</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
@@ -52,16 +59,24 @@
|
||||
{% block content %}
|
||||
<section class="section">
|
||||
<div class='container'>
|
||||
<div class="row mt-5">
|
||||
{% for course in my_courses %}
|
||||
{{ card(course) }}
|
||||
{% endfor %}
|
||||
{% if my_courses %}
|
||||
{% for n in range( (3 - (my_courses|length)) %3) %}
|
||||
{{ null_card() }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if frappe.session.user != "Guest" %}
|
||||
{% for course in my_courses %}
|
||||
{{ card(course) }}
|
||||
{% endfor %}
|
||||
{% if my_courses %}
|
||||
{% for n in range( (3 - (my_courses|length)) %3) %}
|
||||
{{ null_card() }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<div class="no-courses">You haven't enrolled in any Course yet. <a href="/courses">Check out the availabe
|
||||
courses.</a></div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="no-courses">
|
||||
<p>Please sign up to access this page.</p>
|
||||
<a id="signup" class="btn btn-primary btn-lg" href="/login#signup">{{_('Sign Up')}}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user