Commit Graph

224 Commits

Author SHA1 Message Date
Xavier Morel f17633dad7 [FIX] correctly restore partial import index when restarting an import
bzr revid: xmo@openerp.com-20111201121040-c0547g8ev38r6u7t
2011-12-01 13:10:40 +01:00
Olivier Dony 90041e5d81 [IMP] read_group: pass superuser uid to group_by_full methods to avoid access right issues
This helps avoid access right issues in restricted
contexts, such as embedded web client, or shared
access (via portal or share wizard).

bzr revid: odo@openerp.com-20111123133312-a4ywnivnex97xtk2
2011-11-23 14:33:12 +01:00
Olivier Dony a50af56a05 [FIX] orm.read_group: fix merge logic for read_group_full:
- Properly merge results with list of values, even with reversed sort
- Pass `read_group_order` to `_group_by_full` implementations to let them
  handle sorting if they want.

bzr revid: odo@openerp.com-20111121164326-un722g5nsuzq94m5
2011-11-21 17:43:26 +01:00
Olivier Dony e17b51e384 [FIX] orm.read_group: check for empty groupby list
This is very ugly and needs a real refactoring,
just adding one more test for the time being.

bzr revid: odo@openerp.com-20111118153333-2skgbd197q8tb7uc
2011-11-18 16:33:33 +01:00
Olivier Dony 57d0d62b38 [MERGE] orm.read_group: partial refactoring, by xmo
bzr revid: odo@openerp.com-20111118152629-o4ult41v905dfj1t
2011-11-18 16:26:29 +01:00
Olivier Dony ca458dd539 [FIX] orm.read_group: fix issues in read_group_full and rewrite/cleanup
Attempt to make it into a more maintainable/readable
separate method.

bzr revid: odo@openerp.com-20111118133642-b3126a5sph8bivmu
2011-11-18 14:36:42 +01:00
Fabien Pinckaers 34a9ecf339 fix
bzr revid: fp@tinyerp.com-20111118121103-vmlus5c14icgpvdv
2011-11-18 13:11:03 +01:00
Olivier Dony 61c0e012b9 [MERGE] warn when create()/write() touches unknown field, courtesy of Stefan Rijnhart (Therp)
A patch will follow in addons to get rid of most of the
warnings introduced here.

bzr revid: odo@openerp.com-20111116113858-52nzw58ts7xnlxhe
2011-11-16 12:38:58 +01:00
Christophe Simonis 19e7261bc0 [FIX] group_by_full
bzr revid: chs@openerp.com-20111115155355-s7j3s27i2hl7xi11
2011-11-15 16:53:55 +01:00
Xavier Morel c83d6d88a0 [IMP] selection of fields to aggregate in read_group
bzr revid: xmo@openerp.com-20111115120028-wal8o839s4u427m3
2011-11-15 13:00:28 +01:00
Xavier Morel 2b7a072a3e [IMP] orm: make creation of dict from key names (with constant value) clearer
also only generate False values for float and integer fields, since they're the only aggregated values in the first place

bzr revid: xmo@openerp.com-20111115114527-t92a37kdw4yqqs4p
2011-11-15 12:45:27 +01:00
Fabien Pinckaers 1c2ab2927d unusedcode
bzr revid: fp@tinyerp.com-20111114001216-etl5g0dl3ya1xfvs
2011-11-14 01:12:16 +01:00
Fabien Pinckaers e25fe1f261 [FIX] count 0, need to fix the web client
bzr revid: fp@tinyerp.com-20111113124848-r1youtgj7c5li8b2
2011-11-13 13:48:48 +01:00
Fabien Pinckaers 8ea267b822 [IMP] _group_by_full implementation
bzr revid: fp@tinyerp.com-20111113121405-oa9ggpf115gv3cbe
2011-11-13 13:14:05 +01:00
niv-openerp dbb82b089b [fix] exception when querying a tree view for an osv which does not contain any column (common in the wizards)
lp bug: https://launchpad.net/bugs/877989 fixed

