This makes report registration more uniform, and report rendering be possible
through the ORM (and thus the model service, instead of the report service).
To register a report, always use the database, i.e. a <report> tag within an
XML file. The custom parser, if any, will be specified in the database.
Previously specify a custom parser, the report was declared in Python.
Each model exposes a print_report() method, which will take the report name (as
many report can be defined on a single model) in argument.
bzr revid: vmt@openerp.com-20130327161129-6e7jz7l3lx7z1t18
Either use openerp.modules.registry.RegistryManager when the full
new() signature is needed, or use openerp.registry().
Replaced also some pool.get() with pool[] because KeyErrors
are better than AttributeErrors on None.
bzr revid: vmt@openerp.com-20130327111014-2i0hlvpy5y5ku7hm
auto=True reports are looked up in the database for each rendering, so they do
no have to be in the report registry any longer.
auto=False reports will register themselves but at this point
they can be updated to use the new `parser` XML attribute.
bzr revid: vmt@openerp.com-20130322153955-s6nyux2pyez6c01w
This is needed so the uninstall process can simply go through
the installed data by using the ir_model_data entries in reverse
order (when ordered by IDs), so that parents are deleted before
children.
bzr revid: vmt@openerp.com-20130321133202-igea1vxlszfpk6pe
- the re-raising of exceptions ignored the "legal" exceptions
(the one used to early abort RPC calls and generate pop-ups)
- re-raising the exception was attempting to re-use the original
exception type but it does not always take only one argument
so it was breaking.
lp bug: https://launchpad.net/bugs/1146256 fixed
bzr revid: vmt@openerp.com-20130320132238-qzo3jptww59ndlch
Example of use : <field name="user_id" string="Project Manager" context="{'default_groups_ref': ['base.group_user', 'project.group_project_manager']}"/> will add Employee (base.group_user) and Project Manager (project.group_project_manager) groups, as well as implied groups.
res_users:
- [add] added support of key in context of default_get. It contains a list of xml_ids of user groups; those groups, if found, are added to the newly created user,
- [ref] refactored simplified (quick create) view that is now more like a contact card, with login and email required because of the login email that will be send to the user
bzr revid: tde@openerp.com-20130318120905-1w9xpoyppnj62wlj
object has no __getattr__, in the usual case super(BaseModel,
self).__getattr__ will blow up with an AttributeError (but the wrong
one).
On the other hand, if a BaseModel descendant class is used in MI
alongside a non-BM descendant (e.g. res_partner inheriting from Model
and format_address) and the non-BM descendant also implements
__getattr__, we want to forward the failed attr search to the other
__getattr__ implementation.
So check if super() has a __getattr__, call it if it does otherwise
AttributeError right there.
bzr revid: xmo@openerp.com-20130315115302-z7jla334gb9a5e43
- isinstance(ids, dict) is done at the end, but not at the beginning,
so if ids was a single dict, it would break in the map(lambda).
- The loop to convert None to False can be done in _read_flat instead
of read (there is already plenty of loops in _read_flat)
- The __getattr__ was breaking the stacktrace.
bzr revid: vmt@openerp.com-20130314154418-0wmxfw1ot92kjmzf
Apprently on 2013-03-08 Google Maps stopped
returning a location in Belgium for this invalid
street name.
We consider Google Maps as a commodity so it
is ok to have the crm_partner_assign tests
fail in case our lookup mechanism does
not work anymore.
Note: this is a cherry pick of the 7.0
fix as a quick fix because the complete
forward-port of 7.0->trunk will require
some more time for conflict resolution
bzr revid: odo@openerp.com-20130308103110-eoj3lme49vy5jo91