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
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>
Some taxes were declared as groups with some children having 'type_tax_use' different from 'none'. While this is totally correct from a technical point of view, this meant that the group actually had to stay a group in the new model introduced in 12.3. However, functionally speaking, it was not what was intended. We change that here for consistency with 12.3, and to ease the migration. Databases having installed l10n_ae's chart template before this commit will not be affected, and their groups will stay groups in the future (which makes no problem, they simply will be less easy to configure).
closesodoo/odoo#34189
Signed-off-by: Josse Colpaert <jco@openerp.com>
On a chromium based browser. Install theme_treehouse, add the "Step"
widget. Double click on the FA-icon, error in log.
The parent element of `self.$media` does not have a `class` attribute,
accessing that attribute returns `undefined` and `cannot call match on
undefined` error.
closesodoo/odoo#34946
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
The GeoIP lib is necessary for this module to run but there is zero
documentation on that specificity. This commit adds a bus notification
to inform the user of the absence of the package through the webclient
notification system.
closesodoo/odoo#34968
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
On picking "Barcodes (ZPL)" report, we show barcode of product for
untracked product, and barcode of lot if available.
But if we use an existing lot, we have to use lot_id.name to get the lot
name instead of lot_name (used in configuration with new lot only) or
lot will not be shown in the report.
opw-2036894
closes#34958
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
https://docs.python.org/3/library/stdtypes.html#truth
By default, an object is considered true unless
its class defines either a __bool__() method that returns False
or a __len__() method that returns zero
Since etree elements are iterator, they define a len function.
However it turns out that customerProfileId has always no children.
So bool(find(x)) is always False; the intended meaning was find(x) is None.
opw 1999427
closesodoo/odoo#34922
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
A required boolean accepts two values, True and False, however the SSF
and the web-client assume False to be equal to NULL and treat them
interchangeably.
In the SSF, we verify that a required field is filled by checking that
its value is different from False, however False is a valid value for a
boolean, this means that setting a required boolean to False would never
work in the SSF.
This commit overcomes this issue by simply skipping the check for fields
of type boolean.
closesodoo/odoo#34729
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Steps to reproduce the bug:
- Create a quotation and a SO line SOL with one product and route "Dropship"
- Confirm the SO and a PO is created
- Validate PO and process the dropship picking
- Add 4 units to the SO line SOL
Bug:
A new PO was created but the related picking was type "Receipts" instead of "Dropship"
opw:2034398
closesodoo/odoo#34923
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Since Chrome 74 or 75, tabs in Discuss suddenly disappeared.
Normally, these buttons are displayed at the bottom of the screen
when you open the Discuss app.
So we had to review this part and it seems more logical to override
the "height: 100%" property with "min-height: 0".
By doing this, the flex box element can grow from this size.
We also set flex-shrink to 1 to reduce the content with a scroll-bar
to let enough space to the other static elements (flex 0 0 auto).
Note that these rules are only applied on mobile.
opw-2030433
closesodoo/odoo#34947
Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
Using Studio, create a menu for the Putaway Strategies, access its form
view, edit the location field. Traceback.
opw-2032144
closesodoo/odoo#34904
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
The _get_conversion_rate method crashes if any of its parameters is undefined.
Therefore triggering the compute of the currency_rate early* causes it to crash.
(* e.g. by putting it in the view with studio)
opw 2035604
closesodoo/odoo#34928
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
In case the Down Payment product is removed/not accessible, trying to create
a down payment from a sale order to invoice produced an error "Record does not
exist or has been deleted. (Records: [42], User: 2)"
Add a exists for returning an empty recordset for a better fallback and create
a new Down Payment product using the wizard
closesodoo/odoo#32965
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
With BS4 migration, the progressbar 'active' class should have been
renamed 'progress-bar-animated'.
closesodoo/odoo#26868
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
- Having a user with access to create an invoice in Accounting, but
without the rights to create or modify Currency's objects;
- Install the Switzerland localization;
- Create an invoice with this user.
Before this commit, the user will have an access error. This issue arise
because when saving an invoice it will also try to save the name of the
currency. In the Switzerland localization a field(l10n_ch_currency_name)
is related to the currency's name of the invoice.
Now, this field is tagged as read-only, and when saving an invoice, it
won't try to save also the currency's name.
opw-2032756
closesodoo/odoo#34680
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Steps to reproduce the bug:
- Create a product and fill in a description for that product
(in Sales app, on Sales tab --> description for the client)
- Sell the product via POS
- Create an invoice via POS
Bug:
The customer description didn't appear in the invoice line.
opw:1771302
closesodoo/odoo#34869
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Activate analytic tags
Create an reconciliation model on which you set at least one tag
Create a bank statement and a line
Click on reconcile (or access the reconciliation widget by another means)
Quick Create a writeoff line
Click on the button corresponding to the reconciliation model
Before this commit:
The many2many tags was buggy, there was one empty tag, corresponding to nothing
clicking on the field triggered errors
validating the reconciliation by clicking on reconcile triggered a server traceback
in the real backend, opening the tag form view triggered an access error
This was because the data were not formatted the right way to be passed to the m2m_tag_field through
notifyChanges
After this commit, the reconciliation model's tag renders and behaves well
Validating the reconciliation works
OPW 2033350
As a side note, in the future, the reconciliation widget Model should fully implement basicModel
or not at all. Some of the heavy plumbing that the ReconciliationModel does (fetch records, data...)
is imitating what fetchRecord does
closesodoo/odoo#34838
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Put toogle_button or a favorite widget to handle a boolean field in an editable list
click straight up on the widget's button or link
Before this commit, the widget changed its appearence, but the changes were not
propagated to the model. This is because the controller will not force_save if its mode is edit
(to let changes piling up and save everything when clicking save), which is the case
of the editable list
After this commit, following what has been done at 2f5e44d40b
clicking on a widget in an editable list just activates the row for editing
but doesn't change the widget's value
OPW 2033700
closesodoo/odoo#34878
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
The ready code warning timeout of 2 seconds can be confusing since
it is triggered just after the 2 seconds. We can log this message
at the end in order to give the real timeout.
In JS tests, when the ready code takes too much time, a warning is
logged. As a consequence, the runbot updates the github status as a
failure, causing real pain to people who simply wants to merge their
features.
With this commit the warning is changed into an info and the runbot will
be happy.
closesodoo/odoo#34865
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Steps to reproduce the bug:
- Select template type boxed in general settings
- Select show serial/lot number in Delivery slip (in inventory - settings)
- Print the delivery slip with a non tacked product
Bug:
The delivery slip report displayed wrong columns.
opw:2031985
closesodoo/odoo#34852
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Usecase to reproduce:
- Create a MO for 5 final units
- Reserve all the components
- Produce 3 units
- Post Inventory (debug mode)
- Edit/Unlock
- Edit a line to consume to an arbitrary amount of quantity
- Change the product qty and set it to 3.
At this point, the reserved quantity and the quantity to consume
still the same than intialy even if the final quantity was updated.
- Mark as done
Then a move is marked as done withtout quantity done and still have
reserved quantity.
It happens because the _update_raw_move function do nothing if the
new quantity to consume is equals to 0.
The arguments returns in _update_raw_move still exists for override
but are not used by the chang_prod_qty method. It's not possible to
cancel the move and then find its parents in order to log the activity.
opw-2023653
closesodoo/odoo#34471
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Previous versions of this action had a domain. It was removed at 2d3e6d7383
Set explicitly an empty domain to force the removal when upgrading the module
Similar to 2d03ed43a5closesodoo/odoo#34581
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
In PostgreSQL, we can't CREATE OR REPLACE VIEW if there is the type of the column change.
To fix it, just drop the view before creating it
closesodoo/odoo#34851
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This is an api.multi method, which should therefore not call self.field.
Fortunately there's a loop just below.
opw 2035374
closesodoo/odoo#34832
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
before this commit the date of the IoT Box did not update.
With this commit we restart the service timesyncd on the IoT box
Task: 2034930
closesodoo/odoo#34789
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Steps to reproduce the bug:
- Install point_of_sale and account_accountant
- Create a company C in USD
- Create a cash journal CJ with no currency set
- Activate Multicurrency
- Create a pricelist P in EUR
- Create a sales journal SJ with currency = EUR
- Create pos.config in company C
- Assign SJ in the Sales Journal field
- Set P as default pricelist
- Set the cash journal CJ as payment method and save
Bug:
As CJ is implicitly in USD, it was wrong to set CJ as payment method in a pos.config
in EUR.
With courtesy of <jcb@odoo.com>
opw:2031883
closesodoo/odoo#34790
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
When reading the non stored computed field property_product_pricelist,
the force_company set in the context is taken into account. But when
writing on property_product_pricelist, the force_company was not taken
into account. So it was inconsistent as you could read a record with a
force_company in the context and wrote on an other record as the inverse
function didn't take the force_company into account.
closes#31561
opw:2032024
closesodoo/odoo#34757
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Let's assume a one2many field (editable list) in a form view with
a many2many (e.g. many2many_tags), and an onchange on the one2many
such that, when a row is added to the relation, the server returns
update commands for (a subset of) the records being already in the
relation. For thoses updated records, the many2many field needs to
be read (the onchange only returns the ids in the relation).
Before this rev., the many2many field was read independently for
each record in the one2many. This could cause a performance issue
on large relations. For instance, this was the case on
account.invoice records with a lot of lines.
This commit must be forwardported up to 12.2, not further.
Issue 2027356
closesodoo/odoo#34771
Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
Add the support to be able to specify exlicitely module, class and method name in test_tags
Before this commit, there is no distinction between module tag and test tag. Meaning
that --test-tag module_name will replace the default +standard tag and execute all test
of the module.
This commit tries to keep the initial behaviour, while addind new features, like explicit
modules tag with /module_name, as well as class (:class) and method (.method)
Some usage examples:
--test_tags /module will execute all standard test of module
--test_tags :class will execute all standard test with class name 'class'
--test_tags .method will execute all standard test with method name 'method'
--test_tags external/module will execute all external test of module
--test_tags */module will execute all tests of module,
--test_tags */module,-standard will execute all non standard tests of module,
--test_tags -/website:TestUiTranslate.test_admin_tour_rte_translator will disable only rte translator test
closesodoo/odoo#34756
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>