Commit Graph

7612 Commits

Author SHA1 Message Date
Arthur Maniet 6c61d3c800 [FIX] account: the partner of a bank account can only be a company or an individual not related to a company 2014-10-20 15:02:36 +02:00
Fabien Meghazi 088f9e5b12 [FIX] Do not lose session.db on authentication error 2014-10-17 17:09:01 +02:00
Raphael Collet 83b8e413ff [IMP] test_new_api, test_inherit: improve code of tests 2014-10-16 12:32:23 +02:00
Raphael Collet e9587bf130 [IMP] expression.py: add a check to forbid records in domains
Records in domains cause a "maximum recursion depth exceeded" error when
converted to SQL. Simply add a test to show a better error message.
2014-10-16 10:22:23 +02:00
Olivier Dony 2bdbe255a7 [FIX] config: fix parsing of geoip db paramater, rename command-line option for consistency 2014-10-15 17:26:54 +02:00
Raphael Collet 89031f5de6 [FIX] models: simplify partial setup of fields, let it crash silently
The setup of relational fields may be problematic, as they may refer to unknown
models via custom relational fields.  In a partial setup, do not try to skip
the field setup, but let it go and silently catch any exception if it crashes.
2014-10-15 11:39:12 +02:00
Raphael Collet 94e7dc6050 [FIX] models: do not look up the registry class when building cls._fields 2014-10-14 16:17:23 +02:00
Christophe Simonis 2e3f59181d [MERGE] forward port of branch saas-3 up to db75994 2014-10-14 15:13:14 +02:00
Raphael Collet 43abcb02ba [FIX] models: in _add_field(), set the field as an attr before setting it up
In the case of custom fields, the field's parameters were set up without the
field being present in the class hierarchy.  Because of this, the parameter
inheritance mechanism was missing the field itself.  As a consequence, custom
selection fields ended up without selection, for instance :-/
2014-10-14 11:56:59 +02:00
Olivier Dony c0644a5474 [FIX] read_group: date format: use natural year along with month names, do not mix with ISO week-year
The ISO week-year notation can produce confusing values
when the first week of the year is so short that it
becomes week 0 and is considered the last week of the
previous year, depending on the locale.

For instance, using ISO notation:
  'W53 2015' == dates.format_date(
      date(2015,1,1), format="'W'w YYYY", locale='en_GB')
  'W53 2005' == dates.format_date(
      date(2006,1,1), format="'W'w YYYY", locale='de_DE')

This is surprising but actually valid.

However it definitely yields wrong output when combined with
months formats:
  'January 2014' == dates.format_date(
      date(2015,1,1), format="MMMM YYYY", locale='en_GB')

As a result we must always use `y` to denote the year in
any date format, *except* when it is combined with the
week number `w`, in which case we must use `Y`.

See the documentation at:
   http://babel.pocoo.org/docs/dates/#date-fields
2014-10-13 19:15:37 +02:00
Jeremy Kersten c8e14f301f [FIX] GeoIP - allow to specify the path to GeoIP in the server config.
--geoip_db='the_path'  which can be used via openerp.tool.config['geoip_database']
2014-10-13 16:47:12 +02:00
Raphael Collet 41b55082ba [FIX] models: on update, call inverse function on field even when it is stored
The inverse function of a stored computed field was not called when creating or
writing on a record with such a field.
2014-10-13 13:45:52 +02:00
Raphael Collet 5db84cb07e [IMP] models: do not use compute methods to determine default values anymore
Compute methods could give results that should not be considered as default
values.  For instance, a related field usually defaults to a null value, which
is then set to the field with its inverse method by create().  This may violate
a non-null constraint if the original field is required.  Therefore, compute
methods are no longer used to determine default values.
2014-10-13 13:44:07 +02:00
Raphael Collet 044ed06fec [FIX] models: do not prefetch fields to recompute, and recompute once only
The method _prefetch_field() was accidentally prefetching fields to recompute;
which was skipping the actual recomputation, since a value was put in cache.
But sometimes the field's value was fixed by an extra recomputation of the
field.  Here we remove the extra recomputation and fix the cache corruption.
2014-10-13 12:38:59 +02:00
Olivier Dony edd94b623e [MERGE] Forward-port 7.0 up to 1b49a87 2014-10-10 19:21:18 +02:00
Olivier Dony 1b49a87619 [FIX] ir.mail.server: restore parsing of multiple RFC2822 addresses including non-ASCII chars
Rev f2cf6ced1 modified RFC2822 parsing in order to better support
unicode characters inside the Name part of an address header.
However the patch broke handling of multiple addresses (comma
separated) - silently discarding all recipients except the
first one, as soon as any non-ASCII character was present.

This patch restores the functionality while preserving the
fix from f2cf6ced1, and simplifies the code using email.utils
utility functions.

Fixes (again) lp:1272610, OPW 607683
2014-10-10 18:32:00 +02:00
Jeremy Kersten fc47823ab2 [IMP] ir_qweb: remove the option 'only_date' introducted in cefc9ad8e3. Now we can use widget='date' to do the same thing. That keeps the same behaviour that in the backend.
<span t-field=model.datetime_field t-field-options="{'widget': 'date'}"/>
2014-10-10 16:20:10 +02:00
Denis Ledoux eeb1f0355c [FIX] res.users: exactly match login when operator in ilike, equal 2014-10-09 18:57:37 +02:00
Raphael Collet 8a9027edd1 [IMP] fields: do not force required=True on related fields
This may cause issues if the field is stored: non-null constraint will prevent
saving records when no value is provided.
2014-10-09 17:18:28 +02:00
Raphael Collet ab8bd8066a [FIX] models: in _create() and _write(), mark fields to recompute earlier
An issue occurs when a constraint is checked before computed fields are marked
for recomputation: the constraint will read the field's current value, which
may be wrong.  If the field is marked soon enough, the constraint will trigger
the recomputation and use a correct value.
2014-10-09 17:14:34 +02:00
Xavier Morel bc59cfce61 [IMP] doc: add testing reference and improve docstrings 2014-10-09 15:38:36 +02:00
Raphael Collet 1c9ed9f534 [IMP] fields: rename attribute 'copyable' into 'copy' 2014-10-09 15:05:15 +02:00
Raphael Collet 8ddf145559 [IMP] fields: do not copy field objects anymore, but make new instances instead
Because of the parameter overriding mechanism implemented by fields, it is no
longer necessary to copy field objects.  It is even better to no copy them in
the case of related fields.
2014-10-09 15:05:15 +02:00
Martin Trigaux bd52298073 [IMP] mail: parsing emails with several html parts
If an email contains several text/html parts inside a multipart email, the previous code was only keeping the last content part.
The Content-Type: multipart/mixed allows several independent part (RFC1341 7.2.2), so two html is technically valid.
With this patch, the two parts are concatenated. (opw 614755)

Modify append_content_to_html regex to make sure the regex keeps the content of the html instead of removing it.
e.g.: "123 <html> 456 </html> 789" used to be stripped to "123  789" while we expect "123 456 789"
2014-10-09 13:53:23 +02:00
Raphael Collet be894166ef [IMP] fields: add assertions to check parameters (comodel_name, size, digits) 2014-10-09 10:50:40 +02:00
Raphael Collet 36174fcc6e [IMP] fields: set the default value to the closest field.default or _defaults
This solves a subtle issue: in the following case, the class Bar should
override the default value set by Foo.  But in practice it was not working,
because _defaults is looked up before field.default.

    class Foo(models.Model):
        _name = 'foo'
        _columns = {
            'foo': fields.char('Foo'),
        }
        _defaults = {
            'foo': "Foo",
        }

    class Bar(models.Model):
        _inherit = 'foo'
        foo = fields.Char(default="Bar")

The change makes field.default and the model's _defaults consistent with each
other.
2014-10-09 09:18:02 +02:00
Raphael Collet 3f31081bc2 [IMP] fields: make attribute 'default' callable 2014-10-09 09:18:02 +02:00
Olivier Dony 7439421ad2 [I18N] Update translations from Launchpad 8.0 branches 2014-10-08 17:52:25 +02:00
Xavier Morel 99d740ad7d [IMP] new-api-ify 'trigger' server action 2014-10-08 17:30:16 +02:00
Xavier Morel 8cfe731f76 [FIX] actions: match the behavior of multi actions with its help text
also fix the corresponding text and add explicit sequence number because I
don't understand what the bloody hell it does without that, except that it's
not the right thing. At all.
2014-10-08 17:29:36 +02:00
Raphael Collet 619a844428 [FIX] fields: in to_column(), returning self.column is generally not correct
Consider the following example:

    class Foo(models.Model):
        _name = 'foo'
        _columns = {
            'state': fields.selection([('a', 'A')]),
        }

    class Bar(models.Model):
        _inherit = 'foo'
        state = fields.Selection(selection_add=[('b', 'B')])

