Purpose of this merge is to provide several fixes related to new elearning
application [1]. This is second batch of fixes [2]. Those are mainly fixes
and improvements for front-end templates: layouting, clean design. Some
other fixes are also included, notably links and search capabilities.
See sub commits for more details.
Thanks to @awa-odoo @jem-odoo @stefanorigano @qmo-odoo @dbeguin
for their work as most of code come from cherry-picks.
Merge linked to task ID 1941250.
[1] eLearning feature: see task ID 1902304
[2] First batch of fixes landed at 5cec06b179closesodoo/odoo#31317
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.
Purpose is to clean a bit the card layout in documentation courses, notably
* better layout for cards:
* fetch (in controller as slides in course display are sudo-ed to display
a card even if current user has no access) completion data and display it;
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.
Last review should be a comment. When fetching the last message on a course
the returned message can be a system notification (like "Channel created").
This is not what we want, mostly with the feature allowing to modify the body
of a message. This commit add restriction on the domain fetch last message.
Fix default rating value on popup widget. The conversation ratio (rating 1-10
and 5 stars) was not applied everywhere. So, the number of displayed stars was
doubled. This is now fixed.
Commit linked to task ID 1941250 and PR #31317.
Purpose: the "My courses" button on the slides home page now redirects the user
to the list of channels for which he is a member of.
In this commit we also clean a bit controller code to remove support of
category_id which makes no sense on a page displaying courses as categories
are not cross-courses, only course-specific.
A clear search icon is also added.
Commit linked to task ID 1941250 and PR #31317.
This commit do some small UI adjustment:
* remove a potential doubled <hr/>;
* remove a "mb8" to make views consistent whether you're a channel publisher
or not;
* add a specific parameter to see 'uncategorized' slides on a documentation
channel as /category is a slug and does not allow Falsy values;
Commit linked to task ID 1941250 and PR #31317.
Purpose of this commit is to add a circular progress around the rank of
a user when seing its profile. It allows to see at a glance advance for
next karma rank.
Commit linked to task ID 1941250 and PR #31317.
Some addition to demo data, notably some members and a few more slides.
I bet there will be other commits improving demo data, one slide at a time.
Commit linked to task ID 1941250 and PR #31317.
The three columns in the skills widget (namely: skill name,
skill level and progress) did not evenly span the width of
the table.
This commit set the css width attribute of the first two
columns to 33%. The last column (added by js) takes the
remaining space)
closesodoo/odoo#31326
In mobile, a many2one field is displayed as a kanban view
instead of a tree view.
However skills and resumé widgets have been designed
to work for tree views.
=> traceback when displaying the widgets in mobile.
Fix: force the mode to `tree`
The next test was identical to the removed one, with the exception that
it inserts a character at the end, which really is the behavior we want
to test. The removed test was broken because it expected the range on
the parent, which is anyway equivalent in this case. This is confirmed
by the fact that inserting a character at either ranges indeed inserts
the character where it is expected to do so.
Deleting all the contents of a block node replaced it with a blank
paragraph node. To restore v12 behavior, it should only do that when
pressing backspace in an already empty block, which is now what it does.
When in the media modal, if one selected no media but clicked the "ADD"
button it resulted in an error and a failed RPC instead of simply
closing the modal without doing anything. v12 behavior is now restored.
closesodoo/odoo#31308
Purpose of this merge is to provide several fixes related to new elearning
application. Those are mainly fixes for front-end templates and first
design improvements / fixes.
See sub commits for more details.
Merge linked to task ID 1941250 and PR #31279.
closesodoo/odoo#31306
- slidesChannelDropdownSort : dropdown items back to visible (was white on white)
- Featured lesson : change icon to bullhorn instead of + icon
- Pass certification fullscreen button : btn primary
- set max height to fullscreen content to 100% minus header
- Fix 'infographic' slide type image view
- change image for 'Furniture Technical Specifications' course
- fix fullscreen presentation mode: The condition to add the iframe that
contains the presentation of the document was wrong and, so, never met.
Those conditions are evaluated in javascript and not in python as it's part
of t-name template linked to a javascript widget.
Commit linked to task ID 1941250 and PR #31279.
The main condition to be able to see a profile is that the user we want to
see the profile is website_published.
But if a new user sign up and wants to access his own profile, he must
get access to his own profile, even if he is (not yet) website_published.
Commit linked to task ID 1941250 and PR #31279.
* remove useless slide management buttons. This commit removes the frontend
edit/publish/unlink buttons on slide cards (for the 'document' channel view)
as they were not handled on the backend side.
* hide slide type filter for documentation channels. The slide type filter
(including statistics) on the left side of the channel frontend view
was only handled for channels of type 'documentation'. This commit hides
the slide type stats/filters if the channel is not of type documentation.
* display add content/section buttons based on user rights. Fixes two channel
frontend issues with user rights management:
* Users that have the right to upload (can_upload field) should have the
"Add content" button available.
* The "Add section" button should only be available to website_publisher
accordingly to ACLs
Commit linked to task ID 1941250 and PR #31279.
Force white background + add the default bootstrap shadow. Do not use <h4>
tags to keep the right font-size on mobile. Simplify layout, add a second
navabar to handle content supposed to be moved to the right.
Commit linked to task ID 1941250 and PR #31279.
Various fixes linked to homepage of courses
* move channel navigation in its right container, clean its display and
related templating;
* display a Completed badge for completed courses;
* display a cropped image for channel image card in order to avoid blank lines
around image not having the right aspect ratio;
* use standard qweb widgets, notably float_time;
* make header and footer of /slides and /slides/all editable and improve
their styling;
* remove old and unused css linked to previous versions of homepage;
* various small code cleaning;
Commit linked to task ID 1941250 and PR #31279.
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Co-Authored-By: Stefano Rigano <sri@odoo.com>
This commit puts the certification slide from the demo data into a category
so that it's correctly displayed on the channel frontend view.
Commit linked to task ID 1941250 and PR #31279.
Currently, when creating `resource.calendar.leaves` for a
`hr.leave` it creates one in the employee's calendar and one
in the contract's calendar if it's different.
But if both calendar are the same, it does not associate
the benefit type to the resource leave.
This commit fixes the issue and add unit tests for this use
case.
closesodoo/odoo#31288
This reverts commit f735951d5c.
Revert payment acquire due to the fact that the encryption scheme
is broken by design and therefore cannot be trusted.
closesodoo/odoo#31281
Purpose of this merge is to perform a quick linting after having merged
several tasks and PR adding all requested eLearning features. Templates
are split for better understanding now that main templates for homepage,
course and lessons are in.
A model cleaning is performed as well as a-bit-late additions to stick
to specifications, notably splitting short and long description fields
on course.
See sub commits for more details. Merge linked to task ID 1941250 and
PR #31272.
Purpose of this commit is to provide a better way to display channel information.
Description is split into two fields. A text one, holding the short description
and used in channel header. A long html one, holding more details course
description.
Commit linked to task ID 1941250 and PR #31272.
Purpose is to reduce model naming complexity. Currently you have: slide_type
<type>, and related statistics on channel and category nbr_<type>s with a
trailing and error-prone s. Let us remove the trailing s to reduce complexity
of code reading. Some code cleaning in statistics computation is also done.
Commit linked to task ID 1941250 and PR #31272.
This recently introduced mixin allows to hide complexity of defining, using
and resizing images. Let us use it in channel and image model.
Commit linked to task ID 1941250 and PR #31272.
Quiz questions and answers should be translatable as they are intended
for end users and are displayed in courses frontend. Some required fields
are also missing. Some docstrings are cleaned.
Commit linked to task ID 1941250 and PR #31272.
Purpose is to perform some linting in code. No functional change should
occur with this commit, only some code move. Diff may appear huge but
it is just because some files are split.
This cleaning allow to better understand code and templates architecture
now that eLearning feature has landed in Odoo Community. It will ease future
additions, modifications and fixes.
Containing :
* [REF] make some internal slide-related methods private as they are not
intended to be called by outside world;
* [MOV] new channel invite wizard in wizard folder;
* [MOV] split frontend templates in some files to better locate code. There is
now files for homepage, course, lesson, embed and utils in addition to
slide-related profile template;
* [REM] dead (unused) templates;
Commit linked to task ID 1941250 and PR #31272.
Indeed some slides are available for external people if is_preview is set
to True. It indicates slide is available for teasing. It should not be
marked as completed for non members.
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>
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 is to ensure more advanced use cases are still supported in new
elearning platform in addition to more public use cases. Fields controlling
access are now
* enroll: who can enroll on course: public (everyone, simply click on join
button), invite (added by already members) and payment (in bridge with
website_sale, if SO with product is confirmed);
* enroll_group_ids: automatically add members of those groups to the channel
to ease having groups for a given subset of users;
* visibility: who can see a channel and its slides: public (everyone, it means
channel is visible on website for example), members (hidden for non members)
* website_published on channels and slides; non publishers cannot see what
is not published, whatever other parameters;
* upload_group_ids: who can upload on a channel;
* download_security on a slide is completely removed as it makes no sense
for most slide types;
To ensure a better user experience responsible of a channel is added in its
members. People uploading a slide are now also allowed to read it to avoid
having inconsistency behavior between upload_group_ids and access rules.
Some tests are added.
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
=======
Add the possibility to generate the 'Compte Individuel' (or 'Individual Account')
based on the belgian payslip for a specific year.
This report aggregates the payslip lines by month, by quarter and for the entire
year.
closesodoo/odoo#30487
In the backend interface, lead/opportunity date_deadline is named
"Expected Closing" or sometime "Expected Closing Date" but on the
frontend it was named "Deadline" for opportunity.
opw-1941273
closes#31244
The link modal only opened on double-click directly on an anchor,
meaning that double-clicking text in a span node within the button (as
is the case in the call-to-action snippet for instance) wouldn't open
the modal.
Now it opens as long as we have an ancestor that is an anchor, unless
the double-click occurs on a media (eg: a pictogram), in which case it
should open the media's modal.
closesodoo/odoo#31229
Add a new group in the settings page, allowing to put some others
settings on the right side of the page (needed in enterprise).
Task-1942377 Closes#31212