Purpose of this merge is to prepare eLearning feature by already modifying
channel model.
It includes
* addition of tag and tag groups on channel, allowing to filter and search;
* addition of statistics computation on channel, notably tracking completion
of users;
* removal of promoted slide feature and addition of specific image field
on channel;
This merge is related to task ID 1936153 and closes PR #30985. More
generally this merge is linked to ongoing tasks
* task ID 1902304 (main eLearning task) PR #29876;
* task ID 1922159 (new user profile and gamification) PR #30514;
* task ID 1937160 (payment flow and integration with ecommerce) PR #30914;
*: base, bus, mail_bot, test_mail
Before this task, it was not easy to tell when a user is not available (or is on holiday)
from conversations, such as from chat windows.
With this task, a user can now tell that he is out-of-office from the user menu preferences,
by defining an an out-of-office message. This information will be displayed to other users from
chat conversations and mention suggestions (i.e. with `@`).
Also, the computation of the user `im_status` has been changed when he has an active leave:
an out-of-office message can be set on the leave, and this will be displayed on conversations
instead of the user's out-of-office message from the user menu preferences.
Task: 1856205
closesodoo/odoo#29974
Task #1908673
Purpose
=======
The "invoice" modal is too complex to use for new users and has a lot of useless options for
the most simple use cases.
The goal here is to remove 2 options of the 'advance_payment_method' field:
* Invoiceable lines
* Invoiceable lines (deduct down payments)
And combine them into a new one: "Standard invoice".
If there are any down payments to deduct, another checkbox field appears under this
one: "Deduct down payments".
This keeps all the invoicing features while simplifying the modal.
Spec
=======
* Remove "invoiceable lines, deduct down payment" and replace by a checkbox
(checked by default, only visible if down payments to deduct)
* Rename "Invoiceable lines" into "Standard invoice"
* tooltip on radio buttons: A standard invoice is issued with all the order lines ready for invoicing,
according to their invoicing policy (based on ordered quantity or on delivered quantity).
closesodoo/odoo#29978
- For 'res.config.setting' view, when there is a field with
'many2many_tags' widget, a drop-down is not displayed
properly. (For example, see 'default_cashbox_lines_ids'
field from point_of_sale module)
- This commit fixes the above visual glitch by properly displaying
the field having 'many2many_tags' widget on settings view.
Task id - 1935608
closesodoo/odoo#30956
The date picker should be displayed when clicking on the fa-calendar
when creating a note from activity systray.
The test was missing the assertion checking that the date picker was displayed,
but fixing this issue breaks the test. The datepicker looks to be
asynchronously initialized, and the blur event raises an error because of
that. Since it is difficult to test external libs behaviour, this
step is simply removed from the test.
Task: 1942850
closesodoo/odoo#31241
This fix prevents the chatter and attachment box
from assuming that there is a mail_thread on the record;
Reason: if a chatter is set on a record that doesn't inherit
mail_thread, the attachment box will generate errors.
closesodoo/odoo#31206
With Italian localization, the length of zip must be 5 for Italian buyer.
If the buyer is not Italian, we doesn't check his zip length.
closesodoo/odoo#31205
Some elements in the eCommerce are styled using the 'border_primary'
class. The color used by the class is however the wrong one, as it was
set to the odoo purple while it was meant to be the theme primary color.
This commit fixes the color.
Note that BS4 has an equivalent for that class (.border.border-primary)
but as this is a stable fix, it was not changed. It will be adapted in
master with https://github.com/odoo/odoo/pull/31147closesodoo/odoo#31214
- Set a barcode for a product A
- Open the POS interface
- Click on a product B => it is added to the order
- Scan product A
Product A is added to the order, but a unit of B is also added.
Commit 9de1bc0eef introduced keyboard shortcuts in the POS
interface. In particular, when a product is selected, pressing the SPACE
or the ENTER key adds it in the order. Since the barcode scanner sends
an ENTER key as a final character, it triggers the addition of both
products.
opw-1934520
closesodoo/odoo#31185
- Have a slow network
- Click multiple times on the 'Check-in' button
Multiple attendances are created.
The view refactoring introduced in 9de1bc0eef changed the
element to a `<a>` tag, on which the `disabled` attribute has no effect.
We introduce a `debounce` instead.
opw-1941647
closesodoo/odoo#31178
When the Payroll precision is higher than the currency precision,
accounting entries are inconsistent: debit or credit fields use the
payroll precision, while the balance uses the currency precision.
We make the AML consistent by forcing the currency precision.
opw-1924360
closesodoo/odoo#31131
Now that we have proper support for RTL language, add an Arabic language with
code "ar" (while the only possiblity before was ar_SY).
Use ar_AA code as Arabic unitag.
In master, the ar_SY could be removed as no need to have both.
Add Bengali language
Fixesodoo/odoo#31165closesodoo/odoo#28640
If that storage is destroy-able (aka RamStorage), storage objects are
created "inline" without attachment (as they may or may not be parented)
and this means those created implicitly in tests can't be tracked and
cleanly destroyed even by destroying the storage service object.
closesodoo/odoo#30790
Purpose of this commit is to clean a bit channel model. Promoted slide
feature is removed as people can already choose an order for a given
channel. Moreover promoted slide will not be used when having a eLearning
display of a channel.
Image field on channels is added as it is not depending on promoted slide
anymore.
To simplify future additions a search-specific template is removed to
have a unique template to display a channel content. It will ease future
merge.
This commit is linked to task ID 1936153 and PR #30985.
Purpose of this commit is to add some statistics computation on slide.channel
model. We want notably to have a count of views and votes (likes and dislikes)
on channels. Completion is also computed.
Purpose is to be able to search and order channels based on those statistics.
Having stored computed fields for some statistics help achieving that purpose.
Tests are added.
This commit is linked to task ID 1936153 and PR #30985.
Purpose is to be able to filter, search and categorize channels. Notably
with eLearning in mind there will be more channels as a channel will also be
used to hold lessons.
For that purpose we add a model of tag linked to channels. Those tags are
organized by groups in order to be able to display them using a menu or
a small hierarchy of tags. Displaying a tag group as a specific navigation
element is controlled by a specific field.
Those models will be used to display a new and improved home page for
channels / courses.
This commit is linked to task ID 1936153 and PR #30985.
`channel_info` can be called on multiple channels especially during
the init_messaging. The current implementation will perform read and
other queries in the loop. This commits aims to refactor `channel_info`
in order to read all informations in database out of the loop.
Computation of members informations is now the same as for `direct_partner`
As a side effect direct partner will have an email adress and members will have
im_status and out_of_office message if the partner is in a
channel of type chat. It would be easier to compute im_status in all case but
this could create performances issues when calling channel info on channel with
hundreds of users.
channel_fetch_preview will make a query in database in any case but seems to work ok
in api multi. We can put it out of the loop.
44ac7903cc fix shouldn't be broken by this refactoring since we are no longer using the many2many to find direct_partners.
The IAP logo is an svg file, and contains a text tags with font
specified in it. It leads to wrong display in some browser and/or
operating systems when the font is not installed.
To avoid this wrong display we changed the text into a path in the svg.
closesodoo/odoo#30995
Task #1908673
Purpose
=======
The "invoice" modal is too complex to use for new users and has a lot of useless options for
the most simple use cases.
The goal here is to remove 2 options of the 'advance_payment_method' field:
* Invoiceable lines
* Invoiceable lines (deduct down payments)
And combine them into a new one: "Standard invoice".
If there are any down payments to deduct, another checkbox field appears under this
one: "Deduct down payments".
This keeps all the invoicing features while simplifying the modal.
Spec
=======
* Remove "invoiceable lines, deduct down payment" and replace by a checkbox
(checked by default, only visible if down payments to deduct)
* Rename "Invoiceable lines" into "Standard invoice"
* tooltip on radio buttons: A standard invoice is issued with all the order lines ready for invoicing,
according to their invoicing policy (based on ordered quantity or on delivered quantity).
Purpose
=======
The method named "action_invoice_create" in the sale_order model did not make sense:
- this method is not an action (it returns the ids of created invoices)
- it is not used as an action on any xml buttons
- it has no reason to be private
This was probably a "real" action somewhere in the past but now it's just too confusing.
(The method in repair.order was also renamed for the same reasons).
Improve the User Interface of the Calendar mobile view.
- The "today" button should be aligned (both size and position) with the
view switcher icon.
- Extract mobile calendar styling into dedicated SCSS file.
Task ID: 1891955
closesodoo/odoo#30592
Just reflect access rights: publishers should be able to manage channel
members.
Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
closesodoo/odoo#30960
To avoid security issues or exploits, public method to add a member on a
channel allows to add only itself, under given restrictions, like being
a channel maintainer to add self on a private channel.
A private method allow to subscribe other people. It will be used notably
to allow publishers to invite other people.
Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
This commit changes decorated many2many between slides and participants
recently introduced [1]. It was done between slide and users as people have to
login to have slide information.
Another many2many between channel and partners to store notably completion
and soon add statistics has been added [2]. It has been done between
channels and partners.
In this commit we choose to have the same relationship for slides, aka a link
between slides and partners. It allows to easily compute statistics and find
information based on partner_id.
Co-Authored-By: Quentin Mourrier <qmo@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
[1] See c273e89d55
[2] See 748b9072d6
* portal, web, web_editor
See sub-commits for details.
- Many improvements to the customize dialog 'framework'
(toggle switches, new widgets, ...)
- Optimization of RPCs (including ace editor which shares the same code)
- Move navbar options of the customize menu to the customize dialog
- Add the possibility to control the header logo size
- Add the possibility to control the header font size
task-1904244
closesodoo/odoo#29624
* portal
The user can now choose the font-size of its header menu items through
the customize dialog.
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Options and option sets can declare a data-depends attribute to specify
which options need to be enabled for them to be displayed. With this
commit, we allow specifying which options need to be *disabled* for the
same purpose (we can now do that by prefixing the options IDs with '!').
PR https://github.com/odoo/odoo/pull/29624
task-1904244
* web_editor
This commit's goal is to optimize the delay to make a scss customization
thanks to the website customize dialog. Before this commit, the JS code
took advantage of existing web_editor routes but this was far from
efficient as this was done:
1) PY: Load all scss files used in the page
2) JS: Find the one we want to customize and adapt the scss content
3) PY: Create the scss customization with the new content
(So two RPC (including one very slow) and content building in
javascript)
After this commit, this is done:
1) PY: Load the scss file being customized, adapt its content according
to the new values and save the customization
(So the whole logic is in python, requiring only one small RPC)
This commit also take the opportunity to review the web_editor ace
editor loading code (the logic is shared with website customizations).
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Next commit will change that file to make it extend a web_editor model
instead of a web_editor controller. This commit only moves the file.
PR https://github.com/odoo/odoo/pull/29624
task-1904244
* portal, web
This commit introduces the first of many-to-come non-color website user
values: the logo height. Now, the user can choose it in the customize
dialog.
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Before this commit, in the theme customize modal, only lists were able
to be visible under the condition of a subset of options being enabled.
Now options can too.
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Before this commit, the loading was shown during colorpicker choice or
body image choice too, which makes no sense. This commit also make a new
loading visual which is less intrusive and flicker less.
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Before this commit, color options in the theme customize were treated
as big exception in the system. The whole color panel XML was defined
client-side and used custom design. Now, all colors are defined as
options in the "server-side" template, allowing for more customizations
and better maintenance.
This commit also makes the color saving system generic to allow for more
new options in the future (like customizing the logo height or the font
size, which is the next task).
PR https://github.com/odoo/odoo/pull/29624
task-1904244
Move the 'Show Logo', 'Show Sign In' and 'Fixed Top Menu' options from
the customize menu to the customize theme dialog using new features
introduced with https://github.com/odoo/odoo/pull/29624
The customize menu divider is also only added if there are toggable
options in there (which is not the case anymore for all pages since
this commit).
PR https://github.com/odoo/odoo/pull/29624
task-1904244