Merge lp:~camptocamp/openobject-server/trunk-proposed-cleanups into lp:openobject-server

Proposed by Alexandre Fayolle - camptocamp
Status: Needs review
Proposed branch: lp:~camptocamp/openobject-server/trunk-proposed-cleanups
Merge into: lp:openobject-server
Diff against target: 1413 lines (+142/-196)
40 files modified
openerp/addons/base/ir/ir_actions.py (+17/-27)
openerp/addons/base/ir/ir_attachment.py (+2/-2)
openerp/addons/base/ir/ir_config_parameter.py (+2/-2)
openerp/addons/base/ir/ir_cron.py (+2/-2)
openerp/addons/base/ir/ir_default.py (+2/-3)
openerp/addons/base/ir/ir_exports.py (+7/-9)
openerp/addons/base/ir/ir_filters.py (+2/-3)
openerp/addons/base/ir/ir_mail_server.py (+2/-2)
openerp/addons/base/ir/ir_model.py (+10/-11)
openerp/addons/base/ir/ir_rule.py (+2/-3)
openerp/addons/base/ir/ir_sequence.py (+3/-3)
openerp/addons/base/ir/ir_translation.py (+2/-2)
openerp/addons/base/ir/ir_ui_menu.py (+3/-3)
openerp/addons/base/ir/ir_ui_view.py (+5/-5)
openerp/addons/base/ir/ir_values.py (+2/-2)
openerp/addons/base/ir/wizard/wizard_menu.py (+2/-2)
openerp/addons/base/ir/workflow/workflow.py (+7/-13)
openerp/addons/base/module/module.py (+2/-2)
openerp/addons/base/module/wizard/base_export_language.py (+2/-2)
openerp/addons/base/module/wizard/base_import_language.py (+2/-2)
openerp/addons/base/module/wizard/base_language_install.py (+2/-2)
openerp/addons/base/module/wizard/base_module_configuration.py (+2/-3)
openerp/addons/base/module/wizard/base_module_import.py (+2/-2)
openerp/addons/base/module/wizard/base_module_scan.py (+2/-3)
openerp/addons/base/module/wizard/base_module_update.py (+2/-2)
openerp/addons/base/module/wizard/base_module_upgrade.py (+2/-2)
openerp/addons/base/module/wizard/base_update_translations.py (+2/-2)
openerp/addons/base/res/ir_property.py (+2/-3)
openerp/addons/base/res/res_bank.py (+9/-13)
openerp/addons/base/res/res_company.py (+3/-4)
openerp/addons/base/res/res_config.py (+10/-14)
openerp/addons/base/res/res_country.py (+3/-3)
openerp/addons/base/res/res_currency.py (+4/-7)
openerp/addons/base/res/res_lang.py (+2/-3)
openerp/addons/base/res/res_partner.py (+4/-4)
openerp/addons/base/res/res_request.py (+4/-7)
openerp/addons/base/res/res_users.py (+6/-7)
openerp/osv/orm.py (+1/-1)
openerp/tests/addons/test_uninstall/models.py (+2/-3)
openerp/tools/amount_to_text_en.py (+0/-11)
To merge this branch: bzr merge lp:~camptocamp/openobject-server/trunk-proposed-cleanups
Reviewer Review Type Date Requested Status
Yannick Vaucher @ Camptocamp (community) code review Approve
Xavier (Open ERP) (community) Approve
Review via email: mp+102833@code.launchpad.net

Description of the change

Refactoring: replace deprecated osv.osv base class with openerp.osv.orm.Model
             remove deprecated instantiation of model classes
             fix a couple of problems found on the runbot (part of lp:1050267)

The change was made with some shell scripts, heavy use of pylint, some eyeballing and the runbot.

To post a comment you must log in.
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

Why not keep the simpler import (from osv import orm, fields) and extend from orm.Model?

review: Needs Information
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

No special reason, that's closer to the style I spontaneously write. I have no strong feeling about this, though, so if it helps getting this proposal merged I can update the changeset, and take the opportunity to update it to the latest trunk head.

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

> Why not keep the simpler import (from osv import orm, fields) and extend from
> orm.Model?

Hello Xavier,

I've updated the merge proposal. I've also set you as reviewer for https://code.launchpad.net/~c2c/openobject-addons/trunk-proposed-cleanups/+merge/102832 which is very similar, but works on the addons rather than on the server.

Both changeset have been tested on the runbot and produce a "green" result, which is encouraging. I had to go a bit beyond the original scope of the patches to achieve this, as some problems were breaking the tests.

If these two MP are accepted (which I hope), it would be great if the message was sent internally and if the merging policy for trunk was updated to require the merged changeset to match this (use orm.Model, don't instantiate the model).

Thanks for your time.

Revision history for this message
Cristian Salamea (ovnicraft) wrote :

> Why not keep the simpler import (from osv import orm, fields) and extend from
> orm.Model?

IMO refactor must include CamelCase for clases, i am agree to extend from orm.Model but we can:

from Osv import Orm, Fields

class MyObject(Orm.Model):
    pass

looks pythonic.

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

> > Why not keep the simpler import (from osv import orm, fields) and extend
> from
> > orm.Model?
>
> IMO refactor must include CamelCase for clases, i am agree to extend from
> orm.Model but we can:
>
> from Osv import Orm, Fields
>
> class MyObject(Orm.Model):
> pass
>
> looks pythonic.

@ovnicraft I'm totally opposed to renaming the module with non all-lowercase names (in other word, NO to "from Osv import Orm, Fields")

As for renaming class stock_picking to class StockPicking, I'm not sure. I could do this in another merge request, but I'd rather have this one integrated as soon as possible, because maintaining the patch branch against the trunk is quite costly.

4158. By Alexandre Fayolle @ camptocamp <email address hidden>

[MRG] from trunk

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

updated my branch with latest trunk. Tests are green

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

For the record, extract from chat with Stéphane Wirtel:

(10:19:02) Stephane Wirtel: simple question, dans ton merge de lundi, tu utilises orm.Model au lieu d'osv.Model, tu as une raison ?
(10:32:18) alf: utiliser le module dans lequel la classe est définie
(10:32:59) alf: plutôt que osv qui ne fait qu'importer Model depuis orm
(10:33:45) alf: ça évite de casser tout le code le jour où on supprime l'import de Model dans osv.py parce qu'il n'est pas utilisé dans ce module
(10:34:58) alf: en général c'est une bonne pratique de ne pas se reposer sur ces imports "transitifs"
(10:35:22) alf: à part pour les trucs qui sont définis dans __init__.py parce que dans ce cas on peut penser qu'il s'agit de l'api du package

rough translation:

SW: simple question, in your MP you use orm.Model instead of osv.Model. Why?

ME: to use the module in which the class is defined (orm) rather than osv which is importing the class from orm. This avoids breaking all the code when Model is no longer imported in osv.py (e.g. because it is no longer used in that module). As a general rule, it is a good practice not to rely on these 'transitive' imports, apart from things which are imported in __init__.py because these can be considered as the package's API.

more details:

What I call a transitive import is A.py defines foo. B import foo from A (and does stuff with it). C import foo from B and does stuff with it. There are several problems with this:

1. changing the import in B can have unexpected side effects which are difficult to anticipate (B's unittest will probably still pass, but C's unittest will suddenly break)
2. (removing the import and) redefining foo in B can break C in subtle ways
3. when working on C, if you want to look for the definition of foo, you have to work your way through the whole import chain. Here we are dealing with a simple chain, but I've seen longer chains (sometimes with "import *" embedded for extra pleasure and it gets very messy very quickly)
4. this way of doing imports makes it easy to create import loops (and there are enough of these in openerp so far)

It would be quite different if the Model, etc... classes were exported by the osv package and not the osv module: in that architecture, the whole osv package's API would be well defined in the __init__.py file and all the submodules would be implementation details with which the common addon developper is not supposed to mess.

4159. By Alexandre Fayolle @ camptocamp <email address hidden>

[MRG] from trunk

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

updated the branch to the latest trunk. tests are green

Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) :
review: Approve
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

Reading the MP in its current state should give an idea of what the goal is. Maintaining this patch against trunk is time consuming, I'm going to stop doing so, but of course I'll gladly update the patch for a clean merge once I get a signal that the merge is going to happen.

Revision history for this message
Antony Lesuisse (OpenERP) (al-openerp) wrote :

Can you rebase on trunk since all imports have been cleaned

4160. By Alexandre Fayolle @ camptocamp <email address hidden>

update to trunk

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

@al-openerp: Thanks for getting back on this. I'm doing this and making sure this branch and its friend on openobject-addons are green on runbot, and I'll ping you once this is in a mergeable state.

4161. By Alexandre Fayolle @ camptocamp <email address hidden>

[FIX] missing import and alias in super call

4162. By Alexandre Fayolle @ camptocamp <email address hidden>

[REF] a few more osv.osv->orm.Model replacements

4163. By Alexandre Fayolle - camptocamp

[MRG] update to current trunk

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

@al-openerp: this branch as well as its cousin branch on the openobject-addons project have been updated to a recent trunk version, and the runbot is green.

Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

Just a little one that should be changed otherwise LGTM

191 +class ir_attachment(osv.Model):

review: Approve (code review)
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

@yvaucher-c2c: that's the case in the latest head, AFAICT

Revision history for this message
David BEAL (ak) (davidbeal) wrote :

Really good job Alexandre,

I hope OpenERP will hear your proposal, otherwise OpenERP 26 will have a lot unvalid code

A lot of developer add yet class call in their module (nice module however). It is not useful since 2.5 years

http://bazaar.launchpad.net/~openerp-india/openerp-india/trunk/view/head:/quotation_template/quotation_template.py#L101

Please update your snippets and don't copy/paste

