Commit Graph
131909 Commits
Author SHA1 Message Date
Julien Castiaux 7bf2dd4339 [FIX] ir.mail.server: squash redundant CRs (bpo-34424)
Problem description:
Using the chatter, send an email to someone having non-ascii characters
in their name: the body of the received email looks like it contains
a mix of the original body and headers.

Python encodes the name into either base64 or quoted-printable but
leaves some redundant carriage returns at the end of the header. Those
redundant carriage returns are not RFC conformant but are interpreted
as newlines by some email clients, thus are read like a headers/body
separator and the next headers are considered part of the body,
corrupting the email structure.

This problem is internal to Python and has been fixed in 3.8, cfr
bpo-34424 [1], and later backported to 3.7.4. As we also support 3.6
and earlier 3.7 and it is not possible to easily monkey-patch the
function, we fixed it by squashing duplicate carriage returns.
(There is no case where a series of bare CRs can occur in a normal
RFC5322 email message)

Task: 2003936

[1]: https://bugs.python.org/issue34424
2019-11-14 12:29:36 +00:00
Julien Castiaux 7b65a63c97 [IMP] tools: restore P2 formataddr default behavior
Python 2 `email.tools.formataddr` doesn't encode not RFC-2822 compliant
realname to base64 or quoted-printable. This is the wanted behavior to
output formatted email addresses on screen.

Python 3 `email.tools.formataddr` does encode the realname to be
RFC-2822 compliant. This is the wanted behavior when connecting to a
smtp server to send emails.

That method has been deprecated by pep-594 as the new python email API
is capable of automatically formatting email address in a RFC compliant
way. As the method was still in use in a lot of modules as the
preferred way to format email addresses, a refined P3-like
implementation as been included in the tool suite.

This commit changes the default behavior so it mimics P2 implementation
with an easy way to use the P3 behavior.

Task: 2003936
2019-11-12 13:48:40 +00:00
Thibault Delavallée f0ae04ab3d [FIX] tools: correctly format emails when having an encoding issue
It seems the emails > < are missing.

By the way one manual formataddr is replaced by an email_formatted field.
Result is the same but let us use fields doing it for us.
2019-11-12 13:48:39 +00:00
Simon Lejeune 29d8fc091a [FIX] stock: picking: immediate and state
Issue: create an immediate transfer, add a move and a done quantity, the
picking is in waiting state instead of ready.

Due to rev[0], the moves added in an immediate transfer have an initial
demand. After auto-confirming them, their state were 'confirmed' and not
'assigned'.

Solution: we force the state to assigned

[0] 8303b1a69e

closes odoo/odoo#39492

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-11-13 15:40:40 +00:00
Simon Lejeune 4d653af6e9 [REF] stock: planned transfer: additional moves
Before this patch, move added in a planned transfer once it is ready are
directly marked as assigned and the reservation is disabled on them.

People found it hard to understand why the check availability button did
not appear, plus the push rules were not applied.

Now we chose to use the autoconfirm mechanism on the added move and we
don't reserve them, so the check availability button reappear.

task-2081844
2019-11-13 15:40:40 +00:00
Martin Trigaux 314e3eed7a [FIX] point_of_sale: properly translate error message
Do not insert variable inside a translated message, it will not be
translated.

Fixes odoo/odoo#40178

closes odoo/odoo#40255

X-original-commit: 4b7782e8f259480550d10479f43c95441306e48e
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-14 11:29:02 +00:00
qsm-odoo abb3fabd7e [FIX] website: restore blog & event cover properties options editing
Changing the filter color and its intensity was not working anymore
because of failed JS refactoring when the logic was shared for both
blog posts and events in website.

closes odoo/odoo#40227

X-original-commit: 3296468beded14d4ef52d221ef8683941f12291c
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-11-13 17:46:10 +00:00
Yannick Tivisse 3f5a0a1ef4 [FIX] snailmail_account: Make the external test work
Somehow, the fact that this test has been converted (partially)
to a SavepointCase makes the assets to be rollbacked after generation.

Notify the registry to be in "test" mode, where one cursor serves several
requests, solves the issue (no 404 when getting the assets, and no
registry reloading).

closes odoo/odoo#40243

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-14 08:58:24 +00:00
fw-bot 70d61dafa1 [FIX] account: payment reference exact match without spaces
Cherry pick of 6317e47409f066312f1f5517b0be9ed386235397 failed

The spaces should not be important in a structured reference.
Also, we should not have to include the second batch as that batch
(previously the first) was intended to match the payment reference.
By including it, we may have too much false positives proposed in the
widget and even worse: auto reconciled.

closes odoo/odoo#39820

Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2019-11-12 12:19:18 +00:00
jbw 74c8c61d6f [IMP] Cash Rounding : adding loss account
Cash rounding only allowed for one account to be specified => Belgian accounting requires 2 types of account depending on whether the rounding line on the invoice is a + or - amount.
On cash rounding config (account.cash.rounding), one account is added (many2one). Existing account is renamed Profit account, new account is named Loss account.
The loss account is used when rounding line has a negative amount, and vice versa for profit account (account.move).
If no Loss account is set, only Profit account is used.

task : https://www.odoo.com/web?#id=2091658&action=327&model=project.task&view_type=form&menu_id=4720

closes odoo/odoo#39488

Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2019-11-13 12:07:13 +00:00
Goffin Simon 9713d66a15 [FIX] stock: Returning canceled moves
Steps to reproduce the bug:

- Let's consider two storable products P1 and P2 from the same vendor V
- P1 and P2 have the routes 'Buy' and 'Make to order'
- Create a SO for 1 P1 and 1 P2 and confirm it
- A delivery order DO has been created
- A PO has been created for V, confirm it
- Process the shipment, receive 1 P1 and 0 P2 with no backorder
- Process DO with no backorder
- Return DO by clicking on 'Return' button

Bug:

1 P1 and 1 P2 were suggested to be returned but the movement for P2 had been canceled.

Closes #39547
opw:2116582

closes odoo/odoo#40220

X-original-commit: bb94b6591fb148a4c1b94f9c28d2c10e44e12283
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-11-13 16:05:55 +00:00
William Henrotin eb89927019 [FIX] stock: split move line in extra move
_action_done() creates extra stock move when quantity_done is superior
to initial demand. This extra move should be, after confirmation, either
merge into the original stock_move, either stay extra but the move lines
still linked to the first one should be shared accordingly to the quantity
done. The fix 561b3461a0 adapted the code
for MRP to split the move lines but neither those cases are applied in
MRP because the extra move has no picking_id field.

condition :
  ```if merge_into_self and extra_move.picking_id:```
will therefore be false as well as
  ```if not merge_into_self:```

To be sure the two extra move management cases are complementary, this
Commit keeps make sure the conditions are mutualy exclusive.

closes odoo/odoo#40230

Opw: 2087864
X-original-commit: 4e8ac38a6d67bcd5040af0b580bfa43da7841548
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2019-11-13 18:30:08 +00:00
jvm-odoo 382d6d9a78 [FIX] portal: fix address over icon
Reproduce this bug

    - Log in as portal user

    The top right address detail is over the icon.

Cause

    The others fields are using a `span` who have a style who push them
    right.

This commits add the `span` style for the div.

Fine-tuning of 9e302765

OPW-2092345

closes odoo/odoo#40225

X-original-commit: af0fd50b14f32032f0870812dd615ac988183174
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-13 17:16:19 +00:00
Laurent Smet 3d1c192da9 [FIX] account: Fix checking about the reconciliation
There is a constrains preventing writing debit/credit on an already
reconciled journal item. However, this constraint isn't aware about
monetary fields and then, was raising an error when writing amount
like 1.000001 on a debit of 1.0.

closes odoo/odoo#40214

X-original-commit: 7599758494198e64b5b391dbecdfe30baa01e50b
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-11-13 15:24:39 +00:00
Samuel Degueldre 5796441784 [FIX] website: fix crash when adding item to top menu
In 4d5c3b9fc1c5 the arguments of the MenuEntryDialog widget were
altered, and one instantiation of this widget was not adapted, resulting
in the last parameter being undefined and causing a crash. This commit
adapts that call.

closes odoo/odoo#40187

X-original-commit: ab7f501ff401cc1a85a95dd3cc65d80ecfeec2cc
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-11-13 12:19:31 +00:00
Alejandro Avilés a23153a3d2 [IMP] web: correct typos in comments
closes odoo/odoo#39658

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-14 07:05:33 +00:00
Alejandro Avilés 6cd14dd033 [CLA] add signature for omegak 2019-11-14 07:05:33 +00:00
Nicolas Martinelli 85715462da [FIX] point_of_sale: partner with empty name
- Create a contact
- Create a child contact without name

Opening POS causes an error as the Name Field is not a string.

opw-2121499

closes odoo/odoo#40218

X-original-commit: 0171ed4c8ae9ed208d3896a97d1ae0bd0196c9ab
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-13 16:02:15 +00:00
Nicolas Martinelli 3bc330a323 [FIX] sale_stock: canceled invoice
- Create a Sale Order with a product
- Confirm and deliver the product, create an invoice.
- Cancel that invoice, go back to the SO.
- Recreate the invoice, you have 2 of them (one cancelled).
- Post the second, and try 'Send and print' and 'Preview'.

A traceback is raised.

The traceback arises because we sort on the `invoice_date`, which is
`False` for a canceled invoice.

Actually, we should not take into account canceled invoices.

opw-2119870

closes odoo/odoo#40215

X-original-commit: 6f304973785669f1c3b297c96eb8be7de7242ebe
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-13 15:24:56 +00:00
Nicolas Martinelli 82a24aa1df [FIX] l10n_it_edi: split name
Fields `Nome` and `Cognome` cannot be identical. However, Odoo has only
a single field for name. Therefore, we split the name based on the
assumption that the name is written as 'Name Surname'.

opw-2093035

closes odoo/odoo#40209

X-original-commit: 9e8b33d61430bd834ac2970919c3df2a0bb76fa4
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-13 14:49:02 +00:00
William Henrotin 643c91aba6 [FIX] mrp: fix workcenter capacity
Planning the workorders depends on the quantity to produce of those workorder
This will create as much as production batch needed regarding the workcenter
capacity.

This method is good except in case of product tracked by serial number. In that
case the quantity to produce on the workorders is force to 1 regardless of
the quantity to produce on the production

closes odoo/odoo#40226

X-original-commit: 3c4133ddac256c63802a99461db49cc9bd9fa1d6
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2019-11-13 17:45:51 +00:00
Simon Lejeune eea62c09c9 [FIX] stock_account: standard price update upon delivery
Make sure to update the standard price with the computed unit cost of
the candidate and not its `unit_cost` field, as the computed could
contain an extra value from a landed cost.

closes odoo/odoo#40208

X-original-commit: 9234ea1e32609ee7b5c22b836c33eefa20220d37
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-11-13 14:38:02 +00:00
qsm-odoo 877e3c6bfa [FIX] website_form: add missing call to _super in snippet options
closes odoo/odoo#40200

X-original-commit: 424dfc913b2259862e6e6d7838844dfefd72a15c
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-11-13 13:50:37 +00:00
fw-bot 8b7afc9d4d [FIX] account: pass tree_view_ref in a one2many analytic lines view
Without this commit, if you have the hr_timesheet installed, the one2many analytic lines view (in the Journal Items form) shows the hr_timesheet_line_tree view instead, which is not desired.

closes odoo/odoo#40196

X-original-commit: 0b92bde84afac4a78512c475de3c8c822a1fa4b2
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2019-11-13 13:17:07 +00:00
jdoutreloux d6812b90b8 [IMP] project: Display 'project' on quick create for All Tasks action
Purpose
=======

Do it only when the project is not set

closes odoo/odoo#37420

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-13 09:43:27 +00:00
jdoutreloux 5b7c3805a0 [FIX] base: Fix LTR display of base.contact qweb template
The icon is not displayed properly + doesn't handle the LTR
mechanism.
2019-11-13 09:43:21 +00:00
jdoutreloux d34939a521 [IMP] project: Display commercial partner on tasks kanban card
TaskID: 2075174
2019-11-13 09:43:15 +00:00
jdoutreloux 06d5103c38 [IMP] project: Improve layout and wording on task form
Change some wording and layout things to be more in line with what
already exists, and add a tooltip to the deadline for clarity.
Additionally, much like the date whose data and format are controlled by
template variables so that the industry_fsm module can modify them, so
is the tooltip so that it can be modified by that module to reflect that
it represents the starting date or hour instead of the deadline.

TaskID: 2075174
2019-11-13 09:43:06 +00:00
Xavier-Do 8bb0530017 [IMP] base: improve error context for view validation errors
closes odoo/odoo#36373

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-11-13 16:12:24 +00:00
Xavier-Do aae1d57829 [REF] base: refactor check_xml and read_combined
View creation/edition represent a important part of an install and a lot
of possible view errors are not detected, like fields used in domain
filters. Some part of the code a difficult to maintain, and view checks
are splitted in multiple places.

This commit aims at refactoring view validation by regrouping most part
of the logic in ir_ui_view and trying to optimize the overall process.

Since most of the lines were touched, this task was also an opportunity
to modernize the API.

Main changes on method `check_xml`:
 - extract node processign and validation to individual postprocessor
 - add validation for filter node, buttons, ...
 - fix accessibility checks (and improve their performance)
 - move xpath check to specific Python node validator
 - clarify error messages (wip to continue)

Main changes on method `read_combined`:
 - optimize the search for inheriting views in a single query doing the
   whole recursive search

Indeed, after removing xpath validations, `get_inheriting_views_arch`
was the most expensive method in `check_xml`, spending most of the time
in `search` because of recursive calls to retrieve children views.

The view Backend Assets is a good example of the latter point, since a
line is added in the view for almost every module.  70 views (community)
are added at first level, `get_inheriting_views_arch` is efficient and
returns all 70 views.  Then at the second level, the method
`get_inheriting_views_arch` is called 70 times for nothing. 70 calls to
`search` (squared/2 since each view is checked independently) are almost
useless. The same case applies to the settings view.

As a result, the average module installation time is 25% faster, and the
average time spent in `read_combined` is almost divided by 2.
2019-11-13 16:11:46 +00:00
Xavier-Do b63e82bebd [REF] base: remove deprecated translate_qweb 2019-11-13 14:08:52 +00:00
Xavier-Do fd9278613a [IMP] base: remove useless model check
Model presence in env is already done by postprocess_and_fields,
and model shouldn't change in postprocess exept for a subview,
in which case post_process_and_field will be called again.
2019-11-13 14:08:52 +00:00
Xavier-Do 3064f06223 [IMP] base: add global test for ir.filters and views 2019-11-13 14:08:52 +00:00
Xavier-Do 6042545c33 [WIP] base: avoid useless view update on group write.
Writting a view arch will trigger check_xml, which is
quite expensive.

Avoiding to write user_groups_view when arch didn't changed
will slightly improve performance by avoiding to check
already validated views.
2019-11-13 11:05:14 +00:00
Xavier-Do c403aec2aa [IMP] core,test_access_rights: improve exept_orm stringification
In most case, except_orm.value is empty, leading to a str
representation of the args, which is a repr of each element
of the tuple in the case of exept_orm:
(repr(name), repr(value)) -> ('name', None)

In this case, the None value is just noise and the name will be repr
causing "'" to be escaped and replacing carriage return
by "\n" making it difficult to read and to compare.
2019-11-13 11:05:14 +00:00
Xavier-Do eb2f0aabcf [FIX] *: various fixes in xml views 2019-11-13 11:05:14 +00:00
Xavier-Do 33086d7795 [FIX] crm: remove deprecated default_groups_ref ctx key 2019-11-13 08:54:38 +00:00
Xavier-Do 123d101335 [FIX] hr_skills, membership: remove invalid filters
- resume_line_view_search was not used and line_type
  isn't a valid field (should be line_type_id)
- there is no field customer or supplier on res.partner
2019-11-13 08:54:37 +00:00
Laurent Smet 940733ec18 [FIX] account: Fix the 'state' live-cycle of account.payment
Introduced by https://github.com/odoo/odoo/commit/ab483a3a6610a09391ec00e9c1c49489ca4a4f12
There was no way to exit the 'cancelled' state of an account.payment.
The new live-cycle is:
- draft -> posted -> sent -> reconciled -> cancelled
- action_draft to move the account.payment from ('cancelled', 'posted', 'sent', 'reconciled') -> 'draft'
- cancel to move the account.payment from 'draft' -> 'cancel'

closes odoo/odoo#40193

X-original-commit: 53e83ae9e68d418bf7322374815b942309bf7fef
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-11-13 13:09:11 +00:00
Fabien Pinckaers edb11ee684 Update README.md
closes odoo/odoo#40018

X-original-commit: 21ea9d4cc753e31c2f8355e7d6b9306e903196b2
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-08 11:24:04 +00:00
Kevin Baptiste eb02e9b3e0 [IMP] hr_holidays: compute leave description based on user group
The leave description is now replaced with a compute method in order to
obfuscate the description based on the user's group.

closes odoo/odoo#38995

Taskid: 2088559
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-13 10:55:43 +00:00
qsm-odoo db8904b03d [FIX] website, theme_default: restore website creation UI
Commit https://github.com/odoo/odoo/commit/88e910e187346c095a6f0eeb8be647da1e391035
merged the inheritance of a view into the base view while the inherit
was in fact a primary mode inherit. The modal buttons of website
creation modal thus appeared in all website forms by mistake.

This commit also takes advantage of the fix to fix the design of that
creation modal (wrong classes on buttons).

Also fixes https://github.com/odoo/odoo/commit/986415cf050efbd38a5834f9bbd3a37db1fd7933
which added a data file & folder in demo data by mistake.

closes odoo/odoo#40175

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-11-13 10:30:04 +00:00
fw-bot 8d792001c6 [FIX] base: call context_get with the right user
self.env.user returns the current user but browsed with the superuser:
- self.env.user == current user
- self.env.user.env.user == administrator

get_context uses self.env.user to retrieve the context of the user.
Before this patch, the name of the filters was translated in the
language of the administrator instead of the current user.

Closes odoo/odoo#40086

closes odoo/odoo#40170

X-original-commit: b39c8da2a49e43cc1bd7c837bf0e99ad437992ff
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-13 09:35:16 +00:00
Nicolas Lempereur 062735847c [FIX] web: guardedCatch on IE Edge async return
In IE Edge async and await are supported, but guardedCatch is added to
polyfilled MyPromise object and async methods return original Promise so
depending of chain guardedCatch can cause en error or not.

It seems that historically, the MyPromise patching has also had issue in
firefox with it sometimes working or not.

In this changeset we completely remove it (which will have the drawback
of more error shown in console in firefox).

opw-1964486
opw-2116839
closes #39953

closes odoo/odoo#40154

X-original-commit: 5ca38da66de00ca6efef307bcb39fc5037903221
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-11-12 17:13:56 +00:00
Gert Pellin a1839fb305 [FIX] pos_restaurant: sync empty orders
* In a pos-session with table management create a new order with products
and go back to the floor-plan.
* The order is sinced to the back-end.
* Open the table again, remove all products but keep the order.
* Go back to floorplan to trigger syncing again.
* Open the table again.

behaviour before fix:
* The empty order is not loaded in the frontend anymore.
* To close the session the order has to be manually removed in the backend.

After fix:
* The order is still visible in the frontend and can be removed or finalysed as expected.

closes odoo/odoo#40165

X-original-commit: 3add8dd226f39d5166873a575b858694eeb2e6ee
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-13 08:50:57 +00:00
Jorge Pinna Puissant 72fd12e4ae [IMP] base: current company id to evaluation context
Add the id of the current company to the evaluation context for ir.rule
domains

closes odoo/odoo#40162

X-original-commit: 8bf4b8e015fa61f3929dbb8f1d81e1127272cfbb
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2019-11-13 08:08:05 +00:00
Goffin Simon fd81920f1f [FIX] stock_dropshipping: Creating a quotation without purchase permission
Fine tuning of this commit: f93fcaffb5

Steps to reproduce the bug:

- Open runbot v11
- Restrict Demo's access to Sales Manager for sales and employee for Employee
- Try to create a new quotation

Bug:
- You got Odoo server Error
Sorry, you are not allowed to access this document. Only users with the following access level are currently allowed to do that:
- Inventory/User
- Accounting & Finance/Billing
- Purchases/User
- Purchases/Manager
- Other Extra Rights/Portal
(Document model: purchase.order.line) - (Operation: read, User: 5)

opw:2120692

closes odoo/odoo#40153

X-original-commit: 1b14af28fec3cae0efc4438e77e6e0925e487b89
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-11-12 16:57:57 +00:00
Laurent Smet 2a875a404a [FIX] account: Fix lost constraint during the account-pocalypse
A journal entry must always have the same currency as the account when
a secondary currency is set on this one.

closes odoo/odoo#39844

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-11-12 14:33:52 +00:00
Laurent Smet afee07cb91 [IMP] account: Remove dead code
This field has been introduced by https://github.com/odoo/odoo/commit/2d1b8e9f3445ab0e1c1ac4683b7b5a25c867b2de
but is no longer used anywhere and is not a valid field on account.move.line.
2019-11-06 12:59:34 +00:00
fw-bot 828c251056 [FIX] test_lint: force absolute path to compute odoo path
When using the flamegraph module from a parent directory of odoo, the
dirname method returns a relative path, leading to a traceback.

With this commit, the odoo_path is enforced to be an absolute path.

closes odoo/odoo#40147

X-original-commit: 75efe4b4ca6c0ccef6ec592b317e7c2b572f28fc
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2019-11-12 15:39:57 +00:00