Skip to content
Snippets Groups Projects
Commit 16b0b183 authored by David Beguin's avatar David Beguin
Browse files

[IMP] website_slides : show completed and ongoing course on profile

Two new sections are added in the profile page : Completed courses and Followed courses
Thoses sections replace the former 'Courses' section.

Use span instead of b tag in profile page

Task ID : 1922159
PR #31109
parent 02eebe15
No related branches found
No related tags found
No related merge requests found
......@@ -571,13 +571,15 @@ class WebsiteSlides(WebsiteProfile):
return channels
def _prepare_user_slides_profile(self, user):
courses = request.env['slide.channel.partner'].sudo().search([('partner_id', '=', user.partner_id.id)]).mapped('channel_id')
courses = request.env['slide.channel.partner'].sudo().search([('partner_id', '=', user.partner_id.id)])
courses_completed = courses.filtered(lambda c: c.completed)
courses_ongoing = courses - courses_completed
values = {
'uid': request.env.user.id,
'user': user,
'main_object': user,
'courses': courses,
'count_courses': len(courses),
'courses_completed': courses_completed,
'courses_ongoing': courses_ongoing,
'is_profile_page': True,
'badge_category': 'slides',
}
......
.o_wprofile_slides_card {
padding: 8px;
max-height: 68px;
min-width: 350px;
}
.o_wprofile_slides_title {
top: -15px;
......@@ -10,7 +11,7 @@
// Quest - Course Card
.o_wprofile_slides_course_card_body {
cursor: pointer;
max-height: 64px;
height: 66px;
.o_wprofile_slides_course_img {
position: absolute;
padding: 0px;
......@@ -24,4 +25,19 @@
top: 13px;
right: 16px;
}
.o_wprofile_slide_course_progress {
position: absolute;
bottom: 4px;
width: 100%;
padding-left: 88px;
.o_wprofile_slide_course_progress_bar {
background-color: lightgray;
top: 2px;
padding: 0px;
}
.o_wprofile_slide_course_progress_value {
min-width: 70px;
text-align: right;
}
}
}
......@@ -13,38 +13,58 @@
<xpath expr="//div[@id='profile_about_badge']" position="before">
<t t-if="channel">
<div class="mb32">
<h4><i class="fa fa-graduation-cap"/> Courses</h4>
<t t-call="website_slides.display_course"/>
<h4><i class="fa fa-graduation-cap"/> Completed Courses</h4>
<t t-if="courses_completed">
<t t-call="website_slides.display_course">
<t t-set="courses" t-value="courses_completed"></t>
</t>
</t>
<t t-else="">
<span class="font-weight-bold">No completed course yet!</span>
</t>
</div>
<div class="mb32">
<h4><i class="fa fa-book"/> Followed Courses</h4>
<t t-if="courses_ongoing">
<t t-call="website_slides.display_course">
<t t-set="courses" t-value="courses_ongoing"></t>
</t>
</t>
<t t-else="">
<span class="font-weight-bold">No followed course!</span>
</t>
</div>
</t>
</xpath>
</template>
<template id="display_course" name="Profile Courses">
<t t-if="courses">
<div class="row">
<div class="col-lg-6 o_wprofile_slides_card" t-foreach="courses" t-as="course">
<div class="card-body o_wprofile_slides_course_card_body o_wprofile_bb_grey" t-attf-onclick="location.href='/slides/#{slug(course)}';">
<div class="row">
<div class="o_wprofile_slides_course_img">
<img class="o_wprofile_img_small mb-3" t-attf-src="/web/image/slide.channel/#{course.id}/image_small"/>
</div>
<div class="col-10 o_wprofile_slides_title">
<b t-field="course.name"/>
</div>
<div class="o_wprofile_slide_course_rating">
<t t-call="website_rating.rating_widget_stars_static">
<t t-set="rating_avg" t-value="course.rating_avg"/>
<t t-set="rating_count" t-value="course.rating_count"/>
</t>
<template id="display_course">
<div class="row">
<div class="col-lg-6 o_wprofile_slides_card" t-foreach="courses" t-as="course">
<div class="card-body o_wprofile_slides_course_card_body o_wprofile_bb_grey" t-attf-onclick="location.href='/slides/#{slug(course.channel_id)}';">
<div class="row">
<div class="o_wprofile_slides_course_img">
<img class="o_wprofile_img_small" t-attf-src="/web/image/slide.channel/#{course.channel_id.id}/image_small"/>
</div>
<div class="col-10 o_wprofile_slides_title">
<span class="font-weight-bold" t-field="course.channel_id.name"/>
</div>
<div class="o_wprofile_slide_course_rating">
<t t-call="website_rating.rating_widget_stars_static">
<t t-set="rating_avg" t-value="course.channel_id.rating_avg"/>
<t t-set="rating_count" t-value="course.channel_id.rating_count"/>
</t>
</div>
<div class="row o_wprofile_slide_course_progress">
<div class="col progress o_wprofile_slide_course_progress_bar">
<div class="progress-bar" style="background-color: #00A09D !important"
t-att-style="'width: '+ str(course.completion)+'%'"></div>
</div>
<span class="col-3 text-primary o_wprofile_slide_course_progress_value"><span t-field="course.completion"/> %</span>
</div>
</div>
</div>
</div>
</t>
<t t-else="">
<b>No followed course yet!</b>
</t>
</div>
</template>
</data></odoo>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment