Commit Graph

7194 Commits

Author SHA1 Message Date
Denis Ledoux ebf317a3b0 [MERGE] forward port of branch 7.0 up to e07bc5d 2014-08-04 16:10:06 +02:00
Denis Ledoux e07bc5d845 [ADD] res_partner: test case for fix rev 4a27880974 2014-08-04 15:54:56 +02:00
Raphael Collet a1d0394ff4 [FIX] models: default_get() shall not return a dict as a many2one value
When a new record is returned as the value for a many2one on a new record, the
method Many2one.convert_to_write() now returns a NewID, and default_get() then
discards that value from its result. This makes it consistent with its former
behavior.

Manual rebase of #1547
2014-08-04 15:50:04 +02:00
Raphael Collet 2d2274aeed [FIX] module loading: manual x2x fields can now refer to manual models
The fix consists in this: when setting up models, ignore manual fields that
refer to unknown models if all models have not been loaded yet.
2014-08-04 15:10:12 +02:00
Denis Ledoux 4a27880974 [FIX] res_partner: commercial partner sync
On child partner creation of a parent partner, the commercial_partner_id is not computed (and stored) in the create method.
Therefore, we should compute the commercial_partner_id before trying to sync his data
2014-08-04 14:34:08 +02:00
Raphael Collet 18314cf645 [IMP] openerp.api: improve documentation 2014-08-04 09:49:35 +02:00
Olivier Dony d706adba11 [MERGE] Forward-port saas-5 up to 37ba23d 2014-08-04 01:44:30 +02:00
Olivier Dony b7814943c3 [MERGE] Forward-port saas-3 up to 7273474 2014-08-01 23:14:59 +02:00
Olivier Dony 7273474d65 [MERGE] Forward-port saas-3 up to fc92027 2014-08-01 23:10:29 +02:00
Olivier Dony 5a0a500994 [MERGE] Forward-port 7.0 up to 9411a2da 2014-08-01 23:01:57 +02:00
Olivier Dony 9411a2da03 [FIX] Model.load(): extra error checking while importing data
If any missing or partially incorrect values cause
an exception other than a psycopg2 error, we should
still catch it, rollback that record and report
the error, rather than letting bubble and fail
without any feedback to the user.

Fixes #1485
2014-08-01 22:42:01 +02:00
Martin Trigaux 19e401adf0 [IMP] base: show possible titles for companies (opw 608243) 2014-08-01 17:07:56 +02:00
dhr-odoo eb775fc2ea [FIX] orm: set default before removing magic fields
When a record is created, the magic fields (id, create_date,...) are first removed from the vals as the user should not set a value for these.
However if a value for this is given in default value (e.g. defined in an ir.value), the creation would crash (sql error : column specified more than once) as the magic column would be added again.
2014-08-01 15:37:01 +02:00
Olivier Dony 494ecc620f [MERGE] Foward-port saas-5 up to ee4df1e 2014-08-01 14:24:07 +02:00
Olivier Dony ee4df1e397 [MERGE] Forward-port saas-4 up to 8b15482 2014-08-01 13:06:49 +02:00
Olivier Dony 8b15482e00 [MERGE] Forward-port saas-3 up to e79a367 2014-08-01 12:54:30 +02:00
Olivier Dony e79a3675d1 [FIX] orm.search_count: ignore `limit`, `offset` and most importantly `order`
These parameters are (or should be) irrelevant for
a search_count(), and they could actually break the
result or make it significantly slower (e.g applying
`order` on large tables).
This fixes a performance regression introduced by
0f43032b.

We could also raise an error offset/limit are
passed in combination with count, but that seems
unnecessary.

Also switched to "SELECT count(1)" for the count
query, as it is simpler and just as fast.
We'd get the same perf with * or any constant value,
as in "SELECT count('me in')", but let's keep it
simple ;-)
2014-08-01 12:34:45 +02:00
Christophe Simonis fd4fd35e32 [MERGE] forward port of branch saas-5 up to e4cb520 2014-07-30 20:52:14 +02:00
Christophe Simonis e4cb5202a0 [MERGE] forward port of branch saas-4 up to fa07bc8 2014-07-30 20:30:14 +02:00
Christophe Simonis fa07bc8532 [MERGE] forward port of branch saas-3 up to 310d3fe 2014-07-30 19:09:33 +02:00
Olivier Dony 7b84dfb302 [FIX] ir.actions.server: ir.values ref (`More` menu entry) should not be copied 2014-07-30 18:56:56 +02:00
Christophe Simonis 310d3fe4c4 [MERGE] forward port of branch 7.0 up to 39f3e40 2014-07-30 18:55:31 +02:00
Raphael Collet b8a0e65ed5 [FIX] cli/server: fixes #1307, add missing Environment management blocks 2014-07-30 15:32:12 +02:00
Raphael Collet 35d50f0390 Merge pull request #1284 from sebalix/8.0-fix-xmlrpc-marshall-none
[FIX] read() method returns None values instead of False, incompatible with XML-RPC
2014-07-30 15:05:03 +02:00
Raphael Collet fa38c0f6a6 [FIX] models: fixes #1017; do not update list in place in the construction of _depends on models 2014-07-30 13:59:14 +02:00
Olivier Dony c60dc65857 [ADD] safe_eval: allow YIELD_VALUE, used e.g. for generator comprehension 2014-07-30 13:24:39 +02:00
Olivier Dony 77769ce74d [IMP] BaseModel: new `_translate` attribute to disable translations
Can be defined to False in any model to completely
disable translations for this model, when they are
irrelevant. This is useful e.g. for test classes
that use attributes that would normally be translatable.
2014-07-30 13:24:39 +02:00
Olivier Dony 9a9ef37c65 [IMP] tools.translate: unused import 2014-07-30 13:24:39 +02:00
Olivier Dony 57f79f9fa1 [REM] fields: remove fields.Any, temporary artifact for ill-typed fields
This was added in master-apiculture at f1f16a8 to
permit special function fields that return
structured JSON-like data.
This is unnecessary and caused typing problems, for
example for the type field of ir.model.fields, or
when you decide to store them.

