Merge lp:~openerp-dev/openobject-server/trunk-reexport-thu into lp:openobject-server

Proposed by Vo Minh Thu
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-server/trunk-reexport-thu
Merge into: lp:openobject-server
Diff against target: 136 lines (+61/-9)
5 files modified
openerp/__init__.py (+2/-1)
openerp/fields.py (+25/-0)
openerp/models.py (+6/-0)
openerp/osv/fields.py (+23/-2)
openerp/tests/addons/test_uninstall/models.py (+5/-6)
To merge this branch: bzr merge lp:~openerp-dev/openobject-server/trunk-reexport-thu
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+146372@code.launchpad.net

Description of the change

Time for some bikeshedding:

    # 0
    from openerp import *
    class res_user(Model):
      _columns = { 'name': Char() }

    # 1
    from openerp import exceptions, fields, models
    class res_user(models.Model):
      _columns = { 'name': fields.Char() }

    # 2
    import openerp
    class res_user(openerp.Model):
      _columns = { 'name': openerp.Char() }

    # 3
    import openerp
    class res_user(openerp.models.Model):
      _columns = { 'name': openerp.fields.Char() }

I think I like #1: openerp is not just an orm, so having openerp re-exporting the (admitedly commonly used) Model, Char, ... symbols seems to stress too much the orm side.

We also have openerp.exceptions which provides Warning, AccessDenied, AccessError. I like those to be on the same level as Model, Char, ... (which is the case when openerp.models lives side by side with openerp.fields).

But openerp is also about the workflows, the WSGI stack, import/export, reporting, maybe about process monitoring (I wish it was not), ... and really the use of models.Model, and fields.Char is just a few more characters among thousands of lines.

Thoughts?

To post a comment you must log in.
4770. By Vo Minh Thu

[REF] export (possibly renamed) models and fields.

4771. By Vo Minh Thu

[REF] use the newly reexported symbols from models and fields.

4772. By Vo Minh Thu

[FIX] reexport: reexporting fields from models was a mistake.

Unmerged revisions

4772. By Vo Minh Thu

[FIX] reexport: reexporting fields from models was a mistake.

4771. By Vo Minh Thu

[REF] use the newly reexported symbols from models and fields.

4770. By Vo Minh Thu

[REF] export (possibly renamed) models and fields.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openerp/__init__.py'
--- openerp/__init__.py 2013-01-18 15:32:35 +0000
+++ openerp/__init__.py 2013-02-04 10:14:24 +0000
@@ -29,6 +29,8 @@
29import cli29import cli
30import conf30import conf
31import loglevels31import loglevels
32import fields
33import models
32import modules34import modules
33import netsvc35import netsvc
34import osv36import osv
@@ -55,4 +57,3 @@
55evented = False57evented = False
5658
57# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:59# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
58
5960
=== added file 'openerp/fields.py'
--- openerp/fields.py 1970-01-01 00:00:00 +0000
+++ openerp/fields.py 2013-02-04 10:14:24 +0000
@@ -0,0 +1,25 @@
1# -*- coding: utf-8 -*-
2
3# Re-export (before we move things around properly).
4from openerp.osv.fields import \
5 Boolean, \
6 Integer, \
7 Reference, \
8 Char, \
9 Text, \
10 Html, \
11 Float, \
12 Date, \
13 DateTime, \
14 Binary, \
15 Selection, \
16 ManyToOne, \
17 OneToMany, \
18 ManyToMany, \
19 Function, \
20 Related, \
21 Sparse, \
22 Serialized, \
23 Property
24
25# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
026
=== added file 'openerp/models.py'
--- openerp/models.py 1970-01-01 00:00:00 +0000
+++ openerp/models.py 2013-02-04 10:14:24 +0000
@@ -0,0 +1,6 @@
1# -*- coding: utf-8 -*-
2
3# Re-export (before we move things around properly).
4from openerp.osv.orm import Model, TransientModel, AbstractModel
5
6# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
07
=== modified file 'openerp/osv/fields.py'
--- openerp/osv/fields.py 2013-01-11 17:57:17 +0000
+++ openerp/osv/fields.py 2013-02-04 10:14:24 +0000
@@ -41,7 +41,7 @@
41import pytz41import pytz
42import re42import re
43import xmlrpclib43import xmlrpclib
44from psycopg2 import Binary44import psycopg2
4545
46import openerp46import openerp
47import openerp.tools as tools47import openerp.tools as tools
@@ -376,7 +376,7 @@
376 # unicode in some circumstances, hence the str() cast in symbol_f.376 # unicode in some circumstances, hence the str() cast in symbol_f.
377 # This str coercion will only work for pure ASCII unicode strings,377 # This str coercion will only work for pure ASCII unicode strings,
378 # on purpose - non base64 data must be passed as a 8bit byte strings.378 # on purpose - non base64 data must be passed as a 8bit byte strings.
379 _symbol_f = lambda symb: symb and Binary(str(symb)) or None379 _symbol_f = lambda symb: symb and psycopg2.Binary(str(symb)) or None
380380
381 _symbol_set = (_symbol_c, _symbol_f)381 _symbol_set = (_symbol_c, _symbol_f)
382 _symbol_get = lambda self, x: x and str(x)382 _symbol_get = lambda self, x: x and str(x)
@@ -1572,5 +1572,26 @@
1572 self.__class__.__name__, self.name, self.column,1572 self.__class__.__name__, self.name, self.column,
1573 self.parent_model, self.parent_column, self.original_parent)1573 self.parent_model, self.parent_column, self.original_parent)
15741574
1575# Synonyms, to match the naming convention of Model, TransientModel, and AbstractModel
1576Boolean = boolean
1577Integer = integer
1578Reference = reference
1579Char = char
1580Text = text
1581Html = html
1582Float = float
1583Date = date
1584DateTime = datetime
1585Binary = binary
1586Selection = selection
1587ManyToOne = many2one
1588OneToMany = one2many
1589ManyToMany = many2many
1590Function = function
1591Related = related
1592Sparse = sparse
1593Serialized = serialized
1594Property = property
1595
1575# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:1596# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
15761597
15771598
=== 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 2013-02-04 10:14:24 +0000
@@ -1,9 +1,8 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2import openerp2import openerp
3from openerp.osv import fields3from openerp import fields, models
4from openerp.osv.orm import Model
54
6class test_uninstall_model(Model):5class test_uninstall_model(models.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.
@@ -11,9 +10,9 @@
11 _name = 'test_uninstall.model'10 _name = 'test_uninstall.model'
1211
13 _columns = {12 _columns = {
14 'name': fields.char('Name', size=64),13 'name': fields.Char('Name', size=64),
15 'ref': fields.many2one('res.users', string='User'),14 'ref': fields.ManyToOne('res.users', string='User'),
16 'rel': fields.many2many('res.users', string='Users'),15 'rel': fields.ManyToMany('res.users', string='Users'),
17 }16 }
1817
19 _sql_constraints = [18 _sql_constraints = [