bzr revid: nicolas.vanhoren@openerp.com-20111110135106-crieyt6cnscqocs5
2011-11-10 14:51:06 +01:00
Stefan Rijnhart 998add6e89 [FIX] replace exception by warning, for friendly deprecation
bzr revid: stefan@therp.nl-20111102202254-jllcl905swnwatm5
2011-11-02 21:22:54 +01:00
Stefan Rijnhart c9b91cae01 [FIX] model and field name were reversed in exception message
bzr revid: stefan@therp.nl-20111101141446-acxui2dymoul71ma
2011-11-01 15:14:46 +01:00
Stefan Rijnhart 65f4975ac1 [FIX] Raise when an unknown field is being written to
lp bug: https://launchpad.net/bugs/727727 fixed

bzr revid: stefan@therp.nl-20111101135731-uo203jmag5nuf56p
2011-11-01 14:57:31 +01:00
Xavier Morel e317c222a1 [IMP] alias some values in data import, for readability
bzr revid: xmo@openerp.com-20111019114618-6ih4wgfr5hu1kgiy
2011-10-19 13:46:18 +02:00
Xavier Morel b0a92831b3 [IMP] iterate over list indexes + ids via enumerate() rather than via range(len()) + __getitem__
bzr revid: xmo@openerp.com-20111019110215-9jykf1xrzavh00j2
2011-10-19 13:02:15 +02:00
Vo Minh Thu bfbfbc4ac6 [FIX] orm.copy(): corrected return value in docstring.
bzr revid: vmt@openerp.com-20111012090357-2lt8md5s37qp2vm1
2011-10-12 11:03:57 +02:00
Olivier Dony 76c702ca3c [FIX] Model.import_data docstring: cleanup + clear RST warnings for autodoc
The pipe character is taken as an inline substitution
marker, and is easy to avoid in most cases except within
literal blocks.

bzr revid: odo@openerp.com-20111011171148-rluwokcsx7i38i6e
2011-10-11 19:11:48 +02:00
Olivier Dony 4140e3546a [FIX] expression: proper handling of empty string in m2o domain criterions
Also fixed incorrect name_search() implementations in
res.partner and res.currency, and added corresponding
tests.

lp bug: https://launchpad.net/bugs/861350 fixed

bzr revid: odo@openerp.com-20111011163435-szj9vm6x9x8nryn8
2011-10-11 18:34:35 +02:00
Olivier Dony c16befa983 [IMP] orm: resolve_o2m_commands_...: simplify assert, remove context doc following guidelines
bzr revid: odo@openerp.com-20111011144146-b9rt5kc9sb5lj0dr
2011-10-11 16:41:46 +02:00
Xavier Morel 34fcc08a1f [IMP] docstring for resolve_o2m_commands_...
bzr revid: xmo@openerp.com-20111011094551-vr27on7iibdd9tv6
2011-10-11 11:45:51 +02:00
Xavier Morel 8507ceddcf [IMP] make resolve_o2m_commands_to_record_dicts's result eager as per vmt's suggestion
bzr revid: xmo@openerp.com-20111011085715-cvcficcy4di9q29i
2011-10-11 10:57:15 +02:00
Xavier Morel 2646a34cf0 [ADD] don't blow up on a singleton DELETE_ALL command (that command takes no parameters, so can have just (5,))
bzr revid: xmo@openerp.com-20111011084852-hborz317ru5pbzux
2011-10-11 10:48:52 +02:00
Xavier Morel 8734ffb6c2 [IMP] raise assertion error if an o2m command is not one of CREATE, UPDATE or LINK_TO
bzr revid: xmo@openerp.com-20111011083824-4g0ros6f3xgslkq4
2011-10-11 10:38:24 +02:00
Xavier Morel 4d0a189796 [IMP] handle case where o2m commands are pairs instead of triplets
bzr revid: xmo@openerp.com-20111011081202-y1ou74u038o2kl58
2011-10-11 10:12:02 +02:00
Xavier Morel b5ee13a845 [IMP] rename serialize_o2m_commands to resolve_o2m_commands_to_record_dicts
bzr revid: xmo@openerp.com-20111011080338-hup42vivlvk4dly0
2011-10-11 10:03:38 +02:00
Xavier Morel d5accc0fae [ADD] method to correctly serialize o2m commands into a sequence of record-dicts for e.g. onchanges
also alters res.partner.bank _default_value to use it with res.partner addresses, and adds a few tests to ensure behavior is correct

