diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py
index bb9b8f3aab5..add1f83bbe5 100644
--- a/addons/website_slides/models/slide_slide.py
+++ b/addons/website_slides/models/slide_slide.py
@@ -183,6 +183,7 @@ class Slide(models.Model):
image_google_url = fields.Char('Image Link', related='url', readonly=False,
help="Link of the image (we currently only support Google Drive as source)")
# content - documents
+ slide_icon_class = fields.Char('Slide Icon fa-class', compute='_compute_slide_icon_class')
slide_type = fields.Selection([
('image', 'Image'),
('article', 'Article'),
@@ -401,6 +402,23 @@ class Slide(models.Model):
filtered_slides = category.slide_ids.filtered(lambda slide: slide.is_published)
category.completion_time = sum(filtered_slides.mapped("completion_time"))
+ @api.depends('slide_type')
+ def _compute_slide_icon_class(self):
+ icon_per_slide_type = {
+ 'image': 'fa-file-picture-o',
+ 'article': 'fa-file-text-o',
+ 'quiz': 'fa-question-circle-o',
+ 'pdf': 'fa-file-pdf-o',
+ 'sheet': 'fa-file-excel-o',
+ 'doc': 'fa-file-word-o',
+ 'slides': 'fa-file-powerpoint-o',
+ 'youtube_video': 'fa-youtube-play',
+ 'google_drive_video': 'fa-play-circle-o',
+ 'vimeo_video': 'fa-vimeo',
+ }
+ for slide in self:
+ slide.slide_icon_class = icon_per_slide_type.get(slide.slide_type, 'fa-file-o')
+
@api.depends('slide_category', 'source_type', 'video_source_type')
def _compute_slide_type(self):
""" For 'local content' or specific slide categories, the slide type is directly derived
diff --git a/addons/website_slides/static/src/js/slides_course_page.js b/addons/website_slides/static/src/js/slides_course_page.js
index 7f98f4b46d8..43166bd8b5f 100644
--- a/addons/website_slides/static/src/js/slides_course_page.js
+++ b/addons/website_slides/static/src/js/slides_course_page.js
@@ -63,7 +63,7 @@ export const SlideCoursePage = publicWidget.Widget.extend({
const newButton = QWeb.render('website.slides.sidebar.done.button', {
slideId: slide.id,
- slideIcon: $button.data('slideIcon') ?? 'fa-file-o',
+ uncompletedIcon: $button.data('uncompletedIcon') ?? 'fa-circle-thin',
slideCompleted: completed,
canSelfMarkUncompleted: slide.canSelfMarkUncompleted,
canSelfMarkCompleted: slide.canSelfMarkCompleted,
diff --git a/addons/website_slides/static/src/xml/website_slides_sidebar.xml b/addons/website_slides/static/src/xml/website_slides_sidebar.xml
index a46312f3615..507b83f3dab 100644
--- a/addons/website_slides/static/src/xml/website_slides_sidebar.xml
+++ b/addons/website_slides/static/src/xml/website_slides_sidebar.xml
@@ -4,18 +4,18 @@