refactor: seperate module for hackathon

This commit is contained in:
pateljannat
2021-03-04 20:11:18 +05:30
parent acea59767d
commit 8b5cd8e6c6
50 changed files with 249 additions and 79 deletions

View File

@@ -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>

View File

@@ -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()
});
});

View File

@@ -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()

View File

@@ -9,5 +9,4 @@ def get_courses():
"Community Course",
fields=['name', 'title', 'description']
)
print(courses)
return courses

View File

@@ -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]

View File

@@ -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 %}