It is simpler to explicitly declare these fields
as fields.Char and have them serialize their results
to JSON strings, or to declate them as fields.Binary
and return any opaque data they want.
2014-07-30 13:24:39 +02:00
Christophe Combelles b64bd885b0 [FIX] base: ir.qweb: ensure element.tail is correctly encoded
element.{text,tail} are either ascii-compatible `str`, or `unicode`
when non-ascii-compatible. This could force the implicit decoding
of utf-8 encoded contents when joining template bits, breaking
the rendering.

Fixes #1085, and related to #1130
2014-07-30 11:41:15 +02:00
xmo-odoo c544a906b8 Merge pull request #1391 from savoirfairelinux/7.0-translate-trans_generate_debug_print
[FIX] translate: Fix debug print when parse path list to translate.
2014-07-29 13:51:48 +02:00
Nicolas Seinlet ee67d65801 handle missing JS files with a console log 2014-07-29 12:39:51 +02:00
Denis Ledoux 88c022dfc8 [MERGE] forward port of branch 7.0 up to bbb8d8f25a 2014-07-29 11:42:10 +02:00
Denis Ledoux 6b1a804b29 [MERGE] forward port of branch 7.0 up to b91a75f7ef
Conflicts:
	addons/base_vat/base_vat.py
	openerp/tools/safe_eval.py
2014-07-29 10:42:50 +02:00
Martin Trigaux 6dc94f0c4e Forward port of branch saas-5 up to eda2f06 2014-07-28 16:37:56 +02:00
Martin Trigaux cd013aa09a Revert 3dec090 "[FIX] ir_values: fallback when no condition"
An ir.value without condition should not match when searching with a condition.
When a field with change_default on it is modified, the method get_defaults is called with the new value. This means that manually modifying a field with this trigger would put back the default value (opw 611193).
2014-07-28 14:35:44 +02:00
Mathieu Benoit 40b1fccb2a [FIX] translate: Fix debug print when parse path list to translate. 2014-07-25 16:17:29 -04:00
Olivier Dony f90b29b938 [FIX] res.users: safer read() when computing default company value
The goal is to avoid any kind of prefetching
of other fields when copmuting the default
company, as this will sometimes happen in the
middle of a database update, when the default
company is used for setting the default value
of new columns. In that case the db schema
may not fully match the in-memory model, leading
to an SQL error.
2014-07-25 16:33:48 +02:00
Martin Trigaux f138aa2608 [FIX] models: display_name and name_get mismatch
- display_name uses name_get and not the other way around:
name_get should not call _compute_display_name, _compute_display_name should call name_get.
The previous behaviour was not backward-compatible with the old api.
All the models redefining name_get would have 2 different behaviors between name_get and display_name.

- Do not set an inverse function to display_name:
In most cases, writing on display_name writes on _rec_name (if any, not mandatory).
If the display_name computation is redefined, we need to redefine as well the inverse method to avoid unexpected behaviour
This required to also modify tests in base_import as readonly fields are avoided.