bzr revid: xmo@openerp.com-20111010135157-dafgcwwcni5gkeom
2011-10-10 15:51:57 +02:00
Olivier Dony d86c283434 [FIX] orm.browse_record: avoid printing unrelated traceback upon KeyError
bzr revid: odo@openerp.com-20111007144944-j4obwcbvx9awkj30
2011-10-07 16:49:44 +02:00
Xavier Morel 65456808bc [ADD] wrapper to the modifiers setup process to simplify its call by third parties
bzr revid: xmo@openerp.com-20111006142727-spfj8foiln6m2jb9
2011-10-06 16:27:27 +02:00
Vo Minh Thu 9990d8126e [IMP] orm: added small comment.
bzr revid: vmt@openerp.com-20111006114444-4llzirnl4tg4p5qy
2011-10-06 13:44:44 +02:00
Vo Minh Thu 4dc26443d1 [MERGE] orm: cleand get_pg_type(). Changes as written in the merge prop.:
* Extracted creation of VARCHAR pg_type into a separate function, make missing 
  size (or size 0) create an unlimited VARCHAR field (effectively limited by
  postgres to 1GB data)
* Extracted fields to pg_types mapping outside of get_pg_type
* Made fields.function recursively forward to get_pg_type (via a type overload) 
  instead of reimplementing half get_pg_type in itself
* Simplified some get_pg_type cases

Note: if this is merged, it might be nice to convert fields.selection to use an 
API similar to fields.function: default to VARCHAR storage, if there's a type
attribute override use that type. Currently, fields.selection is handled the
following way:

* If the selection is a list and the type of the first half of the first item 
  is an integer, use type int4
* If the field has a __size=-1__ attribute, use type int4
* Else use type varchar (with size specified on the field, if any)

One change from previous version is that if type of the first half of the first 
item of the selection was str or unicode, it tried to find the longest string
and used that as the field's size. This meant silent loss of data if new,
longer items were added to the selection without recreating the whole db (or at
least manually altering the relevant fields). It also used the field's size or
*16* as a minimum default, for some reason, and if there was no size specified
on the selection (or size=0) it just hardcoded the size to 16.

bzr revid: vmt@openerp.com-20111006081336-uka6srvdmvs0s4lm
2011-10-06 10:13:36 +02:00
Xavier Morel 5eeeb67e6d [IMP] raise error when iterating over browse_record
Python has an iteration fallback protocol: when iterating over an
object which does not define __iter__, if the object defines
__getitem__ it considers that it's a list, and invokes __getitem__
from index `0`.

This can be a problem in openerp in methods which expect an list of
ids but are only given a single id (not a singleton list), in that
case self.browse() will return a single browse_record (instea of a
list) and the method tries to iterate over it by calling
browse_record.__getitem__.

Problem is that browse_record.__getitem__ is pretty deep and does
little validation, so the error appears 3 frames below where the
actual issue is with a completely cryptic message of "KeyError: 0",
which makes the actual harder to track.

By raising an error immediately in browse_record.__iter__, this kind
of issues is much easier to handle, the stack points precisely to the
frame in error with a clearer message.

bzr revid: xmo@openerp.com-20111005112444-jcp9fw6pa36ahpsd
2011-10-05 13:24:44 +02:00
Vo Minh Thu cab4e9c4a5 [FIX] orm: allow negative varchar size (meaning no limit) as used in some addons.
bzr revid: vmt@openerp.com-20111005101401-7jweikyl9ztibe4q
2011-10-05 12:14:01 +02:00
Olivier Dony d13fb7fe7e [MERGE] various bugfixes/improvements (coming from EDI development)
- _original_module is now available on model/browse_records
 - context usage in res.partner.*
 - proper name_search() + default values for res.currency
 - active_model in wkf exec context
 - safe_eval allows try/except/finally
 - yaml_import: !ref {id: xml_id} works
 - ir_mail_server: support for alternative body/subtype
 - default value for web.base.url config parameter
 - consistency rename: Model.*get_xml_id* -> *get_external_id*