OpenERP is a really good solution, easy to understand/extend, I would like it will continue to be like up to 50 years further.

Perhaps only one solution => break compatibility shorter with older code

Thanks for all those which contribute to clean code

Revision history for this message
Antony Lesuisse (OpenERP) (al-openerp) wrote :

Can you rebase on trunk, think only the osv.osv -> osv.Model changes will remain.

Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

@Alexandre l.191 is osv.Model instead of orm.Model my comment wasn't clear enough

Unmerged revisions

4163. By Alexandre Fayolle - camptocamp

[MRG] update to current trunk

4162. By Alexandre Fayolle @ camptocamp <email address hidden>

[REF] a few more osv.osv->orm.Model replacements

4161. By Alexandre Fayolle @ camptocamp <email address hidden>

[FIX] missing import and alias in super call

4160. By Alexandre Fayolle @ camptocamp <email address hidden>

update to trunk

4159. By Alexandre Fayolle @ camptocamp <email address hidden>

[MRG] from trunk

4158. By Alexandre Fayolle @ camptocamp <email address hidden>

[MRG] from trunk

4157. By Alexandre Fayolle @ camptocamp <email address hidden>

[REF] get rid of deprecated model class instanciation

4156. By Alexandre Fayolle @ camptocamp <email address hidden>

[FIX] fix name errors and add missing imports

4155. By Alexandre Fayolle @ camptocamp <email address hidden>

[FIX] remove dead code

4154. By Alexandre Fayolle @ camptocamp <email address hidden>

[REVERT] revert the past 5 commits

