Plan was originally to just ignore this because "it should just work"
but turns out m2o and m2o[@widget=selection] fields have very
different behaviors when it comes to default values, especially
custom domains and contexts:
* An m2o field uses its string value always (behaves like a char
field), for UI and clarity purposes we added an [[name, '=', id]]
case when the user specifically selects an autocompletion value,
but that's not "cannon", when it comes to dealing with custom
domains (filter_domain) and contexts the field always uses its
string value.
* An m2o[@widget=selection] field on the other hand uses its ids
always (behaves like a selection field).
That's not entirely true, really, because it has the converse to
what we implemented on the m2o field in the web client (in the GTK
client): if there is no @filter_domain *and* the user has entered a
value which is not in the dropdown (it's a combobox in the GTK
client), then it falls back on using 'ilike'. This string value is
*not* used in custom domains and custom filters, which simply are
not submitted.
This second section has *not* been implemented so far in the web
client, we'll come round to it if people actually need it.
bzr revid: xmo@openerp.com-20111006063949-fl5rbg3wwubcaay8
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
this means if the auto_search attribute is missing, search automatically. Search should only
be prevented if auto_search is precisely false
bzr revid: xmo@openerp.com-20111005111210-qju8ocbhvqahczsz
The static homepage do not reload the page when the module installed have no configuration actions (eg: returning direcly ir_actions_act_window_close)
bzr revid: fme@openerp.com-20111005101714-s5jy3gslni00a5jo
- _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