- Remove search method on display_name:
For the same reason as for the first point, it could be good that searching on display_name use name_search (and not the other way around).
However doing this would be very inefficiant (need to do the search, without limit, extract the ids of the name_get result just to generate
a subdomain ('id', 'in', [...]). As in most cases it would anyway mean to search on the _rec_name it's better to directly do so.

- Changing label to avoid mismatch:
In view displaying the list of fields or when a match is made on the label of a field (e.g. when importing csv file,
matching is made on both label and technical name), the fact that display_name field has '
Calling it 'Display Name' will avoid most errors.

- remove display_name definition from website_forum_doc,ir_model:
These fields are doing the same thing as the display_name of the new api, we can remove them.
We need to keep the one for res.partner as it's a stored field.
2014-07-25 13:58:59 +02:00
Denis Ledoux 46ef1356d6 [ADD] safe_eval: UNPACK_SEQUENCE and Exception
Allowing UNPACK_SEQUENCE allows the use of the "multi" assignation:
a, b = [1,2]
for a,b in items
2014-07-25 13:00:17 +02:00
Denis Ledoux 133becd966 [FIX] ir_fields: allow accent on selection import
If the selection label (not value) had accents, it wasn't possible to import it using the label having accents
2014-07-25 11:53:30 +02:00
Olivier Dony 6be6a5a801 [IMP] ir.logging: add index on dbname/type, important with high number of log lines 2014-07-25 10:46:12 +02:00
Richard Mathot ee7a9c7621 [REF] Odooification 2014-07-24 16:22:52 +02:00
Olivier Dony 6d2fb3e3ae [FIX] models: check harder that default value is not NULL before setting it
When computing defaults we may end up with
a falsy value that is not None (e.g. '' or False)
That value will be cast to None when being
saved in the database, depending on the column type
(e.g. saving False on a many2one actually stores NULL).

Improve the test to consider the value being written
*after* that conversion, to *really* avoid nonsensical
and expensive queries such as:

    UPDATE table set col = NULL WHERE col IS NULL;
2014-07-24 15:47:34 +02:00
Denis Ledoux b4ef87f1ec [FIX] ir_attachment: _filestore cache ignore uid
replace ormcache_context by ormcache: use the context in the cache key is useless
set skiparg=3 (default skiparg=2) so the uid is not used in the cache key: the filestore path is the same for all database users
2014-07-24 11:53:57 +02:00
Olivier Dony ef53a831c6 [MERGE] Forward-port saas-5 up to a5f7891 2014-07-23 16:58:00 +02:00
Olivier Dony a23994e0ed [FIX] ir.module.module: create module xml id also when auto-discovered
It was only being created during database initialization
2014-07-23 14:42:04 +02:00
Denis Ledoux a5f7891b68 [MERGE] forward port of branch saas-4 up to 5739aebfb1 2014-07-23 13:18:30 +02:00
Olivier Dony 8974e928fa [FIX] fields: do not revalidate field values unless they are being modified
In the previous implementation of the new API fields,
both fields.Selection and fields.Reference were performing
early validation of their `value` as soon as it entered
the cache, either by being read, written, or computed.
This is a source of trouble and performance problems,
and is unnecessary, as we should consider that the database
always contains valid values. If that is not the case it
means it was modified externally and is an exception that
should be handled externally as well.

Revalidating selection/reference values can be expensive
when the domain of values is dynamic and requires extra
database queries, with extra access rights control, etc.

This patch adds a `validate` parameter to `convert_to_cache`,
allowing to turn off the re-validation on demand. The ORM
will turn off validation whenever the value being converted
is supposed to be already validated, such as when reading it
from the database.
The parameter is currently ignored by all other fields,
and defaults to True so validation is performed in all other
caes.
2014-07-23 12:30:24 +02:00
Denis Ledoux 5739aebfb1 [MERGE] forward port of branch saas-3 up to 474eae9a43 2014-07-23 12:14:14 +02:00
Martin Trigaux 1f878f152a [MERGE] forward port of branch 7.0 up to 680f955 2014-07-22 13:39:15 +02:00
sebalix 3f59135dce [FIX] read() method returns None values incompatible with XML-RPC 2014-07-20 16:06:50 +02:00
Richard Mathot 6f1b820d33 [REF] OpenERP --> Odoo in various UI texts (2)
Some things missed by commit 8b67a7202d
2014-07-18 14:59:38 +02:00
rlu-odoo 8b67a7202d [REF] OpenERP --> Odoo in various UI texts
Rebranding has been done in:
- data/demo files
- html templates
- help notices
- comments
- logger messages
- and other various messages

(Commit taken from odoo-dev:8.0-improve-openerp-odoo-rlu at rev 7deaa08)

Closes #1260
2014-07-18 13:45:41 +02:00
Olivier Dony 15174e9a70 [IMP] base, mail: cache user.has_group() + ir.ui.menu.load*()
Loading the menus is the most expensive
operation for an average page load, and
the result does not change often.
The menu filtering already uses a separate
cache based on groups, but the rest of the
loading includes reading actions and
translating menu names, which is also
expensive.

Added a cache keyed on user + user
lang, plus relevant cache invalidation
when any of the following are touched:
access rights, user data including
groups and language, menus or mail.group
subscriptions.

The menu filtering cache is still
useful in parallel has it is invalidated
under different conditions.

User.has_group() is cheap but still
called very often, so it is an easy
win as well, and also frequently
used when rendering page templates.
2014-07-17 18:46:10 +02:00
Christophe Matthieu 6e6f12144d [IMP] model: when the orm create/update a table check if they are at least one row of the table to load column default values 2014-07-17 18:46:10 +02:00
Christophe Matthieu fe64988ae2 [FIX] res.users: use read method to compute default values to don't create browse record and fetch all fields, browse record crash for install or update module 2014-07-17 18:46:09 +02:00
Christophe Matthieu 82a1ea0935 [FIX] model: The user install / update / test is different from the normal mode (no prefetch in test mode) some errors are hidden. 2014-07-17 18:46:09 +02:00
Martin Trigaux 3dec09079e [FIX] ir_values: fallback when no condition
When searching for default values, if we set a condition (e.g. 'type=out_invoice'), fetch also the default values without any condition set. Thanks to the order by clause, the one with a condition have an higher priority than the one without and will not affect existing result.
This fixes default journal/currency on an invoice where the journal is retrieved in the onchange_company_id method (domain is forced). Without this patch only ir.values with a domain set will match, opw 610645
2014-07-17 15:07:58 +02:00
Olivier Dony 562d8129f2 [FIX] mail: less confusing To: header for mailing-list posts
Many mail clients will replace the name in the To:
header with Me if the To: email matches the email
of the user. These users will see To: Me instead of
"Followers of ..." and usually believe this was a
private email from the sender to them.
But when replying they would reply to the whole list.

Fix this by explicitly forcing the To: to be the
mailing list address.
2014-07-17 00:16:12 +02:00
Xavier Morel b1f1596aef [FIX] "prefetching" removing even the records specifically asked for
16d6744 turns out to not be great, because it filters out the todos for
prefetched fields (rather than those just for the field being asked) there are
situations where it ends up not fetching the records it was originally asked
for and breaks a bunch of stuff e.g. unreconcile line in bank statements

Force the ids explicitly asked for back in the fetched set, so that the
prefetch is at most a noop, rco will have to take an actual look at it.
2014-07-16 16:29:24 +02:00
xmo-odoo ec89c9cead Merge pull request #1169 from xmo-odoo/8.0-remove-async-db-create-xmo
Remove asynchronous XML-RPC database creation function
2014-07-16 10:29:21 +02:00
xmo-odoo 16d67445da Merge pull request #1076 from xmo-odoo/8.0-shop-fix-xmo
Fix access rights issues in new API for the shop home page
2014-07-16 10:28:51 +02:00
Xavier Morel f98c610310 [FIX] creation of new threads where a new API environment should be initialized
* fix #1149 courtesy of @andreparames
* remove useless threaded yaml import
* openerp.service.server thread spawning get an API environment further down
  the stack
2014-07-15 13:33:38 +02:00
Xavier Morel 29a6dad803 [REM] threaded yaml import (useless and unused) 2014-07-15 13:21:57 +02:00
xmo-odoo 511efddd02 Merge pull request #1160 from xmo-odoo/8.0-custom-models-xmo
Handling of custom models initialisation
2014-07-15 12:40:35 +02:00
Xavier Morel 92be431236 [REM] asynchronous database creation method
It's broken (though easy to fix) and not very useful, if third parties want to
create databases asynchronously they can handle the asynchronicity on the
client-side (an HTTP request is easy to make asynchronously after all) and
call the synchronous `create_database()`.

fixes #1137, after a fashion
2014-07-15 12:26:55 +02:00
Christophe Simonis a5419ca800 [MERGE] forward port of branch saas-5 up to e0759c1 2014-07-15 11:21:59 +02:00
Christophe Simonis e0759c1350 [MERGE] forward port of branch saas-4 up to de696f1 2014-07-15 10:39:08 +02:00
Christophe Simonis de696f14f8 [MERGE] forward port of branch saas-3 up to 24484c8 2014-07-15 10:38:14 +02:00
Christophe Simonis 24484c8bcd [MERGE] forward port of branch 7.0 up to 7a928b1 2014-07-15 10:36:54 +02:00
Xavier Morel b2ddda47e5 [FIX] missing part of initialization in ir.model and ir.model.fields 2014-07-15 08:56:58 +02:00
andreparames 5b932ec98b Merge 8083afe7c3 into 736c5dd87e 2014-07-14 11:55:01 +00:00
Xavier Morel 7a2961da76 [FIX] ensure all g_inner content is correctly encoded
fixes #1130

* provided `inner` data may or may not have been encoded
* `element.text` is either ascii-compatible `str` or `unicode` when
  non-ascii-compatible, which could force the decoding of utf8-encoded content
  during g_inner's join
2014-07-14 13:44:37 +02:00
Xavier Morel 7c540bc4ee [FIX] exception rendering with pretty printed XML
had not been migrated to lxml
2014-07-14 13:44:37 +02:00
André Paramés 8083afe7c3 [FIX] setup Environment for the report thread 2014-07-14 12:41:07 +01:00
Xavier Morel 3491b7de34 [REM] cache setting in _prefetch_field 2014-07-14 10:45:34 +02:00
Thibault Delavallée 7a928b151a [FIX] tools: mail: fixed last commit, solving an issue with the html2plaintext introduced another issue with notes. Reverting to the first version. 2014-07-11 16:21:01 +02:00
Xavier Morel 7d732b1011 [FIX] broken translation cache for absent translation of 'false' 2014-07-11 15:46:12 +02:00
Christophe Simonis 182acc9274 [FIX] base: make ir_attachment._filestore callable with kwargs 2014-07-11 14:58:32 +02:00
Xavier Morel 269a6ee128 [FIX] filtering out of records which shouldn't be fetched/prefetched
A todo would only filter out records selectioned by the same field's caching,
it should filter out on the whole prefetching selection or an other field
could/would just add it back to the set of records to fetch (and lead to Bad
Things).

Note: this probably deserves a test somehow, but I'm not quite sure how the
todos thing works so...
2014-07-11 14:07:05 +02:00
Xavier Morel 785018cc9c [FIX] only prefetch other cached records with read field uncached during _read_from_database
If expansion of the recordset is done during _prefetch_field, if one of the
prefetches (not the base record(s) but one of those selected by
BaseModel._in_cache_without) can't be read by the current user (due to an
access rule or for field reading reasons, or whatever) the whole read is
failed, even if the record which was specifically asked for could be read on
its own.

