When opening a dialog using mouse and closing it, form_dialog_discarded is
triggered, which tries to set focus on form while lastActivatedFieldIndex
is -1, as dialog is opened using mouse directly
do not set focus back to form widget if lastActivatedFieldIndex is -1
task-2031706
closesodoo/odoo#34684
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Before this commit, when a snippet was cloned, its animation was not destroyed
first. The flow was:
1. Clone the snippet (DOM) - web_editor trigger `snippet_cloned`
2. Start cloned snippet animation - website listen `snippet_cloned`
This was causing bugs, eg facebook snippet for which the animation is to create
an iframe containing the facebook widget.
When cloning this snippet, its iframe would be cloned to, then its animation
would be started, creating another iframe.
To fix such flows, the snippet cloning flow should be:
1. Strop the snippet animation
2. Clone the snippet (DOM) - web_editor trigger `snippet_cloned`
3. Start cloned snippet animation - website listen `snippet_cloned`
4. Restart the original snippet animation
task-1951466
closesodoo/odoo#35029
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Before this commit: 15fa0c23d9
It was possible to encode negative amount for an hr.expense.
Before the fix, it raised a Error saying:
"Cannot create unbalanced journal entry."
opw:2036620
closesodoo/odoo#34953
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
If there is no token to be shown, don't show the stat button as this
might confuse the end user
closesodoo/odoo#32548
Signed-off-by: Romain Libert (rli) <rli@odoo.com>
Some modules expect the users having the sales_team.group_sale_salesman group
to be able to read payment tokens (credit cards).
Payment tokens are defined in payment.
Both are a dependence of sale, which is thus the lowest common denominator.
opw 1965213
... if the current action can't be executed.
Let's assume a form view for a record with a multicompany ir.rule.
If the user switches to another company, the webclient is reloaded,
but he doesn't have access to that record anymore. In this case,
he is redirected to the Home menu.
Before this rev., when he clicked on an app in this situation, it
crashed. This was due to a leftover reference of the failed action
(the lazyloaded, multi-record controller) in the controller stack.
closesodoo/odoo#34994
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Select fields were not `contenteditable=true`, which means they could
not be edited. Besides, being that each of their option was individually
considered a snippet, and that they were contained in `div` tags, they
were effectively unbreakable, which means that adding new options by
hitting `ENTER` did not work (note: this also currently doesn't work
properly in v12.0, for other reasons as the concept of an "unbreakable"
node didn't exist yet). This fixes those issues.
closesodoo/enterprise#4817
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
X-port/Cherry-pick of odoo/enterprise@af51d9ff2a
Changed the way some field types are displayed.
Before this commit, column width in a list were calculated according to
a given factor (integer), determining their weight.
Now, some specific fields have an hardcoded width instead. This task
also slightly tweaks some width factors, in order to try to have a
better layout in most list views
Task 1985916
closesodoo/odoo#35147
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Before this commit, in list editable, when user save multiple records in
the same time, the context is passed for the write but not for the read.
Now, the context is passed also for the read.
closesodoo/odoo#35113
Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
The initial implementation of the special group by buttons in list
groups only supported the first level of groupby. So, if one grouped a
list view by field A, it worked (if A had a groupby defined). However,
if we want to group by B/A, this no longer works.
opw 2040725
closesodoo/odoo#35090
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Task 2002068
The constraints were executed before the data was written in the database. Therefore, the data was not correclty constrained.
Also add the invoice date in the constraint on duplicated vendor references as sometimes, your vendor uses a numbering that loops over time (each year it restarts at 0 for example) and in this case you may receive two different bills that legitimely have the same reference.
The reference on a refund is now 'Reversal of {name}: {reason}'. Before
the reason was in the payment reference, and it didn't make much sense.
closesodoo/odoo#35046
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
`_view_get_inherited_children()` `options` parameter is not more useful.
Introduced with ae8232136d and not used since edce2fd6d0.
Also, the opportunity is taken to rename `options` in `_views_get` into
`get_children. Indeed `options` does not mean much.
closesodoo/odoo#35157
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Having an assert that randomly breaks is quite annoying, as this assert
is not critical and breaks once every 100 - 120 builds. It can "safely"
be commented out before being fixed
closesodoo/odoo#35043
Signed-off-by: Romain Libert (rli) <rli@odoo.com>
In python false is written `False` however JSON only support the notation
`false` otherwise JSON.parse fails
Again in python a null value is written `None` however `None` is `null`
in JSON notation
A solution to this incompatibility problem between python and javascript
can be to replace `False` and `None`by empty strings on the javascript
side.
closesodoo/odoo#34995
Signed-off-by: Romain Libert (rli) <rli@odoo.com>
The default value for a many2one on res.currency should be a
res.currency object not a res.company one
closesodoo/odoo#35004
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Have a partner, who is an individual, but also a child of a company
Make a deferred revenue as that partner as customer
Validate, and make some entries
Before this commit, the literal partner (the individual) was the one set
on the account.move.line
after this commit, and following what is done for invoices entries,
the commercial partner is set on the account.move.line
OPW 2038774
closesodoo/odoo#34969
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
The terminology of the boolean_button is translated with
_t(opt_terms.string_true)
which can work only if the variable content is already present in the
translation map.
This commit adds js files that do nothing but add the terms in the
translation map. This way it will be exported by babel js export and
the translation will be loaded by the web client
Closesodoo/odoo#34774closesodoo/odoo#34954
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Step to reproduce:
- Create a transfer T with quantity for the initial demand
- Scrap all the products
Bug:
At this point, it was impossible to validate or cancel the transfer.
opw:2032714
closesodoo/odoo#34950
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Enable the subtasks in the settings. Create two project "A" and "B",
create two tasks "A.a" and "B.b". Set the parent task of "B.b" to "A.a".
╭─ Project A ─╮ ╭─ Project B ─╮
│ │┏━parent━┿━━━▶ B.b │
│ A.a ━━━━┿┛ ╰─────────────╯
╰─────────────╯
In normal situation, each task and subtasks are in the same subproject,
in such case, the parent task has been duplicated and it is important to
relink duplicated subtasks to the new parent task. In the case the
parent task is not within the current project, the subtask cannot be
relinked to a duplicated parent as it does not exist.
We could either let the link as is or remove it, we decided to remove
the link.
opw-2037623
closesodoo/odoo#35023
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
Select invoices with partners with different languages.
Execute the 'Send' action, and choose send_mail.
The mails are all sent in the same language.
The composer extracts the template's body to put it as self.body
(note that everything also applies to the subject field).
This is done with one language.
Down the line, mail_compose_message renders the values with the object,
using self.body (which can be manually edited).
Therefore the lang parameter is ignored at this point.
This should ideally be fixed at the mail level, which is riskier in stable,
so it may be fixed either later or in master.
So this fix only intends to fix the consequences for this specific use-case,
in a much safer way, but it could be removed once the true fix is one.
opw 2035525
closesodoo/odoo#34975
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
This was working fine previously in v11.
Now in v12 it stopped working because Bootstrap 4 adds `!important` to `.text-muted`.
Adding `!important` makes these styles useful again.
closesodoo/odoo#35011
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Let's assume the following scenario:
- open a pos session, sell a product, leave the session and close
it
- on the session form view, validate it and open the
account.bank.statement
- in the dialog, click on the "Journal Entries" stat button
A traceback is raised, because context keys specific to the current
action (e.g. *_view_ref) are propagated to new action.
The python method should only put new keys in the context, and the
JS framework combines them with the current context, from which
action specific keys are filtered out.
Closes#34893
Issue 2034970
closesodoo/odoo#34970
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
When there is a sale_order_line that has either no product_id nor
product_uom nor product_uom_qty (typically a section line),
the computing of the product_qty used in delivery return 0 for each
line below that sale_order_line.
OPW-2034915
Steps:
Create a SO
Add some lines
One should be a section (not the last line)
Save
Check product_qty on each line. The lines after the section will
have a product_qty = O
closesodoo/odoo#35010
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Before this commit, there was a different when opening the quants (the
'On Hand' button) from the product or from the product template. Only
from the product template, the functions _merge_quants and
_unlink_zero_quants were called. This means that when opening from the
product, the quants were not merged, and the empty quants were not
removed.
Now, from the product or from the product template when opening the
quants both functions are called.
Fine-tuning of cdd5b78c63
opw-2035001
closesodoo/odoo#34987
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Steps to reproduce:
1. Go to "My Website".
1. Click *New > New Page*.
1. Page title: "hello", add to menu: yes.
1. Add a snippet, write "hello 1", save.
1. Go to "My Website 2".
1. Click *New > New Page*.
1. Page title: "hello", add to menu: yes.
1. Add a snippet, write "hello 2", save.
1. Go to *Pages > Edit Menu*.
1. Edit the "hello" menu.
1. Change URL to `/hello-world` and save.
1. Click on the "hello" menu.
1. A page with "hello 2" appears.
1. Go to "My Website".
1. Go to *Pages > Edit Menu*.
1. Edit the "hello" menu.
1. Change URL to `/hello-world` and save.
1. Click on the "hello" menu.
Current behavior: Error 404
Expected behavior: A page with "hello 1" appears.
closesodoo/odoo#34913
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
When creating a res_partner company, with "Auto-populate company data",
if there is 'Insufficient Credit', AccessError, ConnectionError are caught,
but not UserError.
The user can therefore gets a vague js error
"Uncaught TypeError: Cannot read property 'type' of undefined"
We thus add exceptions.UserError among the caught exceptions.
opw 2040646
closesodoo/odoo#35366
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Have an inherited view replacing a node in its parent
namely:
```
<view name="1">
<world/>
<world/>
<world/>
</view>
```
Inherited by
```
<view name="2" inherit_id="1">
<xpath expr="//world[1]" position="replace">
<world/>
</xpath>
</view>
```
Before this commit, the resulting xpath branding of the nodes
(useful for web_editor, to know where it is supposed to anchor new elements)
was incorrect. Note that there is the branding attr data-oe-view_id which specifies in which view they are
The 2nd and 3rd world in view #1 were numbered respectively world[1] and world[2]
which is incorrect since we *know* those should be world[2] and world[3]
(in their own view, i.e. in view #1)
This was because when replacing the node, the code lost track of what it replaced
and that it attributed the inheriting branding to the replacing nodes
After this commit, the 2nd and 3rd world nodes are numbered
world[2] and world[3] respectively
OPW 2007312
closesodoo/odoo#35134
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Steps to reproduce the bug:
- Set your user in multi company
- Create two companies C1 and C2 where C2 is a child of C1
- Create a job position JP in company C2
- Create an employee E in company C2
- Log in company C1
- Try to archive E
Bug:
An access error was raised due to ir.rule "Job multi company rule" saying that
you can only see the job position in your company or in your company's childs.
The same logic must be applied for the hr.employee to avoid access rights error
in multi company.
opw:2044018
closesodoo/odoo#35370
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
-- Create a new bank statement;
-- Add a transaction;
-- Reconcile;
-- Create a write-off with tax.
Before this commit, the tax journal item's label only contains the name
of the tax.
Now, the tax journal item's label contains the write-off label and the
tax's name. This is the same behaviour as it was in version 11
(https://github.com/odoo/odoo/blob/11.0/addons/account/models/account_move.py#L1259).
opw-2025480
closesodoo/odoo#35348
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>