| Age | Commit message (Collapse) | Author |
|
closes odoo/odoo#32088
Signed-off-by: Christophe Simonis <chs@odoo.com>
|
|
Let us consider this great social network is not necessary anymore.
Commit linked to task ID 1941250 and PR #31977
|
|
This commit provides a few fixes for quiz feature:
* fix amount of karma won by the user in a quiz;
* correctly display the fact that a subquiz was completed by the user instead
of just looking like a non-completed quiz;
* going on a previously completed quiz, good answers are hightlighted and
inputs disabled;
* effectively put the quiz in readonly mode if not a channel member.
Commit linked to task ID 1941250 and PR #31977
|
|
This commit provides a few fixes for the fullscreen view:
* make external links associated with a slide clickable again in fullscreen
mode;
* hide completion icons if not member:
* add margin to subquiz icon in header;
* add dedicated button to exit the fullscreen mode;
* change "Pass certification" button to "Test Certification" if not member
of the channel (for website publishers);
Commit linked to task ID 1941250 and PR #31977
|
|
Commit linked to task ID 1941250 and PR #31977
|
|
Purpose of this commit is to improve the global look of course layout
(notably banner, navigation, course / channel informations). Content list
layout displayed in training (orderable) is also tweaked and improved.
Commit linked to task ID 1941250 and PR #31977
|
|
Improve overall widget layout, perform some small tweaks. Also remove
top title as it is not wanted.
Commit linked to task ID 1941250 and PR #31977
|
|
Commit 5798ca28bfa1dc082fedff5e68ab3f7eb6236687 was assuming the vote and
comment access on slide was related to is_preview mode and was, consequently,
depending on each slide separately.
In fact, it's not because a slide is in preview mode that the user has the right
to vote for this slide. He must be course member to interact with this preview
slide, even if he has the right to read it.
So the vote and comment right are now computed at the level of the course,
and apply to all the slides of this course.
This commit also reviews and apply fixes on review - rating access.
Here are the applied rules regarding vote, comment and rating on course and slides:
A user can review a course:
- If allow_comment is activated on the course AND
- If the user is publisher OR
- If the user has enough karma AND is member of the course.
Note : if the rating is not allowed on the course, not only the button
to review must be hidden but also the entire rating composer.
A user can vote and comment a slide:
- If allow_comment is activated on the course AND
- If the user is publisher OR
- If the user has enough karma AND is member of the course.
Other fix applied is this commit :
- Avoid crash when no promoted slide : When going on course homepage
(documentation type), if no promoted slide, we got a internal server error.
Task ID: 1941250
Partial revert of commit 5798ca28bfa1dc082fedff5e68ab3f7eb6236687
PR #31567
|
|
For now, in no fullscreen mode, if the quiz is succeed, the
user progress is not updated because the quiz is not set
to done.
This commit implements this call to mark slide as done and
green the check bullet.
We decided to unify the submit RPC call with the done one,
so a quiz (or a slide with questions) can only be done when
submitting answers. As consequence, we need to prevent some
slide type to use the /set_completed route (quiz and certif).
Task-1941250
|
|
The style and DOM structure of the embeded player (used
to display PDF file) is old, and it needed a little refresh
to be adapt to bootstrap4 and modern styling.
Task-1941250
|
|
Since the fullscreen widget has been revamped, it needed
to be pixel perfect. This commit cleans the CSS and DOM
structure in order to optimize and sublime it.
Task-1941250
|
|
As slides are returned in sudo to the template, the user rights were
checked via a can_access variable set in the template directly.
In order to disable the vote for user that cannot get access to the course
all the checks are now done in backend (also to avoid to get access to slides
in sudo mode with rpc calls). We add now, for each slide on the course view,
the access and vote rights to the template : can_access and can_vote.
Those two are computed in backend, using the user's access right instead of admin's.
But, as if the user is not member of the channel, he cannot get access to the
course slides (expect for Free Peview ones), so the check on can_vote
will crash. This is why we check the access rights before checking can_vote,
for each slides (as free preview slides are still accessible,
even if the user is not in channel members).
The vote widget is disabled if user's can_access or can_vote = False, enabled otherwise.
If user have access but have not enough karma, the controller will handle this
case and return an error to the user telling him he has not enough karma to vote.
If user can vote but cannot access, the controller will handle this
case and return an error to the user telling him he has no access to the lesson.
Task ID: 1943788
PR #31321
|
|
To avoid eLearning to be spammed, the comment, review and vote behaviours
are now allowed only if the user has enough karma to do it.
Here is the new behaviour on courses and slides rating / comment / vote
-If allow_comment is checked on Course :
- Review (rating) is allowed on Course only if enough karma
- Comment is allowed on slides within the course
only if enough karma and course type is 'training'
- Vote is allowed on slides within the course
only if enough karma and course type is 'documentation'
-If allow_comment is not checked on Course :
- Review (rating) is not allowed on Course
- Comment is not allowed on slides within the course
- Vote is not allowed on slides within the course
- Rating is not allowed on slides within the course anymore
Task ID : 1943788
PR #31321
|
|
When a slide is seen by user, it should be marked as completed
(according to its type), and the user completion for the course
is updated. But for public user, we don't want those RPC calls
to be done, as completion for visitor makes no sense.
This commit also hide progressbar when current user is public.
Task-1942852
closes odoo/odoo#31700
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
|
|
This commit makes the 'Fullscreen' page a complete odoo
widgets. We decided to split it into some sub widget:
- Fullscreen: will be the master piece, handle communication of
components, displaying slide content, setting slide as completed,
handling server RPC calls, ....
- Sidebar: responsible for slide navigation, based on the table of
content. (prev, next, keyboard naviguation, ...)
- VideoPlayer: display content for Youtube video and handling player
event to auto set as completed, ...
The DOM of this page is still rendered serverside. DOM was cleaned in
order to be less complex and less deep. CSS style was also reviewed
to decrease line of code.
Fullscreen is now completely using Quiz widget with events triggered.
Task-1942852
|
|
Purpose of this commit is to perform a cleaning and upgrade of the lesson
view in front-end when not using the fullscreen mode. This page had not
been updated since eLearning addition.
A method is added on slide model to have a protected method computing quiz
related information on a given set of slides, notably potential karma gain,
gained karma and number of attempts. It is mainly a code move from controllers
now working in batch.
Some linting is also done, notably a badly-named file.
See original eLearning task for main specifications [1].
Commit linked to task ID 1941250 and PR #31657.
[1] See task ID 1902304
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
|
|
Purpose
=======
This follows up commit d946b7a85d2c1bbc20ace8e2b269be56a63876fd that cleans
wrong uses of sAnimations for non-animated behaviors.
closes odoo/odoo#31794
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
|
|
closes odoo/odoo#31790
Signed-off-by: Christophe Simonis <chs@odoo.com>
|
|
Part of task 1896658
Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Christophe Matthieu <chm@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: David Monjoie <dmo@odoo.com>
Co-authored-by: Martin Geubelle <mge@odoo.com>
Co-authored-by: svs-odoo <svs@odoo.com>
Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
|
|
This commit makes the quiz widget a real odoo widget that triggers up some
events. The widget is now only responsible of
* fetching quiz data (if not given)
* decorating the anwsers according to the result
* displaying message (error or modal)
To do so, some code move/rewrite was needed
* extract and factorize some template
* add 'sudo' on technical model to avoid access rights error
* factorize some python method from controller to model
* remove some CSS classes to lighten the code
* fixing access model error
* make quiz widget handle the display of error message
* give browse record for template rendering, rather than slug
* cleaning some spaghetti code in Fullscreen widget
* ...
Commit linked to task ID 1941250 and PR #31584.
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
|
|
fullscreen
I promise to fix all deferred. Huk huk huk.
Commit linked to task ID 1941250 and PR #31584.
|
|
Currently slides are displayed in a reorderable list, using current user
access rights. This means external customers see only published and free
lessons.
However purpose of course page is to display all lessons, and display
only available ones as clickable. Other one should be displayed as muted
to tease people.
Note that a specific lesson page does check for access rights. Here we
just display all lessons names. A label for free preview is also added.
Fetch of data when displaying a channel is therefore a bit modified as
there are less differences between training and documentation channels.
User progress is also updated to be easier to use in templates.
Commit linked to task ID 1941250 and PR #31453
|
|
This commit replaces a widget with standard boostrap code: the progress bar
classes. Creating a widget was a little bit over engineered, and since the
progress animation is handle in CSS, this replacement does not cause any loss
of feature.
Commit linked to task ID 1942852 and PR #31394.
|
|
Various fixes :
* better label on upload modal;
* upload always visible slide. When uploading a slide with the is_preview
checkbox checked, it does not work as in the controller we are looking
after a string when receiving a python boolean;
* switch modal buttons in slide upload modal to have a correct order;
* prevent auto scroll up. When clicking on the plus icon in drag'n'droppable
list view of a course homepage, if the user has scroll down the page he
will be automatically scroll up. This is very annoying and make some of
my colleagues grumpy;
* hide slide upload if not channel.can_upload. This commit hides the "+"
icon next to the channel categories if the user doesn't have the rights to
upload slides;
Commit linked to task ID 1942852 and PR #31394.
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Jerome Maes <jem@odoo.com>
Co-Authored-By: Aurélien Warnon <awa@odoo.com>
|
|
Just apply some linting and naming convention.
Commit linked to task ID 1942852 and PR #31394.
|
|
Just apply some linting and naming convention.
Commit linked to task ID 1942852 and PR #31394.
|
|
Purpose
=======
This commit adds the management and display of uncategorized slides
for both the frontend publishing management and the fullscreen
course views.
We add a "Uncategorized" section on top of all the categories that is
hidden for the student if it's empty.
Course publishers can drag and drop slides from and to that
new "Uncategorized" section to easily reorganize the course.
Commit linked to task ID 1942852 and PR #31394.
|
|
Purpose
=======
This commit refactors the way slides and categories are reordered in the
frontend course view (training courses). The use of jqueryui's "sortable"
widget makes it easier and more user friendly to drag and drop both sections
and slides to reorganize your course.
Commit linked to task ID 1942852 and PR #31394.
|
|
Currently fullscreen widget calls a user-specific route as public user if
user is not logged. Purpose of this commit is to avoid JS crash. Some
code cleaning is also done. This small feature will have to be cleaned more
in-depth in a near future.
Commit linked to task ID 1942852 and PR #31394.
|
|
Purpose
=======
This commits refactors the way slide.category are added on frontend:
* JS now extends a standard Dialog widget;
* added "required" name value on the form and handled validation;
* controller adds the category at the bottom of the list (sequence+1);
Commit linked to task ID 1942852 and PR #31394.
|
|
Purpose
=======
This commits refactors the slide archiving confirmation modal to make it a
standard Dialog (remove global selectors, remove most of useless xml, ...).
It also adds a new slide archive route to allow channel publishers to archive
slides in sudo mode. Indeed ACLs only website_publishers can write on slide
model. In some case people without real rights may update slides.
Commit linked to task ID 1942852 and PR #31394.
|
|
and widgets
Purpose of this commit is to perform some linting and cleaning in lesson widget
JS and its related css. Notably for fullscreen widget of eLearning. Containing
* better naming of css classes;
* deleted sidebar file as it is now included directly in the fullscreen
widget;
* removed unused css;
* apply JS linting;
* clean some controllers;
Commit linked to task ID 1942852 and PR #31394.
|
|
Fix route of vote widget. Set it to auth=public so that instead of a crash
we have correct popup asking to login. Better than a SessionException, which
will not be displayed.
Another fix is done to avoid having one widget for all displayed like / dislike
buttons. Each slide should have its own vote widget.
Commit linked to task ID 1941250 and PR #31317.
|
|
When a user join a channel, the button 'join' changed and indicates
him that he is now member, but since the page is not refreshed, he
still can not access to slides displayed on the page.
This commit makes the widget trigger a page refresh.
Commit linked to task ID 1941250 and PR #31317.
|
|
Do not fall into an infinite loop when fetching content of an empty webpage
slide in the newly-introduced fullscreen mode.
This commit is linked to task ID 1942836 and PR #31239.
Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
|
|
Purpose of this commit is to introduce a new way of displaying and managing
slides in eLearning module. Its purpose is to give a better experience to
users when going through a course. Notably a fullscreen mode allows to take
lessons one by one without going out of the elearning display. Integration
of all slide types eases taking the course step by step.
Quiz are introduced in this commit. Those are an addition to slides with
some question / answers (multiple choice). It allows customer to gain karma
and improves gamification. Certifications are still done using the survey
application. Quiz targets only small tests at the end of a given slide.
A new widget is added to display and control slide display in fullscreen
mode. Old display is still available for documentation channels or when
going out of fullscreen mode, to see details on comments / review / statistics
and have access to share options.
This commit is linked to task ID 1902304 and PR #29876. It closes the main
work on refactoring website slides into eLearning, with other tasks already
merged in current community [1][2][3][4][5].
[1] Task ID 1940360 landed at b2149bc7a274217a0b96e587abd52093bd98e5e8: certification inclusion
[2] Task ID 1936153 landed at 6c6179e57cede3d9889c33873740a7b1ddecda2e: homepage inclusion
[3] Task ID 1937160 landed at 8b7605c9e5df4a700b0139d1781db24ae5d31626: selling courses
[4] Task ID 1922159 and 1940516 landed at 5fa651cb013ac67d7ba592498c4cf2770dec2483 and 6a64c3ce821f080969e49e5e760e52ae9bfc26cc:
new user profile and gamification of slides / forum
[5] Task ID 1938643 landed at 77b5673a0dd220b3c28e88f8acbb5274b486c5bd: upload channel/slide
|
|
Task #1940360
Subtask of #1902304
Purpose
=======
Adds certification capabilities to the website_slides module.
Channel/courses can now include certifications as a new type of slide.
This new type of slide is available as a "Certification" button on the slide creation
frontend view (next to "Video", "Presentation", ...).
Users have to link the slide to an actual survey that has the 'certificate' field
set to true (that will populate the slide's survey_id field).
Slides of type certification are handled in frontend in a very simple way for now:
- A button "Begin certification" that redirects the user to the related survey frontend.
- A button "Download certification" when the user has succeeded the certification.
- When the survey is done, if it's linked to a slide, a button "Go back to course" allows
the user to go back to the slide frontend.
(There is a special use case for when the website_publisher designing the survey lands on a
certification slide: he is allowed to test the survey with a survey_input created as test_entry)
Survey creation as well as limited time, limited number of attempts, ... are still completely
handled in the survey module. That means that the user will have to first create a suitable survey
that is a certification and only then create a slide of type "certification" and link
the created survey to it.
Ideally, the taking of the survey should be transparently included in the slide frontend but
it requires a full refactoring of the way surveys are submitted. This will most likely come in
a later commit.
This commit is an advanced merge of full eLearning module (see task #1902304).
|
|
Before this commit, the user can only create a webpage slide
by setting its name, category and tags. On the channel grid,
no tumbnail was shown.
This commit allow the user to upload a cover image from the
slide upload modal and to modify it from form view. the
mimetype of webpage slide is now 'forced' through the
modal to 'text/html' to avoid conflit with 'image/png'
when setting the cover image.
Task-1902304
|
|
Task #1902304
Purpose
=======
The 'is_preview' field implied some functional behavior but it was not
manageable from back-end nor front-end.
It can now be configured on the slide upload form (front-end view) and on
the slide form (back-end view).
closes odoo/odoo#31073
|
|
With new slide type, it was required to change the
upload modaL. Now, the use select first the type
of document he wants to upload, then the correct
form appears. When filled, user can sumbit it to
be redirect to the slide he just create.
Task-1938643
|
|
Having a unique constraint for a slide name in a channel look strange.
It force an RPC call to check this when uploading a slide, making the
process a little bit slow.
Morevover, name is a translatable field on slide.slide model, so the
constraint can not be fully respected.
To simplify the model, we decided to remove this.
Task-1938643
|
|
This commit provides the abilty to create channel from the website
instead of creating a slide. To do so, the user still have the "upload"
button on the channel home page.
The new modal allow user to set title, description, type and channel
tags. We prevent channel tag and group tag creation on the fly, as it
can impact the UI (coming in a future commits).
Task-1938643
|
|
Oversight of previous foward-port.
|
|
|
|
* website_blog, website_crm_partner_assign, website_event,
website_event_track, website_form, website_forum, website_links,
website_mail, website_mail_channel, website_mass_mailing,
website_sale, website_sale_comparison, website_sale_delivery,
website_sale_stock, website_sale_wishlist, website_slides,
website_twitter
While using the 'Animation' class of website instead of the frontend
'Widget' class leads to the same behaviors, this refactoring is done for
two reasons:
- Stop using the confusing 'Animation' name for non-animated behaviors
- Instantiation of 'Widget' is slightly faster than 'Animation'
Part of https://github.com/odoo/odoo/pull/29442
task-1932066
|
|
* portal, sale, web, website_blog, website_crm_partner_assign,
website_forum, website_event_track, website_links, website_mail,
website_slides, website_mail_channel, website_mass_mailing,
website_sale, website_sale_comparison, website_sale_delivery,
website_sale_wishlist
The `editableMode` option and its related options in public widget
should only be part of website, this commit moves them there. This is
also the occasion to implement something that is long overdue: stop
creating 'animations' / public widgets in edit mode by default. Indeed,
lots of 'animations' were defined by beginning with 'if not edit mode'.
Now, if a public widget should be considered in edit mode, it must be
defined explicitely through a property at *definition* of the widget.
Part of https://github.com/odoo/odoo/pull/29442
task-1932066
|
|
Purpose is to add a new widget and its route allowing to join a channel.
As visibility is now mainly based on membership a widget to join channels
is required.
This commit is linked to task ID 1937411 and PR #30847.
|
|
Slide upload access is a bit cleaned. A can_publish field is added controlling
who can publish slides. Currently website publishers are allowed to publish
content. Not publishers people allowed to upload cannot publish their own
content. It stays in a submitted non published state.
This commit is linked to task ID 1937411 and PR #30847.
|
|
Purpose of this commit is to clean access rights on slide models and give
less access to public / portal / internal users. Website publishers and
editors have rights to edit slides content and manage channels.
Another purpose is to clean and refactor access options on channels and slides.
Access to a given slide depends on the current user being a member of the
slide channel. A channel can be either public (joined easily) or on invitation
only (manual addition of members).
Slide can be flagged as preview, meaning they are accessible without any
concern about channel membership. It is used as teasing or free promotion
of a channel.
Publish flag is orthogonal. Non published slides are not visible to everyone
except website content editor. It allows to work and improve slides without
displaying them to members or public people.
Technically a new model is added to model membership on channels. It is
a decorated m2m between channels and partners; on this m2m the state of
membership is added. In a near future additional information will be stored
on this model, like completion of channel or certification information.
Other technical changes implied by this commit
* visibility is simplified to either public or invite;
* can_see and can_see_full are removed, as well as concept of 'partial'
display of slides;
* group_ids related to private access is removed;
* a computed / searchable field is added to be able to efficiently find
and search active members of a channel;
This commit is linked to task ID 1937411 and PR #30847.
|
|
This commit is linked to task ID 1933820 and PR #30553.
|