The attribute 'column' of the field does not have the full selection list,
therefore the column object cannot not be reused, even a copy of it.  The
solution is to systematically recreate the column from the field's final
specification, except for function fields that have no sensible way for being
recreated.
2014-10-08 16:39:59 +02:00
Raphael Collet 10142d7dc7 [FIX] openerp/osv/fields: fix method to_field() to pass some falsy parameters.
For instance, the attribute copy=False was not passed when converting the
_column to a Field.  Simply make sure those parameter are always passed.
2014-10-08 16:39:59 +02:00
Denis Ledoux c741d45ac1 [FIX] ir_actions: ids of unlink method can either be an ID list or one ID 2014-10-07 16:07:46 +02:00
Christophe Simonis 8ff7230e2d [FIX] migration: test if package is installed using its state.
checking if there is an installed version set is not enough because this field is not reset when the module is uninstalled
2014-10-07 14:57:26 +02:00
Olivier Dony 4202ea7c19 [FIX] ir.ui.view: creating custom views in backend did not compute view type
When creating new records in backend all field values are
sent to the server, including empty fields.
2014-10-07 13:12:38 +02:00
Xavier Morel 9cd2693286 [FIX] JS tutorial 2014-10-07 10:23:50 +02:00
Xavier Morel 5954335222 [ADD] pyqweb-specific stuff, pyqweb APIDoc 2014-10-06 19:13:46 +02:00
Xavier Morel c5dca416da [IMP] qweb: foreach handling
* fix mapping handling to match JS impl: current value set as _value instead
  of being lost
* add handling of integer parameter
* only set _size and _last if current iterable is sized
2014-10-06 19:13:45 +02:00
Xavier Morel 2ffcff8fa9 [ADD] qweb: handling of t-att=mapping
Changed render_att_att to return an iterable of pairs instead of a pair, and
dispatched t-att on whether its result is a Mapping.

Also changed qweb test runner so it uses ordereddict for JSON mapping in
params, otherwise iteration order (and thus order of attributes in output) is
unpredictable and results don't/can't match expectations (as both are
strings).

Note that this relies on JS implementation details wrt iteration order of
mappings. Tests would probably be somewhat less brittle if rendering output
was parsed to XML... if that's possible (?)
2014-10-06 19:13:44 +02:00
Xavier Morel 14a677090b [ADD] running of XML cases to python qweb 2014-10-06 19:13:43 +02:00
Xavier Morel 494dcbd0e3 [IMP] qweb doc, tests
* document qweb based (mostly) on JS version
* convert JS qweb tests to (mostly) language-independent XML so they can be
  used for JS and Python implementations
* add some more tests (e.g. precedence between t-value and body in t-set)
* remove ``t-import``
* fix parity in foreach(dict) (and rename some variables to make array and
  object versions more similar)
2014-10-06 19:13:43 +02:00
Martin Trigaux 8843974d04 Forward port of branch saas-3 up to fc9fc3e 2014-10-06 15:52:23 +02:00
Martin Zlámal fc9fc3e0b8 [FIX] common.py: missing import
It was not possible to call "about" function via remote control
(XML-RPC), because it contains string translation without import.
2014-10-06 12:28:45 +02:00
Raphael Collet afb91fde81 [FIX] models: fields_get() shall not return info about fields not set up yet
When processing data files during a module installation/upgrade, not all fields
are set up yet, in particular relational custom fields.  Make fields_get()
ignore those fields, so that views can be created/updated and validated,
provided they do not refer to those fields...
2014-10-06 11:56:03 +02:00
Denis Ledoux cd6dba5257 [MERGE] forward port of branch 7.0 up to 9066da3 2014-10-03 12:13:07 +02:00
Denis Ledoux 7cbd524448 [FIX] ir_translation: apply tools.ustr on the trad itself
tools.ustr(None) returns u'None', res[0] can be None.
2014-10-03 12:08:49 +02:00
Denis Ledoux 76fdbec3bb [MERGE] forward port of branch 7.0 up to 6d4e1cc 2014-10-03 11:22:47 +02:00
Denis Ledoux 6d4e1cc73e [FIX] ir_translation: remove control characters from translations
This is possible that control characters (such as line returns) are inserted wrongly in translations
These should not influence on the web interface
2014-10-03 11:20:19 +02:00
Denis Ledoux 1c6c289f7b [FIX] api: clear environments on module installation 2014-10-02 17:46:25 +02:00
Denis Ledoux 40c8dd9a28 [FIX] ir_qweb: search assets as superuser
A security has been introduce in eb9113c04d to restrict access to orphan attachments to employees only

Assets need to be build and accessed as superuser, thus
2014-10-02 16:36:17 +02:00
Denis Ledoux 14f3085776 [MERGE] forward port of branch saas-3 up to 77500e5 2014-10-02 15:36:58 +02:00
Denis Ledoux 77500e54ec [MERGE] forward port of branch 7.0 up to eb9113c 2014-10-02 15:34:02 +02:00
Denis Ledoux eb9113c04d [FIX] ir_attachment: restrict access to orphan attachments to employees 2014-10-02 15:17:48 +02:00
Jeremy Kersten cefc9ad8e3 [IMP] ir_qweb: allow to display a datetime like a date 2014-10-02 13:22:39 +02:00
Christophe Simonis a1eb27b8ef [FIX] migration: allow debugging of migration scripts + avoid useless copies 2014-10-01 16:34:13 +02:00
Raphael Collet 53ff84493f [IMP] fields: allow sorting on inherited field in list views 2014-10-01 16:00:44 +02:00
Raphael Collet a69996b50c [IMP] fields: split multi-purpose '_origin' into 'column' and 'inherited'
This makes it easier to determine when a field interfaces a column, and when it
implements an inherited field (with _inherits).
2014-10-01 16:00:44 +02:00
Raphael Collet 34ba5154e2 [IMP] fields: split the default value from the compute function
This separation allows to set a default value on a related field, for instance.
2014-10-01 09:24:09 +02:00
Denis Ledoux 30a0814159 [FIX] fields: copy origin to avoid sharing field objects between registries
Fix a bug introduced in revision f229974, where shared columns objects are
systematically reintroduced in registries.
2014-09-30 14:32:35 +02:00
Alexandre Fayolle 20267aa06c fix exception message in report seachr
when we get to the raise statement, `r` is `None`, so displaying it in the
exception message is useless. `name` is what we want to show.
2014-09-30 11:35:05 +02:00
Olivier Dony a01ce6a127 [MERGE] Forward-port of 7.0 up to 9b1a9c9 2014-09-29 19:39:02 +02:00
Olivier Dony 5e248f09c7 [FIX] tools: remove useless attributes 2014-09-29 18:41:58 +02:00
Olivier Dony 9b1a9c9518 [FIX] tools: remove useless attributes 2014-09-29 17:39:01 +02:00
xmo-odoo 77a0ca6864 Merge pull request #2620 from savoirfairelinux/8.0-http-unicode
Fix two possible UnicodeDecodeError when an exception occurs
2014-09-29 15:24:22 +02:00
Sandy Carter e6dd2a63c1 Fix two possible AsciiErrors when an exception occurs
Signed-off-by: Sandy Carter <sandy.carter@savoirfairelinux.com>
2014-09-29 09:05:58 -04:00
Denis Ledoux edf679cfab [REVERT] tests added in forward port e2e60bf4eb
This is related to the revert 333852e19d
2014-09-26 22:23:46 +02:00
Denis Ledoux 07ee2a1de9 [MERGE] forward port of branch saas-3 up to 39bb45a 2014-09-26 21:58:06 +02:00
Denis Ledoux 39bb45a8ea [MERGE] forward port of branch 7.0 up to 333852e 2014-09-26 21:32:40 +02:00
Denis Ledoux 333852e19d Revert "[FIX] product,float_utils: perform ceiling via float_round with new rounding_method UP"
This reverts commit d4972ffdb6.

Seems to break some cases, at least in _product_reserve from stock/stock.py

Actual use case:

SELECT product_uom, sum(product_qty) AS product_qty FROM stock_move WHERE location_dest_id=%s AND location_id<>%s AND product_id=3645 AND state='done' GROUP BY product_uom;
returning 1 | 6

SELECT product_uom,-sum(product_qty) AS product_qty FROM stock_move WHERE location_id=%s AND location_dest_id<>%s AND product_id=%s AND state in ('done', 'assigned') GROUP BY product_uom;
returning 1 | -6

results += cr.dictfetchall()
    total = 0.0
    results2 = 0.0
    for r in results:
        amount = uom_obj._compute_qty(cr, uid, r['product_uom'], r['product_qty'], context.get('uom', False))
        results2 += amount
        total += amount
Total = 1, amount = -5

