Commit Graph
121352 Commits
Author SHA1 Message Date
arbaes 9764f04a3c [IMP] stock: backorder created only when needed
Before this commit, when the user chose to not make a backorder, a backorder was created then immediatly canceled.
This behaviour is now changed as in such a case the backorder is simply not created anymore
2018-10-16 09:14:48 +00:00
arbaes 3747f36802 [IMP] stock: Doctring update and useless kwargs deleted
- The docstring for the method `create_backorder(self)` was updated to a more convenient one.
- The kwargs `backorder_moves` was remove since it was useless.
2018-10-16 09:14:48 +00:00
Géry Debongnie d91f0ce95d [IMP] web: log error when module crashes at loading
Before this commit, if a JS module caused an error while being
evaluated, the error was silently swallowed (and only logged in debug
mode, in the extra information about the state of all modules).

With this commit, we always log the error in the console.  Note that
this only applies to JS execution errors.  If a file has invalid
javascript structure, then a parsing error will happen, even before the
module system has the possibility to do anythin.

closes odoo/odoo#27836
2018-10-16 08:44:29 +00:00
Robot Odoo a19eb47caa [FIX] point_of_sale: fp map 2m taxes // align with account + Tests
Before this commit, it was not possible to map one tax to multiple taxes
in the point of sale, just as it is in the account module.

This commit implements fiscal positions that can map to various taxes
on POS.

Furthermore, id adds test to secure that somewhat implicit feature on which
several localisations seem to depend upon.

A typical use case if one tax is not replaced but complemented by another.

**Description of the issue/feature this PR addresses:**
- Taxes can only be replaced in POS.
- Not complemented by a peer tax.
- Behavior not aligned with backend fp mapping.

**Current behavior before PR:**
- Tax cannot be mapped to several taxes (aka: complemented: "to itself and other") on POS

**Desired behavior after PR is merged:**
- Tax can be mapped (aka: complemented) to various taxes on POS

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

@xoe-labs

closes odoo/odoo#26415
2018-10-16 08:25:45 +02:00
Simone Rubino d704d616f9 [REM] sale_stock: delete unused file
The file stock_config_settings_views.xml is not mentioned in the manifest, and
it is wrong as the model `stock.config.settings` which does not exist anymore

closes odoo/odoo#27540
2018-10-12 13:13:04 +00:00
Robot Odoo 94221c596b [IMP] data files: proper uid and context support
Linked to task 1887993, related to the de-magic-ification of the "admin"
user: currently data files are "executed" as the root user, re-linking
relevant records to the admin user is a PITA (e.g.
97b82ff7c1).

Just executing all demo files as the admin is not feasible (some things
a regular user literally can't do), but the ability to execute entire
data files as a specified user or with specific context keys set, and
furthermore override that at the function/record level, is useful.

This:

* refactors some of convert_xml to prep for the rest
* cleans up and fixes the handling of uid/context to use them in record
  and function tags and properly inherit them from data parents
* cleans up some of the rng & conversion code (unused features, dead
  code, broken features, …)

closes odoo/odoo#27383
2018-10-11 19:37:38 +02:00
Xavier Morel a8ee940e38 [REM] core: assert, ir_set and url tags from XML data files
* ir_set and url were accepted by the RNG despite ir_set having been
  removed back in 2015 or so and <url> having possibly never existed in
  the first place (could not find any reference to an <url> element
  outside of sitemap qweb templates)
* <assert> was essentially deprecated/removed in 2015 with the v9
  accounting having stopped running account_assert_test.xml, which was
  the last file using the tag so far as I can tell. The file itself
  remained as dead code until 2018
2018-10-11 15:01:59 +00:00
Xavier Morel 4d581e26c2 [REF] core: cleanup noupdate handling in XML import
Use the same pattern as for the envs: a stack of noupdate values pushed
and popped around data nodes.

Avoids re-parsing the same noupdate attribute on every node execution,
and completely removes the need to pass the nearest data node to every
_tag_ function.
2018-10-11 15:01:36 +00:00
Xavier Morel de86da2417 [FIX] *: remove id from various function tags 2018-10-11 15:01:04 +00:00
Xavier Morel bf0ed03d0f [FIX] core: support for uid/context in XML data files
* add tests for uid/context on record & function & root nodes (odoo,
  data, openerp) "inherited" by record & function
* add rng validation to the test cases to ensure technical
  capabilities are matched by validation capabilities (which was not
  the case as we could validate nonsense and import stuff which didn't
  pass validation or something)
* extact uid/context into its own rng pattern
  - add uid support to record validation
  - add uid support to root nodes validation
  - fix uid support on function validation: was typoed to @id, which
    is not used anywhere in function tags loading & makes no sense
    as far as I can tell
* replace get_uid/get_context by get_env & reimplement the whole mess:
  build a stack of environments from the root nodes (each root node =
  one env in the stack, though the exact same env can be present
  multiple times if none of the root nodes has a @uid or @context) and
  leaves can build upon this "ready made" environment for their own
  uses or use it as-is.

  As a result, all uid/context should now properly transfer from the
  root nodes to the leaves needing them
* fix support for context on functions: was not actually implemented
  as the context was not propagated into the old-style API call
* add uid support to record & context is now inherited from env
2018-10-11 15:00:22 +00:00
Xavier Morel 77b5911137 [IMP] core: convert_xml refactorings to prepare for improvements
* add _tag_ methods for root nodes (remove some of the parse special
  casing)
* remove unnecessary/useless returns
* remove cr & uid (there's an env)
* remove mode argument from callbacks (redundant and confused with
  self.mode)
* try to cleanup menuitem callback a bit
* make second callback param not optional (because it's not)
2018-10-11 14:59:51 +00:00
Prakash Prajapati 7b498ea412 [IMP] project, hr_timesheet, sale_timeshee: improve tooltips of project
Purpose: improve understanding of project model as well as their
    daily use. This is done by improving tooltips of some fields
    according to business logic.

This commit is related to task ID 1885507 and closes PR #27019.
2018-10-10 10:30:07 +00:00
TWA 983c7e8152 [IMP] mail,crm,...: Replace occurences of name_get()[0][1] by display_name
Purpose
=======

display_name is equal to doing name_get()[0][1]

Replacing name_get()[0][1] by display_name could be good for 2 things:
- Uniformization of the code
- Probable optimization if name_get is used inside a for loop on a recordset (as the values will be prefetched and put in the cache).

TaskID: 1849250

closes odoo/odoo#26341
2018-10-09 11:28:00 +00:00
Christophe Simonis a799b13292 [REL] bump alpha version 2018-10-09 11:40:02 +02:00
Christophe Simonis 835b77ba94 [MERGE] forward port branch 12.0 up to ebe43bad9e 2018-10-09 11:37:30 +02:00
Nicolas Martinelli ebe43bad9e [FIX] l10n_lu: remove deprecated reports
The `account.financial.report` model has been removed, so these reports
are now deprecated. They will be added back in Enterprise.

opw-1891341

closes odoo/odoo#27559
2018-10-09 07:01:29 +00:00
Martin Trigaux 3e178daa30 [I18N] l10n_multilang: export source terms
closes odoo/odoo#27544
2018-10-08 14:34:21 +00:00
Nicolas Martinelli 94a4b695e9 [FIX] account: remove useless file
The file is not imported by the manifest following the removal of the
reports.

opw-1891341

closes odoo/odoo#27542
2018-10-08 13:55:31 +00:00
Nicolas Martinelli c36dedb095 [FIX] account: prevent incorrect fiscal year end date
We prevent setting a fiscal year end date which doesn't exist.

opw-1890518

closes odoo/odoo#27534
2018-10-08 12:32:05 +00:00
William Henrotin 53bc3d90d8 [FIX] mrp: remove multiness in non multi method
The method button_start begins by an ensure_one() but loop on self too. 
This commit removes to loop for cleaner code.

Task : 1850640

closes odoo/odoo#27532
2018-10-08 12:01:49 +00:00
Yannick Tivisse c972b62b3c [IMP] fleet: Load fleet vehicles as data instead of demo data
Purpose
=======

In the fleet module, Models & Brand are in demo data. It should be loaded as regular data.

closes odoo/odoo#27524
2018-10-08 09:55:20 +00:00
Laurent Smet 2d242b1ed9 [FIX] account: fix $.when(defs) in reconciliation widget
Introduced by: https://github.com/odoo/odoo/commit/b0a29c9bad4fb9180ddcdae80529e244c6b61d49

Suppose def1, def2, def3, three deferred.
$.when(def1, def2, def3) is ok
$.when([def1, def2, def3]) is not ok
$.when.apply($, [def1, def2, def3]) is ok

closes odoo/odoo#27513
2018-10-08 09:06:24 +00:00
Swapnesh Shah d4d820f0bb [FIX] pos_sale: convert string -> datetime.date
fixes #27467

closes odoo/odoo#27468
2018-10-08 11:38:45 +00:00
Swapnesh Shah 87a9780270 [FIX] mrp: print bomstructure report with float quantity
Usecase to reproduce (chrome):
- Create a BoM with float quantity in component
- Print the BoM cost and structure report

When using a type="number" on firefox it is not possible to use a
decimal. However on chrome there is no restriction and a decimal
could be use. It makes senses to be able to work with decimal
(e.g. the UoM is in kg)

It also exists an explicit cast to integer since data are received as
string from the javascript. However since quantity displayed could be
decimal, the cast should be adapted to float.

Closes #27464
Fixes #27437

closes odoo/odoo#27522
2018-10-08 09:33:04 +00:00
Olivier Dony f4041de4ed [FIX] website: use proper env in model methods
Using `request.env` should be reserved for code that lies outside of
model methods (typically: controllers). Model methods have to use the
appropriate `self.env`.

This particular case caused frequent Python-PostgreSQL undetected
deadlocks during installations of website-related modules in 12.0.
One way to reproduce it was to trigger the installation of both
`website` and `website_form` in a single transaction, with neither
pre-installed.

Installing Apps that depend on both would do the job, such as
`website_sale`, provided that GEOIP is available on the system.

In details:
During installation of `website`, new attachments creation would call
get_current_website (see 602807acdf and
4f6ec1cd2a), using the wrong database
cursor: the one from the request instead of the one for the
installation, as provided by `ir.module.module._button_immediate_function`.
This would acquire database locks on `res.country` and `ir.model` in
the wrong transaction, later blocking alterations to `ir.model` in
the installation transaction, e.g. for website_form's
'website_form_access' column.

This combination of events was possible before 12.0, but more difficult
to reproduce as module installations used to happen with a super-user
account, ignoring ACL checks and therefore not locking `ir.model`.
2018-10-08 19:29:24 +02:00
Jairo Llopis a362d0eb9f [FIX] tests: Make at_install and post_install backwards compatible
Fixes #27471 by just using `tagged()` behind the scenes.

calls to `tagged` were done in the wrong order

closes odoo/odoo#27531
2018-10-08 12:16:08 +00:00
Gustavo Valverde 1c0e419a2d [FIX] purchase_stock: buy_route xml_id
When creating a warehouse with purchase app installed, it will
traceback since the route_warehouse0_buy is referenced in a wrong
module.

closes odoo/odoo#27523
2018-10-08 07:52:57 +00:00
Jeremy Kersten c39d559ebb [FIX] website: auto enable multi website when creating a second website
Before this commit, you need to check manually multi website.
And demo data create 2 websites by default, but don't check it.
2018-10-08 15:51:29 +02:00
Jeremy Kersten 7549ea0371 [FIX] website: use email as login for public user
Multiwebsite cannot work on the saas since the login use a constraint to check that it is an email.
2018-10-08 15:29:12 +02:00
len-odoo a034a17d37 [FIX] survey: fix date picker template and validation
The date picker widget was set to text instead of date.
Then we needed to fix the date validation at form submit.

opw 1890130

closes odoo/odoo#27448
2018-10-05 11:28:50 +00:00
len-odoo a9ce28bfb1 [FIX] mail, mass_mailing: remove implicit dependency on mass_mailing
Fix to commit: a1d6064dcc
Which erroneously put a mass_mailing method in mail,
as mail.mail.statistics is defined in mass_mailing.
Since it does not depend on the records, it been extracted from the
loop.

opw 1890461

closes odoo/odoo#27431
2018-10-05 08:47:49 +00:00
Nicolas Martinelli 360212f206 [FIX] web: remove reference to Enterprise version
closes odoo/odoo#27505
2018-10-08 07:27:40 +00:00
Nicolas Martinelli 38ee891bf6 [FIX] web: appropriate color theme
Do not mix Community and Enterprise color themes. Moreover, increase the
contrast of the control panel for better readability.

closes odoo/odoo#27502
2018-10-08 06:20:55 +00:00
Robot Odoo 41bd82244b temp rebasing PR 27473 (e749d70fd9) 2018-10-08 10:45:06 +02:00
Martin Trigaux 961d68f1c5 [I18N] export 12.0 source terms
Including demo data

closes odoo/odoo#27504
2018-10-08 07:13:33 +00:00
Odoo Translation Bot b6c8919444 [I18N] Update translation terms from Transifex 2018-10-07 02:27:57 +02:00
Swapnesh Shah e749d70fd9 [FIX] Correct Icon for Button 2018-10-06 21:39:53 +05:30
Robot Odoo 9a0e63d9ac [FIX] account,website_crm_partner_assign: fixes
Several fixes

closes odoo/odoo#27430
2018-10-05 12:16:13 +02:00
Martin Trigaux 1b2913fcc0 [FIX] website_crm_partner_assign: set correct model name
Fixes odoo/odoo#27321
2018-10-05 11:38:03 +02:00
Martin Trigaux 35151b62b3 [FIX] account: use datetime object
Unlike the name suggested, today is expected to be a datetime, not a date object

Fixes odoo/odoo#27445
2018-10-05 11:16:28 +02:00
Nicolas Lempereur 23bec7fb7f [FIX] auth_password_policy: remove deferred when not needed
When auth_password_policy is installed, and a field with
`password="True"` is in a res.config.settings (eg. google calendar is
installed) we could have an error caused by deferred not expected in the
res.config.settings _render.

Since the RPC is only needed when the password_policy has been been
defined, this commit do this removing the error that currently happened.

A customization of res.config.settings adding password_meter would still
break settings (but it is currently not done) and will be solved in a
future fix.
closes #27426
2018-10-04 10:38:53 +00:00
Christophe Simonis 1868713dbd [REL] 12.0 2018-10-03 19:56:18 +02:00
Christophe Simonis e6c27216be [MERGE] forward port branch saas-11.4 up to 1d90e93543 2018-10-03 18:52:09 +02:00
ThanhDodeurOdoo 8ea5637c1d [FIX] base: ir_http access mode
Before the fix, routes using binary_content with access_mode
and access_token didn't work properly since access_token
was compared to the object's access token in all cases.

This commit:

 -prevents the object's access_token check if
access_mode is truthy (since access_mode does its own access_token
check).

 -changes check_access_mode so it now returns a boolean instead of
 a record and is now private.

Closes #27401
2018-10-03 18:10:07 +02:00
Christophe Simonis 1d90e93543 [MERGE] forward port branch saas-11.3 up to c43f35ee9d 2018-10-03 17:56:58 +02:00
Pedro M. Baeza 1ad4d42f0b [ADD] *: replace hardcoded data URIs with helper
- Add a method for generating an image data URI, and expose it in QWeb context

- Fix reports, website templates or mail templates with data hardcoded
  data URIs, to use the helper (Python cases), or the existing
  kanban_image helper (for JS cases)

This will gracefully handle SVG support in addition to classical image
formats.

Closes #26635
2018-10-03 17:48:14 +02:00
Pedro M. Baeza 1be50fdeaf [ADD] *: support SVG images
Introduce official support for SVG files in the framework, including the
following parts:

1. When client-side SVG images are uploaded, the content is displayed until
you save using data URI scheme according RFC 2397 [1]. This scheme requires
to specify content format. Using hardcoded "image/png" works for all images
types except SVG.
Type-sniffing is done using "magic byte" detection via the first base64
encode byte, so that the proper data URI scheme can be used.
This should not cause SVG-related security problems as the file is
displayed through `<img>` tag, which does not allow SVG scripting [2].

2. Make /web/image controller compatible with SVG

3. Add support for SVG files for company logo, which uses a dedicated
controller.

4. Resizing of SVG files is a no-op, as it makes little sense for a
vector-based format. We also want to avoid micro-alterations to the SVG
document (in "natural" viewport parameters) as we would store multiple
copies of the files in the filestore.

5. Because SVG files are inherently dangerous, upload of SVG files is
restricted to administrators, either by blocking it directly before
saving it in the database (binary fields with attachment=False), or by
neutering them to text/plain mimetype (for binary fields with
attachment=True)

6. Add tests for the SVG upload cases and for the non-admin uploads.

[1] https://tools.ietf.org/html/rfc2397
[2] https://www.w3.org/wiki/SVG_Security

Closes #26635
2018-10-03 17:48:01 +02:00
Christophe Simonis c43f35ee9d [MERGE] forward port branch 11.0 up to 45922f397f 2018-10-03 17:12:38 +02:00
Xavier Morel 376361c15c [FIX] base_import: show error message in some situation where it was missing
On an AccessError, the relevant message is passed as the first arg. But
the import error handler would only check for the second arg (if any)
then fallback on error.message, which is missing entirely when the issue
is raised as an except_orm subclass.
2018-10-03 16:54:25 +02:00
Christophe Simonis 45922f397f [MERGE] forward port branch saas-15 up to 6cb75dc3d6 2018-10-03 16:43:31 +02:00