By only expanding the read set in _read_from_database, the cache is correctly
set but read() and _prefetch_field() only check the records explicitly asked
for for AccessDenied, prefetched records will only be asked if they are ever
accessed.

fixes #1013
2014-07-11 13:54:01 +02:00
Xavier Morel d5eda984c9 [ADD] demonstrate broken handling of rules access denial in new API 2014-07-11 13:54:01 +02:00
Olivier Dony 924e4b1a08 [MERGE] Fwd-port saas-4 up to e31fd6a 2014-07-11 12:00:42 +02:00
Olivier Dony e31fd6a1e1 [MERGE] Fwd-port saas-3 up to a9d2b65 2014-07-11 11:53:07 +02:00
Olivier Dony a9d2b65da5 [MERGE] Fwd-port 7.0 up to 783b9e1 2014-07-11 11:51:06 +02:00
Martin Trigaux 437116f3c4 [FIX] orm: custom m2m with different label
At rev 84e9a67cdf a check to avoid the creation of ir.model.relation for custom modules was added. The condition is not correct as based on the string instead of the field name. We do not have access to column name at this level but the the m2m relation table do start with x_ for custom fields (see __init__ method).
2014-07-11 11:39:32 +02:00
Christophe Simonis f654a7719b [MERGE] forward port of branch saas-5 up to 73d39a0 2014-07-10 22:49:53 +02:00
Christophe Simonis 73d39a0c8c [MERGE] forward port of branch saas-4 up to a361947 2014-07-10 22:12:16 +02:00
Christophe Simonis a361947143 [MERGE] forward port of branch saas-3 up to a35aec2 2014-07-10 22:02:58 +02:00
Christophe Simonis a35aec2a0b [MERGE] forward port of branch 7.0 up to 6e96ffd 2014-07-10 22:02:01 +02:00
Xavier Morel 19c7380951 [FIX] small potential encoding issue in custom models 2014-07-10 17:34:48 +02:00
Anand-Dharampuriya 5cbc611361 [FIX] Solve some mail issues which are currently present in 7.0 2014-07-10 16:29:54 +02:00
Christophe Combelles 0050a3f797 [FIX] #1065 display_name does not display the address 2014-07-10 14:26:38 +03:00
Raphael Collet 836245564a [IMP] models: iterating over record._cache also returns log_access fields 2014-07-09 15:34:51 +02:00
Raphael Collet 643be98fcf [FIX] models: store FailedValue in cache on log_access fields, too
This should fix an issue discovered by tde when reading all fields on a record
on which you don't have access right:
 - _read_from_database() fetches result and store it in cache
 - read() retrieves values from cache, starting with field 'create_date'...
 - ... which is not in cache, so prefetch that field, read it, which goes into
   an infinite loop

