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 @@
diff --git a/addons/website_slides/views/website_slides_templates_course.xml b/addons/website_slides/views/website_slides_templates_course.xml index 9acca7bbda6..9bdcf29be5b 100644 --- a/addons/website_slides/views/website_slides_templates_course.xml +++ b/addons/website_slides/views/website_slides_templates_course.xml @@ -595,9 +595,7 @@
- - - +
@@ -631,6 +629,7 @@ + @@ -892,19 +891,4 @@
- - diff --git a/addons/website_slides/views/website_slides_templates_lesson.xml b/addons/website_slides/views/website_slides_templates_lesson.xml index 4c6eac2dd73..20da6de3492 100644 --- a/addons/website_slides/views/website_slides_templates_lesson.xml +++ b/addons/website_slides/views/website_slides_templates_lesson.xml @@ -157,20 +157,10 @@
- - - - - - - - - - - + @@ -233,9 +223,7 @@

- - - +

diff --git a/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml b/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml index a3a864bb2f1..4c790c636f7 100644 --- a/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml +++ b/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml @@ -114,20 +114,10 @@ + - - - - - - - - - - -
  • - - +
    - - +
    diff --git a/addons/website_slides/views/website_slides_templates_utils.xml b/addons/website_slides/views/website_slides_templates_utils.xml index 779c77d1135..3c67f2b55ba 100644 --- a/addons/website_slides/views/website_slides_templates_utils.xml +++ b/addons/website_slides/views/website_slides_templates_utils.xml @@ -139,21 +139,22 @@ diff --git a/addons/website_slides_survey/models/slide_slide.py b/addons/website_slides_survey/models/slide_slide.py index 42957b9a7f4..cc590a5a1af 100644 --- a/addons/website_slides_survey/models/slide_slide.py +++ b/addons/website_slides_survey/models/slide_slide.py @@ -65,6 +65,12 @@ class Slide(models.Model): if slide.slide_category == 'certification' or not slide.is_preview: slide.is_preview = False + @api.depends('slide_type') + def _compute_slide_icon_class(self): + certification = self.filtered(lambda slide: slide.slide_type == 'certification') + certification.slide_icon_class = 'fa-trophy' + super(Slide, self - certification)._compute_slide_icon_class() + @api.depends('slide_category', 'source_type') def _compute_slide_type(self): super(Slide, self)._compute_slide_type() diff --git a/addons/website_slides_survey/views/website_slides_templates_course.xml b/addons/website_slides_survey/views/website_slides_templates_course.xml index 9a5b23442f2..241269426f3 100644 --- a/addons/website_slides_survey/views/website_slides_templates_course.xml +++ b/addons/website_slides_survey/views/website_slides_templates_course.xml @@ -18,12 +18,6 @@ - -