Commit Graph
124494 Commits
Author SHA1 Message Date
Nans Lefebvre d727adcd70 [FIX] sale, website_sale: push record rule lower in module dependencies
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
2019-07-19 12:44:14 +00:00
Goffin Simon f4563d0710 [FIX] stock: Cancel transfer with scrap
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

closes odoo/odoo#34950

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-17 15:02:59 +00:00
Odoo Translation Bot 72339a5301 [I18N] Update translation terms from Transifex 2019-07-21 01:18:28 +02:00
Julien Castiaux 8a6e2caa04 [FIX] project: dup with subtask in another project
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

closes odoo/odoo#35023

Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
2019-07-19 19:44:09 +00:00
Nans Lefebvre 5621ae3d6b [FIX] account: bulk send invoice in each partner language
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

closes odoo/odoo#34975

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-19 12:46:39 +00:00
Jairo Llopis e6225eeb12 [FIX] portal: Make .text-muted inside colored sections work
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.

closes odoo/odoo#35011

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-07-19 11:18:28 +00:00
Aaron Bohy f13a6e5b6a [FIX] account: do not propagate context to new action
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

closes odoo/odoo#34970

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2019-07-19 11:48:30 +00:00
jev-odoo 20eca78cb9 [FIX]delivery_ups: section in SO
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

closes odoo/odoo#35010

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2019-07-19 11:14:14 +00:00
Jorge Pinna Puissant c492cecfc0 [FIX] stock: open quants in product
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

closes odoo/odoo#34987

Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2019-07-19 06:57:23 +00:00
Olivier Colson 06d305b06e [IMP] l10n_ae: add tax templates for consistency with 12.3
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).

closes odoo/odoo#34189

Signed-off-by: Josse Colpaert <jco@openerp.com>
2019-06-18 12:06:31 +00:00
Julien Castiaux c0c779d662 [FIX] web_editor: remove "missing class on parent"
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.

closes odoo/odoo#34946

Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-07-18 14:29:54 +00:00
Aaron Bohy eba0325355 [FIX] web: add href to main menus
This was already the case for sub menus. This allows to right-click
and open menu in a new tab.

Closes #29345

closes odoo/odoo#34983

Signed-off-by: Julien Mougenot (JUM) <Arcasias@users.noreply.github.com>
2019-07-18 13:07:25 +00:00
Rémi Rahir 1e4152b255 [FIX] crm_reveal: warn user on missing GeoIP
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.

closes odoo/odoo#34968

Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
2019-07-18 11:51:57 +00:00
Rémi Rahir e50800deaf [IMP] mail: Add simple partner notification 2019-07-18 11:51:57 +00:00
Nicolas Lempereur a6805b7280 [FIX] stock_zebra: display lot in picking report
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>
2019-07-18 12:13:19 +00:00
Nans Lefebvre 8533c19a60 [FIX] payment_authorize: save payment token from form validated transaction
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

closes odoo/odoo#34922

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-16 14:16:46 +00:00
Adrian Torres 46d12675a7 [FIX] tests: allow False as value for required booleans in SSF
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.

closes odoo/odoo#34729

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-07-10 08:58:27 +00:00
Goffin Simon ddada7bb9e [FIX] stock_dropshipping: Dropship created after editing an existing quotation
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

closes odoo/odoo#34923

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-17 12:57:38 +00:00
Adrien Dieudonne 9408cab4a6 [FIX] mail: tabs should appear on mobile
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

closes odoo/odoo#34947

Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
2019-07-17 13:21:51 +00:00
Julien Castiaux 713df0baf1 [FIX] stock: putaway strategy without location
Using Studio, create a menu for the Putaway Strategies, access its form
view, edit the location field. Traceback.

opw-2032144

closes odoo/odoo#34904

Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
2019-07-17 07:31:05 +00:00
Nathan Olson 40bfd596d2 [CLA] Individual CLA for Nathaniel Olson (Lutrome)
closes odoo/odoo#34927

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-17 04:30:15 +00:00
Nans Lefebvre 956204fe10 [FIX] sale: do not crash on _compute_currency_rate if any currency is not defined yet
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

closes odoo/odoo#34928

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-17 04:57:54 +00:00
Swapnesh Shah 1e5fbb8e5b [FIX] sale: ensure Down Payment product exists
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

closes odoo/odoo#32965

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-16 16:01:40 +00:00
Nimesh Jethva 7766b89aa0 [FIX] web: restore kanban progressbar animation
With BS4 migration, the progressbar 'active' class should have been
renamed 'progress-bar-animated'.

