Commit Graph
3175 Commits
Author SHA1 Message Date
Christophe Simonis daaaaa552e [FIX] core,test_new_api: adapt code to removal of ir.values 2017-08-31 13:22:39 +02:00
Christophe Simonis 4879ce0407 [MERGE] forward port branch saas-17 up to fe77df3ba4 2017-08-31 12:55:41 +02:00
Haresh Shyara 6bd26593e0 [IMP] stock: restructured some menuitems in operations
- Operations
    - Products
        - Transfers
        - Inventory Adjustment
        - Sraps
    - Scheduling
        - Run Scheduler
2017-08-30 21:17:27 -07:00
stefanorigano 4ee00450ce [REF] base: do not style 'installed' as a 'success' in apps kanban 2017-08-30 16:55:10 +02:00
Raphael Collet 6cf98c4c87 [IMP] models: in onchange, keep track of virtual ids of new records
The x2many "create" command is now like: `(0, ref, vals)`, where `ref` is an
arbitrary reference that may be used to identify a new line in the relation.
The reference is returned in a similar command by the method `onchange`.
`onchange` now supports self-modifying x2many fields.
2017-08-30 14:38:29 +02:00
Xavier Morel 1222422333 [FIX] p3: race condition when *reloading* an existing db
When re-launching Odoo on an existing database in Python 3.6[0] it's
possible that the scheduler will preempt the main thread
mid-module-import and run the cron thread which causes registry (and
module) initialisation with only a subset of the Python files loaded
and thus e.g. tries loading auth_crypt with a registry in which none
of res has been loaded makes for interesting situations.

Delay spawning the cron thread until *after* the registry preload at
least, though I don't think that actually entirely fixes the issue.

[0] and probably in any Python >= 3.3, I'm guessing it's related to
    the per-module import locks which replaced the old global lock:
    https://docs.python.org/3.3/whatsnew/3.3.html#a-finer-grained-import-lock

    though since ir.cron has little reason to import anything it could
    also just be Python 3 scheduler changes which allow/cause a
    context-switch during imports while the Python 2 scheduler would
    not allow that. IDK.
2017-08-29 16:54:32 +02:00
qdp-odoo eaf71455f4 [ADD] tools: add some xml utilities
-create_xml_node()
-create_xml_nod_chain()
2017-08-29 10:17:27 +02:00
Christophe Simonis d0f132b297 [MERGE] forward port branch saas-16 up to 4ac347735d 2017-08-28 14:49:11 +02:00
stefanorigano 7c2a00d6e8 [REF] base: set new apps list design 2017-08-28 12:53:17 +02:00
stefanorigano 66ffabf706 [REF] *: move tags under the title of kanban records
* crm, fleet, hr_recruitment, mass_mailing, website_event_track

Adapt kanban layouts so that tags are under the title to fit new design
requirements.
2017-08-28 12:53:17 +02:00
Raphael Collet 10cb1beead [REM] base: remove model ir.values 2017-08-28 09:53:23 +02:00
Raphael Collet 55549f1e61 [ADD] base: direct support for binding an action to a model 2017-08-28 09:53:23 +02:00
Raphael Collet 60d9f6fef9 [ADD] base: model ir.default to store user-defined defaults 2017-08-28 09:53:23 +02:00
Odoo Translation Bot bb28a2d7f6 [I18N] Update translation terms from Transifex 2017-08-27 04:40:12 +02:00
Christophe Simonis eceb173653 [P3] *: stop using cStringIO 2017-08-24 15:17:24 +02:00
Christophe Simonis 6587eaaf0f [IMP] test_pylint: do not load default config file
This will avoid useless warning when the file does not exists and
possible false positive errors in case of invalid config in this file.

Also strip output

Cherry-pick of c955c3051c
2017-08-24 14:54:38 +02:00
Christophe Simonis a567b50035 [IMP] test_pylint: check for badly written try/except
Cherry-pick of 0ebe59f5d0
2017-08-24 14:52:49 +02:00
Christophe Simonis 900701213f [IMP] test_pylint: check for python3 incompatibilities
Cherry-pick of 9882f24313
2017-08-24 14:51:06 +02:00
Christophe Simonis 4837f4ef17 [FIX] *: leftover invalid uses of pycompat 2017-08-24 13:43:19 +02:00
Christophe Simonis 017ee5eab3 [MERGE] forward port branch saas-17 up to 877e709871 2017-08-24 13:17:53 +02:00
Richard Mathot 594ff13f58 [IMP] base: log user id triggering module (un)installations
After a few tickets with clients asking "who installed this app?", we
will be able to answer with this.
2017-08-24 09:55:38 +02:00
Raphael Collet 32aa7dc9a0 [FIX] models: implement change_default behavior for fields
The behavior is no longer implemented by the web client.  Implement it
server-side as part of the onchange mechanism, simply by defining onchange
methods for the fields that have the flag.
2017-08-24 09:37:55 +02:00
Christophe Simonis 30bd5ac0e9 [MERGE] forward port branch saas-16 up to aec6248bb3 2017-08-23 16:44:58 +02:00
Christophe Simonis 7f2bd08608 [FIX] core: define float_utils.round also in python2 2017-08-23 16:31:57 +02:00
Xavier Morel 8361ec8819 [FIX] phantomjs for p3
P2 and P3 subprocess stdout seem to have very odd/different behaviours
in the face of mixing select and buffering.

