Commit Graph
127612 Commits
Author SHA1 Message Date
len-odoo 6c6c4b89a0 [FIX] mail: parse eml/msg attachments
When parsing an email with some eml or dmg attachment, the parsing would
generate an attachment with empty content.
Since this content is later encoded in base64, it would crash trying to encode
None.
We simply do not process attachments without content.

We add a test to check that parsing mail with some empty attachment doesn't
crash, since the crash implies that the mail gets stuck on server
and is never fully processed by Odoo.

opw 1814014
2018-05-09 16:49:34 +02:00
Christophe Simonis 79cfc85b91 [FIX] stock: correct model name in new test 2018-05-09 16:47:14 +02:00
Goffin Simon dff1e96ed3 [FIX] purchase: Wrong property fields in multicompany
Steps to reproduce the bug:
- Enable multi companies and multi-currencies
- Multi company: Your Company and Test
- Users: Admin and Demo
- Login as admin user with the current company: Your Company
    - Allowed companies: Your Company, Test
- Login as Demo user with the current company: Test
    - Allowed companies: Test
- From the admin user with the current company: Test, do the following configuration in the product,
   - product: iPad mini, select vendor: Delta PC with price $100 with company: test, currency: USD
- Change the admin's company from Test to Your Company, do the following configuration in the vendor,
   - vendor: Delta PC, set supplier currency: EUR and payment terms: 30 Daya Net Payment
- Log in with the demo user
- Create SO for that product by selecting routes: Make to order and Confirm it.
- Open the PO which is generated from this SO

Bug:

The Currency and payment terms were set with the data set for Your Company

Excpected behavior:

Nothing is set for supplier currency and Payment terms as nothing is set for the company: Test

Closes #24564
opw:1841379
2018-05-09 16:21:23 +02:00
Goffin Simon 475027b988 [FIX] point_of_sale: Set the correct cashier
After reopening the session in the POS by another user,
the cashier was not correctly identified.

Back-port of this commit: a9caef0ebb

opw:784422
2018-05-09 16:06:51 +02:00
Christophe Simonis 5a751fa200 [MERGE] forward port branch saas-11.2 up to aae54ecc15 2018-05-09 15:45:20 +02:00
Josse Colpaert 0ca60a8d01 [FIX] delivery: delivery with carrier but not linked to so
When a delivery with free_over=True was not linked to a SO, it raised
an error.

opw:1843829
2018-05-09 15:39:34 +02:00
Romain Derie b65cb86697 [IMP] website: remove page creation in menu manager + menu container
This commit:
1. removed the possibility to create page from the menu manager.
   The usability of this feature wasn't great since create menu as a new page
   would redirect to that newly created page without saving the menu manager
   state.
   Plus, there is already the 'NEW' button on the navbar to create a new page,
   the menu manager should, as its name hint, only manage menus.
2. Handle a new case (officially at least) of menu: menu container.
   Those menu are simply menus with '#' as URL. It will be usefull to create a
   menu as a dropdown list container.
   Note: We should take care of a menu's URL being updated to '#' to avoid the
         menu's page URL to be also edited to '#'.

opw-1825883 & opw-1824263
2018-05-09 15:38:58 +02:00
Christophe Simonis aae54ecc15 [FIX] test_mail: bump expected query count 2018-05-09 14:51:11 +02:00
Christophe Simonis eeae2b80ea [MERGE] forward port branch 11.0 up to b793e23ae5 2018-05-09 13:55:27 +02:00
Christophe Simonis 4431c8c843 [FIX] website: GeoIP Legacy compatibility
Some IPs (like google-proxy ones) are not bound to a specific country.
Legacy Database used to set country_code to 'EU' for these one. geoip2,
on contrary, does not set the country. Read information from `continent`
attribute in this case.

opw-1844888
2018-05-09 11:40:56 +02:00
Nicolas Martinelli b793e23ae5 [FIX] stock: incorrect PO sequence
- Create 2 companies A & B
- Create a sequence for PO in each company
- Set User A in Company A and Admin in Company B
- Create a MTO product with a 'Buy' route
- Create a SO with User A using the product, validate

The PO created uses the sequence for Company B instead of Company A.

The creation is done as `sudo`, and ultimately `next_by_code` will use
the company of the Admin.