It should actually be
Total = 0, amount = -6
2014-09-26 21:21:06 +02:00
Christophe Matthieu 77c41cc5cb [FIX] website: 'Display Editor Bar on Website' group stopped working at commit a2ef044c47
The Edit button never appeared anymore for these users.
The idea was that they should see an edit button with
limited editing capabilities depending on their other
access rights.
For example, someone with only Sales Manager access and
'Display Editor Bar on Website'
would be able to edit online quotes from the website_quote
module, but not change the actual website pages or menus,
for instance.
2014-09-26 16:50:34 +02:00
Christophe Simonis a3704beefb [FIX] base: correct non-copy of `login_date` + adapt tests 2014-09-26 13:54:37 +02:00
Christophe Simonis e2e60bf4eb [MERGE] forward port of branch saas-3 up to fe8106f 2014-09-26 12:53:59 +02:00
Christophe Simonis fe8106fb85 [MERGE] forward port of branch 7.0 up to af37b30 2014-09-26 12:33:17 +02:00
Denis Ledoux af37b3022b [FIX] cron: doall false by default
As in most cases, we do not want this doall
2014-09-26 10:17:50 +02:00
Denis Ledoux 074c7b6c25 [FIX] res_users: do not copy login_date when duplicating users 2014-09-25 17:00:59 +02:00
Denis Ledoux 76067367b2 [MERGE] forward port of branch 7.0 up to 5f6d324 2014-09-25 15:10:37 +02:00
Raphael Collet 330a3ff6ea [IMP] models: when checking for data in a table, do not use column 'id'
Replace the query "SELECT min(id) FROM xxx" by "SELECT 1 FROM xxx LIMIT 1".
Both requests are as efficient, and the second one does not crash if column
'id' is missing.
2014-09-25 10:37:28 +02:00
Raphael Collet 1f15055de3 [FIX] fields: a function field with fnct_search should be searchable 2014-09-24 18:41:20 +02:00
Cedric Snauwaert d4972ffdb6 [FIX] product,float_utils: perform ceiling via float_round with new rounding_method UP
Modified product ceiling() to use float_round() with special mode
for rounding UP (away from zero), avoiding pathological cases where
float representations errors were ceiling to the superior unit.

Also added correspding tests for rounding_method=UP

Fixes issue #1125, and replaces PR #1126.
2014-09-24 17:11:25 +02:00
Raphael Collet 24f26c0eeb [FIX] ir_models: fix registry when we add/remove/modify a custom model/field 2014-09-24 15:30:37 +02:00
Olivier Dony b74d830eb2 [I18N] Update translation templates with latest term changes 2014-09-23 19:13:50 +02:00
Olivier Dony 1c5b5e4290 [I18N] Update translations from Launchpad 8.0 branches
server: rev. 26 rev-id launchpad_translations_on_behalf_of_openerp-20140923072744-tkfs0yinu8msjh09
addons: rev. 39 rev-id launchpad_translations_on_behalf_of_openerp-20140923072715-5j7qvnuvmmb1zzy1
web: rev. 23 rev-id launchpad_translations_on_behalf_of_openerp-20140923072757-jvh9l6r2x0vfcyhb
2014-09-23 13:42:05 +02:00
Martin Trigaux 152c5c2b56 [IMP] base: safer locking at user login
When a users connects, a lock is taken on the res_user table to modify the last login date. If another running transaction uses a foreign key to res.users (e.g. write_uid column), postgres may detect the update as a concurrent update and rollback the transaction.
In pg 9.3, the lock_strength parameter 'NO KEY' allows a weaker lock which is less likely to break another transaction.
Fixes #552
2014-09-22 18:18:41 +02:00
Christophe Simonis c6290988ce [FIX] models: only check existance of inverse_field for one2many fields 2014-09-22 17:05:07 +02:00
Christophe Simonis dcca9b52c7 [FIX] models: correct lazy loading of manual fields 2014-09-19 16:51:29 +02:00
yingliu4203 fb4db6c938 [FIX] Packaging: Wndows: wrong handler used when logging to file 2014-09-19 11:17:13 +02:00
Olivier Dony 990d05e78d [REL] Odoo 8.0 2014-09-18 12:11:18 +02:00
Olivier Dony 53aa92d3c9 [I18N] Update translations from Launchpad branches 2014-09-18 11:47:16 +02:00
Thibault Delavallée 7cad4baa84 [FIX] [CLEAN] Various: fixed / cleaned use of dict.fromkeys.
Indeed using fromkeys with a list / dict as argument leads to the creation
of shared list / dict. This could create some ugly side effects when
used in loops. This commit fixes or cleans this kind of statement to avoid
unwanted side effects.
2014-09-18 11:18:30 +02:00
Martin Trigaux f0c3856be2 [IMP] gamification: allow to select fields of inherited models 2014-09-18 11:12:15 +02:00
Martin Trigaux 423a9f3011 [ADD] base: list of inherited models on a ir.model
This field is needed to retrieve the list of inherited fields (instead of only the fields of a current model) of a model using domain such as ('model_id', 'in', model.inherited_model_ids) on ir.model.fields
2014-09-18 11:12:15 +02:00
Raphael Collet 764c5acd81 [IMP] fields: reset decimal precision on new-style fields
When a decimal_precision record is created/modified, the float fields of the
models in the registry must be reset.  This was done on old-API columns only.
It is now handled by the new-API fields.
2014-09-18 11:11:19 +02:00
Simon Lejeune d9e72a3716 [FIX] Package: Debian, Windows: more odooification; Debian: correct Packages.gz 2014-09-18 00:17:32 +02:00
Fabien Meghazi 57ad514bb2 [FIX] Image resizing bug 2014-09-17 17:38:35 +02:00
Olivier Dony e5bff82aff [MERGE] Forward-port saas-5 up to f9bcd67 2014-09-17 16:39:06 +02:00
Denis Ledoux f9bcd67f5b [MERGE] forward port of branch saas-3 up to b6e6b57 2014-09-17 16:25:38 +02:00
Denis Ledoux b6e6b57326 [FIX] orm: typo during forward port 60a82133cc 2014-09-17 16:24:40 +02:00
Raphael Collet 6e0c73d2ad [FIX] fields: make convert_to_cache() more robust with inverse one2many
When a one2many field uses an integer field as inverse, the onchange method on
the second model may receive a dictionary for the value of the integer field.
This is because the client expects that field to be a many2one.
2014-09-17 16:01:02 +02:00
Fabien Meghazi 0084646475 [IMP] Refactor ir.ui.view's read_template cache invalidation 2014-09-17 15:52:47 +02:00
Olivier Dony c926b54a49 [MERGE] Forward-port saas-3 up to 09ab2d4 2014-09-17 15:16:30 +02:00
Olivier Dony 09ab2d4109 [MERGE] Forward-port 7.0 up to 938502a 2014-09-17 15:13:42 +02:00
Olivier Dony 938502aa37 [FIX] loading: always process auto-installed modules for new databases
If the server was started without -i or -u and
happened to initialize a fresh database,
auto-installed modules that depend
on `base` only would stay in status "to install"
without actually being installed (until the next
installation round was triggered).
This was of little consequence in 7.0, but causes
a crash in 8.0.

Fixes #953
2014-09-17 15:11:01 +02:00
Olivier Dony 5bfad4dd52 [IMP] base: show local modules in Settings until apps.odoo.com is migrated for 8.0 2014-09-17 14:37:29 +02:00
Denis Ledoux 47c3205229 [FIX] ir_ui_view: Active (boolean) should not be required
If so, impossible to uncheck the box in the webclient
2014-09-17 13:55:00 +02:00
Denis Ledoux 60a82133cc [MERGE] forward port of branch 7.0 up to f5f7609 2014-09-17 13:39:13 +02:00
Denis Ledoux f5f76094a7 [FIX] orm write: do not try to store computed & stored fields for relational records deleted by *2many fields
opw-613772
2014-09-17 13:32:30 +02:00
Fabien Meghazi 11d0970721 [FIX] double html escaping in qweb 2014-09-16 21:32:37 +02:00
Fabien Meghazi 7bc7757ec3 [IMP] add `url_for` hook to bundle urls 2014-09-16 19:55:00 +02:00
Fabien Meghazi 954f20c800 [ADD] image_save_for_web() format argument 2014-09-16 19:55:00 +02:00
Fabien Meghazi 7893645d9c [ADD] ir.qweb render_attribute() hook for postprocessing 2014-09-16 19:55:00 +02:00
Fabien Meghazi 89362bd6cd [ADD] tools.image_save_for_web() helper for image compression 2014-09-16 19:55:00 +02:00
Fabien Meghazi 3f27066019 [IMP] Compress resized /website/image's
Refactored and fixed tools.image_resize_image() that converted to RGBA
after making thumbnails, resulting in bad looking picture in case the
source is in 'P' mode (indexed palette)
2014-09-16 19:55:00 +02:00
Fabien Meghazi 6fd3982e23 [ADD] http.send_file() helper 2014-09-16 19:54:59 +02:00
Olivier Dony 3caafac8c0 [FIX] ir.ui.view: match translated terms without heading/trailing whitespace
As the whitespace is stripped when exporting terms
to translate, it must be done as well when matching
translations at runtime.