Use raw/low-level IO (os.read) with select to try and fix that
up. Also read more than one byte at a time since os.read will not
block *if* the fd is readable, it will just get whatever data is
immediately available.
2017-08-23 14:34:50 +02:00
Xavier Morel a65dfe2421 [FIX] P3: exception semantics issues 2017-08-23 14:34:50 +02:00
Christophe Simonis 59f8b849fb [MERGE] forward port branch saas-15 up to d5f2a38b50 2017-08-23 11:23:08 +02:00
Christophe Simonis d5f2a38b50 [MERGE] forward port branch saas-14 up to 6956ad54de 2017-08-22 17:20:15 +02:00
Christophe Simonis 6956ad54de [MERGE] forward port branch 10.0 up to 6dc0f31415 2017-08-22 16:45:43 +02:00
Christophe Simonis 6dc0f31415 [MERGE] forward port branch saas-11 up to 92ec666f8d 2017-08-22 16:28:10 +02:00
batuto feef39aee0 [IMP] doc: add warning about constrain method trigger
It may be confusing that a constraint is not triggered in a name_create call.
Testing the absence of value should be done in an override of create, not in a
api.constrains.

Closes #18382
2017-08-22 15:46:48 +02:00
Jairo Llopis 7c6714d7fe [FIX] website: check website_id on view when applying inheritances.
Before this patch, if some view had both `inherit_id` and `website_id`,
its inheritances were being applied even in different websites.

After this patch, if a view inherits from another, inheritances will only apply
 when both views belong to the same (or none) website.

Refactoring based on the pr #17635
This closes odoo/odoo#17635
2017-08-22 13:18:05 +02:00
Jairo Llopis 15bf41270d [FIX] website: Make Qweb cache website dependent
Without this patch, all Qweb cache is shared among all available websites.
This turns impossible in practice to actually create multiple websites with
different look.

This closes odoo/odoo#18462
2017-08-22 12:03:23 +02:00
Laurent Smet 9a58e95edf [FIX] base,report: fix report empty pages/traceback (#18795)
When printing a report not linked to a record, a traceback appears if the
report_name is not an existing model or en empty page is generated.
2017-08-21 08:27:24 +02:00
Olivier Dony 2cc77a1990 [FIX] P3: os.write(bytes) 2017-08-20 23:25:54 +02:00
Olivier Dony 9197676e88 [FIX] P3: socket.error.errno instead of [0]
As of P3 socket.error is replaced by IOError and the underlying error
code must be accessed with `.errno `. This also worked in P2, so simply
use that all the time.
2017-08-20 23:25:54 +02:00
Olivier Dony f5b7de0e6c [FIX] P3: correct more dict iterable builtins use
Some bits posterior or leftover from fffaf735f5

See also parent commit.
2017-08-20 23:25:54 +02:00
Olivier Dony 695716efb0 [FIX] P3: remove pycompat.{keys,items,values} helpers
Now that we're closer to switching to P3 for good, these helpers have
outlived their usefulness, and mostly add noise.

All remaining dict.iter*() or dict.view*() must be converted to the
normal keys(), values() or items() calls.

Whenever the result is likely to be used for more than the scope of a
loop, or when the dict needs to be modified during iteration, the calls
must be wrapped in a ``list()``, to protect the new P3 semantics.
Those cases are very exceptional.

Also removed some dead code or improved the API to remove unnecessary
conversions.
2017-08-20 23:25:54 +02:00
Xavier Morel 555ff9ab84 [FIX] P3: quickfix URL/http text model 2017-08-20 23:25:54 +02:00
Xavier Morel 97515adde4 [FIX] P3: phantomjs & text model
In P3, can only append integers to bytearray, not bytes, also fix some
byte/string comparisons & encoding crap
2017-08-20 23:25:54 +02:00
Xavier Morel 40d1246a17 [FIX] P3: Response wrapping in http
Explicitly check for both bytes and text results to wrap in a Response
object, as bytes is a string_type in P2 but not P3.
2017-08-20 23:25:54 +02:00
Xavier Morel 3b67fda251 [FIX] P3: file modes
In P3, files *must* be opened in binary mode when reading or writing
binary data, text mode (default) generates text and thus decodes on
the fly.
2017-08-20 23:25:54 +02:00
Xavier Morel b93613066f [FIX] P3: JSON is an object<->text encoding
It doesn't load bytes, and it doesn't dump to bytes.
2017-08-20 23:25:54 +02:00
Xavier Morel bc7dce254d [FIX] P3: text model, base_url is a string but query_string is bytes 2017-08-20 23:25:54 +02:00
Xavier Morel 588e9e788c [FIX] P3: (ir.attachment)._index works on binary data
Thus needs a binary pattern and to decode it into ascii text.

Also improve the regex.
2017-08-20 23:25:54 +02:00
Xavier Morel ca20bbac50 [FIX] P3: guess_mimetype works on proper binary data 2017-08-20 23:25:54 +02:00
Xavier Morel 200612ca1e [FIX] P3: text model in various mail bits
No formal decision there, and the stdlib API seems like a PITA as it's
based around native strings, not bytes and not text.

* try to use cross-model API instead of random encode/decode
* unicode all the mail_template things
* formataddr *requires* a text tuple now

  In P2, formataddr((False, False)) "worked" (generated "False
  <False>"), in P3 it will fail and blow up.
* attachments are quite definitely bytes
* remove try_coerce_ascii because it's garbage
2017-08-20 23:25:54 +02:00
Xavier Morel ae866acf08 [FIX] P3: assets bundle text model
* remains is a list of text
* sep is text
* json.dumps generates text (surprise!) so beware with that
2017-08-20 23:25:54 +02:00
Xavier Morel a9d8d59833 [FIX] P3: error messages are text, dump XML docs as text 2017-08-20 23:25:54 +02:00
Xavier Morel 508926d2b8 [FIX] P3: hex() returns text, don't re-decode it 2017-08-20 23:25:54 +02:00