This commit removes the unnecessary usage of `signature` instead of
`unique` in the route params for `web/image`.
closesodoo/odoo#48437
Related: odoo/enterprise#9501
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
This commit makes so that we also fetch the checksum of the attachments
of mail.messages to use it for cache control.
Before this commit, the urls of message attachments had
`undefined` for the signature parameter.
Creating New records for account.payment from Grouped kanban should not be allowed as they are not consistent and Leads to error. (Eg, Try to create New Payment when grouped by State, Add new Column when grouped by Journal)
With this commit, We disable the creation of new Payment/Relational records from this view.
closesodoo/odoo#49619
X-original-commit: 6774f9cfe768e5cffce4cfd458910af450ef7616
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Steps to reproduce:
- install calendar and dashboard
- go to calendar > favorites > add to my dashboard
- go to dashboard
Previous behavior:
the calendar view in the dashboard does not show the main widget
because height is 0px (because the structure is different that normal
calendar view where view height is restricted based on viewport).
Current behavior:
calendar views are properly displayed in dashboard
opw-2226565
closesodoo/odoo#49709
X-original-commit: d1218004aa0b4a1840c99346baef73bc5fbb90a1
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: mightyjol <jhk-odoo@users.noreply.github.com>
Use `float_compare` to avoid the usual float representation comparison
errors.
opw-2215497
closesodoo/odoo#49702
X-original-commit: 500240874cd21c6950210968c8c7e8d84c1c4bee
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
There's a traceback when we edit an activity on a campaign
* Create a child activity
* Save the activity (not the campaign)
* Edit again the activity
* -> Traceback
Introduced in a9cebd5
Task ID 2220930
closesodoo/odoo#49698
X-original-commit: efa8952c39b0bcb0969013dc22e05b5d61ff1c66
Related: odoo/enterprise#9964
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
- Go to the calendar list view
- Click on 'Create'
- Tick 'All Day'
- Set a start date
The end date is set to the day before.
This happens because in this case, the default duration is zero.
opw-2236766
closesodoo/odoo#49682
X-original-commit: 0b6ae3ed4ff20898cd88b97a644190b20f11cf8f
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
When creating or writing on a account.journal model,
it is possible to pass a char representing the bank account number
into bank_acc_number instead of passing directly a res.partner.bank.
In case we pass bank_acc_number the system will try to create automatically
a new res.partner.bank for us, however if a res.partner.bank already exists
with the same account number it will result in an error as we have a unicity
constraint for that. Therefore it is best to first seach for such an existing
res.partner.bank before trying to create it. The search is done on the
sanitized_account_number field as the unicity constraint is on that field.
closesodoo/odoo#49637
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
PURPOSE
Clean mail alias mixin use through addons and clean its code
SPECIFICATIONS
Remove unnecessary code overlap: duplicate of model computation
or alias definitions.
Remove alias creation relying on context and instead give a single
method to override giving alias creation values.
Go through all addons using aliases to clean its usage code.
Remove remaining alias fields on res.users, linked to a now removed
feature.
Finally make alias creation work in batch mode in mail_alias_mixin.
LINKS
Task ID 1919277
Community odoo/odoo#41160
Enterprise odoo/enterprise#6983
Upgrade odoo/upgrade#872
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of this commit is to allow multi-create in alias mixin by correctly
creating / updating aliases in batch.
Task ID 1919277
Community PR odoo/odoo#41160
Enterprise PR odoo/enterprise#6983
Upgrade PR odoo/upgrade#872
Co-Authored-By: Rémy Voet <ryv@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Clean the usage of mail aliases and more specifically its associated mixin
`mail.alias.mixin` .
Stop using context for model of aliases, and correctly give model_id and
parent_model_id to the call chain through a cleaned code easier to override.
We also merge methods get_alias_model_name and get_alias_values in single one
called before record creation (alias first values) and right after (to have
values depending on actual record).
LINKS
Task ID 1919277
Community PR odoo/odoo#41160
Enterprise PR odoo/enterprise#6983
Upgrade PR odoo/upgrade#872
Co-Authored-By: Rémy Voet <ryv@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Purpose of this commit is to clean manual alias creation by correctly giving
field values instead of relying on magic from model_name to model_id. Code
is more understandable now.
Task ID 1919277
Community PR odoo/odoo#41160
Enterprise PR odoo/enterprise#6983
Upgrade PR odoo/upgrade#872
Co-Authored-By: Rémy Voet <ryv@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
A mail alias is still linked with the res.users model with 2 fields, alias_id
and alias_contact (related). It is not used anymore. We can therefore remove
those fields.
Aliases were added at 052f2ace57 . Purpose was to be able to discuss with
users directly using Odoo as a mailbox. However it was not usable and was
quickly deactivated. Aliases on res.users was removed at 029d1baf35 . It was
decided at that time to not support alias on users anymore as it was creating
more issues than adding communication facility.
This commit finally removes the unused fields. If necessary in some custom
flow they can always be added through studio.
LINKS
Task ID 1919277
Community PR odoo/odoo#41160
Enterprise PR odoo/enterprise#6983
Upgrade PR odoo/upgrade#872
Co-Authored-By: Rémy Voet <ryv@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
The field `medic_exam` is not used anywhere and can thus be removed.
closesodoo/odoo#49631
Taskid: 2239321
Related: odoo/upgrade#1075
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Use correct filter since it was renamed in 9a0fedfc65
opw-2238922
closesodoo/odoo#49687
X-original-commit: e427a1f097791900b79f08f1f7b8431b6d58d9fd
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
l10n_hn:
Default Income Account set for product's category
is actually an "Expense" account, which is wrong.
l10n_sa:
Default Debit/Credit accounts for exchange journal
should not be same as of sales/purchase journal.
This is forbiden in future version by commit caeb7828.
Currently, this is the case here and this commit aims
fixing it.
closesodoo/odoo#49667
X-original-commit: 370f2d9ebda7eb3e52af8f55f466f4e66ab8140c
Signed-off-by: Josse Colpaert <jco@openerp.com>
- Specifically, it did not appear for misc operations & credit notes
- Currency only appear if group_multi_currency
- Fix label for journal_id appearing based on group
closesodoo/odoo#49671
X-original-commit: 62e54cb8960cd84484d462dc8c7d7c1e89a9eacd
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Before this commit, restoring the previously active tab on a form view was done
through programatically clicking on the tab and letting Bootstrap handle the switch
itself. This caused some cases of race condition since the click handler is asynchronous.
Now, classes are applied manually and should not cause any concurrency issue.
closesodoo/odoo#49668
X-original-commit: 214b842cba030f451430ff0d8c3fc1868be515e9
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
When we change the project on task, we change it also on
timesheet line if this line is not yet invoiced and if it
has no sale order line or the sale order line is the same
as sol of task.
closesodoo/odoo#45154
Taskid: 2169290
Related: odoo/enterprise#9471
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
25% rate is the default VAT rate and not 0%.
Encountered this bug when a test case failed for
Norway SAF-T PR, see odoo/enterprise#9724closesodoo/odoo#49662
X-original-commit: 0d4fe47745d241b99a690c16554383a4e3c7c86b
Signed-off-by: Josse Colpaert <jco@openerp.com>
This commit replaces the use of utils.patch by the new class patcher and
makes the renderers that are converted to owl patchable.
closesodoo/odoo#47700
Related: odoo/enterprise#9551
Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
This commit implements a new way to monkey-patch ES6
classes (for instance, Owl Components).
Usage
-----
odoo.module('module.BaseClass', function (require) {
const patchMixin = require('web.patchMixin');
// Define your class as usual
class BaseClass {
constructor() {
this.foo = 'foo';
}
bar() {
console.log(this.foo);
}
}
// but export it like this to have a "patchable" version
return patchMixin(BaseClass);
});
odoo.module('module.Patch', function (require) {
// imports the "patchable" version
const BaseClass = require('module.BaseClass');
BaseClass.patch('key', T =>
class extends T {
constructor() {
super();
this.foo = 'patched foo';
}
bar() {
super.bar();
console.log('patched bar()');
}
}
);
});
odoo.module('module.instance', function (require) {
// imports the "patchable" version
const BaseClass = require('module.BaseClass');
const obj = new BaseClass();
obj.bar();
// if module.patch is loaded before this module the patch
// will be apply and calling obj.bar() will log:
// patched foo
// patched bar()
// You can unpatch a patchable class
BaseClass.unpatch('key');
});
Currently it was not possible select start date for accruals
leave allocation. it was default taken as today's date.
So purpose of this task is to make start date field of accrual
time off visible so user do not have to wait until day to add a day off
In this commit, we make start date field of accrual time off visible with
default value as today and also check for the start date in cron method.
closes odoo/odoo#46811
Taskid: 2199326
Closes: #46811
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Screencasts were saved in the right directory (screencasts_frames_dir)
but the given path for ffmpeg was wrong (screencasts_dir) and it wasn't
possible to read theses files to make the video.
After this commit, we use the screencast_frames folder to read files.
Steps to reproduce:
Execute Odoo with these additional command:
--screencasts "folder_of_destination" --test-enable (with a failed JS test to produce a screencast)
X-original-commit: 0c0b7a656388d65de15796f07a3f4cc93028f1d7
Commit b0f1086 forgot that `read_group` supports
aggregation functions (e.g. "start:month") and that
`groupby` could be a single field or a list of fields.
+ add some tests
Task 2238100
closesodoo/odoo#49550
Related: odoo/enterprise#9878
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Default and onchange fallbacks don't consider the current company
when searching for a pricelist.
Forward-port of #46429closesodoo/odoo#49650
X-original-commit: 812af92080648bdb7f7bb0e4e6aef55c6dc4b9d4
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
When no pricelist property is defined for a customer, we use a search as
fallback, without considering the current companies.
This means you can see the pricelist of company B as pricelist for a
partner, even with company A as main current company (if both company
are enabled in the multi-company widget).
Forward-Port of #46429
X-original-commit: 68040c92c8e09218641d823d690e0ce36dcdef30
Purpose
=======
In eLearning you currently have to create a certification before adding it to
a course in front-end. This PR allows creation of certification in front-end
with pre-filled settings.
Functional Spec
===============
1. On a course, add content, type certification, you can choose an existing one
(normal flow) or create a new one in the dropdown by typing a new survey
name (new flow).
3. When submitting (Publish or save as draft), a certification survey, with
pre-filled settings is created and linked to the slide.
Pre-filled settings:
* One page per question
* Attempts limit : 1
* Time limit : no limit
* Scoring without answers
* Passing score : 70%
* Is Certification : True
* Email Template : Certification: Send by email
* Give Badge : False
4. After submit, the user stays on the Course Content.
5. A toaster is displayed in the top right saying:
Toaster's Title: Certification created
Content: Follow this link to add questions to your certification.
<a>Edit certification</a>
A website editor can select a certification (if available) for the creation of
a slide.
This PR also includes various IMP for a better user experience as well as
some code cleaning
* use badge level image as default badge image
* force duration to be positive in upload slide widget
* clean slide upload widget and controller code
See sub commits for more details.
Link
====
Task ID 1981399
PR odoo/odoo#43577
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose
=======
Before this commit, in the front end, you had to create a certification before
adding it to a course. This commit allows creation of certification in
front-end with pre-filled settings.
Functional Spec
===============
1. On a course, add content, type certification, you can choose an existing one
(normal flow) or create a new one in the dropdown by typing a new survey
name (new flow).
3. When submitting (Publish or save as draft), a certification survey, with
pre-filled settings is created and linked to the slide.
Pre-filled settings:
* One page per question
* Attempts limit : 1
* Time limit : no limit
* Scoring without answers
* Passing score : 70%
* Is Certification : True
* Email Template : Certification: Send by email
* Give Badge : False
4. After submit, the user stays on the Course Content.
5. A toaster is displayed in the top right saying:
Toaster's Title: Certification created
Content: Follow this link to add questions to your certification.
<a>Edit certification</a>
A website editor can select a certification (if available) for the creation of
a slide.
Task id: 1981399
PR #43577
Co-Authored-By: Florent Lejoly <fle@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
To avoid user to set a negative duration on slide they upload using the
upload widget, a min=0 has been added to the duration input of that widget.
Task ID 1981399
PR #43577
Before this commit, if no image was set on the badge, no image was shown when
displaying the badge.
After this commit, if a badge level is set on the badge and no image is set,
the badge level image will be used for the badge.
This fix / improvement is applied twice
* when displaying an user profile, its received badges;
* when displaying current user achievements in eLearning;
Task ID 1981399
PR #43577
Commit 90bf317c01 added read rights on survey for eLearning officers.
Reason is that they should be able to link surveys to slides, notably to create
certifications in eLearning.
However in backend eLearning officers cannot access any survey form view as
rights on sub models are not granted. We fix that by correctly giving a read
access on survey sub models to eLearning officers.
They are therefore able to read survey results and statistics. It makes sense
as they are linked to marketing teams. They have no modification rights as
those are limited to survey users / officers.
This commits fixes 6d9b367a79d09d3d7a9dde890ca651aa09b93987 that fixed 0a980d4be6300fbc888dcc9daf760a48c1b0ec32 that fixed dc9fa6e2166ad803c91ca4f3e3e17b8065eeee82 .
Amazing.
The validity_date and/or remaining_validity_days fields on the sale
order
could be wrong due to different timezones.
Furthermore, using datetime.now to create a date is unnecessary.
closesodoo/odoo#49639
X-original-commit: 40e0c39fb410d018d007f2c70c12daf4289d2370
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Show a confirmation dialog when a user is sending the very first letter.
=========
Purpose
=========
It happens from time to time that a letter gets sent by accident to a
final customer. This situation is always a bit problematic and is
usually only uncovered when it is too late. Having an additional
warning when sending the very first letter should help avoid that kind
of issue.
================
Specifications
================
Display the following warning when the user tries to send a snailmail
letter for the first time (from an invoice or from a follow-up report):
'You are about to send this invoice/follow-up report by post. Are you
sure you want to continue?' Confirm/Cancel
closesodoo/odoo#47861
Taskid: 2215091
Related: odoo/enterprise#9326
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
While the edit mode interface is full of useful things, it also adds a
lot of clutter, and alters the page's width and thus, its layout. This
commit adds keyboard shortcut for website editors to use, and allows
them to enter a "fullscreen" mode that hides the editor interface while
remaining in edit mode, allowing the user to have fewer distractions
while editing text content, and a closer rendition of the page's final
layout while editing.
For this, keyboard shortcuts were required, and a few other useful
shortcuts have been added, such as alt-1,2,3 for the navbar, just like
in the backed.
task-2126915
closesodoo/odoo#46953
Related: odoo/enterprise#9295
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Since https://github.com/odoo/odoo/commit/7d8df4bec192e5a2ff3341dcf43d59e06a57f9a9, the groups
managing pricelists features have been updated.
But the onchange feature enabling pricelist on multi-currency activation was wrongly
adapted, it was only activating advanced pricelists, iff basic pricelists were enabled.
The wanted feature is to activate pricelist (basic pricelist features: group_product_pricelist)
when multi-currency is enabled.
Also add an implied_group on multi_currency group to enforce this behavior.
closesodoo/odoo#49633
X-original-commit: f862f9650395b02f6a43c57cdf232a309fa6948e
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
For testing, we use helpers functions like testUtils.dragAndDrop().
Due to the commit odoo/odoo@de924f41ee
these methods were wrapped by a deprecated function to add a deprecation
warning in the console when these methods are used.
After this commit, the deprecated method will properly propagate the
returned value of the original function. And so if the returned value
is a Promise now we can await this Promise.
This should fix some false positives on runbot in saas-13.3 (e.g. FullCalendar).
closesodoo/odoo#49611
X-original-commit: 33bfe175bf1ba7824a1bef27fd7fa0898dbe8cb3
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
- Activate multi-currency
Company currency: USD
EUR rate: 0.14
- Set the decimal accuracy of Product Price to 5
- Create the following invoice in EUR:
Name Qty Price Unit Subtotal
A 38.0 38.73553 1471.95
B 222.0 4083.19000 906468.18
C 35.0 49.45257 1730.84
D 1.0 17.99000 17.99
- Save the invoice
- Edit the invoice and set a payment term, e.g. 30 days
- Save
There is a difference in debit and credit of 0.01 coming from the
following:
1471.95 / 0.14 = 10513.93
906468.18 / 0.14 = 6474772.71
1730.84 / 0.14 = 12363.14
17.99 / 0.14 = 128.50
SUM = 6497778.28
But the receivable account:
909688.96 / 0.14 = 6497778.285714286 => 6497778.29
When changing the payment term, all invoice lines are recomputed.
`price_unit` and `tax_ids` are in the list of the updated fields, which
triggers the synchronization of accounting and business fields. During
this synchronization, `_get_fields_onchange_subtotal_model` is called
and recomputes the debit amount, leading to the difference.
We only synchronize if the value of the business fields have changed.
opw-2209543
closesodoo/odoo#49605
X-original-commit: 70bd2c9c7a7c8ec832edd2c158f4f61b78cdeb37
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Issue
- Install Website
- Go on your website
- Add Media & Text
- Replace media by video
- Add youtube URL
- Save
- Play the video
The fullscreen button is disabled
Cause
We do not allow fullscreen on the iframe
Solution
Allow fullscreen, it is already done for the preview
OPW-2224696
closesodoo/odoo#49616
X-original-commit: e608a3feed35801c51c8ce7e251ccffa2ca9dc46
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
Remove the z-index = 1 for the header because it introduces visuals
bugs where certain elements are displayed at the top of the header when
should be displayed under. Example: search button in events page.
task-2229057
closesodoo/odoo#49612
X-original-commit: e5a5b7f454befd9059f88dbd4f31a76e43e0eb77
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The custom selection widget was only used in the form.
A small rework had to be done to make it work in list views because the
values were not pre loaded.
closesodoo/odoo#49604
X-original-commit: cf942e6df3bf065e299d8ad0dcfd8ed2cc66b29c
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
Signed-off-by: wan <william-andre@users.noreply.github.com>
1. merge intra community taxes (one taxe with two report lines instead of two taxes with one report line each)
2. fix "tva à l'encaissement" fiscal position mapping (two rates were using the same xml_id)
3. add outside EU import taxes
closesodoo/odoo#49552
X-original-commit: a5ddba34cc336e380f98c36ac4737ab97043eb76
Signed-off-by: Josse Colpaert <jco@openerp.com>
Signed-off-by: Adrien Horgnies <AdrienHorgnies@users.noreply.github.com>
PURPOSE
We make multiple calls to the clearbit API and the returned information are
shown in various different templates, although they contain the same
information.
The purpose of this commit is to unify the templates into a single one to
reduce code size and improve coherence.
SPECIFICATIONS
Currently, we have 3 ways of reaching out to the IAP clearbit api:
- When creating a partner (autocomplete service)
- When enriching an existing lead based on its email address
- When generating leads using the "Geneate Leads" button or using the website
visitors
Every time we use the service, we log a note in the model's chatter containing
all the information returned by the cleabit service (estimated annual revenue,
media links, sector, ...).
Though using different endpoints and methods, all the calls essentially return
the same data, and the templates could be unified for consistency.
This is the goal of this commit.
We merge the 3 separate templates of each modules into a unique template that
always renders the same information to the end user.
To do that, we had to find a common module to store the template, we chose
"partner_autocomplete" as it's installed anyway as soon as "crm_iap_lead_*" is
installed.
LINKS
PR #40349
Task 2081471
Related: odoo/upgrade#775
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>