Fixes issue #1755 partly
2014-09-16 17:46:25 +02:00
Olivier Dony b7a2cc13ba [FIX] ir.translation: translated terms within view definitions were not loaded
The changes for QWeb template translation have introduced
res_id values in PO comments for all `#: view:` terms, as
the real database id needs to be resolved when loading them.

For non-QWeb views this is not necessary and actually caused
the terms to be dropped when the res_id could not be resolved.

Rather than having a different PO comment format for QWeb and
non-QWeb views, we can extend the QWeb hack to force the
res_id to 0 for non-QWeb views.

Fixes issue #1755
2014-09-16 17:46:25 +02:00
Raphael Collet f2299749fe [FIX] models: make field inheritance work when source field is defined in old api 2014-09-16 16:03:16 +02:00
ssh-odoo acdb43b6cb [REM] report: remove openerp/report/pyPdf
Distributing our version of pyPdf is not required anymore since we
introduced the new reporting tool.

In order to keep reports working, the standard python library
`python-pypdf` has to be installed instead (through pip or your
distribution's package manager)
2014-09-16 15:42:02 +02:00
Denis Ledoux d6741c8b54 [FIX] fields: convert_to_read, handle missing many2one foreign keys 2014-09-16 12:29:37 +02:00
Raphael Collet 2cbdd7ab0e Merge branch 'acsone-8.0-onchange-one2many-test': add test for onchange on one2many field 2014-09-16 10:56:43 +02:00
Raphael Collet 8fc7cf74fc [FIX] models: improve implementation of _compute_display_name()
The method was expecting that name_get() returns complete and in-order values.
Because of this, some records in the recordset could end up without a value.
2014-09-16 09:36:58 +02:00
Raphael Collet e724f3adec [FIX] fields: in *2many.convert_to_cache, fix the effect of command "1" 2014-09-15 15:31:30 +02:00
Martin Trigaux 32f5168974 [FIX] orm: do not drop foreign keys of transient models
During the update of a module, the existing foreign keys are dropped if they have a different ondelete_rule than the one specified on the field.
The foreign keys for many2one transiant -> non-transiant are created with cascade rule by default (see `m2o_add_foreign_key_checked` method) so the check needs to be realised in the same conditions.
2014-09-15 15:24:53 +02:00
Samus CTO 176e14d2bc [IMP] api: compute methods cannot depend on field 'id'
This feature hasn't been implemented because of complexity problems.
Therefore, we should not allow the developer to use it.
2014-09-15 15:06:44 +02:00
Denis Ledoux 51e7e03502 [MERGE] forward port of branch saas-5 up to 163d7f5 2014-09-15 14:25:02 +02:00
Denis Ledoux 163d7f5a53 [MERGE] forward port of branch saas-3 up to b5b7dcc 2014-09-15 14:23:58 +02:00
Christophe Simonis 780dd9891f [MERGE] forward port of branch saas-5 up to 7eab880 2014-09-15 14:00:02 +02:00
Christophe Simonis 7eab880660 [FIX] orm: correct read_group() on models with `_group_by_full` (introduced by previous forward-port)
also add tests of `_group_by_full` functionality
2014-09-15 12:09:35 +02:00
Denis Ledoux 782fec88ca [MERGE] forward port of branch 7.0 up to b601015 2014-09-15 11:58:10 +02:00
Denis Ledoux b601015800 [FIX] tools: restrict available attributes 2014-09-15 11:55:53 +02:00
Christophe Simonis 56f2b7ae0f [MERGE] forward port of branch saas-3 up to fdc6271 2014-09-12 18:53:48 +02:00
Daniel Reis ec0b770ed3 [IMP] modules: add support for loading module description from README.{md,rst,txt}
Showcase the feature by moving auth_ldap's description to README.rst

(Manual rebase of PR #1759)
2014-09-12 18:31:32 +02:00
Olivier Dony ddc78626e1 [IMP] ir.model:.fields allow setting ondelete=restrict foncustom fields 2014-09-12 17:51:56 +02:00
Christophe Simonis fdc62713a5 [MERGE] forward port of branch 7.0 up to 9b1cdea 2014-09-12 17:28:55 +02:00
Raphael Collet 7c0387c952 [FIX] fields: in computed fields, handle AccessError and MissingError
When computing a field on a recordset, a subset of the records may be missing
or forbidden by access rules.  In that case, evaluate the compute method record
by record, and mark failed records as such in cache.
2014-09-11 11:57:18 +02:00
Raphael Collet 85533e1841 [FIX] models: in onchange(), do not send a field value if it has not changed
The method onchange() executes onchange methods in cascade.  Suppose onchange()
is called and a field F=1 in the form.  If an onchange method set F=2, that
value is put in the result variable.  If another onchange method set it back to
F=1, the binding F=2 must be removed from the result variable.

Fixes #2309
2014-09-11 11:45:23 +02:00
Martin Trigaux f2cf6ced17 [FIX] mail: encoding of sender name with unicode
When sending an email, both formats 'Name <email>' or '"Name" <email>' can be used for fields 'From', 'To' and others. If the name contains unicode characters, a regex only matching '"Name" <email>' was used to encode the name with RFC2047. That meant that the name was not encoded and eventually dropped, using only the email part.
Instead of using a limited regex, use the parseaddr method from email library.
Fixes lp:1272610, opw 607683
2014-09-10 17:36:00 +02:00
Raphael Collet ad14acab32 [FIX] models: in method onchange(), check for record dirtiness only on *2many fiels
Cascading onchanges can be caused by a related field computed in cache.  This
causes a bug in sale order lines, were setting the uom field forces reading
product fields, which are inherited from product templates.  The inherited
fields are computed as related fields, which marks the product record as dirty.
This subsequently triggers an onchange on the product field, which resets the
uom field!
2014-09-10 14:26:12 +02:00
Denis Ledoux 2459cd5dd1 [FIX] ir_attachment: attachements removed on record unlink 2014-09-10 12:18:14 +02:00
Raphael Collet 7428464004 [FIX] openerp/osv/fields: disable prefetching when reading inverse of one2many fields
This fixes issue #2146.  The inverse of a one2many field can be an inherited
field (_inherits).  In that case, we cannot read its value with a simple
database query.  Instead, we let the related field read it, but for performance
considerations we disable the prefetching of other fields.
2014-09-10 09:41:36 +02:00
Denis Ledoux b1f4a61705 [MERGE] forward port of branch 7.0 up to 8dff247 2014-09-09 18:23:32 +02:00
Simon Lejeune 2266a96420 [FIX] ir_qweb: contact widget: properly pass the context when browsing the contact
As the context was not transferred, it was never translated.
2014-09-09 18:16:21 +02:00
Denis Ledoux e447a46ec8 [MERGE] forward port of branch 7.0 up to 33e0910 2014-09-09 18:02:30 +02:00
Denis Ledoux 8dff247096 [FIX] orm, read_group: read_group_fill_results handle no_leaf 2014-09-09 16:47:40 +02:00
Christophe Simonis e9a4603cb4 [FIX] fields.py: One2many fields only set inverse field on Many2one fields 2014-09-09 13:28:48 +02:00
Christophe Simonis ab6318e538 [FIX] base: ir.model.data.name_get() respect expected behavior.
name_get() must return a value for each ids and keep order of ids.
2014-09-09 13:28:47 +02:00
Raphael Collet ab3ec1ef6c [IMP] openerp/http.py: accept mimetype application/json-rpc for json-rpc calls 2014-09-09 10:11:33 +02:00
Xavier Morel c5fbb47abf [ADD] doc: model inheritance stuff 2014-09-09 09:19:32 +02:00
Olivier Dony fac96241df [I18N] Update 8.0 translations with latest changes from Launchpad 2014-09-08 19:04:25 +02:00
Olivier Dony d32d120a0a [MERGE] Forward-port of saas-5 up to 9ce08b7 2014-09-08 16:54:10 +02:00
Olivier Dony 491162e653 [FIX] ir.qweb: consider empty cached bundle as a cache miss
Sometimes a cached bundled could be missing in the
ir.attachment filestore (for example after copying
a database for test purposes without duplicating
the filestore as well).
When this happens ir.attachment will return an empty
file contents ; treat this as a cache miss.

This means empty bundles would not be cached, which
is not a big issue - there is little benefit in
caching them, and they should not be common nor
useful.
2014-09-08 16:52:42 +02:00
Olivier Dony a03dfefda9 [FIX] ir.attachment: less non-transactional side-effects during deletion
When deleting filesystem-backed attachements, the
deletion on the file-system is not transactional.
In the event of a transaction rollback, the file
deletion would not be rolled back, which is a
dangerous side-effect.

This can happen for example when several transactions
try to delete the same file(s) at the same time.
The duplicate deletions might be detected by the
database (being concurrent update errors), and rolled
back at the point of the DELETE query, to be retried.
If the files have already been deleted in the file
system it before the rollback, it leaves the system
in an inconsistent state, at least temporarily.

One case where we have seen it is when web bundles
are loaded by many web users at the same time, right
after being updated (and thus invalidated).
As they are currently cached as ir.attachment records,
this often causes a corruption of the cache.
2014-09-08 16:52:42 +02:00
Olivier Dony 46784659f9 [IMP] ir.attachment: include traceback when logging low-level filesystem errors 2014-09-08 16:52:41 +02:00
Xavier Morel 7558e2e786 [IMP] distribute branding on @groups instead of disabling edition
Avoids 2 rendering passes, and allows editing e.g. events detail page, which
couldn't be done (due to groups=public in a mail component)

fixes #1994
2014-09-08 11:16:06 +02:00
Denis Ledoux 1e374b4ad7 [FIX] ir_attachment: ignore if model uninstalled
if the model of an attachement no longer exists (the according module have been uninstalled, for instance), ignore the security check
2014-09-08 10:51:46 +02:00
Leonardo Pistone 9b78f06e47 yaml: use selected user and not admin for defaults 2014-09-05 17:31:59 +02:00
Leonardo Pistone 0edfc3fbc9 yaml: use selected user and not admin for onchange
Fixes: #1885
2014-09-05 17:31:47 +02:00
David Monjoie 6e5b09acfa [FIX] removed bad comments from previous commit 2014-09-05 17:12:49 +02:00
David Monjoie f3333f9c57 [ADD] website_sale_digital 2014-09-05 17:11:12 +02:00
Fabien Meghazi c981d068ab [FIX] Restore /login redirection on SessionExpired
The feature was broken due to an incompatibility
when forward porting 624f256 and a78e27f
2014-09-05 16:24:59 +02:00
Denis Ledoux d824769b3c [FIX] tools,mail: improve parsing of references from rev. 0bee015dd6
Backport of 8.0 fix was not enough for 7.0, because it still fails for the legacy reference match (model+res_id), which is not used in 8.0
2014-09-05 11:44:20 +02:00
Christophe Simonis 41afeec7f1 [MERGE] forward port of branch saas-5 up to 9363bc9 2014-09-04 18:03:24 +02:00
Christophe Simonis 9363bc9182 [MERGE] forward port of branch saas-3 up to 3d80dc2 2014-09-04 17:51:42 +02:00
Christophe Simonis 80a932479b FIX] packaging: odoo-ification 2014-09-04 16:27:58 +02:00
Raphael Collet 68777c5860 [IMP] models: inherited fields are related fields read as the current user
Add an attribute 'related_sudo' (True by default) for related fields.
A related field is computed as superuser if related_sudo is True.

Add explicit related fields 'name' and 'email' on 'res.users', as these should
be readable by the public user with module website_forum.
2014-09-04 16:10:48 +02:00
Raphael Collet d6f375df61 [IMP] models: "X in self" is now equivalent to any(X == rec for rec in self)
Fix modules with code like "record.id in other.stuff_ids".
2014-09-04 15:31:04 +02:00
Raphael Collet 070f28dce6 [FIX] base: remove test_ir_model, which causes bugs
The test in test_ir_model creates a custom model.  This causes a full reload of
the registry, which recursively installs the required modules while 'base' is
being tested.  As a side effect, it commits stuff from the database, so that
the effects of test_ir_model are actually not rolled back.
2014-09-04 14:59:45 +02:00
qdp-odoo f4e350ca36 [FIX] account: several fixes on the new bank statement reconciliation widget 2014-09-04 11:32:16 +02:00
Raphael Collet 4ce06c238b [FIX] openerp.api.Environment: move recomputation todos into a shared object
This fixes a bug which is usually triggered in module account_followup, but
does not occur deterministically.  Some recomputations of computed fields are
apparently missing.  Environment objects containing recomputations todos and
kept alive by a WeakSet, are removed by the Python garbage collector before
recomputation takes place.  We fix the bug by moving the recomputation todos in
a non-weakref'ed object.
2014-09-04 10:18:55 +02:00
xmo-odoo 9a3b48de0f Merge pull request #2173 from pedrobaeza/8.0-module_icon_field_size
[FIX] Size for icon field of ir_module_module table in base.sql

fixes #2095
2014-09-04 09:38:23 +02:00
Pedro M. Baeza a717c2a24a [FIX] Size for icon field of ir_module_module table in base.sql 2014-09-04 01:46:44 +02:00
antonylesuisse 5065b38159 Merge pull request #2134 from odoo-dev/8.0-improve-packaging3-sle
v8 packaging by sle
2014-09-03 16:40:52 +02:00
Stéphane Wirtel 1ff7ed2758 [IMP] Optimize the schedulers of the calendar, fetchmail and base_action_rules modules
Disable the the crons when they'd have nothing to do, re-enable them when a
task is (probably) introduced
2014-09-02 18:32:27 +02:00
Cédric Pigeon 919869907d [ADD] add new test for onchange on one2many field 2014-09-02 16:11:37 +02:00
Simon Lejeune 7e41903110 [FIX] config.py: do not use appsdir to define the user's data dir when he has no home directory on unix
Force it to be '/var/lib/(appname)' in this case
2014-09-02 14:13:00 +02:00
Raphael Collet f2f1f3465d [IMP] models: prefetch fields with groups (those to which user has access) 2014-09-02 14:11:11 +02:00
Raphael Collet 4f11ff379a [IMP] models: do not prefetch too many records at once 2014-09-02 14:11:11 +02:00
Raphael Collet e7b8e107f1 [IMP] fields: update inverse fields lazily for performance
When a relational field is assigned in an onchange, its inverse field is
updated in cache.  Reading the current value of the inverse field may be
costly, for instance in the case of a one2many field with thousands of records
as a value.  Instead, put in cache a SpecialValue that reads and updates the
field; it will be triggered only when it is accessed.
2014-09-02 14:07:03 +02:00
Martin Trigaux 4a10295823 [FIX] fields: avoid prefetching of one2many fields
When reading a one2many field, the inverse mapping of the lines (matching m2o -> lines of corresponding record) was instantiating each line and then triggering the prefect of fields.
To improve the performances, the inverse mapping is done in sql to avoid triggering the prefetching.
2014-09-02 13:34:57 +02:00
Xavier Morel eab52acccd [ADD] initial theme guide + scaffolding
incomplete, incorrect, committed for testing
2014-09-02 12:43:17 +02:00
xmo-odoo 9c2f093611 Merge pull request #2113 from yvaucher/8.0-fix-ir_model-undefined-xml_id
fix typo on undeclared variable xml_id
2014-09-02 07:56:27 +02:00
Yannick Vaucher bdfa970d3d fix typo on undeclared variable xml_id 2014-09-01 16:26:55 +02:00
Christophe Simonis 0f122cc50c [FIX] http.py: session id is `sid` attribute 2014-09-01 15:49:26 +02:00
Xavier Morel cccd3c888f [ADD] openerp.http reference doc
* fix some docstrings so they can be autodoc'd
* intersphinx mapping (and links to) werkzeug and python
2014-09-01 14:16:14 +02:00
Antony Lesuisse 2d296cb779 [MERGE] ir-ui-view split active and show_customize
Split the ternary field application in active and show_customize, all four
possible value are now needed for the customize theme popup.
2014-08-31 16:56:44 +02:00
Christophe Simonis 0c05a376d5 [FIX] base, mail: access to ir.config_parameter is now handled by by
record rules.

Partial revert of commit 80017b04c2.

Conflicts:
	addons/web/static/src/js/chrome.js
2014-08-29 12:01:50 +02:00
Christophe Simonis 1d2fe3330c [MERGE] forward port of branch saas-5 up to 24c25f5 2014-08-29 11:36:35 +02:00
Christophe Simonis 010dd70894 [MERGE] forward port of branch saas-3 up to c914893 2014-08-28 19:25:08 +02:00
Christophe Simonis 6f6197fb7c [MERGE] forward port of branch 7.0 up to f65c913 2014-08-28 18:15:10 +02:00
Christophe Simonis f65c913027 [FIX] base: security: employee must have access to res.groups 2014-08-28 18:14:08 +02:00
andreparames 0908376221 [FIX] Load translations for selection fields
Selection fields in the new QWeb reports aren't being translated, because the context with the language isn't being passed.
2014-08-28 16:41:45 +01:00
Christophe Simonis 8046b7367d [MERGE] forward port of branch saas-5 up to 7e117b1 2014-08-28 16:51:11 +02:00
Christophe Simonis 7e117b18a0 [MERGE] forward port of branch saas-3 up to ada9724 2014-08-28 16:21:27 +02:00
Christophe Simonis ada9724655 [MERGE] forward port of branch 7.0 up to 3509e15 2014-08-28 16:12:55 +02:00
Xavier Morel e6b56412a0 [ADD] views documentation 2014-08-28 15:02:33 +02:00
Leonardo Donelli 3509e15cc9 [IMP] report_sxw: missing parameter without_company for display_address
Fixes #811
2014-08-27 16:55:02 +02:00
Fabien Meghazi 34c5a5cf9c [IMP] Increase statics cache from 12 hours to 1 week 2014-08-27 16:54:25 +02:00
Denis Ledoux dd86d41eb4 [FIX] security: disallow read on ir.sequence for externals 2014-08-26 16:17:24 +02:00
Denis Ledoux 53582c2ea6 [FIX] security: res.groups should be readable by admins only 2014-08-26 13:31:41 +02:00
Denis Ledoux 72d3697fbc [FIX] security: externals should be able to read attachements
without having the rights to read ir.config_parameter
2014-08-26 12:55:48 +02:00
Denis Ledoux 80017b04c2 [FIX] security: ir.config_parameter should not be readable by externals 2014-08-26 12:50:04 +02:00
Christophe Simonis 415525cecc [FIX] allow `--log-db` to connect to another postgresql server than the one setted in config 2014-08-25 18:52:50 +02:00
Samus CTO c6df857533 [FIX] Missing part of the revision 5f6fc473 2014-08-25 18:01:38 +02:00
Samus CTO aad19c7360 [FIX] model: prevent exporting column ID of non ordinary tables
This makes no sense and can generate errors if you try to purge
ir.model.data of not existing records.
2014-08-25 14:38:20 +02:00
Raphael Collet 2b3b1c3230 [IMP] doc/howtos/backend: use scaffolding and adapt text and code accordingly 2014-08-24 13:06:51 +02:00
Raphael Collet 2ad092b5e5 [ADD] doc: new documentation, with training tutorials, and new scaffolding 2014-08-22 17:51:20 +02:00
Raphael Collet 97256fa1fb [IMP] models: move prefetching of records back to method _prefetch_field
The selection of records in cache for prefetching was moved to method
_read_from_database() by xmo at rev 785018cc in order to fix an access right
bug.  But this introduced an issue: to explicitly avoid prefetching, you should
use read() instead of browsing records.  We revert the change by xmo, without
reintroducing the bug (which apparently was fixed by another way).
2014-08-22 14:42:20 +02:00
Raphael Collet 2c6ee89080 [FIX] osv/fields.py: enable argument 'obj' in property fields
Fixes #1719
2014-08-22 12:10:46 +02:00
Raphael Collet 20b302cc8c [FIX] osv/fields.py: fix the fix at rev 43756a24. 2014-08-22 11:14:08 +02:00
Raphael Collet 43756a24ca [FIX] osv/fields.py: fix sum in rev 48dfd70 2014-08-22 10:56:07 +02:00
Raphael Collet 775eaae930 [IMP] test_inherit: add test case, redefine Many2one field in inherited model 2014-08-22 10:01:41 +02:00
Raphael Collet 48dfd70b4a [IMP] osv/fields.py: improve code change of rev eea07e27 2014-08-22 09:23:42 +02:00
Martin Trigaux 80d8532370 Forward port of branch saas-5 up to rev 4895281e 2014-08-22 09:12:14 +02:00
Christophe Simonis eea07e27c0 [FIX] osv/fields.py: correct reading name_get of m2o property 2014-08-21 21:23:22 +02:00
Martin Trigaux 4895281e58 Forward port of branch saas-4 up to rev 15a3a2a 2014-08-21 18:17:35 +02:00
Martin Trigaux 15a3a2a63a Forward port of branch saas-3 up to 7bcefaf 2014-08-21 18:14:22 +02:00
Martin Trigaux 7bcefaf232 Forward port of branch 7.0 up to 0ab88f5 2014-08-21 17:57:57 +02:00
Raphael Collet 618e397df1 [FIX] fields: in many2one property fields, name_get() the value as superuser 2014-08-21 17:29:56 +02:00
Martin Trigaux 0ab88f54f9 [FIX] ir_model: invalidate cache when adding new fields
When a new ir.model.field is created, add the new field in the fields_by_model (cache of custom fields). This is required as the __init__ method would not retrieve the new field if fields_by_model is already set.
Otherwise, the _columns would not contain the new fields and we could not access it without restarting the server (e.g. the installation of a module adds ir.model.fields and use it in the a view.
2014-08-21 17:24:45 +02:00
Desai Binjal 8fe9f07cac [FIX] note: small bugs 2014-08-21 15:55:23 +02:00
Martin Trigaux 768b3592c2 [FIX] base: wrong model change check
Comparing an id and a browse record will always fail so the exception would have always been raised when changing a model (e.g. updating a module with custom fields).
2014-08-21 14:30:10 +02:00
Raphael Collet dce5228da7 [FIX] fields: add missing option 'sanitize' on Html fields 2014-08-21 13:27:30 +02:00
Thibault Delavallée 4c6dcd7fcb [FIX] ir_actions: server action: when creating or writing value on a record
through a server action, try to correctly set the value to write on a given
fields according to its type. For example many2one fields should receive an
int, not a unique containing the id of the new value.
2014-08-21 11:03:15 +02:00
Thibault Delavallée 43fe825870 [FIX] ir_actions: server action: check the validity of write_expresison only if defined. Also check for the related model only if set in the onchange. 2014-08-21 11:03:15 +02:00
Christophe Simonis 5dff035878 [MERGE] forward port of branch saas-5 up to 39bee35 2014-08-20 20:33:17 +02:00
Christophe Simonis 39bee35e25 [FIX] base: correct view branding tests after c013210 2014-08-20 18:23:12 +02:00
Christophe Simonis c3131317d7 [MERGE] forward port of branch saas-4 up to ddef2dd 2014-08-20 17:57:22 +02:00
Christophe Simonis ddef2dd10a [MERGE] forward port of branch saas-3 up to 8f13e83 2014-08-20 17:51:20 +02:00
xmo-odoo b8b947ffa4 [IMP] catch & warn about any TTFontFile exception
It turns out TTFontFile can throw not only TTFError (generic) and KeyError, but also ValueError (unknown cmap) and maybe others.

Just catch Exception, warn that the font couldn't be loaded and report why.
2014-08-21 03:51:20 +12:00
Christophe Simonis 8f13e8320e [MERGE] forward port of branch 7.0 up to d0a0b7d 2014-08-20 17:45:05 +02:00
Fabien Meghazi c0132100ce [FIX] website translation bug
Sometimes a node can't be translated using the website Translate
mode. The translation is added to the Application term list but
the id of the view is not correct.

This happen when a translatable node is a children of a inherited
node whose branding could not be kept. data-oe-source-id was left
over because it was not registered in MOVABLE_BRANDING
2014-08-20 17:16:29 +02:00
Thibault Delavallée 6c5cde609e [FIX] res_partner: fixed display of simplified partner form view (image and fields display was messy) 2014-08-20 14:39:52 +02:00
Thibault Delavallée a76de4595e [FIX] tools: mail: fixed read more link tha could be placed in a block to be removed, being considered as a quote 2014-08-20 14:10:20 +02:00
Denis Ledoux 0fce350cf4 [FIX] fields: *2many related fields should not be read as superuser
one2many and many2many fields depends on the security rules.
For instance, on products, with the taxes_id many2many fields, you only see the taxes of your own company, thanks to the multi company security rule
With related *2many fields, if you browse it with superuser, you will have all records of the one2many fields, even those you are not allowed to see, as superuser ignores security rules.

For instance, taxes_id of product.product is a related of taxes_id of product_template (through the inherits on product.template), and you should see the same taxes on the product template and on the product product (variant). This is not the case if the fields is read using the superuser
2014-08-20 14:08:25 +02:00
Martin Ambroz 106cb1ec2b [FIX] base: python 2.6 incompatibility for dictionary comprehension 2014-08-20 10:28:37 +02:00
Christophe Simonis 5bcb3a676e [FIX] models: onchange return all subfields in cache when no subfields presents 2014-08-19 20:04:26 +02:00
Christophe Simonis 81ce316ada [FIX] base: show "application" in view view 2014-08-19 17:13:10 +02:00
Raphael Collet 052f9ed5d7 [FIX] models: improve rationale for the management of flag 'recompute' in context
When the context contains 'recompute': False, the recomputation was not even
prepared. Now both create() and write() prepare the recomputation by invoking
method modified(). The flag only controls whether method recompute() is invoked.
In addintion, the former flag 'no_store_function' was converted to the flag
'recompute', so that both create() and write() use the same flag.

Fixes #1456
2014-08-19 11:50:42 +02:00
Raphael Collet 62b0d99cfe [FIX] models: unexpected missing value when checking for a field in cache
At the end of _prefetch_field(), a check is made to ensure that the cache
contains something for the field to prefetch. The check was incorrect because
the cache was checked for a regular value only.
2014-08-19 11:50:42 +02:00
Fabien Meghazi 8402625f10 [IMP] Cache bundles in ir.attachments instead of LRU 2014-08-18 18:35:36 +02:00
Denis Ledoux b7c911980b Merge branch '8.0' of github.com:odoo/odoo into 8.0 2014-08-18 17:48:09 +02:00
Raphael Collet 01e647b57d [IMP] models: improve code of _convert_to_write(), make it easier to read 2014-08-18 14:20:41 +02:00
Christophe Simonis 25e11113b5 [FIX] models: `_convert_to_write()` shall not return `NewId`
The result of _convert_to_write() is intended to be pass directly to
`write()` or returned to the client (`onchange()` and `default_get()`.
`NewId` is as special value that must not be stored into the database
or exposed to the client.
2014-08-14 21:43:16 +02:00
Denis Ledoux d0a2b6b3da [FIX] models: stored func fields computation on one2many write
On one2many fields writing in an existing record (not when creating new record), the computed stored fields of the one2many were not re-computed correctly
Computed stored fields were marked as modified only if no_store_function was not set to True in the context. no_store_function is set when writing one2many records on an existing record.
Now, these computed stored fields are marked as to be recomputed, but are recomputed later, at the end of the existing record write
2014-08-14 18:19:48 +02:00
Christophe Simonis d68537022f [FIX] models: onchange on new records do not nullify fields from _inherits records 2014-08-14 17:55:20 +02:00
Olivier Dony 50ef63881a [I18N] Update 8.0 translation with latest source code 2014-08-14 17:01:54 +02:00
Denis Ledoux 3eaa2f8371 [FIX] test_new_api: missing parent menu 2014-08-14 16:48:32 +02:00
Olivier Dony 79570179bf [MERGE] Forward-port saas-5 up to acbdac4 2014-08-14 14:56:57 +02:00
Olivier Dony acbdac4e9f [MERGE] Forward-port saas-4 up to 9a84d55 2014-08-14 14:54:37 +02:00
Olivier Dony 9a84d55036 [MERGE] Forward-port saas-3 up to 9b55532 2014-08-14 14:37:42 +02:00
Martin Trigaux deacba0ed6 [IMP] base: no default domain for partner's title
The title field should not have a domain by default.
When a new record is created or the 'is company' field is changed, the onchange_type is triggered to restrict the domain accordingly to is_company field.
When an existing record is modified, there will have no domain on title field. It's not ideal but at least companies will be able to change the title without the need to modify twice the field is_company.
Fixes #1713
2014-08-14 12:00:27 +02:00
Olivier Dony 8b12d1c566 [MERGE] Forward-port of 7.0 up to 85d2b45 2014-08-14 04:11:33 +02:00
Olivier Dony 85d2b45aaa [I18N] Update 7.0 translations with latest changes on Launchpad
See also https://github.com/odoo/odoo/wiki/GitHub-Transition#translations
2014-08-14 03:38:58 +02:00
Olivier Dony 96c36e895c [I18N] Update all 7.0 translation templates with latest terms and annotations
Total new terms: 168
Total deleted terms: 95
Total identical terms: 16329
(Some modules skipped, typically all l10n_* modules)
2014-08-14 02:24:24 +02:00
Olivier Dony 69eef5ac8d [FIX] tools.translate: addons path resolution failed with duplicates
When the addons_path config contained the
default path, the system was working with
an empty addons_path in the middle of the
other paths. This empty one matched for all
files, making all files appear to belong to
the root path component, e.g. `home` if the
root path is in /home.
Refactored a bit to avoid duplicates and
redundant path calculations.
2014-08-14 02:07:59 +02:00
Vo Minh Thu 680214c47e [FIX] tools.translate: when loading entries from a PO file, use also the POT.
On Launchpad, as commented on bug 933496, PO entries (and their comments) are
shared between series. This mean that e.g. the 7.0 series can have the wrong
`reference` comments (those beginning with #:) as they would be copied from say
the trunk series. Those `reference` comments are used to import translations
and look them up.

This patch adds a few lines of code to tools.translate so that targets
defined in the POT `reference` comments are used in addition to those from the
PO file.

Also adds a test module to validate the new behavior.

This patch stems from:
 - the 6.1 branch by Vo Minh Thu:
    https://code.launchpad.net/+branch/~openerp-dev/openobject-server/6.1-fix-po-targets-933496-vmt
 - the 7.0 port by Numerigraphe:
    https://code.launchpad.net/~numerigraphe-team/openobject-server/7.0-fix-po-targets-933496-vmt
2014-08-13 23:07:40 +02:00
Olivier Dony e11eddf753 [MERGE] Forward-port of saas-5 up to 20cc18d 2014-08-13 20:46:47 +02:00
Olivier Dony 2a94d1d811 [MERGE] Forward-port saas-4 up to 2694ed1 2014-08-13 17:34:27 +02:00
Olivier Dony 2694ed1472 [MERGE] Forward-port saas-3 up to b9275da 2014-08-13 17:33:12 +02:00
Olivier Dony b9275da8a5 [MERGE] Forward-port 7.0 up to 23cffab 2014-08-13 17:30:06 +02:00
Martin Trigaux bceb278199 [FIX] base: revert 19e401a for title on res.partner form
The title of the partner is restricted with a context that will change in the onchange_type. Having twice the same field will not work well.
Remove the invisible attribute as the domain is handled by the domain.
2014-08-13 15:04:54 +02:00
Samus CTO 1a7c8953fe [IMP] calculating nextcall datetime of a cron SHOULD use the cron's user 2014-08-13 14:58:55 +02:00
Samus CTO 7f88681186 [FIX] context_timestamp MUST return a "timezone aware" timestamp 2014-08-13 14:58:55 +02:00
Olivier Dony 7aa0376f3e [FIX] gamification: prohibitive record rule processing with many users/goals
Due to the multi-company record rule on gamification.goal,
each access to the Goals menu and each opening of the
Messaging menu (thus calling get_serialised_gamification_summary())
is extremely slow (with several thousands goals/users).

Adding auto_join to the user_id FK on goals makes it much
faster. However it causes crashes when reading the table
because the _order of gamification.goal uses `create_date`,
which becomes ambiguous after the auto_join with res_users.

Solving this can be done by re-implementing _read_flat()
in the ORM using the internal Query object, as in search(),
which takes care of fully-qualifying all column names.

Until this is fixed, a simple workaround is to use
start_date in the _order instead of collision-prone `create_date`.
2014-08-13 13:47:50 +02:00
Olivier Dony 868a77616d [FIX] ir.translation: export/import of QWeb terms
Fixes the translation term import/export logic to
support terms inside QWeb templates.

Refactored a bit the export code so the babel-based
QWeb terms extractor for ./static/src/*.xml files
uses the same logic as the regular extractor for
ir.ui.views with type QWeb.

Server-side QWeb rendering uses a mix of the native
 view inheritance mechanism and the template inclusion
(t-call) mechanism. During rendering the translations
are only applied at "template" level, *after* the
view inheritance has already been resolved.
As a result translations are local to a template,
not to the inherited view in which they are actually
written.
In terms of exporting PO[T] files, this is done by
resolving the "root" QWeb template a view belongs
to, and using it as the location of the translated term.

During import there is one extra quirk for QWeb
terms: they need to be linked to the `website` model
rather than the actual `ir.ui.view` model they
are really pointing to, so the rendering phase can
properly recognize them.
2014-08-13 11:08:02 +02:00
Olivier Dony bd3df7bfa1 [FIX] orm field (new api): preserve empty values instead of folding to False
The new API introduced a small behavior change where empty
string values written or stored in a char/text field were
replaced by False (i.e. as if they were NULL).
This was done to mimic the web client behavior, but introduces
a very surprising effect: a.name = ""; assert a.name == "";
would fail. It would also require many more tests in the
code when reading existing required values from the database,
as they could still be False when an empty string value
had previously been stored, for some reason.
2014-08-13 10:44:05 +02:00
Christophe Simonis 1644708fe8 [IMP] models.py: _auto_init: accelerate row existance check
Using `COUNT(1)` on big table can be slow. Use `min(id)` which use
pkey index to have a quicker response
2014-08-12 18:38:55 +02:00
Fabien Meghazi bbbd1465e5 Merge pull request #1424 from odoo-dev/saas-5-handlemissingjs-nse
[FIX] Do not raise 500 error when an asset is missing

Note: those features are already present in master but could not be backported because the asset bundles are now completely different since the sass and less support where added.

If a forward porting occurs, you can drop this merge and keep master's version
2014-08-12 14:27:03 +02:00
Fabien Meghazi c68ba88563 Added stylesheet warning for missing css asset 2014-08-12 14:22:05 +02:00
Fabien Meghazi 228d422828 Use console.error 2014-08-12 14:14:31 +02:00
Olivier Dony 3f91f85f60 [IMP] ORM: Coalesce NULL boolean values to false when generating ORDER BY
After commit f28be81, boolean columns may have more
NULL entries than before. In the (rare) cases where
a boolean column was used for an ORDER clause
(e.g. in the /shop page of website_sale), this
causes a change of the resulting ordering.

By coalescing NULL values to false in SQL,
we make the ordering consistent with what the
framework does for domain expressions with booleans,
and when reading boolean values, that is, NULL is
the same as False.
2014-08-12 12:32:35 +02:00
Christophe Simonis fda1e7d290 [FIX] ir_cron: typo introduced in commit a3d6b3a 2014-08-11 17:37:46 +02:00
Richard Mathot a3d6b3ae4b [FIX] ir_cron: typo introduced in fwdport
ae65be2b2a
2014-08-11 16:52:11 +02:00
Denis Ledoux 233670d681 [FIX] ir_cron: forgotten conflict from forward port ae65be2b2a 2014-08-11 16:03:41 +02:00
Denis Ledoux ae65be2b2a [MERGE] forward port of branch saas-5 up to 0739bc4 2014-08-11 15:58:02 +02:00
Thibault Delavallée c64b077362 [FIX] mail: fixed bounce email recognition + invite email headers + mass mailing statistics not lost anymore
- [FIX] bounce regex: too many emails were considered as bounce and therefore
not displayed in the chatter and lost for the communication history. The regex
was not correctly looking for the bounce alias in the email_to.
- [FIX] invite email: replying to the invitation email (invitation as new
follower) now replies to the user sending the invitation.
- [FIX] mass_mailing: added a column to store the id of the original email
in addition to the many2one column. The many2one is set to null when deleting
the original email. As the information is necessary, it is saved on another
field. The many2one is necessary for indexes purpose as the inverse of
a one2many.
2014-08-11 15:39:26 +02:00
Denis Ledoux 0739bc4eda [MERGE] forward port of branch saas-4 up to 7ecaab9 2014-08-11 15:31:04 +02:00
Denis Ledoux 7ecaab9fe2 [MERGE] forward port of branch saas-3 up to 2f4be42 2014-08-11 15:30:37 +02:00
Denis Ledoux 2f4be42d8c [MERGE] forward port of branch 7.0 up to 3632949 2014-08-11 15:28:54 +02:00
Olivier Dony a2943a4432 [IMP] fields.boolean: simplify symbol_set, cast to bool
In combination with f28be81, this should help speed up
initialization of new boolean columns. psycopg2 handles
bool parameters values just fine inside cr.mogrify()
2014-08-11 12:37:52 +02:00
Olivier Dony f28be81bc7 [IMP] models._auto_init: avoid writing `False` default for boolean fields
Boolean fields always default to False in 8.0,
even when they do not have explicit default values.
This causes extra queries in the form:
  UPDATE <table> SET <bool_field> = false
      WHERE <bool_field> IS NULL;

Those are not necessary as the ORM automatically
folds NULL booleans to False, and can be very
expensive on tables with several million rows,
as the whole table may sometimes need to be
rewritten (can take dozens of minutes)
2014-08-11 11:34:12 +02:00
Denis Ledoux 2b0487113a [FIX] yaml tests: Set on_change keys not in view logger as debug instead of warning
This is related to commit d31faceb67
(This is to avoid the runbot being yellow if on_change methods have extra keys in the returned value, this is not wrong, the web client will simply ignore them).
2014-08-11 11:11:36 +02:00
Samus CTO c16884364b [FIX] Calculate date interval using super user time zone
When you set the date of a cron the July 1st at midnight, if the user
time zone has a positive offset, then the converted UTC date is the
June 30th and adding 1 month will end up on July 30th translating to
July 31th instead of September 1st.

To solve this issue we use the super user time zone for the date
calculation.
2014-08-08 18:01:13 +02:00
Denis Ledoux 7c647ec876 [MERGE] forward port of branch saas-4 up to 0a1e4a0 2014-08-08 17:27:29 +02:00
Denis Ledoux 0a1e4a05b2 [MERGE] forward port of branch saas-3 up to 81a902a 2014-08-08 17:06:39 +02:00
Denis Ledoux 81a902a07d [MERGE] forward port of branch 7.0 up to 5f696ba 2014-08-08 16:18:35 +02:00
Raphael Collet 9363dfe1ef [FIX] fields: generalize inverse_field to a list of inverse fields
Some many2one fields happen to have several corresponding one2many fields,
typically with different domains. It is also the case for the field 'res_id' of
mail.message, where each model inheriting from mail.thread defines a one2many
based on that field. The fix ensures that when a relational field is updated,
all its inverse fields are invalidated.
2014-08-08 14:57:00 +02:00
Raphael Collet 0c20403744 [IMP] api: improve documentation of decorators constrains, depends, onchange 2014-08-08 14:34:29 +02:00
Olivier Dony b41599e17c [FIX] base: tests: move test menu under correct root 2014-08-08 14:17:37 +02:00
Raphael Collet 0199e6025a [FIX] models: default_get() used to miss values
The default values are computed by evaluating fields on a new record. The fix
retrieves values from the cache earlier, because in some cases, the evaluation
of a field invalidates a formerly evaluated field.
2014-08-08 14:12:06 +02:00
Raphael Collet 207013c74f [IMP] refactoring: move function topological_sort to openerp.tools 2014-08-08 14:12:06 +02:00
Denis Ledoux d31faceb67 [FIX] yaml tests: extra key in on_change result isn't that bad.
In the return result of an on_change, having keys which are not ine the view is not that bad, it is not an actual problem.

Display warning instead of asserting all the keys are in the views.
2014-08-08 11:40:30 +02:00
Richard Mathot fed0ea5392 [FIX] read_group cannot aggregate non-stored field 2014-08-08 10:53:39 +02:00
Olivier Dony 4c8c722401 [IMP] fields.Date[Time]: convert_to_cache: avoid costly parsing when not validating
The extra parsing check is not necessary when we're
not validating inputs, because in that case the
values come from the database and are valid.
The validation is quite expensive due to calls
to strptime() + strftime().
2014-08-07 18:24:29 +02:00
Denis Ledoux 02bf0fd9c8 [MERGE] forward port of branch 7.0 up to a86dfb8 2014-08-07 18:20:13 +02:00
Olivier Dony 2bbff57691 [IMP] hr,mail,product,project,base: use @auto_join=True on _inherits FK field
This can give a performance boost on large databases
and should not be a concern in terms of access control
as the inheritance already grants access to the parent
records.
2014-08-07 18:03:08 +02:00
Olivier Dony 935c476664 [IMP] orm.Field: doc for @copy attribute 2014-08-07 18:03:08 +02:00
Olivier Dony d837d4b497 [IMP] ir.qweb: avoid repeatedly searching the registry for nonexistant widget models 2014-08-07 18:03:08 +02:00
Thibault Delavallée 2e5412fc1d [FIX] mail, BaseModel, portal_sale: fixes and improvements in the URL
management to access documents in notification emails, as well as for the
'view quotation' link in portal_sale module.

models: added a get_access_action method: basically, returns the action to
access a document. It uses the get_formview_action by default (form view
of the document). However for some documents we want to directly go to the
website, leading to an act_url action for some documents. This method allows
this behavior.

portal_sale: get_signup_url now uses the mail.action_mail_redirect method
instead of directly redirecting towards a portal menu. This allows to fall
back on a standard behavior.

portal_sale: get_formview_action updated, to match actions tailored for
portal users.

website_quote: get_access_action of sale order updated. If the sale order
has a template defined, the returned action is an act_url (website view
of the quotation), not the form action anymore.

mail: fixed signature + company signature in notification emails. Even without
user signature, the company signature + access link should be correct.

portal: signup url in notification emali was not using the mail redirection
as action. It is now the case.
2014-08-07 16:47:59 +02:00
Thibault Delavallée f5688cd8fd [FIX] tools: html_sanitize: keep mako tags (<% ... %>), required for example in the portal sale quotation email. 2014-08-07 16:47:58 +02:00
Denis Ledoux ea05a21938 [FIX] report: allow using 0 decimal precision in rml reports 2014-08-07 14:50:14 +02:00