Commit Graph
3175 Commits
Author SHA1 Message Date
Xavier Morel 150fc064fd [FIX] product: image changes not sticking everywhere
Fixes #20046

Simply reverting e5ef1c5917 looks to
work *but* since I didn't note the repro case for the issue and don't
remember what it was it may re-introduce previous breakage. Instead,
ensure all "sizes" for the image are reset if any of the sizes is
present *and* Falsy by adding a final case to the conditional.

If any of the image fields is present and non-falsy one of the
previous branches will be taken, so we can just check that any of the
image fields is present at all (this implies it's falsy).
2017-12-05 13:35:51 +01:00
Christophe Simonis a8d01cbf4e [MERGE] forward port branch saas-15 up to a447da75fd 2017-12-04 20:12:19 +01:00
Christophe Simonis a447da75fd [MERGE] forward port branch saas-14 up to e7d174a142 2017-12-04 19:25:51 +01:00
Christophe Simonis e7d174a142 [MERGE] forward port branch 10.0 up to 78aef7605c 2017-12-04 19:06:41 +01:00
Adrian Torres 78aef7605c [FIX] *: ordered group_by for field with capital letters
When doing a group_by in a tree view, and then ordering by an
aggregated field which contains at least one capital letter in its name,
you will get an error and won't be able to ordery by this field.

Why? read_group is called when sorting a group by, which calls
_read_group_raw which then goes to call _read_group_prepare, which will
return order by terms in this manner ['id asc', 'x_Test desc']
the problem with this is that postgres automatically converts
non-quoted/non-qualified column name to lowercase, of course this means
that if we have a field "x_Test" but no field "x_test", it will try to
look up "x_test" instead of "x_Test" and since the column doesn't exist,
it will throw a ProgrammingError.

This commit changes this behavior by wrapping the order_by terms generated in
_read_group_prepare with double quotes, which postgres interprets
correctly.

Fixes #21348

Cherry-Pick of c338e24ee7 as previous
forward-port has been badly done...
2017-12-04 18:49:31 +01:00
Christophe Simonis 426e269c22 [MERGE] forward port branch 10.0 up to 067a241ea8 2017-12-04 16:24:24 +01:00
Xavier Morel 5972969568 [FIX] base: encoding headers works better if we return the encoded value
Looks like a `return` was skipped/missed when the code was converted
to Python 3, and since there's a shortcut for pure-ascii values this
took some time to notice (and bubble up).

Fixes #20713
2017-12-04 15:57:04 +01:00
qdp-odoo 298491597c [IMP] base: Forbid users from setting currency rate as 0 or less
Because it doesn't have any meaning to do so. Also the default value for rate is now set to 1 instead of 0
2017-12-04 14:37:06 +01:00
Xavier Morel 3c4c192cae [FIX] sale_mrp, stock_dropshipping: suppress warnings
* create product correctly (via form) & enable crossdock route
  otherwise no purchase order is created (surprise!)
* silence logger when creating SO as apparently stock warning can not
  be disabled even when it makes no sense
* suppress warning about cost methods when creating a product
  category, that's apparently normal (happens every time on runbot)
2017-12-04 13:11:57 +01:00
Xavier Morel 346d770291 [FIX] sale_mrp: clear product routes before adding manufacturing ones
If purchase happens to be installed before MRP is, the "buy" route is
set by default on products *and* takes precedence over the MRP
one (because created first and same sequence).

This leads to purchase trying to buy products (which have no seller)
instead of MRP trying to manufacture them, which is what we're trying
to do & test.

Fix by clearing the route_ids field before adding the MRP routes.
2017-12-04 13:11:56 +01:00
Xavier Morel d59abc4c74 [ADD] doc: Form & proxies 2017-12-04 13:11:55 +01:00
Xavier Morel 804169fa98 [IMP] sale_mrp: Formify tests
* warn on onchange warning instead of error
* fallback on a node not having modifiers attributes
* required field should apparently fail on False but not 0 or 0.0
* improve error message when adding an incorrect object or model to an
  o2m
  * remove useless test_move_explode
2017-12-04 13:11:55 +01:00
Xavier Morel df695e2d92 [IMP] stock_dropshipping: convert tests to SSF 2017-12-04 13:11:55 +01:00
Xavier Morel 4bf97bdbe2 [ADD] base: server-side formview
Useful to better test business flows & replace yaml test files:
instantiating records & calling onchanges by hand is very
error-prone (it's easy to miss onchanges, or to manually set fields
which can't be set through the view we're interested in, ...)

odoo.tests.common.Form implements the basic *creation*
flow (fields_get, default_get, onchange) up to saving the record,
including proper handling of the required and readonly modifiers &
their domains.

* edition of existing records, including filtering out unmodified
  fields when saving
* possibly buttons
* ensuring the API is convenient
2017-12-04 13:11:53 +01:00
Nicolas Martinelli d6984069c3 [FIX] base: activate currencies
Complement of 4b92f914de

opw-785831
2017-12-04 09:35:29 +01:00
Odoo Translation Bot f34d4d33a0 [I18N] Update translation terms from Transifex 2017-12-03 04:27:19 +01:00
Odoo Translation Bot 60801e5375 [I18N] Update translation terms from Transifex 2017-12-03 00:41:36 +01:00
Adrian Torres 3d1e23aaba [FIX] *: Reset module states on registry init error
Commit 763d714 introduced cron job locking for databases which had
modules with states set to 'to x', however if an
installation/uninstallation/upgrade fails, the state will stay at 'to
x', and it may stay in that state for an indefinite amount of time,
meaning that cron jobs could stay locked forever.

This commit fixes this in part by adding a cleanup function to loading.py that
will be executed whenever load_modules fails, the function will change
every 'to x' module to their original state, effectively unlocking the
execution of cron jobs.

This however only works to prevent "zombie" transient states for
brand new databases, however for existing databases which already
contain some modules in a zombie state it won't do anything unless
a module is installed/uninstalled/upgraded, which may never happen.

This is where the second part comes in (ir_cron.py), when failing to
execute crons, we check if the failure was due to bad module state
and if an arbitrary amount of time (5 hours as of this commit) has passed
since the last time it was supposed to be executed, if it is the case, it means
that the cron execution failed around 5 * 60 times (1 failure per minute for 5h)
in which case we assume that the crons are stuck because the db
has zombie states and we force a call to reset_module_states.
2017-12-01 14:15:42 +00:00
Christophe Simonis 2f99470458 [MERGE] forward port branch 11.0 up to c201cf2b77 2017-12-01 12:55:02 +01:00
Christophe Simonis 42264d8dcb [MERGE] forward port branch saas-16 up to 5d7ad2b16c 2017-11-30 18:43:08 +01:00
Christophe Simonis ab084d580f [MERGE] forward port branch saas-15 up to 98539336a5 2017-11-30 15:27:59 +01:00
Christophe Simonis 98539336a5 [MERGE] forward port branch saas-14 up to b780e4a0e4 2017-11-30 14:44:49 +01:00
Christophe Simonis b780e4a0e4 [MERGE] forward port branch 10.0 up to ba73fd534d 2017-11-30 14:13:39 +01:00
Alexandre Kühn f38ace8de2 [DOC] fields: improve doc for trim attribute 2017-11-30 13:00:36 +01:00
Christophe Simonis 99f343c7b6 [MERGE] forward port branch 9.0 up to 82bde85030 2017-11-30 10:55:32 +01:00
Alexandre Kühn 289582bc2a [FIX] test_main_flows: rename menu entry 'Catalog', workaround for the_flow.customer
Menu entry 'Catalog' has been renamed into 'Products' (see https://github.com/odoo/odoo/commit/941037194d0644a0f2d3348aedd888bce5b1eb74)

The step 'the_flow.customer' with enterprise fails due to an unexpected out-of-focus issue.
2017-11-30 10:23:28 +01:00
Dave Lasley 8226aa1db8 [IMP] http.py: Allow to use odoo if unmet dependencies on uninstalled module
Purpose
=======

If an external dependency is unmet on a module that is not installed, it's actually impossible to launch an odoo server and load the web client without getting a traceback.

This commit removes this constraint and allow to use odoo in that case. Obviously the install will crash if the external dependency is still unmet.

Close https://github.com/odoo/odoo/pull/17790
Coming from https://github.com/odoo/odoo/pull/14850
2017-11-29 16:21:12 +01:00
Olivier Laurent 046e4ee29e [FIX] anonymization: P3 encoding issues 2017-11-29 16:19:11 +01:00
Martin Trigaux 159bcf3cc2 [I18N] update Danish terms
Courtesy of Visti Kristensen, IT-konsulent
2017-11-29 14:33:19 +01:00
Thibault Delavallée 21ad8d2588 [MERGE] mail: clean and move tests
This commit cleans mail tests in order to have less low-level tests and
to improve code coverage. It improves the tests of features and reduces
field-level checks. Some tests depending on implementation details are
wrapped inside methods. This way if implementation changes most tests
are still valid once assert methods are updated.

Common classes, tools and models are improved. More test models exist
in order to be able to test several features and prepare land to add
performance test. Each set of tests is updated in its own commit.

Finally tests are moved to test_mail. This way tables linked to test
models are not present in production database. Existing test_performance
module is split so that there is tests for base and tests for mail.
2017-11-29 10:54:02 +01:00
Thibault Delavallée 163725e3c6 [FIX] base, web: update comments to moved files from base 2017-11-29 10:19:07 +01:00
Thibault Delavallée 22cce3be9d [ADD] test_mail: add some performances tests 2017-11-29 10:11:15 +01:00
Thibault Delavallée 1cc1ef5058 [SPLIT] test_performance: split between base and mail performance tests
Test performance will now hold the base class for performance tests as
well as tests related to the ORM, depending only on base. A new module
test_mail is introduced at this commit that contains performance tests
related to mail module. This commit contains only code move and should
not impact anything.

Future commits will move mail tests into test_mail so that all mail
related tests are located in the same optional module. This allows
notably to avoid creating a lot of unnecessary tables when installing
mail module on production databases.
2017-11-29 10:05:01 +01:00
Thibault Delavallée ea6415bd90 [IMP] odoo: tests: allow to compare HtmlElement trees
addTypeEqualityFunc does not work for subclasses. Therefore if we want
to be able to compare html trees we have to add the equality check for
html elements which are children of _Element.
2017-11-29 10:05:01 +01:00
Alexandre Kühn 9cd1cae65f [FIX] odoo service: fix location of res_country_data.xml file
It has been moved inside base/data, instead of base/res.
We have to adapt code that is calling it.
2017-11-29 09:04:12 +01:00
Thibault Delavallée 6bd5033e7f [FIX] tools: fix location of res.lang.csv file
It has been moved inside base/data insteaf of base/res. Let us adapt code
calling it.
2017-11-28 18:16:24 +01:00
Christophe Simonis 29590a61cd [MERGE] forward port branch 11.0 up to 8fb25e185b 2017-11-28 16:57:58 +01:00
Christophe Simonis 5851a69aa3 [MERGE] forward port branch saas-16 up to 3f66814a0d 2017-11-28 15:12:31 +01:00
Christophe Simonis 299a5e058b [MERGE] forward port branch 10.0 up to 7754538750 2017-11-28 12:25:16 +01:00
Thibault Delavallée bd033ce29c [SPLIT] base: split base_security to separate groups from rules 2017-11-27 11:15:16 +01:00
Thibault Delavallée 22f02af6bf [SPLIT] base: split base_data 2017-11-27 11:15:13 +01:00
Thibault Delavallée 52dc556a15 [SPLIT] base: split base_demo into files by model 2017-11-27 11:15:11 +01:00
Thibault Delavallée c81d83773c [MOV] base: move module_* wizard into wizard/ 2017-11-27 11:15:08 +01:00
Thibault Delavallée 8b02f7fd67 [MOV] base: move module_* models into models/ 2017-11-27 11:15:06 +01:00
Thibault Delavallée 1fbc29a641 [MOV] base: move ir_* models into models/ 2017-11-27 11:15:03 +01:00
Thibault Delavallée c129b91b6d [MOV] base: move res_* models into models/ 2017-11-27 11:15:00 +01:00
Thibault Delavallée ee5d46ceb1 [MOV] base: move module_* views into views/ 2017-11-27 11:14:57 +01:00
Thibault Delavallée b162eb2e1e [MOV] base: move ir_* views to views/ 2017-11-27 11:14:55 +01:00
Thibault Delavallée 969a55576e [MOV] base: move res_* views to views/ 2017-11-27 11:14:52 +01:00
Thibault Delavallée 7603da1990 [MOV] base: regroup all security rules in the same file in security/
* get some ir_rules from view files
 * move all rules into same file
2017-11-27 11:14:49 +01:00