Modifying a source term in an XML/HTML translated field can lose translations
if the same term is translated in several languages.
closesodoo/odoo#29078
The other methods do test password length before verifying it, so even
if check_credentials() is not meant to be called directly, it's better
to keep it consistent with the alternatives.
Closes#29023
The configuration of question of type 'Date' was not used at all.
The datetimepicker configuration was hardcoded and did not take into
account the configuration of questions of type 'Date'.
Now, for each datetimepicker, we use the corresponding configuration
for min and max date.
Task ID : 1912194
Closes PR #28966
Suppose you have a workorder to create n units of product P,
using raw material R (suppose we use one for one, the following can be extended
to any number of raw materials and factors in a straightforward manner).
Produce j < n units of P. Next, update the quantity to produce to j < k < n.
Since any number m of units between j and n may already have been reserved,
in particular values such that m > k, the move will unreserve the material R.
However, while doing so it will unlink the move_lines, and lose the
quantity_done (j).
The newly created move lines have a quantity_done of zero by default.
Therefore, we store in a dictionary the quantities done for each move line,
and reset these values once the unreservation/reservation of k units is done.
opw 1911969
closesodoo/odoo#28990
Before this fix products in a pricelist would not be grouped when there
is a decimal value in the price.
This problem was caused by a trailing rounding error, for instance a
price of 29.90 could give a pricelist price of 29.900000000002. To solve
this we check if Math.round((price - pricelist-price)/currency-rounding)
gives 0 as a result, if so, the price is equal to the pricelist price
and the product can be grouped.
solves: https://github.com/odoo/odoo/issues/28521#issuecomment-443148920closesodoo/odoo#29185
When activating a filter on a list view,
the environment of the action contained a context with an orderedBy key
which was then used by every controller and model in the various
parallel flows, i.e. changing actions
After this commit, we prevent it by excluding the key when executing an action
OPW 1913190, 1914019
closesodoo/odoo#29186
Changing the journal of a reconcialiation model to a journal not
reconciliable resulted to the model not accessible from any
menu.
opw-1913079
closesodoo/odoo#29249
We now support version 0.12.5(.1), which is available for all recent Debian and Ubuntu versions,
and contains quite a few bug fixes. An up-to-date version of Odoo 10 or later is required, for
pixel-perfect compatibility with the result of 0.12.1.3.
See also the wiki for more info: https://github.com/odoo/odoo/wiki/Wkhtmltopdf
The prefill of the date field must be done after the initialisation,
otherwise, it would override the value. so prefill must be done inside
the .then to avoid prefill before the locale is ready.
Since the datetime are real datetime in DB, we cannot give real datetime
to JSON but string instead.
Finally, no need to keep the div class row. Otherwise, it would put everything
on same line and the jumbotorn div wouldn't be on top on the rest of the page.
Special thanks to @awa-odoo that gave me his masterpiece brain
to help me on this.
Task ID : 1911291
Closes PR #28966
In order to facilitiate the configuration of a livechat on the website,
the first livechat channel that was demo data from im_livechat
is now set as data. Website is now using this first livechat channel
instead of creating a new one and using it.
Task ID : 1912056
Closes PR #29020
Since BS4, input-group is used instead of form-controll.
The initialisation was not correctly made because it didn't find
the datetimepicker.
There were several resulting issues:
- Max and Min date were not taken into account
- Clicking on the text area of date field was not opening the
datetimepicker as config was not defined (allowInputToggle option)
Task ID : 1911291
Closes PR #28966
In survey template, the datetimepicker was created with always the same id.
So if two date fields were present on the same page, it created a
multidemensional vortex that broke an alternative reality, resulting in
not being able to fill in both date fields and other crapy stuffs.
Also, the sass file needed to work with tempusdominus library were not
loaded with the js file that comes with it. Resulting in an hugly calendar
(if it could be called calendar) widget.
As survey does not load backend nor frontend assets, it's necessary to have
both files (js and sass files) in common assets.
Task ID : 1911291
Closes PR #28966
By default in the notification manager we see something like:
```
record name {a second ago}
summary V
```
but if for example the record name is long or the summary empty, we can
have something like:
```
record name so very long {a s}
V
---
record name so very very lo...
V
```
This is because the record name was not allowed to grow, and the
positionning of the check mark based itself on the existence of the
summary container (.o_last_message_preview).
With this change the date a message was sent is shown in any case and
the check mark is on the right.
opw-1911654
closes#28960
Returning inactive users breaks many features based on the partner's user ids
(among which the company switcher).
This reverts a small part of commit 14af2c7f2fe6c14afb96d7e9f2bb02b2a022eaae
which is related to #25939. That part was not necessary and had some
unintended side-effects.
closesodoo/odoo#28947
- Before this commit when a transaction failed, the code doesn't
rollback and continue to process the other transaction, thus creating
record that should be rollbacked.
closesodoo/odoo#28748
Purpose
=======
Currently the remaining leaves substract the taken leaves with
no needed allocation.
That way, sick leaves are removed from the remaining leaves for example.
Closes#28659
Co-authored-by: Cas Vissers <c.vissers@brahoo.nl>
closesodoo/odoo#28951
When we mention for example `@hell'o`, the user will be added as
subscriber but he is not linked.
This is because there is two part of mentions:
- inserting the mention in the message: at this point the mention is
not escaped (only space are replaced with non-breaking space).
- wrapping a link around the mention in a message that is being posted:
at this time the message has been escaped ( for &<>"`' ).
Thus when wrapping the mention, we have to search the escaped content.
In the case of canned response, the system is different with defined
substitution that replaced the "shortcut" so this makes no change to
that.
Added test without fix failed with:
8. should contain a link in the message content (expected:1, result:0)
9. should have correct mention link in the message content
(expected:"@ЅpëciãlUser<&>\"`' ツ", result: "")
opw-1909300
closes#28846
- In some cases (record rules modified to allow access to multi company
SO) the duplication of a quotation isn't possible if the quotation is
set on a company than the user trying to duplicate it.
This is due to a computed field that tries to access the order's
company currency.
closesodoo/odoo#28945
- On `project.task` records the field `allow_timesheets` is a related
set to `readonly=False` which triggers writes on `project.project` and
raise access rights issue for users who can create tasks but cannot
write on `project.project`.
OPW-1910877
closesodoo/odoo#28943
Have a user A having the focus on the search bar, minding his own business
Have a user B send a direct message to user A
Before this commit, the chat window on user A's browser took the focus manu militari
After this commit, the focus stays on user A's search bar
OPW 1911553
closesodoo/odoo#28915
The link pointing to the hardware setup for PoS redirected to the POSBox doc which no longer exists in 12.0.
Therefore the response was a 404.
Now the link redirects to the IoT doc for using the box with PoS.
Btw, this new doc seems less complete than the previous one.
closesodoo/odoo#28944
By this commit, in sales by channel report of product page we are able to show the quanity of product which is just in 'sale' and 'done' state.
Before this commit, the quantity of product included every state except 'cancel'.
This commit is related to issue: #27643closesodoo/odoo#28948
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
- Create 2 companies C1 and C2
- Do not share partners between companies
- Create a partner P1 in C1:
Name: PartnerA
AccountNumber: 1234
- Create a partner P2 in C2:
Name: PartnerA
AccountNumber: 1234
- Create an invoice in C2 for P2, validate and pay
- Add the fields `account_number` and `partner_name` to the bank
statement lines for convenience.
- Create a bank statement with a line:
Partner Name: PartnerA
Account Number: 1234
- Run the following query (on which no record rule is applied for bank
statement reconciliation):
```sql
SELECT
st_line.id AS id,
COALESCE(p1.id,p2.id,p3.id) AS partner_id,
p1.id AS p1,
p2.id AS p2,
p3.id AS p3
FROM account_bank_statement_line st_line
LEFT JOIN res_partner_bank bank ON bank.id = st_line.bank_account_id OR bank.acc_number = st_line.account_number
LEFT JOIN res_partner p1 ON st_line.partner_id=p1.id
LEFT JOIN res_partner p2 ON bank.partner_id=p2.id
LEFT JOIN res_partner p3 ON p3.name ILIKE st_line.partner_name
WHERE st_line.id IN (XX);
```
The result is:
| id | partner_id| p1| p2| p3|
|----------|-------------|--------|------|------|
| XX| P1| null| P1| P1|
| XX| P2| null| P2| P1|
P1 should not appear in any of the results. In some configuration, P1
will be selected for matching and will trigger an access error.
Commit 1fc0b08e14 introduced the record
rules for `p3`, but was wrongly set at the end of the query. We
introduce the rules for `p3` as well as `bank`, so the result is now:
| id | partner_id| p1| p2| p3|
|----------|-------------|--------|------|------|
| XX| P2| null| P2| null|
Which is the expected result.
Fixes#32954
opw-1974649
closesodoo/odoo#33245
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
When the clickEverywhere js test is started with base only, the
web client opens the first app by default (see openFirstApp call in
web_client.js). Unfortunately, the test clicks immediately on the apps
menu and the client does not invalidate openFirstApp.
Then, when trying to click on a filter, it does not exists anymore and
leads to a timeout.
The present timeout should solve the problem without refactoring the web
client.
closesodoo/odoo#33339
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
When Odoo is stopped using CTRL+C on Windows, a Traceback is thrown
because the SIGXCPU signal does not exists on Windows.
With this commit, the check for SIGXCPU only occurs on supported
platforms.
Fixes#33311closesodoo/odoo#33333
Signed-off-by: Christophe Simonis <chs@odoo.com>
This commit aims to make unit tests pass when creating a new database
with only 'survey' installed.
The tour 'test_survey' was not loaded before reaching /survey/start,
causing tests to fail.
The js asset is now loaded within web.assets_common because the tour
should also work with the 'public' user. For this reason,
'web.assets_backend' is not a good fit.
Widget 'root.widget' was undefined too. Appropriate js file is now
loaded.
Closes#33330
Signed-off-by: Christophe Simonis <chs@odoo.com>
Before this revision, the public user of your website could be changed
upon saving the general settings if you added users in the public group.
Case:
- Install website
- Add a user in the "public" group,
with a login sorted alphabetically before "public", let's say "1public"
- Open the general settings and save directly
- Notice the public user of the website has been changed to "1public",
and it did not keep "public", while you haven't changed anything
in the settings.
That said, the current heuristic to find the public user of a company
might not be the best, as you could automatically find users in the group
public that you would not like to use as the public user of your website.
In master, maybe a field `public_user_id` could be added on
`res.company`, and the `user_id` of the website could become
a related of the company public user.
In addition, when `_get_public_user` creates a new public user,
it could link it to the company in `public_user_id` field.
closesodoo/odoo#33332
Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
Steps to reproduce the bug:
- Create two storable products A and B
- Create a BOM for A with B as component and A as by product
- Set this BOM as "To manufacture"
- Create a MO for A and try to process it
Bug:
Ensure one error was raised by function check_finished_move_lots defined in module mrp
because the variable produce_move must be one record.
Now, it's not possible to create a MO for A if A has a BOM with A as by product.
opw:1974863
closesodoo/odoo#33280
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
When creating a new crm lead from the kanban view, using the quick add
button, the default probability is the one of the first stage, and not
the one of the selected stage.
Now, the default probability is the one of the selected stage.
opw-1986047
closesodoo/odoo#33267
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Since the changes introduced in cdcdebc6cb,
the tax amounts were not showing in the Sale Details Report.
closesodoo/odoo#33007
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
In a web editor, add some text, select the text, add a link and
immediately discard the link modal. Traceback.
The traceback is a DOM `IndexSizeError`, that error is thrown when the
boundaries of a DOM Range (`document.createRange`) are outside of the
ranged elements. In this context, the error happens because the element
is empty and the range has an end bound set to the size of the selected
text.
Odoo wrap code does some text node split in order to attach the link
just on the selected text. If it correctly re-set the underlying
structure, it does not update the $(editable) structure used to restore
ranges.
opw-1981751
closesodoo/odoo#33257
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
Blacklist was added to mail.channel.partner in order to avoid sending
mail notification for a channel in send mail mode if the partner was
blacklisted.
But as everythin is done using directly the res partner model, this
inheritance is completelly useless.
Moreover, since introduction of mail.address.mixin with email_normalization
(inherited by blacklist.mixin), the partner_email cannot be normalized as it
is a non stored related field. The computation of email_normalized will
fail.
Task ID : 1911716
Closes PR #28922