The problem is that _read_from_database() finds out that you don't have access
on the record, and stores a FailedValue in cache on all fields... except magic
fields. Fix the problem by storing the FailedValue on all fields but 'id'.
2014-07-09 15:23:15 +02:00
Raphael Collet ba5f0e7ce5 Merge pull request #1018 from odoo-dev/8.0-fix-display-name-rco
[FIX] models: wrong var used in _compute_display_name(), fixes issue #1002
2014-07-09 10:56:55 +02:00
Raphael Collet ca1be04d7a [FIX] models: wrong var used in _compute_display_name(), fixes issue #1002 2014-07-09 10:26:01 +02:00
Xavier Morel 4ac8682b52 [FIX] False module description blows up in docutils
fixes issue 1005
2014-07-09 08:47:37 +02:00
Raphael Collet 9ccdbcaca3 Merge pull request #989 from odoo-dev/8.0-sql-models-rco
[FIX] models, fields: add model dependencies for models backed up by sql views
2014-07-08 16:27:01 +02:00
Martin Trigaux 84e9a67cdf [FIX] orm: better removal of custom m2m fields
orm: do not try to create ir.model.relation for custom m2m as self._module is either empty (for custom models), either the one of the last inheriting module (which is wrong). The field should be removed manually and should not be impacted by the uninstallation of modules. The removal of the relation table can be done when removing manually the custom field (see rev 6af3193).

ir.model: when removing a model, drop the table with the CASCADE instruction. This will remove left constraints from remaining m2m tables.
This means that dropping a table (either manually removing a custom model or uninstalling a module) will not drop the relation table for a custom m2m field. This is not ideal but better than the previous behaviour (which was to fail the DROP TABLE instruction and keep the table with a few columns and unconsistent data).
2014-07-08 15:56:24 +02:00
Raphael Collet 603bde1b1b [IMP] fields: improve code in former commit 2014-07-08 15:52:02 +02:00
Raphael Collet b05cf32b8f [IMP] fields: add missing case for invalidating fields, when path is None 2014-07-08 15:47:44 +02:00
Raphael Collet 34dac62d32 [IMP] models: add an extension mechanism for attribute _depends on models 2014-07-08 14:52:23 +02:00
Xavier Morel 2f3aa63617 [FIX] compile of rst module descriptions to HTML
lxml (used by the html sanitizer) really does not like documents as unicode
strings with an encoding declaration (which doesn't make sense indeed), yet
docutils with output_encoding=unicode generates one (a stupid one too, says
"encoding=unicode").

Disable the xml declaration altogether when compiling rST module declarations
to HTML.
2014-07-08 14:39:24 +02:00
Martin Trigaux 6af3193d17 [FIX] ir.model.fields: better unlink
When droping a column, remove also the relation table in case of custom m2m field.
The relation table needs to be dropped otherwise an unremovable constraint to the targetted table is kept (and anyway is not needed anymore).
2014-07-08 13:55:48 +02:00
Raphael Collet 3fdc232352 [FIX] fields: add a type to field Id; this fixes #990 2014-07-08 13:29:45 +02:00
Raphael Collet a6b025d6d9 [FIX] models, fields: add model dependencies for models backed up by sql views 2014-07-08 10:16:16 +02:00
Raphael Collet e9fae40faf Merge pull request #976 from odoo-dev/8.0-fix-model-init-rco
[FIX] models: reorganize model instantiation
2014-07-07 20:37:11 +02:00
Fabien Meghazi c0aa86b9ab [FIX] configuration file dbfilter's option has no effect
lp bug: https://launchpad.net/bugs/940439 fixed

bzr revid: fme@openerp.com-20140508075025-yszqmzie1z4n7l4j
2014-07-07 18:08:31 +02:00
Christophe Combelles 740d5c6cd3 [FIX] Fix broken translation cache for absent translation of 'false' 2014-07-07 17:29:11 +03:00
xmo-odoo 957c0cca1c Merge pull request #970 from xmo-odoo/8.0-remove-unnecessary-listifications-xmo
Remove redundant calls to list()
2014-07-07 16:15:23 +02:00
xmo-odoo 48c16e4b26 Merge pull request #969 from xmo-odoo/8.0-fix-weakset-listification-xmo
Unsafe listification of weakref in Python < 2.7.4
2014-07-07 16:15:02 +02:00
Christophe Simonis e5b0933743 [FIX] data-dir management
- sessions are now shared between series.
- use site data dir instead of user data dir if user has no home dir.
- in http and module handling, `data-dir` was used before being
initialized, using the default value instead of user input

(fixes #308, #904)
2014-07-07 15:49:24 +02:00
Raphael Collet 09f094ff7f [FIX] models: reorganize model instantiation, which was broken when adding custom fields 2014-07-07 15:47:27 +02:00
Olivier Dony 139d868c94 [REL] 8.0 RC1 2014-07-07 15:25:42 +02:00
Raphael Collet 130f890215 Merge pull request #964 from odoo-dev/8.0-remove-getattr-rco
[REM] models: remove the magic methods signal_XXX()
2014-07-07 14:49:49 +02:00
krnkris ccc211fa51 [I18N] base: fix Hungarian translations
(Manual rebase of #956, pending update in Launchpad translations)
2014-07-07 14:36:55 +02:00
Xavier Morel efe910569a [REM] unecessary calls to list()
* Either further operations don't really care (e.g. ``str.join`` takes any
  iterable)
* Or they do their own seq (``browse`` calls ``tuple()`` on iterable params)
2014-07-07 14:01:07 +02:00
Xavier Morel ac282e0294 [FIX] unsafe listification of weakref in Python < 2.7.4
Fixes #966

* As a preallocation optimization, ``list()`` calls ``__len__`` on its
  parameter if it's available
* Before Python 2.7.4, WeakSet has a bug[0] where ``len()`` is unsafe: it is
  done by iteration and weakrefs may be removed from the underlying set during
  the iteration

As a result, the safety feature of listifying a WeakSet to ensure we have
strong refs on all items during iteration may blow up.

Wrapping the weakset in a ``iter()`` makes ``__len__()`` invisible and ensures
we're within the IterationGuard[1].

Which now that I think about it means we *should* be able to safely iterate
weaksets in the first place and may not have needed to listify them...

[0] http://bugs.python.org/issue14159
[1] http://hg.python.org/cpython/file/b6acfbe2bdbe/Lib/_weakrefset.py#l58
2014-07-07 13:51:53 +02:00
Raphael Collet 33eb3dffb2 [REM] models: remove the magic methods signal_XXX() 2014-07-07 11:50:30 +02:00
Xavier Morel 798ce97df4 [IMP] raise exception when a DB request fetches ids it was not asked for
Likely caused by a type incoherence e.g. providing an id as string when the
table uses integer ids. Postgres performs an implicit conversion from string
to integer[0], this wasn't much of an issue in the old API, whatever cache was
there would simply not be used, but because the new API's cache is part of its
behavior it has a semantic impact and can lead to infinite recursion.

[0] more precisely from quoted value, which is untyped
2014-07-07 09:59:05 +02:00
Raphael Collet cbe2dbb672 [MERGE] new v8 api by rco
A squashed merge is required as the conversion of the apiculture branch from
bzr to git was not correctly done. The git history contains irrelevant blobs
and commits. This branch brings a lot of changes and fixes, too many to list
exhaustively.

- New orm api, objects are now used instead of ids
- Environements to encapsulates cr uid context while maintaining backward compatibility
- Field compute attribute is a new object oriented way to define function fields
- Shared browse record cache
- New onchange protocol
- Optional copy flag on fields
- Documentation update
- Dead code cleanup
- Lots of fixes
2014-07-06 17:05:41 +02:00
Olivier Dony 34bfa1b44f [MERGE] Forward-port saas-5 up to d9cda97 2014-07-05 01:45:45 +02:00
Olivier Dony d9cda97cf4 [MERGE] Forward-port saas-4 up to 5ceded9 2014-07-05 01:28:19 +02:00
Olivier Dony 5ceded9d69 [MERGE] Forward-port saas-3 up to 4fa30f5 2014-07-05 01:04:19 +02:00
Olivier Dony f3880a8a09 [MERGE] Forward-port of 7.0 up to 64ac1b0 2014-07-04 17:07:53 +02:00
Xavier Morel 40f7175172 [IMP] replace a manual & eager concat by chain.from_iterable(iter) -> iter 2014-07-04 10:58:41 +02:00
Martin Trigaux bf353998f2 [FIX] res_partner: backport of rev 37bf72a
Correctly take the 'use parent address' into account in the onchange. Slightly updated the view that was weird with this parameter. opw 609344
2014-07-03 12:30:48 +02:00
Richard Mathot 04eff4fe3d [TYPO] Stupid typo... 2014-07-03 09:36:46 +02:00
Fabien Pinckaers 0c702bdfa7 Merge pull request #885 from odoo-dev/master-shop-fp
Fixes for perf issues /shop + cleaning pricelists & currencies
2014-07-02 20:34:21 +02:00
xmo-odoo 2c23b0020b Merge pull request #881 from xmo-odoo/master-qweb-lxml-xmo
Convert qweb (Python) to use lxml
2014-07-02 19:28:24 +02:00
Fabien Pinckaers 1ce0b70a02 Speed Improvements 2014-07-02 19:03:10 +02:00
Fabien Pinckaers 5cc81dd64f Fixes 2014-07-02 18:18:29 +02:00
Xavier Morel ce80ad2960 [FIX] don't call render_node on comments (or PIs) 2014-07-02 18:00:03 +02:00
Richard Mathot fbbc3a54e9 [FIX] RML reporting: understandable crash message
When tag <drawString> is misused in an RML report, logs a more explicit
error
2014-07-02 17:30:32 +02:00
Xavier Morel b18d83c0e0 [IMP] convert qweb to use lxml instead of minidom
should be >20x faster at parsing document strings and gain close to 40s on crawling
2014-07-02 16:01:36 +02:00
Olivier Dony c887e53b32 [FIX] web: force seession context reload when reloading client
The goal is to ensure that HTTP requests
done while reloading the client (e.g. the
menu bar, etc.) do not use a deprecated
session context.

Also undo the previous fix from a0ee2b5
as it would cause other issues (e.g.
prevent setting the admin password/lang
when creating a new db using the db manager)
This logic does not belong in the business
methods of res.users.
2014-07-02 15:18:56 +02:00
Antony Lesuisse ed34640d3a [IMP] test display sql query counter 2014-07-01 21:57:55 +02:00
Fabien Meghazi 54a7e9665a [IMP] join stdout and stderr in error report when sass returncode>0 2014-07-01 18:38:01 +02:00
sle-odoo a0ee2b5a5e Merge pull request #848 from odoo-dev/master-fix-session-reset-sle
[FIX] correct context resetting when changing user lang
2014-07-01 17:22:41 +02:00
Fabien Meghazi 0be5fb7d91 Fix sass attribute recognition 2014-07-01 15:21:36 +02:00
Fabien Meghazi 4042135bc4 Merge remote-tracking branch 'odoo/master' into master-sass-in-bundles-fme 2014-07-01 14:26:40 +02:00
Fabien Meghazi a49ebae676 [IMP] Lazy module_boot() loading
Removed 'modules' item in ir.ui.view rendering context.
Replaced by lazy helper get_modules_order
2014-07-01 14:22:56 +02:00
Fabien Meghazi 861e272823 Create and write ir.attachments with superuserid 2014-07-01 14:22:04 +02:00
Olivier Dony 5b83e88c25 [MERGE] Fwd-port of 7.0 up to 3d31341 2014-07-01 12:28:55 +02:00
Martin Trigaux f825b6043b [FIX] rml: avoid reports ending by zero (opw 608073)
Commit b6a7402 (reverted at f8671cb) was almost correct, the PageReset should be added at the end of each stories but only if we have one more stories.
The PageReset will force the page count to be reseted at zero which means that last page of report would have been at zero.
2014-07-01 11:29:22 +02:00
Fabien Meghazi 79195f1800 Add support for the @media attribut in css bundles 2014-07-01 10:02:55 +02:00
Olivier Dony 9132b1d306 [IMP] ir.filters: new filters are local to the menu/action by default
Allow binding an optional `action_id` to filters.
The web client will try to identify the specific
action ID when saving new filters. If no contextual
action exists, the filter is saved globally for
the model.

This will automatically keep filters within their
original menu when there are several menus/actions
leading to a given list of documents.
In some cases the action_id will not match the
filter model, which should be fine (e.g. when opening
a many2one completion popup for model `foo` within
a menu of model `bar`).

It is also still be possible to have a filter apply
to all actions/menus for a given model by manually
deleting the action_id value in the filter
(e.g. via the Manage Filters debug menu).

When updating a filter the action_id value is ignored
so that old global filters will be gradually replaced
by new "local" filters.

Also added an _order to ensure stable ordering of the
filters.
2014-07-01 03:29:05 +02:00
Fekete Mihai aa768850c9 [IMP] l10n_ro: Update Romanian Localization
(Manual rebase+cleanup of PR #720 at 7e9faa6)
2014-07-01 00:45:43 +02:00
Simon Lejeune f8e9fde25b [FIX] correct context resetting when changing user lang 2014-06-30 21:10:15 +02:00
Simon Lejeune 2870af3b49 [FIX] navbar cache: do not use ormcache as it does not handle kwargs. instead, only get the root menu_ids in rendering context 2014-06-30 19:45:12 +02:00
Fabien Meghazi 7990caaf02 Fix another encoding issue 2014-06-30 19:26:14 +02:00
Fabien Meghazi 4f2b5f12fc Fix typo 2014-06-30 19:17:47 +02:00
Fabien Meghazi 45215a231d Fix indentation normalization 2014-06-30 18:41:29 +02:00
sle-odoo 78c2de35c2 Merge pull request #838 from odoo-dev/master-navbar-imp-response-time-sle
[IMP] cache the load_menus method to improve website performances
2014-06-30 17:43:38 +02:00
Antony Lesuisse 0ef85c5a60 [FIX] test phantomjs manually delete localstorage 2014-06-30 17:23:38 +02:00
Antony Lesuisse 3bb7866384 [FIX] test phantomjs clear localstorage before running tests 2014-06-30 16:32:02 +02:00
Simon Lejeune 959caf2596 [IMP] cache the load_menus method to improve website performances 2014-06-30 15:32:53 +02:00
Fabien Meghazi 74e0b948fa Better error management, proper feedback on encoding errors 2014-06-30 14:45:41 +02:00
Fabien Meghazi 499fd91924 Merge remote-tracking branch 'odoo/master' into master-sass-in-bundles-fme 2014-06-30 10:17:44 +02:00
Antony Lesuisse 22f4c315a3 [IMP] automatic fiscal positions for simple cases
Add group of countries res.country.group
Add get_fiscal_position method a method to compute a fiscal position based on company_id, partner_id, delivery_id
The meaning of res.partner.fiscal_position is now a forced a fiscal position.
The default implementation should handle simple cases, like VAT in UE and sales
tax in the US, but the method can be overriden to handle more complex ficals
rules.
2014-06-30 02:12:41 +02:00
Antony Lesuisse 78e044b5c7 [IMP] test impprove HTTPCase opener
Simplify website crawler using the generic HTTPCase opener
2014-06-29 20:04:30 +02:00
Antony Lesuisse f9e24e1918 [IMP] module loading and tests profiling
Add a loglevel 25 to log some INFO to runbot
Add timers for loading and testing
Silence empty test suite
ir_logging use relative pathname, warning this doesnt work for --addons-path modules yet.
2014-06-29 18:58:15 +02:00
antonylesuisse c4c13f1b61 Merge pull request #823 from sebalix/master-fix-db-duplicate
[FIX] dbmanager duplicate db, use shutil.copytree to duplicate the filestore
2014-06-29 04:43:57 +02:00
Antony Lesuisse 4ff1c333d9 [IMP] menuitems cleanups
Remove Tools
Move cron, action rules and subscription to Automation
Move and rename ir_property models to Parameters
2014-06-28 17:32:01 +02:00
seb 34a931f845 [FIX] server: db service, fix the filestore copy when duplicating a database 2014-06-28 16:37:29 +02:00
Fabien Meghazi 9fa77980d7 Merge remote-tracking branch 'odoo/master' into master-sass-in-bundles-fme 2014-06-27 19:40:02 +02:00
Jacques-Etienne Baudoux df40926d2a [IMP] res_partner: more fault tolerant name_create
In case of invalid format such as 'name email@server' (missing chevrons), the parsing would be failing due to a strict behaviour of getaddresses (returns nameemail@server).
With the patch this format is accepted.
opw 607312
2014-06-27 16:48:40 +02:00
Christophe Simonis 1f57528bc6 [MERGE] forward port of branch saas-5 up to 8dfd5ea 2014-06-27 16:14:40 +02:00
Christophe Simonis 8dfd5eab01 [MERGE] forward port of branch saas-4 up to a4bc65c 2014-06-27 16:08:09 +02:00
Christophe Simonis a4bc65cdba [MERGE] forward port of branch saas-3 up to bdc4dd4 2014-06-27 16:06:37 +02:00
Christophe Simonis bdc4dd4a65 [MERGE] forward port of branch 7.0 up to 95cff0b 2014-06-27 16:00:28 +02:00
Amit Vora b592f9e13a [MERGE][IMP] Enable HTML in emails signature
Closes #801
2014-06-27 11:31:24 +02:00
Simon Lejeune 195fa93168 [MERGE] backend front end integration
Render the top-menu (backend menu or frontend editbar) server-side.
Use Fontawesome icons (mail, timezone, chat).
Refactor website widgets, split Website.editorBarin editorbar, ace, editorbar- content, editorbarCustomize.
2014-06-27 11:03:34 +02:00
Fabien Meghazi d7a7ac404d Support for Sass in debug mode 2014-06-26 18:51:55 +02:00
Fabien Meghazi 0d1d225249 Remove ir.ui.view last_update collection and use checksum on rendered bundle 2014-06-26 18:18:12 +02:00
Fabien Meghazi 36e5b418d8 Sass: pull up @imports and remove file imports 2014-06-26 17:40:30 +02:00
Fabien Meghazi 653113094f [ADD] Sass support in bundles 2014-06-26 16:49:51 +02:00
Jeremy Kersten f337bcaa1d [IMP] ir.config.parameters: support group-based access control 2014-06-26 16:27:24 +02:00
Martin Trigaux 55b121ae9f Merge pull request #673 from guewen/lp-1319285-translation-overwrite-module-update
[FIX] loading: overwrite translation on module update if option --i18n-overwrite is set
2014-06-26 16:09:34 +02:00
Simon Lejeune ebb3f1aad1 [FIX] use unique localstorage path when running phantomjs tests
this patch use a unique localstorage per test at al request. It could have used one localstorage per instance or even per module.
2014-06-26 14:06:20 +02:00
Denis Ledoux 7e9dfa774e [FIX] server: db service, drop connection on drop
On database drop or rename, close the existing sql connections
2014-06-26 13:41:29 +02:00
Antony Lesuisse 893aace122 [MERGE] website_sale optional-products 2014-06-26 12:31:15 +02:00
Martin Trigaux 521989f9b7 Merge pull request #572 from odoo-dev/7.0-opw-609069-fka
[IMP] l10n_fr_hr_payroll: make sure the date format of Fiche de paie report is in french

report_sxw: make sure we have a fallback on en_US if trying to load an format in unknown language
2014-06-26 11:49:39 +02:00
fka-odoo d16c57035d [FIX] improved date format in fiche de paie report 2014-06-26 14:44:11 +05:30
Olivier Dony 668b8c2b2d [FIX] Forward-port of saas-5 up to 0d330ca 2014-06-25 18:58:19 +02:00
Olivier Dony 0d330ca25c [MERGE] Forward-port of saas-4 up to fa739ac 2014-06-25 18:44:51 +02:00
Olivier Dony 4d488408b2 [MERGE] Forward-port of saas-3 up to 141e1b2 2014-06-25 18:34:03 +02:00
Olivier Dony 141e1b2615 [FIX] http.dispatch: call handle_exception() even w/ session missing/expired
This gives JSONRequests a chance to return
a proper JSON-RPC result when an HTTPException
is raised downstream, instead of returning a
plain HTML 404 error.
2014-06-25 17:41:40 +02:00
Jaydeep Barot 026e38b48f [REM] Unnecessary `size` parameters on char fields 2014-06-25 17:13:43 +02:00
Mansi Kariya 714037ce7c [FIX] Update of default currencies on some CoA's 2014-06-25 14:17:24 +02:00
Christophe Simonis 1eaa69d342 [MERGE] forward port of branch saas-5 up to 9e8e365 2014-06-25 12:44:13 +02:00
Christophe Simonis 9e8e3653f2 [MERGE] forward port of branch saas-4 up to f68c835 2014-06-25 12:43:41 +02:00
Christophe Simonis f68c83545a [MERGE] forward port of branch saas-3 up to a66f3dd 2014-06-25 12:33:17 +02:00
Christophe Matthieu f0ca6fbf75 merge upstream 2014-06-25 12:02:10 +02:00
Christophe Simonis a1b3e22a17 [MERGE] forward port of branch 7.0 up to 4bfcbb2 2014-06-25 11:35:11 +02:00
Alexandre Fayolle 4bfcbb2a48 [FIX] fields property: do not create empty properties
fixes #595
In the case where a property for the company exists but has no related record (e.g. in case of type m2o with no defined value), not setting a value to this field for a new record would create a new property (as browse_null is not an instance of browse_record)
2014-06-25 10:57:10 +02:00
Fabien Meghazi aa97aaa9d7 [ADD] Assets Bundle versioning and better cache handling
An asset bundle is now versionned with the dates of the
ir.ui.views that compose it and also with the dates of
the files and ir.attachments linked inside the bundle.

This new behavior is reflected in the bundle's lru cache
managment.
2014-06-24 18:52:38 +02:00
Martin Trigaux a6c579c4fc Merge pull request #528 from bwrsandman/patch-1
[FIX] Spawn gevent using same python executable
2014-06-24 16:06:57 +02:00