closes odoo/odoo#26868

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-07-16 08:25:17 +00:00
Jorge Pinna Puissant 19d340c712 [FIX] l10n_ch: write access to create invoices
- 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

closes odoo/odoo#34680

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-16 09:20:47 +00:00
Goffin Simon 68273e2181 [FIX] point_of_sale: Product description missing on invoice via POS
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

closes odoo/odoo#34869

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-15 12:57:08 +00:00
Lucas Perais (lpe) 1112ca05ab [FIX] account: reconciliation model support tags in widget
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

closes odoo/odoo#34838

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2019-07-16 07:22:16 +00:00
Martin Trigaux 1bd434da34 [MERGE] Forward port of saas-11.3 to 12.0 up to d8072d54ac 2019-07-16 09:22:49 +02:00
Lucas Perais (lpe) c8d10d228e [FIX] web: boolean widgets in editable list should activate the row
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

closes odoo/odoo#34878

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-07-15 13:53:48 +00:00
Martin Trigaux d8072d54ac [MERGE] Forward port of 11.0 to saas-11.3 up to d5dd136ba0
closes odoo/odoo#34872

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 13:32:07 +00:00
Martin Trigaux d5dd136ba0 [MERGE] Forward port of saas-15 to 11.0 up to 1d9f64c91e
closes odoo/odoo#34868

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 11:56:22 +00:00
Xavier-Do dd85e312cd [FIX] core: backport of 62533ec7 and f167ae7d
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.

closes odoo/odoo#34865

Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2019-07-15 11:37:14 +00:00
Martin Trigaux 1d9f64c91e [MERGE] Forward port of saas-14 to saas-15 up to 5d4c30cb59 2019-07-15 13:15:12 +02:00
Martin Trigaux 5d4c30cb59 [MERGE] Forward port of 10.0 to saas-14 up to bb712ad701 2019-07-15 13:10:00 +02:00
Goffin Simon 0e44904267 [FIX] stock: Delivery slip with serial number
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

closes odoo/odoo#34852

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-15 08:43:59 +00:00
Arnold Moyaux ccbd6712f6 [FIX] mrp: MO change the quantity to 0
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

closes odoo/odoo#34471

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-07-15 11:52:47 +00:00
mreficent d9b7cc7ab7 [FIX] purchase: not setting domain is not empty domain
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 2d03ed43a5

closes odoo/odoo#34581

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 10:02:28 +00:00
Daniel Blanco 0eadcb9c53 [CLA] signature for Blanco Martin & Asociados Signing CLA
closes odoo/odoo#34844

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 08:30:05 +00:00
Grégory Schreiner 6a2be418f9 [CLA] signature for gregory-moka
closes odoo/odoo#34803

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 08:48:10 +00:00
bumanit eab60bd2e0 [CLA] Update bumanit CCLA
closes odoo/odoo#34713

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-15 08:46:00 +00:00
Nicolas Vannieuwerburgh 43bec98da8 [FIX] hr_timesheet_attendance: Allow update module
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

closes odoo/odoo#34851

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-07-15 07:04:26 +00:00
Odoo Translation Bot 5306fbb2c5 [I18N] Update translation terms from Transifex 2019-07-14 01:19:24 +02:00
Martin Trigaux 30f760d534 [FIX] doc: adapt header to the new eLearning
closes odoo/odoo#34837

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-12 14:44:38 +00:00
Nans Lefebvre 1c51963cab [FIX] website_sale: _compute_abandoned_cart with multiple records
This is an api.multi method, which should therefore not call self.field.
Fortunately there's a loop just below.

opw 2035374

closes odoo/odoo#34832

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-12 11:43:21 +00:00
lejeune quentin a8004118b2 [IMP] point_of_sale: Updating the date of the IoT Box
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

closes odoo/odoo#34789

Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
2019-07-11 13:54:53 +00:00
Goffin Simon f94b09dbf2 [FIX] point_of_sale: payment method journal in wrong currency
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

closes odoo/odoo#34790

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-11 11:13:44 +00:00
Goffin Simon 8271be23cf [FIX] product: _inverse_product_pricelist uses wrong company
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

closes odoo/odoo#34757

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-07-10 13:46:51 +00:00
Aaron Bohy 8f9e1e40a3 [FIX] web: batch read of m2m in o2m after onchange
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

closes odoo/odoo#34771

Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-07-11 09:38:03 +00:00
Xavier-Do 95b4f2ab4b [IMP] core: improve test_tags
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

closes odoo/odoo#34756

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-07-11 09:03:14 +00:00
Raphael Collet b8f4ad585e [FIX] test: assertRaises() without environment 2019-07-11 08:48:18 +00:00