opw-1839656
2018-05-09 11:25:39 +02:00
Romain Derie 665fcb62cf [FIX] website: always show menu if its a container with visible menus
Before this commit:
1. If a menu was used as a container (dropdown) and had an unpublished page_id
   (website.page), we would never show that menu (and so its submenus) even if
   it has visible submenu.
   Some users are stuck with this since they:
   a) create a new page 'A' (unpublished by default) included in menu.
   b) create a new page 'B' (unpublished by default) included in menu.
   c) set 'B' as a submenu of 'A' in the menu manager
   d) decide to publish the website.page linked to menu 'B'
   Then, since menu 'A' is linked to an unpublished page, the menu 'A' and 'B'
   are never visible.
2. If a menu is being created with an URL that match a website.page URL, the
   m2o relation will automatically be set (website.menu.page_id).
   Still, if the user type the URL without the leading slash, the m2o won't be
   set.
   This could be misleading since on the page property in the page manager the
   URL is being shown without the leading slash even if it is stored in DB.

Now:
1. We always show menu container if they contains visible submenu, even if the
   container menu is linked to an unpublished page
2. The page URL search is more clever and will match URL even if the only
   difference is the leading slash.

This closes #24635
2018-05-09 11:02:16 +02:00
Jairo Llopis 285ead28e3 [IMP] Handle XMLRPC calls from standard controllers
This way, XMLRPC calls can get request details form the standard
`odoo.http.request` system.

Move jsonrpc to the same controller while at it, for coherence.

Fix #24183
2018-05-09 09:46:15 +02:00
xmo-odoo 020906659e [FIX] orm: "relate" binding type on actions
When ir.values was removed and the "action" ir.values were merged
directly into the actions themselves, "client_action_relate" was
discarded as unused (and possibly too similar to
client_action_multi?). *However*:

* it was actually used implicitly as "relate" was the default key2 of
  the <act_window> XML tag
* and it had a crucial difference from client_action_multi:
  client_action_multi is shown on both form and list views by default
  and only on list if multi=True, whereas relate is shown on *either*
  the form or list view (tree if multi else form)

This means without relate the actions which should be only visible on
the form view are now on both list and tree, which leads to
overpopulated `Action` menus and odd behaviours (e.g. actions relying
active_id on lists, which id do they get and why?)

=> reintroduce relate as "action_form_only" for the specific case of
multi=False and either no key2 or a key2 of client_action_relate. If
multi=True then binding_type=action.

Fixes #20124

Followup: Task 1843603 to remove #multi and redundancy
2018-05-09 09:45:29 +02:00
jem-odoo cca15358b6 [FIX] hr_timesheet: do not copy AA when copying project
When duplicating project, its analytic account
is copied. This came from the ancient inheritS
between the 2 models.
This commit prevent copying the AA. However,
if 'allow_timesheet' is checked, a new analytic
account will be created when duplicating the project.
2018-05-09 09:11:00 +02:00
Christophe Simonis 7b67a1474b [FIX] web: deactivate test using removed feature
Note: test skipped (and not removed) as feature will be back in future
version
2018-05-08 19:20:05 +02:00
Christophe Simonis 013ce7f889 [MERGE] forward port branch 11.0 up to f2e105eeca 2018-05-08 19:08:18 +02:00
Christophe Simonis f2e105eeca [MERGE] forward port branch saas-15 up to d3a040cebe 2018-05-08 18:12:03 +02:00
Christophe Simonis d3a040cebe [MERGE] forward port branch saas-14 up to 1813f42dbc 2018-05-08 17:18:48 +02:00
Goffin Simon 652e336deb [FIX] base_vat_autocomplete: address format of swedish company
Swedish Postal Codes are 5-digit codes with the following format: XXX XX

Before the fix:

With VAT=SE556242088401

For [zip_code] [city] = [171 42] [SOLNA]

we got [zip_code] [city] = [171] [42 SOLNA] because 'zip_code' didn't allow whitespaces

opw:1841010
2018-05-08 17:15:36 +02:00
Nicolas Lempereur d595e3a258 [FIX] tools: mail transcoding css space consistent
The transcoding of a mail (transforming CSS into inline styles on the
element nodes of the mail) used the form:

 property:value;

So when a mail is saved, it would be eg. with `style="property:value;"`
and when it is being edited "property:value" is removed if available via
CSS stylesheet given the structure.

But the sanitize_style (introduced in bfe7aafa7) adds an espace before
the value (which is more pretty but was probably not choosen in
transcoding to decrease size of mail):

 property: value;

so the inline style would not be removed when editing possibly causing
conflict with the editor.

With this commit, the sanitize_style doesn't add a space. It could have
been changed in transcoding but the code is already rather slow and we
don't want to use a regex replace or two string replace instead of the
current one string replace.

opw-1841107
2018-05-08 16:46:23 +02:00
Nicolas Lempereur b739e65940 [FIX] web_editor: optimize big mail transcoding
The browser may throw an error when a big mail such as one with
hundreds thousands of tags is being transformed to have a style
more compatible with mail clients.

The error would be:
 "Uncaught RangeError: Maximum call stack size exceeded"

This happens in jquery because we hare too many nodes (there is an
ongoing issue at https://github.com./jquery/sizzle/issues/403) so this
commit replace that part by a DFS traversal over DOM nodes.

There was also an issue that not having the option "style-inline" would
still cause some style code to be ran albeit it was intended not to be
solved in 55c7d2d5b0.

opw-1841107
closes #24550
2018-05-09 12:35:40 +02:00
Christophe Simonis 1813f42dbc [MERGE] forward port branch 10.0 up to 14f59f4b78 2018-05-08 16:23:54 +02:00
Aaron Bohy 5bcede7dea [FIX] web: ActionManager: store evaluated context
... in session_storage.

The current action is stored in the session_storage (stringified),
so that it can always be restored on F5 (useful for dynamic
actions). Before this rev., it was stored with it's 'raw' context,
i.e. before its evaluation. However, when this context is an
instance of a CompoundContext, it is meaningless once restored.

So this rev. ensures that the action is stored with its evaluated
context.
2018-05-08 15:48:47 +02:00
ppr-odoo e9e8fd24cf [IMP] mail: hide 'mark all read' buttton on mobile devices
This commit is related to task ID 1838321

PR #24412
Task #1838671
2018-05-08 15:26:06 +02:00
Martin Trigaux 96c7390a37 [FIX] _crm: remove outdated es_CR translations
It was containing a bad translation "Inicaitiva / Oportunbidad" while the
correct one "Iniciativa / Oportunidad" was already done in Spanish.

Remove files to avoid getting the wrong translations.

Regional translations can be used for different terms, avoid to use the same
to make it easier to maintain.

Fixes #24613
2018-05-08 14:59:43 +02:00
Christophe Simonis 14f59f4b78 [MERGE] forward port branch 9.0 up to 468e2e454e 2018-05-08 14:51:36 +02:00
Mohammed Shekha 2bd92cc581 [FIX] web: use correct href in link for m2o
With a better href, many2one in readonly mode  can be opened in new tab.

Related to task: #32919
2018-05-08 14:46:17 +02:00
Nicolas Lempereur e9454e79e2 [FIX] website_event: typo tickets not disappear
Since 809aaf9e, when clicking on "Register Now" on a ticket registering
page, the ticket list disappeared because of a typo.

opw-1841488
closes #24607
2018-05-08 13:53:29 +02:00
jem-odoo ccece68ebc [FIX] sale_timesheet: wording in plan project 2018-05-08 13:38:51 +02:00
Samuel Piquet 2884f76488 [FIX] repair: remove useless rules
The manager had less rights than the user.
As the manager is also a user, this had no effect.

Closes #24523
2018-05-08 13:24:47 +02:00
Samuel Piquet 08cd80a315 [CLA] signature for Sa3m
Done at #24523
2018-05-08 13:24:42 +02:00
Priyanka Kakadiya 7f632f909e [FIX] website_forum : fix karma alert-box position
Currently, if user does not have enough karma to perform specific action on
forum, alert-box with appropriate message is displayed to the user.

There are several issues with these alert-boxes, like :
- Click on same CTA multiple times, creates multiple alerts
- Click on another CTAs keeps previous alerts on the screen, and adds
  further alerts, which sometimes overlaps adjacent CTA and looks ugly.

After this commit :
- Alerts are displayed below their related CTAs
- Only one alert appears at a time on the screen

Fixes : #23071
PR    : #23800
Task# : 1829835

This commit closes #23071
This commit closes #23800
2018-05-08 12:38:13 +02:00
Arnold Moyaux 4591b9a49a [FIX] delivery: test robust to installed localization
related to 9e5c1f68a5

opw-1841170
2018-05-08 12:02:34 +02:00
jem-odoo 1591d3e19e [FIX] sale_timesheet: SO line of subtask
When creating a subtask (or a task), parent_id is passed in the create values.
Howver, when the task is not a subtask, we might want to set the SO line directly
and not erasing it with the one from the inexisting parent. So the values of
parent_id is required to force the so line value when creating a task.

Closes #24592
Closes #22707
2018-05-08 11:18:03 +02:00
jem-odoo aee95705d2 [FIX] sale: normalize domain is smart
When manipulating domain, this is always better to
normalize them, otherwise we can have strange behavior
when handleing them with `expression.OR` and
`expression.AND`.

For instance:
domain = [('so_line', 'in', [91]), ('amount', '<=', 0.0)]
timesheet_domain = ['&', ('so_line', 'in', []), ('project_id', '!=', False)]

`expresion.OR(domain, timesheet_domain)` will give
['|', ('so_line', 'in', [91]), ('amount', '<=', 0.0), '&', ('so_line', 'in', []),
('project_id', '!=', False)]

And this is not what we attempt.

Closes #24038
2018-05-08 11:17:54 +02:00
Nicolas Martinelli a0f8a06079 [FIX] website_sale: fallback on payment term
If `account.account_payment_term_immediate` doesn't exist, the `.id`
will crash.

opw-1841141
2018-05-08 09:27:38 +02:00
Nicolas Martinelli 5a1c789861 [FIX] web_editor: drag and drop
Commit 6494f51171 introduces an access token to read images inside an
email. This avoids access errors when accessing the email through a
proxy (e.g. Gmail). That implies that all images are added as
attachments.

When going through the usual media dialog, the form is submitted to
action '/web_editor/attachment/add', creating the attachment. However,
the copy or the drag and drop of an image completely fails. Indeed,
the same method `_onImageUpload` is called, but with a completely
different argument type: `attachments` is a `FileList`, not a list of
attachments.

To solve this, we only call `_onImageUpload` on a the custom `onUpload`
callback, which is not triggered during a drag and drop or a copy. Any
image included thanks to these methods will be post-processed in the
`create` method of `mail.message` (`base64_to_boundary`).

Unfortunately, it's not possible to simulate an actual drag and drop or
a copy, so we cannot add a test.

opw-1840237
opw-1840411
2018-05-08 08:58:22 +02:00
Aaron Bohy 013baed413 [FIX] web: navigate through records in Kanban with progressbar
Recently, rev. c0809dd41 removed a protection in the reload of
Kanban views with progressbars. This protection ensured that the
manual reload of the progressbars was only done when one of the
records of the Kanban view was updated (and not when a column, or
the whole view was).

However, removing it highlighted a bug linked to the manual reload
of progressbars, which messed up the list of ids in the
environment. As a consequence, for instance, if the user archived
the records of a column, and then opendc a record in form view,
it couldn't use the pager anymore.

Besides fixing this bug, this rev. re-introduces the protection,
and refines it to prevent 2 useless RPCs when the whole Kanban
view was reloaded.

opw~1841276
opw~1841342
2018-05-08 08:39:23 +02:00
Christophe Simonis 9d6ea8ef3e [FIX] api: do not prefetch new records.
New records (with a NewId) are not necessary in the cache, but should
not be prefetched.
This check has been omitted during optimisation in b0c08a6846.

opw-1843566
opw-1843636
opw-1843683
opw-1843548
opw-1843629
opw-1843657

Closes #24595
2018-05-07 18:58:27 +02:00
odooqs 55891b6f4e [FIX] base: place CNY symbol in front of the number
cf Currency section in
https://lh.2xlibre.net/locale/zh_CN/

Closes #24609
2018-05-07 17:36:44 +02:00
Denis Ledoux da6b4add23 [FIX] account: avoid cache invalidation at the opening of an invoice
* Avoid to invalidate the cache if no actual deletion has been
made when recomputing the taxes

* Avoid to create analytic entries to delete them right away
few lines further in the same method:
 - Analytic entries are created at line 903
   - account_invoice.py:751 `move_line_dict['analytic_line_ids'] = [(0, 0, line._get_analytic_line())]`
   - account_invoice.py:840 `iml = inv.invoice_line_move_line_get()`
   - account_invoice.py:886 `line = inv.group_lines(iml, line)`
   - account_invoice.py:894 `'line_ids': line,`
   - account_invoice.py:903 `move = account_move.with_context(ctx_nolang).create(move_vals)`
 - Then, at line 907, they are deleted and others are created again:
   - account_invoice.py:907 `move.post()`
   - account_move.py:130 `move.line_ids.create_analytic_lines()`
   - account_move.py:1258 `self.mapped('analytic_line_ids').unlink()`
   - account_move.py:1262 `self.env['account.analytic.line'].create(vals_line)`
  Deleting these analytic entries indeed implies the invalidation of the cache.
  Besides, generally speaking, we should avoid to waste resources
  by creating/unlinking records without a good reason.
2018-05-07 17:02:02 +02:00
Denis Ledoux a8ab14a672 [FIX] stock: prevent to create the reception route over and over when deleted once
When the reception route of a warehouse company is deleted by the user
e.g. My company, Chicago Receipt in 1 step is deleted,
and then changing the given warehouse `Incoming Shipments`
multiple times
e.g. from `one_step` to `two_steps` multiple time,
the reception route is created again and again and again.

This is because the reception route which is created for the
warehouse is not being assigned to the warehouse
as the `reception_route_id` once newly created.

opw-1836544
2018-05-07 17:02:02 +02:00
Priyanka Kakadiya 5a05381a1d [IMP] base: rename mass mailing into email marketing
Users will be more likely to look for a module named email marketing
than they would be searching for a module named mass mailing.

Task #1825294
Closes #23634
2018-05-07 17:00:37 +02:00
Prakash Prajapati 7c7b099273 [FIX] stock: Quantity available according to the warehouse or location
The goal of this change is not to be able to search a location_id/warehouse_id
but to properly make these fields "dummy": only used to put some keys in context
from the search view in order to influence computed field.

Use case:
In function _compute_quantities_dict, the quantity available for a product is computed
according to the warehouse or the location. But to compute this quantity, the specific
warehouse or location must be in the context.

Steps to reproduce:

- In the tree view of product.product, write the name of a warehouse W
- Click on dropdown menu "Search warehouse"
- Click on W

Expected behavior: the quantities available for W are displayed.

NB: search=lambda operator, operand, vals: [] must be written to
ensure these fields to be searchable. Otherwise "Non-stored field
product.template.warehouse_id cannot be searched." was logged.

opw:1839961
2018-05-07 15:41:31 +02:00
Christophe Matthieu b8006bfb1c [FIX] mail tools: html_sanitize must keep useful styles from mass mailing
Issue: The clean removes too many tags so emails sent do not resemble the
preview.

opw-1841138
opw-1841105
2018-05-07 15:34:40 +02:00
Josse Colpaert 468e2e454e [FIX] sale: creating invoice name from SO ref
Steps to reproduce the bug:

- Create a SO with 2 lines and confirm it
- Set a Customer reference on the SO with "This is, a ref"
- Deliver it
- Create an invoice from it with all the invoicable lines

Bug: The name of the invoice was: "This is, a ref, This is, a ref"

Expected behavior: The name of the invoice is: "This is, a ref"

opw:1840738
2018-05-07 15:19:32 +02:00
chirag cf1b1b6e2c [FIX] l10n_multilang: overwrite existing translations
When a record is created in a different language than English, empty
translations are created using the _set_ids method for translatable fields.

l10n_multilang makes the account translatable, an empty translation is created
when the CoA data is processed.

After the CoA installation, l10n_multilang transfer the translations of the
account templates to the related accounts.

No need to create translation terms again, use _set_ids to update the existing
translations.

This will prevent a cause of translation duplication, forbidden in the future by
160d657704

opw-1832071
Closes #24158
2018-05-07 14:43:28 +02:00
Randall Castro 9da8378a0a [FIX] l10n_cr: adapt state code
Change res.country.state code to follow ISO 3166-2:CR
https://www.iso.org/obp/ui/#iso:code:3166:CR
2018-05-07 13:46:47 +02:00
xmo-odoo 0767d35805 [IMP] base_automation: warn when using on_change trigger w/o "code" type
Task 37742

closes #21446
2018-05-07 13:31:45 +02:00