bzr revid: odo@openerp.com-20111005100954-c8mbd4kz6kkqaj84
2011-10-05 12:09:54 +02:00
Vo Minh Thu 6067cd3609 [MERGE] merged trunk.
bzr revid: vmt@openerp.com-20111005080049-mv0ml30tti01cvba
2011-10-05 10:00:49 +02:00
Olivier Dony 982b2a0894 [FIX] orm: typo in computation of Model._original_module
bzr revid: odo@openerp.com-20111004225439-xnb77gtbl77onysm
2011-10-05 00:54:39 +02:00
Olivier Dony bfdbbb51cb [FIX] orm.export_data: 'module' column is required when creating external IDs
The 'module' field of ir.model.data is required, so we
we need to set it when auto-generating ir.mode.data
entries. This acts as the namespace of the record.
Because we don't want exported records to look like they
belong to an existing module (and risk being garbage
collected at the next module update), we put these
auto-generated names in a reserved '__export__' module
namespace.

bzr revid: odo@openerp.com-20111004205140-duaww77ng4qmktj2
2011-10-04 22:51:40 +02:00
Olivier Dony edf68f510c [REM] orm: annoying INFO log lines
bzr revid: odo@openerp.com-20111004204800-f4470vy0ou3ugxnm
2011-10-04 22:48:00 +02:00
Olivier Dony 51b1201daa [IMP] orm: remember Model._original_module when constructing inheritance
ORM Models already have a _module attribute that contains the
name of the module that declared this class, however
sometimes we also need the name of the module that
declared this model the first time.
This will be stored in _original_module and is the
name of the module to which the first parent with 
the same _name belongs to.

bzr revid: odo@openerp.com-20111004204705-8z9o70n1ynpvng3i
2011-10-04 22:47:05 +02:00
Vo Minh Thu 68a0858c9c [FIX] orm: a typo made all models treated as if they were transient in check_access_rule().
bzr revid: vmt@openerp.com-20111004143335-7etc6y2kje1y20ef
2011-10-04 16:33:35 +02:00
Vo Minh Thu 8dc80c7c7c [MERGE] orm: use directly lxml.etree to generate default views.
bzr revid: vmt@openerp.com-20111004092828-79hhaiwgw4dltimd
2011-10-04 11:28:28 +02:00
Vo Minh Thu 9e082fad89 [MERGE] merged trunk.
bzr revid: vmt@openerp.com-20111003145135-5ysm8hpp83wey437
2011-10-03 16:51:35 +02:00
Vo Minh Thu 7b90c7e5de [MERGE] merged trunk.
bzr revid: vmt@openerp.com-20111003144503-lx28ennrz0mt590g
2011-10-03 16:45:03 +02:00
Olivier Dony 288e8ebcfc [IMP] browse_record._table -> browse_record._model
bzr revid: odo@openerp.com-20111003144049-d6o4igae8mslns5x
2011-10-03 16:40:49 +02:00
Olivier Dony 0489f83a44 [IMP] orm: rename/cleanup: get_xml_id* -> get_external_id*
bzr revid: odo@openerp.com-20110930222355-jtuo4z9dz995emxk
2011-10-01 00:23:55 +02:00
Olivier Dony babb7aa0ec [FIX] fields: m2m SQL names may be dynamic now, care for it in field_to_dict()
Also cleaned up field_to_dict signature and callers to
honor conventions.

lp bug: https://launchpad.net/bugs/863019 fixed

bzr revid: odo@openerp.com-20110930112348-4c8undh1d6h1y3ps
2011-09-30 13:23:48 +02:00