there are some circular imports, and theses changes broke a lot of things... I'll to a safer change

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openerp/addons/base/ir/ir_actions.py'
--- openerp/addons/base/ir/ir_actions.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_actions.py 2012-12-20 14:23:22 +0000
@@ -27,7 +27,7 @@
2727
28from openerp import SUPERUSER_ID28from openerp import SUPERUSER_ID
29from openerp import netsvc, tools29from openerp import netsvc, tools
30from openerp.osv import fields, osv30from openerp.osv import fields, osv, orm
31from openerp.report.report_sxw import report_sxw, report_rml31from openerp.report.report_sxw import report_sxw, report_rml
32from openerp.tools.config import config32from openerp.tools.config import config
33from openerp.tools.safe_eval import safe_eval as eval33from openerp.tools.safe_eval import safe_eval as eval
@@ -35,7 +35,7 @@
3535
36_logger = logging.getLogger(__name__)36_logger = logging.getLogger(__name__)
3737
38class actions(osv.osv):38class actions(orm.Model):
39 _name = 'ir.actions.actions'39 _name = 'ir.actions.actions'
40 _table = 'ir_actions'40 _table = 'ir_actions'
41 _order = 'name'41 _order = 'name'
@@ -50,10 +50,9 @@
50 _defaults = {50 _defaults = {
51 'usage': lambda *a: False,51 'usage': lambda *a: False,
52 }52 }
53actions()53
5454
5555class report_xml(orm.Model):
56class report_xml(osv.osv):
5756
58 def _report_content(self, cursor, user, ids, name, arg, context=None):57 def _report_content(self, cursor, user, ids, name, arg, context=None):
59 res = {}58 res = {}
@@ -150,9 +149,8 @@
150 'attachment': False,149 'attachment': False,
151 }150 }
152151
153report_xml()
154152
155class act_window(osv.osv):153class act_window(orm.Model):
156 _name = 'ir.actions.act_window'154 _name = 'ir.actions.act_window'
157 _table = 'ir_act_window'155 _table = 'ir_act_window'
158 _inherit = 'ir.actions.actions'156 _inherit = 'ir.actions.actions'
@@ -274,7 +272,6 @@
274 res_id = dataobj.browse(cr, uid, data_id, context).res_id272 res_id = dataobj.browse(cr, uid, data_id, context).res_id
275 return self.read(cr, uid, res_id, [], context)273 return self.read(cr, uid, res_id, [], context)
276274
277act_window()
278275
279VIEW_TYPES = [276VIEW_TYPES = [
280 ('tree', 'Tree'),277 ('tree', 'Tree'),
@@ -283,7 +280,7 @@
283 ('calendar', 'Calendar'),280 ('calendar', 'Calendar'),
284 ('gantt', 'Gantt'),281 ('gantt', 'Gantt'),
285 ('kanban', 'Kanban')]282 ('kanban', 'Kanban')]
286class act_window_view(osv.osv):283class act_window_view(orm.Model):
287 _name = 'ir.actions.act_window.view'284 _name = 'ir.actions.act_window.view'
288 _table = 'ir_act_window_view'285 _table = 'ir_act_window_view'
289 _rec_name = 'view_id'286 _rec_name = 'view_id'
@@ -304,9 +301,8 @@
304 cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'act_window_view_unique_mode_per_action\'')301 cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'act_window_view_unique_mode_per_action\'')
305 if not cr.fetchone():302 if not cr.fetchone():
306 cr.execute('CREATE UNIQUE INDEX act_window_view_unique_mode_per_action ON ir_act_window_view (act_window_id, view_mode)')303 cr.execute('CREATE UNIQUE INDEX act_window_view_unique_mode_per_action ON ir_act_window_view (act_window_id, view_mode)')
307act_window_view()
308304
309class act_wizard(osv.osv):305class act_wizard(orm.Model):
310 _name = 'ir.actions.wizard'306 _name = 'ir.actions.wizard'
311 _inherit = 'ir.actions.actions'307 _inherit = 'ir.actions.actions'
312 _table = 'ir_act_wizard'308 _table = 'ir_act_wizard'
@@ -324,9 +320,8 @@
324 'type': 'ir.actions.wizard',320 'type': 'ir.actions.wizard',
325 'multi': False,321 'multi': False,
326 }322 }
327act_wizard()
328323
329class act_url(osv.osv):324class act_url(orm.Model):
330 _name = 'ir.actions.act_url'325 _name = 'ir.actions.act_url'
331 _table = 'ir_act_url'326 _table = 'ir_act_url'
332 _inherit = 'ir.actions.actions'327 _inherit = 'ir.actions.actions'
@@ -346,7 +341,6 @@
346 'type': 'ir.actions.act_url',341 'type': 'ir.actions.act_url',
347 'target': 'new'342 'target': 'new'
348 }343 }
349act_url()
350344
351def model_get(self, cr, uid, context=None):345def model_get(self, cr, uid, context=None):
352 wkf_pool = self.pool.get('workflow')346 wkf_pool = self.pool.get('workflow')
@@ -363,15 +357,14 @@
363357
364 return res358 return res
365359
366class ir_model_fields(osv.osv):360class ir_model_fields(orm.Model):
367 _inherit = 'ir.model.fields'361 _inherit = 'ir.model.fields'
368 _rec_name = 'field_description'362 _rec_name = 'field_description'
369 _columns = {363 _columns = {
370 'complete_name': fields.char('Complete Name', size=64, select=1),364 'complete_name': fields.char('Complete Name', size=64, select=1),
371 }365 }
372ir_model_fields()
373366
374class server_object_lines(osv.osv):367class server_object_lines(orm.Model):
375 _name = 'ir.server.object.lines'368 _name = 'ir.server.object.lines'
376 _sequence = 'ir_actions_id_seq'369 _sequence = 'ir_actions_id_seq'
377 _columns = {370 _columns = {
@@ -389,12 +382,11 @@
389 _defaults = {382 _defaults = {
390 'type': 'equation',383 'type': 'equation',
391 }384 }
392server_object_lines()
393385
394##386##
395# Actions that are run on the server side387# Actions that are run on the server side
396#388#
397class actions_server(osv.osv):389class actions_server(orm.Model):
398390
399 def _select_signals(self, cr, uid, context=None):391 def _select_signals(self, cr, uid, context=None):
400 cr.execute("""SELECT distinct w.osv, t.signal FROM wkf w, wkf_activity a, wkf_transition t392 cr.execute("""SELECT distinct w.osv, t.signal FROM wkf w, wkf_activity a, wkf_transition t
@@ -715,6 +707,8 @@
715 expr = exp.value707 expr = exp.value
716 res[exp.col1.name] = expr708 res[exp.col1.name] = expr
717709
710 obj_pool = None
711 res_id = False
718 obj_pool = self.pool.get(action.srcmodel_id.model)712 obj_pool = self.pool.get(action.srcmodel_id.model)
719 res_id = obj_pool.create(cr, uid, res)713 res_id = obj_pool.create(cr, uid, res)
720 if action.record_id:714 if action.record_id:
@@ -737,23 +731,21 @@
737731
738 return False732 return False
739733
740actions_server()
741734
742class act_window_close(osv.osv):735class act_window_close(orm.Model):
743 _name = 'ir.actions.act_window_close'736 _name = 'ir.actions.act_window_close'
744 _inherit = 'ir.actions.actions'737 _inherit = 'ir.actions.actions'
745 _table = 'ir_actions'738 _table = 'ir_actions'
746 _defaults = {739 _defaults = {
747 'type': 'ir.actions.act_window_close',740 'type': 'ir.actions.act_window_close',
748 }741 }
749act_window_close()
750742
751# This model use to register action services.743# This model use to register action services.
752TODO_STATES = [('open', 'To Do'),744TODO_STATES = [('open', 'To Do'),
753 ('done', 'Done')]745 ('done', 'Done')]
754TODO_TYPES = [('manual', 'Launch Manually'),('once', 'Launch Manually Once'),746TODO_TYPES = [('manual', 'Launch Manually'),('once', 'Launch Manually Once'),
755 ('automatic', 'Launch Automatically')]747 ('automatic', 'Launch Automatically')]
756class ir_actions_todo(osv.osv):748class ir_actions_todo(orm.Model):
757 """749 """
758 Configuration Wizards750 Configuration Wizards
759 """751 """
@@ -849,9 +841,8 @@
849 'todo': len(total) - len(done)841 'todo': len(total) - len(done)
850 }842 }
851843
852ir_actions_todo()
853844
854class act_client(osv.osv):845class act_client(orm.Model):
855 _name = 'ir.actions.client'846 _name = 'ir.actions.client'
856 _inherit = 'ir.actions.actions'847 _inherit = 'ir.actions.actions'
857 _table = 'ir_act_client'848 _table = 'ir_act_client'
@@ -892,6 +883,5 @@
892 'context': '{}',883 'context': '{}',
893884
894 }885 }
895act_client()
896886
897# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:887# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
898888
=== modified file 'openerp/addons/base/ir/ir_attachment.py'
--- openerp/addons/base/ir/ir_attachment.py 2012-12-20 02:37:21 +0000
+++ openerp/addons/base/ir/ir_attachment.py 2012-12-20 14:23:22 +0000
@@ -25,9 +25,9 @@
25import re25import re
2626
27from openerp import tools27from openerp import tools
28from openerp.osv import fields,osv28from openerp.osv import fields, osv, orm
2929
30class ir_attachment(osv.osv):30class ir_attachment(osv.Model):
31 """Attachments are used to link binary files or url to any openerp document.31 """Attachments are used to link binary files or url to any openerp document.
3232
33 External attachment storage33 External attachment storage
3434
=== modified file 'openerp/addons/base/ir/ir_config_parameter.py'
--- openerp/addons/base/ir/ir_config_parameter.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/ir/ir_config_parameter.py 2012-12-20 14:23:22 +0000
@@ -26,7 +26,7 @@
26import datetime26import datetime
2727
28from openerp import SUPERUSER_ID28from openerp import SUPERUSER_ID
29from openerp.osv import osv, fields29from openerp.osv import fields, orm
30from openerp.tools import misc, config30from openerp.tools import misc, config
3131
32"""32"""
@@ -38,7 +38,7 @@
38 "web.base.url": lambda: "http://localhost:%s" % config.get('xmlrpc_port'),38 "web.base.url": lambda: "http://localhost:%s" % config.get('xmlrpc_port'),
39}39}
4040
41class ir_config_parameter(osv.osv):41class ir_config_parameter(orm.Model):
42 """Per-database storage of configuration key-value pairs."""42 """Per-database storage of configuration key-value pairs."""
4343
44 _name = 'ir.config_parameter'44 _name = 'ir.config_parameter'
4545
=== modified file 'openerp/addons/base/ir/ir_cron.py'
--- openerp/addons/base/ir/ir_cron.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_cron.py 2012-12-20 14:23:22 +0000
@@ -26,7 +26,7 @@
2626
27import openerp27import openerp
28from openerp import netsvc28from openerp import netsvc
29from openerp.osv import fields, osv29from openerp.osv import fields, osv, orm
30from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT30from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
31from openerp.tools.safe_eval import safe_eval as eval31from openerp.tools.safe_eval import safe_eval as eval
32from openerp.tools.translate import _32from openerp.tools.translate import _
@@ -45,7 +45,7 @@
45 'minutes': lambda interval: relativedelta(minutes=interval),45 'minutes': lambda interval: relativedelta(minutes=interval),
46}46}
4747
48class ir_cron(osv.osv):48class ir_cron(orm.Model):
49 """ Model describing cron jobs (also called actions or tasks).49 """ Model describing cron jobs (also called actions or tasks).
50 """50 """
5151
5252
=== modified file 'openerp/addons/base/ir/ir_default.py'
--- openerp/addons/base/ir/ir_default.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/ir/ir_default.py 2012-12-20 14:23:22 +0000
@@ -19,9 +19,9 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields, osv22from openerp.osv import fields, orm
2323
24class ir_default(osv.osv):24class ir_default(orm.Model):
25 _name = 'ir.default'25 _name = 'ir.default'
26 _columns = {26 _columns = {
27 'field_tbl': fields.char('Object',size=64),27 'field_tbl': fields.char('Object',size=64),
@@ -43,7 +43,6 @@
43 _defaults = {43 _defaults = {
44 'company_id': _get_company_id,44 'company_id': _get_company_id,
45 }45 }
46ir_default()
4746
4847
49# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:48# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
5049
=== modified file 'openerp/addons/base/ir/ir_exports.py'
--- openerp/addons/base/ir/ir_exports.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/ir/ir_exports.py 2012-12-20 14:23:22 +0000
@@ -19,10 +19,10 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields,osv22from openerp.osv import fields, orm
2323
2424
25class ir_exports(osv.osv):25class ir_exports(orm.Model):
26 _name = "ir.exports"26 _name = "ir.exports"
27 _order = 'name'27 _order = 'name'
28 _columns = {28 _columns = {
@@ -31,17 +31,15 @@
31 'export_fields': fields.one2many('ir.exports.line', 'export_id',31 'export_fields': fields.one2many('ir.exports.line', 'export_id',
32 'Export ID'),32 'Export ID'),
33 }33 }
34ir_exports()34
3535
3636class ir_exports_line(orm.Model):
37class ir_exports_line(osv.osv):
38 _name = 'ir.exports.line'37 _name = 'ir.exports.line'
39 _order = 'id'38 _order = 'id'
40 _columns = {39 _columns = {
41 'name': fields.char('Field Name', size=64),40 'name': fields.char('Field Name', size=64),
42 'export_id': fields.many2one('ir.exports', 'Export', select=True, ondelete='cascade'),41 'export_id': fields.many2one('ir.exports', 'Export', select=True, ondelete='cascade'),
43 }42 }
44ir_exports_line()
4543
46# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:44# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
4745
4846
=== modified file 'openerp/addons/base/ir/ir_filters.py'
--- openerp/addons/base/ir/ir_filters.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_filters.py 2012-12-20 14:23:22 +0000
@@ -20,10 +20,10 @@
20##############################################################################20##############################################################################
2121
22from openerp import exceptions22from openerp import exceptions
23from openerp.osv import osv, fields23from openerp.osv import fields, orm
24from openerp.tools.translate import _24from openerp.tools.translate import _
2525
26class ir_filters(osv.osv):26class ir_filters(orm.Model):
27 _name = 'ir.filters'27 _name = 'ir.filters'
28 _description = 'Filters'28 _description = 'Filters'
2929
@@ -142,6 +142,5 @@
142 'is_default': False142 'is_default': False
143 }143 }
144144
145ir_filters()
146145
147# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:146# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
148147
=== modified file 'openerp/addons/base/ir/ir_mail_server.py'
--- openerp/addons/base/ir/ir_mail_server.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_mail_server.py 2012-12-20 14:23:22 +0000
@@ -31,7 +31,7 @@
31import smtplib31import smtplib
32import threading32import threading
3333
34from openerp.osv import osv, fields34from openerp.osv import osv, fields, orm
35from openerp.tools.translate import _35from openerp.tools.translate import _
36from openerp.tools import html2text36from openerp.tools import html2text
37import openerp.tools as tools37import openerp.tools as tools
@@ -159,7 +159,7 @@
159 return COMMASPACE.join(extract_rfc2822_addresses(header_text_utf8))159 return COMMASPACE.join(extract_rfc2822_addresses(header_text_utf8))
160160
161 161
162class ir_mail_server(osv.osv):162class ir_mail_server(orm.Model):
163 """Represents an SMTP server, able to send outgoing emails, with SSL and TLS capabilities."""163 """Represents an SMTP server, able to send outgoing emails, with SSL and TLS capabilities."""
164 _name = "ir.mail_server"164 _name = "ir.mail_server"
165165
166166
=== modified file 'openerp/addons/base/ir/ir_model.py'
--- openerp/addons/base/ir/ir_model.py 2012-12-14 13:25:33 +0000
+++ openerp/addons/base/ir/ir_model.py 2012-12-20 14:23:22 +0000
@@ -27,8 +27,7 @@
27import openerp27import openerp
28from openerp import SUPERUSER_ID28from openerp import SUPERUSER_ID
29from openerp import netsvc, pooler, tools29from openerp import netsvc, pooler, tools
30from openerp.osv import fields,osv30from openerp.osv import fields, osv, orm
31from openerp.osv.orm import Model
32from openerp.tools.safe_eval import safe_eval as eval31from openerp.tools.safe_eval import safe_eval as eval
33from openerp.tools import config32from openerp.tools import config
34from openerp.tools.translate import _33from openerp.tools.translate import _
@@ -56,12 +55,12 @@
56 installed_modules = set(x['name'] for x in installed_module_names)55 installed_modules = set(x['name'] for x in installed_module_names)
5756
58 result = {}57 result = {}
59 xml_ids = osv.osv._get_xml_ids(self, cr, uid, ids)58 xml_ids = orm.Model._get_xml_ids(self, cr, uid, ids)
60 for k,v in xml_ids.iteritems():59 for k,v in xml_ids.iteritems():
61 result[k] = ', '.join(sorted(installed_modules & set(xml_id.split('.')[0] for xml_id in v)))60 result[k] = ', '.join(sorted(installed_modules & set(xml_id.split('.')[0] for xml_id in v)))
62 return result61 return result
6362
64class ir_model(osv.osv):63class ir_model(orm.Model):
65 _name = 'ir.model'64 _name = 'ir.model'
66 _description = "Models"65 _description = "Models"
67 _order = 'model'66 _order = 'model'
@@ -198,7 +197,7 @@
198 return res197 return res
199198
200 def instanciate(self, cr, user, model, context=None):199 def instanciate(self, cr, user, model, context=None):
201 class x_custom_model(osv.osv):200 class x_custom_model(orm.Model):
202 pass201 pass
203 x_custom_model._name = model202 x_custom_model._name = model
204 x_custom_model._module = False203 x_custom_model._module = False
@@ -212,7 +211,7 @@
212 x_custom_model._rec_name = x_name211 x_custom_model._rec_name = x_name
213 a._rec_name = x_name212 a._rec_name = x_name
214213
215class ir_model_fields(osv.osv):214class ir_model_fields(orm.Model):
216 _name = 'ir.model.fields'215 _name = 'ir.model.fields'
217 _description = "Fields"216 _description = "Fields"
218217
@@ -468,7 +467,7 @@
468 obj._auto_init(cr, ctx)467 obj._auto_init(cr, ctx)
469 return res468 return res
470469
471class ir_model_constraint(Model):470class ir_model_constraint(orm.Model):
472 """471 """
473 This model tracks PostgreSQL foreign keys and constraints used by OpenERP472 This model tracks PostgreSQL foreign keys and constraints used by OpenERP
474 models.473 models.
@@ -537,7 +536,7 @@
537536
538 self.unlink(cr, uid, ids, context)537 self.unlink(cr, uid, ids, context)
539538
540class ir_model_relation(Model):539class ir_model_relation(orm.Model):
541 """540 """
542 This model tracks PostgreSQL tables used to implement OpenERP many2many541 This model tracks PostgreSQL tables used to implement OpenERP many2many
543 relations.542 relations.
@@ -590,7 +589,7 @@
590589
591 cr.commit()590 cr.commit()
592591
593class ir_model_access(osv.osv):592class ir_model_access(orm.Model):
594 _name = 'ir.model.access'593 _name = 'ir.model.access'
595 _columns = {594 _columns = {
596 'name': fields.char('Name', size=64, required=True, select=True),595 'name': fields.char('Name', size=64, required=True, select=True),
@@ -769,7 +768,7 @@
769 res = super(ir_model_access, self).unlink(cr, uid, *args, **argv)768 res = super(ir_model_access, self).unlink(cr, uid, *args, **argv)
770 return res769 return res
771770
772class ir_model_data(osv.osv):771class ir_model_data(orm.Model):
773 """Holds external identifier keys for records in the database.772 """Holds external identifier keys for records in the database.
774 This has two main uses:773 This has two main uses:
775774
@@ -832,7 +831,7 @@
832 ]831 ]
833832
834 def __init__(self, pool, cr):833 def __init__(self, pool, cr):
835 osv.osv.__init__(self, pool, cr)834 orm.Model.__init__(self, pool, cr)
836 self.doinit = True835 self.doinit = True
837 # also stored in pool to avoid being discarded along with this osv instance836 # also stored in pool to avoid being discarded along with this osv instance
838 if getattr(pool, 'model_data_reference_ids', None) is None:837 if getattr(pool, 'model_data_reference_ids', None) is None:
839838
=== modified file 'openerp/addons/base/ir/ir_rule.py'
--- openerp/addons/base/ir/ir_rule.py 2012-12-17 14:30:29 +0000
+++ openerp/addons/base/ir/ir_rule.py 2012-12-20 14:23:22 +0000
@@ -22,11 +22,11 @@
2222
23from openerp import SUPERUSER_ID23from openerp import SUPERUSER_ID
24from openerp import tools24from openerp import tools
25from openerp.osv import fields, osv, expression25from openerp.osv import fields, osv, orm, expression
26from openerp.tools.safe_eval import safe_eval as eval26from openerp.tools.safe_eval import safe_eval as eval
27from openerp.tools.misc import unquote as unquote27from openerp.tools.misc import unquote as unquote
2828
29class ir_rule(osv.osv):29class ir_rule(orm.Model):
30 _name = 'ir.rule'30 _name = 'ir.rule'
31 _order = 'name'31 _order = 'name'
32 _MODES = ['read', 'write', 'create', 'unlink']32 _MODES = ['read', 'write', 'create', 'unlink']
@@ -172,7 +172,6 @@
172 self.clear_cache(cr,uid)172 self.clear_cache(cr,uid)
173 return res173 return res
174174
175ir_rule()
176175
177# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:176# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
178177
179178
=== modified file 'openerp/addons/base/ir/ir_sequence.py'
--- openerp/addons/base/ir/ir_sequence.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_sequence.py 2012-12-20 14:23:22 +0000
@@ -23,12 +23,12 @@
23import time23import time
2424
25import openerp25import openerp
26from openerp.osv import osv26from openerp.osv import osv, orm
27from openerp.tools.translate import _27from openerp.tools.translate import _
2828
29_logger = logging.getLogger(__name__)29_logger = logging.getLogger(__name__)
3030
31class ir_sequence_type(openerp.osv.osv.osv):31class ir_sequence_type(orm.Model):
32 _name = 'ir.sequence.type'32 _name = 'ir.sequence.type'
33 _order = 'name'33 _order = 'name'
34 _columns = {34 _columns = {
@@ -44,7 +44,7 @@
44 cr.execute('select code, name from ir_sequence_type')44 cr.execute('select code, name from ir_sequence_type')
45 return cr.fetchall()45 return cr.fetchall()
4646
47class ir_sequence(openerp.osv.osv.osv):47class ir_sequence(orm.Model):
48 """ Sequence model.48 """ Sequence model.
4949
50 The sequence model allows to define and use so-called sequence objects.50 The sequence model allows to define and use so-called sequence objects.
5151
=== modified file 'openerp/addons/base/ir/ir_translation.py'
--- openerp/addons/base/ir/ir_translation.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_translation.py 2012-12-20 14:23:22 +0000
@@ -23,7 +23,7 @@
2323
24from openerp import tools24from openerp import tools
25import openerp.modules25import openerp.modules
26from openerp.osv import fields, osv26from openerp.osv import fields, osv, orm
27from openerp.tools.translate import _27from openerp.tools.translate import _
2828
29_logger = logging.getLogger(__name__)29_logger = logging.getLogger(__name__)
@@ -145,7 +145,7 @@
145 cr.execute("DROP TABLE %s" % self._table_name)145 cr.execute("DROP TABLE %s" % self._table_name)
146 return True146 return True
147147
148class ir_translation(osv.osv):148class ir_translation(orm.Model):
149 _name = "ir.translation"149 _name = "ir.translation"
150 _log_access = False150 _log_access = False
151151
152152
=== modified file 'openerp/addons/base/ir/ir_ui_menu.py'
--- openerp/addons/base/ir/ir_ui_menu.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_ui_menu.py 2012-12-20 14:23:22 +0000
@@ -3,7 +3,7 @@
3#3#
4# OpenERP, Open Source Management Solution4# OpenERP, Open Source Management Solution
5# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).5# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
6# Copyright (C) 2010-2012 OpenERP SA (<http://openerp.com>).6# Copyright (C) 2010-2011 OpenERP SA (<http://openerp.com>).
7#7#
8# This program is free software: you can redistribute it and/or modify8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU Affero General Public License as9# it under the terms of the GNU Affero General Public License as
@@ -26,7 +26,7 @@
26from openerp.tools.safe_eval import safe_eval as eval26from openerp.tools.safe_eval import safe_eval as eval
27from openerp import tools27from openerp import tools
28import openerp.modules28import openerp.modules
29from openerp.osv import fields, osv29from openerp.osv import fields, osv, orm
30from openerp.tools.translate import _30from openerp.tools.translate import _
31from openerp import SUPERUSER_ID31from openerp import SUPERUSER_ID
3232
@@ -38,7 +38,7 @@
38 return True38 return True
39 return False39 return False
4040
41class ir_ui_menu(osv.osv):41class ir_ui_menu(orm.Model):
42 _name = 'ir.ui.menu'42 _name = 'ir.ui.menu'
4343
44 def __init__(self, *args, **kwargs):44 def __init__(self, *args, **kwargs):
4545
=== modified file 'openerp/addons/base/ir/ir_ui_view.py'
--- openerp/addons/base/ir/ir_ui_view.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_ui_view.py 2012-12-20 14:23:22 +0000
@@ -24,14 +24,14 @@
24import os24import os
2525
26from openerp import tools26from openerp import tools
27from openerp.osv import fields,osv27from openerp.osv import fields, osv, orm
28from openerp.tools import graph28from openerp.tools import graph
29from openerp.tools.safe_eval import safe_eval as eval29from openerp.tools.safe_eval import safe_eval as eval
30from openerp.tools.view_validation import valid_view30from openerp.tools.view_validation import valid_view
3131
32_logger = logging.getLogger(__name__)32_logger = logging.getLogger(__name__)
3333
34class view_custom(osv.osv):34class view_custom(orm.Model):
35 _name = 'ir.ui.view.custom'35 _name = 'ir.ui.view.custom'
36 _order = 'create_date desc' # search(limit=1) should return the last customization36 _order = 'create_date desc' # search(limit=1) should return the last customization
37 _columns = {37 _columns = {
@@ -46,7 +46,7 @@
46 if not cr.fetchone():46 if not cr.fetchone():
47 cr.execute('CREATE INDEX ir_ui_view_custom_user_id_ref_id ON ir_ui_view_custom (user_id, ref_id)')47 cr.execute('CREATE INDEX ir_ui_view_custom_user_id_ref_id ON ir_ui_view_custom (user_id, ref_id)')
4848
49class view(osv.osv):49class view(orm.Model):
50 _name = 'ir.ui.view'50 _name = 'ir.ui.view'
5151
52 def _type_field(self, cr, uid, ids, name, args, context=None):52 def _type_field(self, cr, uid, ids, name, args, context=None):
@@ -99,7 +99,7 @@
99 else:99 else:
100 inferred_type = etree.fromstring(values['arch'].encode('utf8')).tag100 inferred_type = etree.fromstring(values['arch'].encode('utf8')).tag
101 values['name'] = "%s %s" % (values['model'], inferred_type)101 values['name'] = "%s %s" % (values['model'], inferred_type)
102 return super(osv.osv, self).create(cr, uid, values, context)102 return super(orm.Model, self).create(cr, uid, values, context)
103103
104 def _relaxng(self):104 def _relaxng(self):
105 if not self._relaxng_validator:105 if not self._relaxng_validator:
@@ -273,7 +273,7 @@
273 'blank_nodes': blank_nodes,273 'blank_nodes': blank_nodes,
274 'node_parent_field': _Model_Field,}274 'node_parent_field': _Model_Field,}
275275
276class view_sc(osv.osv):276class view_sc(orm.Model):
277 _name = 'ir.ui.view_sc'277 _name = 'ir.ui.view_sc'
278 _columns = {278 _columns = {
279 'name': fields.char('Shortcut Name', size=64), # Kept for backwards compatibility only - resource name used instead (translatable)279 'name': fields.char('Shortcut Name', size=64), # Kept for backwards compatibility only - resource name used instead (translatable)
280280
=== modified file 'openerp/addons/base/ir/ir_values.py'
--- openerp/addons/base/ir/ir_values.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/ir/ir_values.py 2012-12-20 14:23:22 +0000
@@ -20,7 +20,7 @@
20##############################################################################20##############################################################################
21import pickle21import pickle
2222
23from openerp.osv import osv, fields23from openerp.osv import osv, fields, orm
24from openerp.osv.orm import except_orm24from openerp.osv.orm import except_orm
2525
26EXCLUDED_FIELDS = set((26EXCLUDED_FIELDS = set((
@@ -37,7 +37,7 @@
37 ]37 ]
3838
3939
40class ir_values(osv.osv):40class ir_values(orm.Model):
41 """Holds internal model-specific action bindings and user-defined default41 """Holds internal model-specific action bindings and user-defined default
42 field values. definitions. This is a legacy internal model, mixing42 field values. definitions. This is a legacy internal model, mixing
43 two different concepts, and will likely be updated or replaced in a43 two different concepts, and will likely be updated or replaced in a
4444
=== modified file 'openerp/addons/base/ir/wizard/wizard_menu.py'
--- openerp/addons/base/ir/wizard/wizard_menu.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/ir/wizard/wizard_menu.py 2012-12-20 14:23:22 +0000
@@ -19,9 +19,9 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields, osv22from openerp.osv import fields, osv, orm
2323
24class wizard_model_menu(osv.osv_memory):24class wizard_model_menu(orm.TransientModel):
25 _name = 'wizard.ir.model.menu.create'25 _name = 'wizard.ir.model.menu.create'
26 _columns = {26 _columns = {
27 'menu_id': fields.many2one('ir.ui.menu', 'Parent Menu', required=True),27 'menu_id': fields.many2one('ir.ui.menu', 'Parent Menu', required=True),
2828
=== modified file 'openerp/addons/base/ir/workflow/workflow.py'
--- openerp/addons/base/ir/workflow/workflow.py 2012-10-12 12:24:19 +0000
+++ openerp/addons/base/ir/workflow/workflow.py 2012-12-20 14:23:22 +0000
@@ -19,11 +19,11 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields, osv22from openerp.osv import fields, osv, orm
23from openerp.tools.translate import _23from openerp.tools.translate import _
24from openerp import netsvc24from openerp import netsvc
2525
26class workflow(osv.osv):26class workflow(orm.Model):
27 _name = "workflow"27 _name = "workflow"
28 _table = "wkf"28 _table = "wkf"
29 _order = "name"29 _order = "name"
@@ -66,9 +66,8 @@
66 wf_service.clear_cache(cr, user)66 wf_service.clear_cache(cr, user)
67 return super(workflow, self).create(cr, user, vals, context=context)67 return super(workflow, self).create(cr, user, vals, context=context)
6868
69workflow()
7069
71class wkf_activity(osv.osv):70class wkf_activity(orm.Model):
72 _name = "workflow.activity"71 _name = "workflow.activity"
73 _table = "wkf_activity"72 _table = "wkf_activity"
74 _order = "name"73 _order = "name"
@@ -100,9 +99,8 @@
100 _('Please make sure no workitems refer to an activity before deleting it!'))99 _('Please make sure no workitems refer to an activity before deleting it!'))
101 super(wkf_activity, self).unlink(cr, uid, ids, context=context)100 super(wkf_activity, self).unlink(cr, uid, ids, context=context)
102101
103wkf_activity()
104102
105class wkf_transition(osv.osv):103class wkf_transition(orm.Model):
106 _table = "wkf_transition"104 _table = "wkf_transition"
107 _name = "workflow.transition"105 _name = "workflow.transition"
108 _rec_name = 'signal'106 _rec_name = 'signal'
@@ -125,9 +123,8 @@
125 _defaults = {123 _defaults = {
126 'condition': lambda *a: 'True',124 'condition': lambda *a: 'True',
127 }125 }
128wkf_transition()
129126
130class wkf_instance(osv.osv):127class wkf_instance(orm.Model):
131 _table = "wkf_instance"128 _table = "wkf_instance"
132 _name = "workflow.instance"129 _name = "workflow.instance"
133 _rec_name = 'res_type'130 _rec_name = 'res_type'
@@ -147,9 +144,8 @@
147 if not cr.fetchone():144 if not cr.fetchone():
148 cr.execute('CREATE INDEX wkf_instance_res_id_wkf_id_index ON wkf_instance (res_id, wkf_id)')145 cr.execute('CREATE INDEX wkf_instance_res_id_wkf_id_index ON wkf_instance (res_id, wkf_id)')
149146
150wkf_instance()
151147
152class wkf_workitem(osv.osv):148class wkf_workitem(orm.Model):
153 _table = "wkf_workitem"149 _table = "wkf_workitem"
154 _name = "workflow.workitem"150 _name = "workflow.workitem"
155 _log_access = False151 _log_access = False
@@ -161,9 +157,8 @@
161 'inst_id': fields.many2one('workflow.instance', 'Instance', required=True, ondelete="cascade", select=True),157 'inst_id': fields.many2one('workflow.instance', 'Instance', required=True, ondelete="cascade", select=True),
162 'state': fields.char('Status', size=64, select=True),158 'state': fields.char('Status', size=64, select=True),
163 }159 }
164wkf_workitem()
165160
166class wkf_triggers(osv.osv):161class wkf_triggers(orm.Model):
167 _table = "wkf_triggers"162 _table = "wkf_triggers"
168 _name = "workflow.triggers"163 _name = "workflow.triggers"
169 _log_access = False164 _log_access = False
@@ -178,7 +173,6 @@
178 cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'wkf_triggers_res_id_model_index\'')173 cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'wkf_triggers_res_id_model_index\'')
179 if not cr.fetchone():174 if not cr.fetchone():
180 cr.execute('CREATE INDEX wkf_triggers_res_id_model_index ON wkf_triggers (res_id, model)')175 cr.execute('CREATE INDEX wkf_triggers_res_id_model_index ON wkf_triggers (res_id, model)')
181wkf_triggers()
182176
183177
184# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:178# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
185179
=== modified file 'openerp/addons/base/module/module.py'
--- openerp/addons/base/module/module.py 2012-12-17 14:30:29 +0000
+++ openerp/addons/base/module/module.py 2012-12-20 14:23:22 +0000
@@ -46,7 +46,7 @@
46 'nodestroy':True,46 'nodestroy':True,
47}47}
4848
49class module_category(osv.osv):49class module_category(orm.Model):
50 _name = "ir.module.category"50 _name = "ir.module.category"
51 _description = "Application"51 _description = "Application"
5252
@@ -662,7 +662,7 @@
662 if not mod.description:662 if not mod.description:
663 _logger.warning('module %s: description is empty !', mod.name)663 _logger.warning('module %s: description is empty !', mod.name)
664664
665class module_dependency(osv.osv):665class module_dependency(orm.Model):
666 _name = "ir.module.module.dependency"666 _name = "ir.module.module.dependency"
667 _description = "Module dependency"667 _description = "Module dependency"
668668
669669
=== modified file 'openerp/addons/base/module/wizard/base_export_language.py'
--- openerp/addons/base/module/wizard/base_export_language.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_export_language.py 2012-12-20 14:23:22 +0000
@@ -23,13 +23,13 @@
23import cStringIO23import cStringIO
2424
25from openerp import tools25from openerp import tools
26from openerp.osv import fields,osv26from openerp.osv import fields, osv, orm
27from openerp.tools.translate import _27from openerp.tools.translate import _
28from openerp.tools.misc import get_iso_codes28from openerp.tools.misc import get_iso_codes
2929
30NEW_LANG_KEY = '__new__'30NEW_LANG_KEY = '__new__'
3131
32class base_language_export(osv.osv_memory):32class base_language_export(orm.TransientModel):
33 _name = "base.language.export"33 _name = "base.language.export"
3434
35 def _get_languages(self, cr, uid, context):35 def _get_languages(self, cr, uid, context):
3636
=== modified file 'openerp/addons/base/module/wizard/base_import_language.py'
--- openerp/addons/base/module/wizard/base_import_language.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_import_language.py 2012-12-20 14:23:22 +0000
@@ -23,9 +23,9 @@
23from tempfile import TemporaryFile23from tempfile import TemporaryFile
2424
25from openerp import tools25from openerp import tools
26from openerp.osv import osv, fields26from openerp.osv import osv, fields, orm
2727
28class base_language_import(osv.osv_memory):28class base_language_import(orm.TransientModel):
29 """ Language Import """29 """ Language Import """
3030
31 _name = "base.language.import"31 _name = "base.language.import"
3232
=== modified file 'openerp/addons/base/module/wizard/base_language_install.py'
--- openerp/addons/base/module/wizard/base_language_install.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_language_install.py 2012-12-20 14:23:22 +0000
@@ -20,10 +20,10 @@
20##############################################################################20##############################################################################
2121
22from openerp import tools22from openerp import tools
23from openerp.osv import osv, fields23from openerp.osv import osv, fields, orm
24from openerp.tools.translate import _24from openerp.tools.translate import _
2525
26class base_language_install(osv.osv_memory):26class base_language_install(orm.TransientModel):
27 """ Install Language"""27 """ Install Language"""
2828
29 _name = "base.language.install"29 _name = "base.language.install"
3030
=== modified file 'openerp/addons/base/module/wizard/base_module_configuration.py'
--- openerp/addons/base/module/wizard/base_module_configuration.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_module_configuration.py 2012-12-20 14:23:22 +0000
@@ -19,10 +19,10 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import osv22from openerp.osv import orm
23from openerp.tools.translate import _23from openerp.tools.translate import _
2424
25class base_module_configuration(osv.osv_memory):25class base_module_configuration(orm.TransientModel):
2626
27 _name = "base.module.configuration"27 _name = "base.module.configuration"
2828
@@ -48,6 +48,5 @@
48 config_pool = self.pool.get('res.config')48 config_pool = self.pool.get('res.config')
49 return config_pool.start(cr, uid, ids, context=context)49 return config_pool.start(cr, uid, ids, context=context)
5050
51base_module_configuration()
5251
53# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:52# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
5453
=== modified file 'openerp/addons/base/module/wizard/base_module_import.py'
--- openerp/addons/base/module/wizard/base_module_import.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_module_import.py 2012-12-20 14:23:22 +0000
@@ -25,12 +25,12 @@
25import zipfile25import zipfile
2626
27from openerp import tools27from openerp import tools
28from openerp.osv import osv, fields28from openerp.osv import osv, fields, orm
29from openerp.tools.translate import _29from openerp.tools.translate import _
3030
31ADDONS_PATH = tools.config['addons_path'].split(",")[-1]31ADDONS_PATH = tools.config['addons_path'].split(",")[-1]
3232
33class base_module_import(osv.osv_memory):33class base_module_import(orm.TransientModel):
34 """ Import Module """34 """ Import Module """
3535
36 _name = "base.module.import"36 _name = "base.module.import"
3737
=== modified file 'openerp/addons/base/module/wizard/base_module_scan.py'
--- openerp/addons/base/module/wizard/base_module_scan.py 2012-12-17 14:30:29 +0000
+++ openerp/addons/base/module/wizard/base_module_scan.py 2012-12-20 14:23:22 +0000
@@ -24,9 +24,9 @@
24import zipfile24import zipfile
2525
26from openerp import tools26from openerp import tools
27from openerp.osv import osv27from openerp.osv import orm
2828
29class base_module_scan(osv.osv_memory):29class base_module_scan(orm.TransientModel):
30 """ scan module """30 """ scan module """
3131
32 _name = "base.module.scan"32 _name = "base.module.scan"
@@ -69,6 +69,5 @@
69 mod_obj.write(cr, uid, [mod['id']], {'state': 'uninstalled'})69 mod_obj.write(cr, uid, [mod['id']], {'state': 'uninstalled'})
70 return {}70 return {}
7171
72base_module_scan()
7372
74# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:73# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
7574
=== modified file 'openerp/addons/base/module/wizard/base_module_update.py'
--- openerp/addons/base/module/wizard/base_module_update.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_module_update.py 2012-12-20 14:23:22 +0000
@@ -19,9 +19,9 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import osv, fields22from openerp.osv import osv, fields, orm
2323
24class base_module_update(osv.osv_memory):24class base_module_update(orm.TransientModel):
25 """ Update Module """25 """ Update Module """
2626
27 _name = "base.module.update"27 _name = "base.module.update"
2828
=== modified file 'openerp/addons/base/module/wizard/base_module_upgrade.py'
--- openerp/addons/base/module/wizard/base_module_upgrade.py 2012-11-02 09:31:10 +0000
+++ openerp/addons/base/module/wizard/base_module_upgrade.py 2012-12-20 14:23:22 +0000
@@ -20,10 +20,10 @@
20##############################################################################20##############################################################################
2121
22from openerp import pooler22from openerp import pooler
23from openerp.osv import osv, fields23from openerp.osv import osv, fields, orm
24from openerp.tools.translate import _24from openerp.tools.translate import _
2525
26class base_module_upgrade(osv.osv_memory):26class base_module_upgrade(orm.TransientModel):
27 """ Module Upgrade """27 """ Module Upgrade """
2828
29 _name = "base.module.upgrade"29 _name = "base.module.upgrade"
3030
=== modified file 'openerp/addons/base/module/wizard/base_update_translations.py'
--- openerp/addons/base/module/wizard/base_update_translations.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/module/wizard/base_update_translations.py 2012-12-20 14:23:22 +0000
@@ -22,10 +22,10 @@
22import cStringIO22import cStringIO
2323
24from openerp import tools24from openerp import tools
25from openerp.osv import osv, fields25from openerp.osv import osv, fields, orm
26from openerp.tools.translate import _26from openerp.tools.translate import _
2727
28class base_update_translations(osv.osv_memory):28class base_update_translations(orm.TransientModel):
29 def _get_languages(self, cr, uid, context):29 def _get_languages(self, cr, uid, context):
30 lang_obj = self.pool.get('res.lang')30 lang_obj = self.pool.get('res.lang')
31 ids = lang_obj.search(cr, uid, ['&', ('active', '=', True), ('translatable', '=', True),])31 ids = lang_obj.search(cr, uid, ['&', ('active', '=', True), ('translatable', '=', True),])
3232
=== modified file 'openerp/addons/base/res/ir_property.py'
--- openerp/addons/base/res/ir_property.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/res/ir_property.py 2012-12-20 14:23:22 +0000
@@ -21,14 +21,14 @@
2121
22import time22import time
2323
24from openerp.osv import osv,fields24from openerp.osv import osv, fields, orm
25from openerp.tools.misc import attrgetter25from openerp.tools.misc import attrgetter
2626
27# -------------------------------------------------------------------------27# -------------------------------------------------------------------------
28# Properties28# Properties
29# -------------------------------------------------------------------------29# -------------------------------------------------------------------------
3030
31class ir_property(osv.osv):31class ir_property(orm.Model):
32 _name = 'ir.property'32 _name = 'ir.property'
3333
34 def _models_field_get(self, cr, uid, field_key, field_value, context=None):34 def _models_field_get(self, cr, uid, field_key, field_value, context=None):
@@ -188,7 +188,6 @@
188 '|', ('company_id', '=', cid), ('company_id', '=', False)]188 '|', ('company_id', '=', cid), ('company_id', '=', False)]
189 return domain189 return domain
190190
191ir_property()
192191
193192
194193
195194
=== modified file 'openerp/addons/base/res/res_bank.py'
--- openerp/addons/base/res/res_bank.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/res/res_bank.py 2012-12-20 14:23:22 +0000
@@ -19,10 +19,10 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields, osv22from openerp.osv import fields, osv, orm
23from openerp.tools.translate import _23from openerp.tools.translate import _
2424
25class Bank(osv.osv):25class Bank(orm.Model):
26 _description='Bank'26 _description='Bank'
27 _name = 'res.bank'27 _name = 'res.bank'
28 _order = 'name'28 _order = 'name'
@@ -51,10 +51,9 @@
51 result.append((bank.id, (bank.bic and (bank.bic + ' - ') or '') + bank.name))51 result.append((bank.id, (bank.bic and (bank.bic + ' - ') or '') + bank.name))
52 return result52 return result
5353
54Bank()54
5555
5656class res_partner_bank_type(orm.Model):
57class res_partner_bank_type(osv.osv):
58 _description='Bank Account Type'57 _description='Bank Account Type'
59 _name = 'res.partner.bank.type'58 _name = 'res.partner.bank.type'
60 _order = 'name'59 _order = 'name'
@@ -67,9 +66,8 @@
67 _defaults = {66 _defaults = {
68 'format_layout': lambda *args: "%(bank_name)s: %(acc_number)s"67 'format_layout': lambda *args: "%(bank_name)s: %(acc_number)s"
69 }68 }
70res_partner_bank_type()
7169
72class res_partner_bank_type_fields(osv.osv):70class res_partner_bank_type_fields(orm.Model):
73 _description='Bank type fields'71 _description='Bank type fields'
74 _name = 'res.partner.bank.type.field'72 _name = 'res.partner.bank.type.field'
75 _order = 'name'73 _order = 'name'
@@ -80,10 +78,9 @@
80 'readonly': fields.boolean('Readonly'),78 'readonly': fields.boolean('Readonly'),
81 'size': fields.integer('Max. Size'),79 'size': fields.integer('Max. Size'),
82 }80 }
83res_partner_bank_type_fields()81
8482
8583class res_partner_bank(orm.Model):
86class res_partner_bank(osv.osv):
87 '''Bank Accounts'''84 '''Bank Accounts'''
88 _name = "res.partner.bank"85 _name = "res.partner.bank"
89 _rec_name = "acc_number"86 _rec_name = "acc_number"
@@ -234,6 +231,5 @@
234 result['state_id'] = part.state_id.id231 result['state_id'] = part.state_id.id
235 return {'value': result}232 return {'value': result}
236233
237res_partner_bank()
238234
239# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:235# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
240236
=== modified file 'openerp/addons/base/res/res_company.py'
--- openerp/addons/base/res/res_company.py 2012-12-17 12:59:02 +0000
+++ openerp/addons/base/res/res_company.py 2012-12-20 14:23:22 +0000
@@ -23,12 +23,12 @@
2323
24import openerp24import openerp
25from openerp import SUPERUSER_ID, tools25from openerp import SUPERUSER_ID, tools
26from openerp.osv import fields, osv26from openerp.osv import fields, osv, orm
27from openerp.tools.translate import _27from openerp.tools.translate import _
28from openerp.tools.safe_eval import safe_eval as eval28from openerp.tools.safe_eval import safe_eval as eval
29from openerp.tools import image_resize_image29from openerp.tools import image_resize_image
3030
31class multi_company_default(osv.osv):31class multi_company_default(orm.Model):
32 """32 """
33 Manage multi company default value33 Manage multi company default value
34 """34 """
@@ -68,9 +68,8 @@
68 default['name'] = company.name + _(' (copy)')68 default['name'] = company.name + _(' (copy)')
69 return super(multi_company_default, self).copy(cr, uid, id, default, context=context)69 return super(multi_company_default, self).copy(cr, uid, id, default, context=context)
7070
71multi_company_default()
7271
73class res_company(osv.osv):72class res_company(orm.Model):
74 _name = "res.company"73 _name = "res.company"
75 _description = 'Companies'74 _description = 'Companies'
76 _order = 'name'75 _order = 'name'
7776
=== modified file 'openerp/addons/base/res/res_config.py'
--- openerp/addons/base/res/res_config.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/res/res_config.py 2012-12-20 14:23:22 +0000
@@ -22,13 +22,13 @@
22from operator import attrgetter22from operator import attrgetter
2323
24from openerp import pooler24from openerp import pooler
25from openerp.osv import osv, fields25from openerp.osv import osv, fields, orm
26from openerp.tools import ustr26from openerp.tools import ustr
27from openerp.tools.translate import _27from openerp.tools.translate import _
2828
29_logger = logging.getLogger(__name__)29_logger = logging.getLogger(__name__)
3030
31class res_config_configurable(osv.osv_memory):31class res_config_configurable(orm.TransientModel):
32 ''' Base classes for new-style configuration items32 ''' Base classes for new-style configuration items
3333
34 Configuration items should inherit from this class, implement34 Configuration items should inherit from this class, implement
@@ -150,9 +150,8 @@
150 if next: return next150 if next: return next
151 return self.next(cr, uid, ids, context=context)151 return self.next(cr, uid, ids, context=context)
152152
153res_config_configurable()
154153
155class res_config_installer(osv.osv_memory):154class res_config_installer(orm.TransientModel):
156 """ New-style configuration base specialized for addons selection155 """ New-style configuration base specialized for addons selection
157 and installation.156 and installation.
158157
@@ -308,7 +307,7 @@
308307
309 hooks_results = set()308 hooks_results = set()
310 for module in base:309 for module in base:
311 hook = getattr(self, '_if_%s'% module, None)310 hook = getattr(self, '_if_%s' % module, None)
312 if hook:311 if hook:
313 hooks_results.update(hook(cr, uid, ids, context=None) or set())312 hooks_results.update(hook(cr, uid, ids, context=None) or set())
314313
@@ -361,13 +360,11 @@
361 cr.commit() #TOFIX: after remove this statement, installation wizard is fail360 cr.commit() #TOFIX: after remove this statement, installation wizard is fail
362 new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)361 new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)
363362
364res_config_installer()
365
366DEPRECATION_MESSAGE = 'You are using an addon using old-style configuration '\363DEPRECATION_MESSAGE = 'You are using an addon using old-style configuration '\
367 'wizards (ir.actions.configuration.wizard). Old-style configuration '\364 'wizards (ir.actions.configuration.wizard). Old-style configuration '\
368 'wizards have been deprecated.\n'\365 'wizards have been deprecated.\n'\
369 'The addon should be migrated to res.config objects.'366 'The addon should be migrated to res.config objects.'
370class ir_actions_configuration_wizard(osv.osv_memory):367class ir_actions_configuration_wizard(orm.TransientModel):
371 ''' Compatibility configuration wizard368 ''' Compatibility configuration wizard
372369
373 The old configuration wizard has been replaced by res.config, but in order370 The old configuration wizard has been replaced by res.config, but in order
@@ -397,16 +394,15 @@
397 def execute(self, cr, uid, ids, context=None):394 def execute(self, cr, uid, ids, context=None):
398 _logger.warning(DEPRECATION_MESSAGE)395 _logger.warning(DEPRECATION_MESSAGE)
399396
400ir_actions_configuration_wizard()397
401398
402399
403400class res_config_settings(orm.TransientModel):
404class res_config_settings(osv.osv_memory):
405 """ Base configuration wizard for application settings. It provides support for setting401 """ Base configuration wizard for application settings. It provides support for setting
406 default values, assigning groups to employee users, and installing modules.402 default values, assigning groups to employee users, and installing modules.
407 To make such a 'settings' wizard, define a model like::403 To make such a 'settings' wizard, define a model like::
408404
409 class my_config_wizard(osv.osv_memory):405 class my_config_wizard(orm.TransientModel):
410 _name = 'my.settings'406 _name = 'my.settings'
411 _inherit = 'res.config.settings'407 _inherit = 'res.config.settings'
412 _columns = {408 _columns = {
413409
=== modified file 'openerp/addons/base/res/res_country.py'
--- openerp/addons/base/res/res_country.py 2012-12-10 15:27:23 +0000
+++ openerp/addons/base/res/res_country.py 2012-12-20 14:23:22 +0000
@@ -19,7 +19,7 @@
19#19#
20##############################################################################20##############################################################################
2121
22from openerp.osv import fields, osv22from openerp.osv import fields, orm
2323
24def location_name_search(self, cr, user, name='', args=None, operator='ilike',24def location_name_search(self, cr, user, name='', args=None, operator='ilike',
25 context=None, limit=100):25 context=None, limit=100):
@@ -39,7 +39,7 @@
39 locations = self.name_get(cr, user, ids, context)39 locations = self.name_get(cr, user, ids, context)
40 return sorted(locations, key=lambda (id, name): ids.index(id))40 return sorted(locations, key=lambda (id, name): ids.index(id))
4141
42class Country(osv.osv):42class Country(orm.Model):
43 _name = 'res.country'43 _name = 'res.country'
44 _description = 'Country'44 _description = 'Country'
45 _columns = {45 _columns = {
@@ -83,7 +83,7 @@
83 context=context)83 context=context)
8484
8585
86class CountryState(osv.osv):86class CountryState(orm.Model):
87 _description="Country state"87 _description="Country state"
88 _name = 'res.country.state'88 _name = 'res.country.state'
89 _columns = {89 _columns = {
9090
=== modified file 'openerp/addons/base/res/res_currency.py'
--- openerp/addons/base/res/res_currency.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/res/res_currency.py 2012-12-20 14:23:22 +0000
@@ -23,13 +23,13 @@
23import time23import time
2424
25from openerp import tools25from openerp import tools
26from openerp.osv import fields, osv26from openerp.osv import fields, osv, orm
27from openerp.tools import float_round, float_is_zero, float_compare27from openerp.tools import float_round, float_is_zero, float_compare
28from openerp.tools.translate import _28from openerp.tools.translate import _
2929
30CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?')30CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?')
3131
32class res_currency(osv.osv):32class res_currency(orm.Model):
33 def _current_rate(self, cr, uid, ids, name, arg, context=None):33 def _current_rate(self, cr, uid, ids, name, arg, context=None):
34 if context is None:34 if context is None:
35 context = {}35 context = {}
@@ -219,18 +219,16 @@
219 else:219 else:
220 return from_amount * rate220 return from_amount * rate
221221
222res_currency()
223222
224class res_currency_rate_type(osv.osv):223class res_currency_rate_type(orm.Model):
225 _name = "res.currency.rate.type"224 _name = "res.currency.rate.type"
226 _description = "Currency Rate Type"225 _description = "Currency Rate Type"
227 _columns = {226 _columns = {
228 'name': fields.char('Name', size=64, required=True, translate=True),227 'name': fields.char('Name', size=64, required=True, translate=True),
229 }228 }
230229
231res_currency_rate_type()
232230
233class res_currency_rate(osv.osv):231class res_currency_rate(orm.Model):
234 _name = "res.currency.rate"232 _name = "res.currency.rate"
235 _description = "Currency Rate"233 _description = "Currency Rate"
236234
@@ -245,7 +243,6 @@
245 }243 }
246 _order = "name desc"244 _order = "name desc"
247245
248res_currency_rate()
249246
250# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:247# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
251248
252249
=== modified file 'openerp/addons/base/res/res_lang.py'
--- openerp/addons/base/res/res_lang.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/res/res_lang.py 2012-12-20 14:23:22 +0000
@@ -25,13 +25,13 @@
25import re25import re
2626
27from openerp import tools27from openerp import tools
28from openerp.osv import fields, osv28from openerp.osv import fields, osv, orm
29from openerp.tools.safe_eval import safe_eval as eval29from openerp.tools.safe_eval import safe_eval as eval
30from openerp.tools.translate import _30from openerp.tools.translate import _
3131
32_logger = logging.getLogger(__name__)32_logger = logging.getLogger(__name__)
3333
34class lang(osv.osv):34class lang(orm.Model):
35 _name = "res.lang"35 _name = "res.lang"
36 _description = "Languages"36 _description = "Languages"
3737
@@ -226,7 +226,6 @@
226# _percent_re = re.compile(r'%(?:\((?P<key>.*?)\))?'226# _percent_re = re.compile(r'%(?:\((?P<key>.*?)\))?'
227# r'(?P<modifiers>[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]')227# r'(?P<modifiers>[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]')
228228
229lang()
230229
231def original_group(s, grouping, thousands_sep=''):230def original_group(s, grouping, thousands_sep=''):
232231
233232
=== modified file 'openerp/addons/base/res/res_partner.py'
--- openerp/addons/base/res/res_partner.py 2012-12-19 10:25:39 +0000
+++ openerp/addons/base/res/res_partner.py 2012-12-20 14:23:22 +0000
@@ -28,7 +28,7 @@
28import openerp28import openerp
29from openerp import SUPERUSER_ID29from openerp import SUPERUSER_ID
30from openerp import pooler, tools30from openerp import pooler, tools
31from openerp.osv import osv, fields31from openerp.osv import osv, fields, orm
32from openerp.tools.translate import _32from openerp.tools.translate import _
3333
34class format_address(object):34class format_address(object):
@@ -75,7 +75,7 @@
75def _tz_get(self,cr,uid, context=None):75def _tz_get(self,cr,uid, context=None):
76 return [(x, x) for x in pytz.all_timezones]76 return [(x, x) for x in pytz.all_timezones]
7777
78class res_partner_category(osv.osv):78class res_partner_category(orm.Model):
7979
80 def name_get(self, cr, uid, ids, context=None):80 def name_get(self, cr, uid, ids, context=None):
81 """Return the categories' display name, including their direct81 """Return the categories' display name, including their direct
@@ -141,7 +141,7 @@
141 _parent_order = 'name'141 _parent_order = 'name'
142 _order = 'parent_left'142 _order = 'parent_left'
143143
144class res_partner_title(osv.osv):144class res_partner_title(orm.Model):
145 _name = 'res.partner.title'145 _name = 'res.partner.title'
146 _order = 'name'146 _order = 'name'
147 _columns = {147 _columns = {
@@ -162,7 +162,7 @@
162POSTAL_ADDRESS_FIELDS = ('street', 'street2', 'zip', 'city', 'state_id', 'country_id')162POSTAL_ADDRESS_FIELDS = ('street', 'street2', 'zip', 'city', 'state_id', 'country_id')
163ADDRESS_FIELDS = POSTAL_ADDRESS_FIELDS + ('email', 'phone', 'fax', 'mobile', 'website', 'ref', 'lang')163ADDRESS_FIELDS = POSTAL_ADDRESS_FIELDS + ('email', 'phone', 'fax', 'mobile', 'website', 'ref', 'lang')
164164
165class res_partner(osv.osv, format_address):165class res_partner(orm.Model, format_address):
166 _description = 'Partner'166 _description = 'Partner'
167 _name = "res.partner"167 _name = "res.partner"
168168
169169
=== modified file 'openerp/addons/base/res/res_request.py'
--- openerp/addons/base/res/res_request.py 2012-12-17 14:47:53 +0000
+++ openerp/addons/base/res/res_request.py 2012-12-20 14:23:22 +0000
@@ -21,7 +21,7 @@
2121
22import time22import time
2323
24from openerp.osv import osv, fields24from openerp.osv import osv, fields, orm
2525
26def _links_get(self, cr, uid, context=None):26def _links_get(self, cr, uid, context=None):
27 obj = self.pool.get('res.request.link')27 obj = self.pool.get('res.request.link')
@@ -29,7 +29,7 @@
29 res = obj.read(cr, uid, ids, ['object', 'name'], context)29 res = obj.read(cr, uid, ids, ['object', 'name'], context)
30 return [(r['object'], r['name']) for r in res]30 return [(r['object'], r['name']) for r in res]
3131
32class res_request(osv.osv):32class res_request(orm.Model):
33 _name = 'res.request'33 _name = 'res.request'
3434
35 def request_send(self, cr, uid, ids, *args):35 def request_send(self, cr, uid, ids, *args):
@@ -85,9 +85,8 @@
85 }85 }
86 _order = 'priority desc, trigger_date, create_date desc'86 _order = 'priority desc, trigger_date, create_date desc'
87 _table = 'res_request'87 _table = 'res_request'
88res_request()
8988
90class res_request_link(osv.osv):89class res_request_link(orm.Model):
91 _name = 'res.request.link'90 _name = 'res.request.link'
92 _columns = {91 _columns = {
93 'name': fields.char('Name', size=64, required=True, translate=True),92 'name': fields.char('Name', size=64, required=True, translate=True),
@@ -98,9 +97,8 @@
98 'priority': 5,97 'priority': 5,
99 }98 }
100 _order = 'priority'99 _order = 'priority'
101res_request_link()
102100
103class res_request_history(osv.osv):101class res_request_history(orm.Model):
104 _name = 'res.request.history'102 _name = 'res.request.history'
105 _columns = {103 _columns = {
106 'name': fields.char('Summary', size=128, states={'active':[('readonly',True)],'waiting':[('readonly',True)]}, required=True),104 'name': fields.char('Summary', size=128, states={'active':[('readonly',True)],'waiting':[('readonly',True)]}, required=True),
@@ -116,7 +114,6 @@
116 'act_to': lambda obj,cr,uid,context=None: uid,114 'act_to': lambda obj,cr,uid,context=None: uid,
117 'date_sent': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),115 'date_sent': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
118 }116 }
119res_request_history()
120117
121118
122# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:119# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
123120
=== modified file 'openerp/addons/base/res/res_users.py'
--- openerp/addons/base/res/res_users.py 2012-12-19 10:13:15 +0000
+++ openerp/addons/base/res/res_users.py 2012-12-20 14:23:22 +0000
@@ -28,13 +28,13 @@
28from openerp import SUPERUSER_ID28from openerp import SUPERUSER_ID
29from openerp import pooler, tools29from openerp import pooler, tools
30import openerp.exceptions30import openerp.exceptions
31from openerp.osv import fields,osv31from openerp.osv import fields, osv, orm
32from openerp.osv.orm import browse_record32from openerp.osv.orm import browse_record
33from openerp.tools.translate import _33from openerp.tools.translate import _
3434
35_logger = logging.getLogger(__name__)35_logger = logging.getLogger(__name__)
3636
37class groups(osv.osv):37class groups(orm.Model):
38 _name = "res.groups"38 _name = "res.groups"
39 _description = "Access Groups"39 _description = "Access Groups"
40 _rec_name = 'full_name'40 _rec_name = 'full_name'
@@ -101,9 +101,8 @@
101 self.pool.get('ir.model.access').call_cache_clearing_methods(cr)101 self.pool.get('ir.model.access').call_cache_clearing_methods(cr)
102 return res102 return res
103103
104groups()
105104
106class res_users(osv.osv):105class res_users(orm.Model):
107 """ User class. A res.users record models an OpenERP user and is different106 """ User class. A res.users record models an OpenERP user and is different
108 from an employee.107 from an employee.
109108
@@ -531,7 +530,7 @@
531530
532531
533532
534class groups_implied(osv.osv):533class groups_implied(orm.Model):
535 _inherit = 'res.groups'534 _inherit = 'res.groups'
536535
537 def _get_trans_implied(self, cr, uid, ids, field, arg, context=None):536 def _get_trans_implied(self, cr, uid, ids, field, arg, context=None):
@@ -641,7 +640,7 @@
641640
642641
643642
644class groups_view(osv.osv):643class groups_view(orm.Model):
645 _inherit = 'res.groups'644 _inherit = 'res.groups'
646645
647 def create(self, cr, uid, values, context=None):646 def create(self, cr, uid, values, context=None):
@@ -739,7 +738,7 @@
739 res.append((False, 'boolean', others))738 res.append((False, 'boolean', others))
740 return res739 return res
741740
742class users_view(osv.osv):741class users_view(orm.Model):
743 _inherit = 'res.users'742 _inherit = 'res.users'
744743
745 def create(self, cr, uid, values, context=None):744 def create(self, cr, uid, values, context=None):
746745
=== modified file 'openerp/osv/orm.py'
--- openerp/osv/orm.py 2012-12-18 22:39:59 +0000
+++ openerp/osv/orm.py 2012-12-20 14:23:22 +0000
@@ -5236,7 +5236,7 @@
52365236
5237 OpenERP models are created by inheriting from this class::5237 OpenERP models are created by inheriting from this class::
52385238
5239 class user(Model):5239 class user(orm.Model):
5240 ...5240 ...
52415241
5242 The system will later instantiate the class once per database (on5242 The system will later instantiate the class once per database (on
52435243
=== modified file 'openerp/tests/addons/test_uninstall/models.py'
--- openerp/tests/addons/test_uninstall/models.py 2012-06-01 15:45:44 +0000
+++ openerp/tests/addons/test_uninstall/models.py 2012-12-20 14:23:22 +0000
@@ -1,9 +1,8 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2import openerp2import openerp
3from openerp.osv import fields3from openerp.osv import fields, orm
4from openerp.osv.orm import Model
54
6class test_uninstall_model(Model):5class test_uninstall_model(orm.Model):
7 """6 """
8 This model uses different types of columns to make it possible to test7 This model uses different types of columns to make it possible to test
9 the uninstall feature of OpenERP.8 the uninstall feature of OpenERP.
109
=== modified file 'openerp/tools/amount_to_text_en.py'
--- openerp/tools/amount_to_text_en.py 2012-12-14 13:44:55 +0000
+++ openerp/tools/amount_to_text_en.py 2012-12-20 14:23:22 +0000
@@ -118,17 +118,6 @@
118 lang = 'en'118 lang = 'en'
119 return _translate_funcs[lang](abs(nbr), currency)119 return _translate_funcs[lang](abs(nbr), currency)
120120
121if __name__=='__main__':
122 from sys import argv
123
124 lang = 'nl'
125 if len(argv) < 2:
126 for i in range(1,200):
127 print i, ">>", int_to_text(i, lang)
128 for i in range(200,999999,139):
129 print i, ">>", int_to_text(i, lang)
130 else:
131 print int_to_text(int(argv[1]), lang)
132121
133122
134# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:123# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: