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
1=== modified file 'openerp/__init__.py'
2--- openerp/__init__.py 2013-01-18 15:32:35 +0000
3+++ openerp/__init__.py 2013-02-04 10:14:24 +0000
4@@ -29,6 +29,8 @@
5 import cli
6 import conf
7 import loglevels
8+import fields
9+import models
10 import modules
11 import netsvc
12 import osv
13@@ -55,4 +57,3 @@
14 evented = False
15
16 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
17-
18
19=== added file 'openerp/fields.py'
20--- openerp/fields.py 1970-01-01 00:00:00 +0000
21+++ openerp/fields.py 2013-02-04 10:14:24 +0000
22@@ -0,0 +1,25 @@
23+# -*- coding: utf-8 -*-
24+
25+# Re-export (before we move things around properly).
26+from openerp.osv.fields import \
27+ Boolean, \
28+ Integer, \
29+ Reference, \
30+ Char, \
31+ Text, \
32+ Html, \
33+ Float, \
34+ Date, \
35+ DateTime, \
36+ Binary, \
37+ Selection, \
38+ ManyToOne, \
39+ OneToMany, \
40+ ManyToMany, \
41+ Function, \
42+ Related, \
43+ Sparse, \
44+ Serialized, \
45+ Property
46+
47+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
48
49=== added file 'openerp/models.py'
50--- openerp/models.py 1970-01-01 00:00:00 +0000
51+++ openerp/models.py 2013-02-04 10:14:24 +0000
52@@ -0,0 +1,6 @@
53+# -*- coding: utf-8 -*-
54+
55+# Re-export (before we move things around properly).
56+from openerp.osv.orm import Model, TransientModel, AbstractModel
57+
58+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
59
60=== modified file 'openerp/osv/fields.py'
61--- openerp/osv/fields.py 2013-01-11 17:57:17 +0000
62+++ openerp/osv/fields.py 2013-02-04 10:14:24 +0000
63@@ -41,7 +41,7 @@
64 import pytz
65 import re
66 import xmlrpclib
67-from psycopg2 import Binary
68+import psycopg2
69
70 import openerp
71 import openerp.tools as tools
72@@ -376,7 +376,7 @@
73 # unicode in some circumstances, hence the str() cast in symbol_f.
74 # This str coercion will only work for pure ASCII unicode strings,
75 # on purpose - non base64 data must be passed as a 8bit byte strings.
76- _symbol_f = lambda symb: symb and Binary(str(symb)) or None
77+ _symbol_f = lambda symb: symb and psycopg2.Binary(str(symb)) or None
78
79 _symbol_set = (_symbol_c, _symbol_f)
80 _symbol_get = lambda self, x: x and str(x)
81@@ -1572,5 +1572,26 @@
82 self.__class__.__name__, self.name, self.column,
83 self.parent_model, self.parent_column, self.original_parent)
84
85+# Synonyms, to match the naming convention of Model, TransientModel, and AbstractModel
86+Boolean = boolean
87+Integer = integer
88+Reference = reference
89+Char = char
90+Text = text
91+Html = html
92+Float = float
93+Date = date
94+DateTime = datetime
95+Binary = binary
96+Selection = selection
97+ManyToOne = many2one
98+OneToMany = one2many
99+ManyToMany = many2many
100+Function = function
101+Related = related
102+Sparse = sparse
103+Serialized = serialized
104+Property = property
105+
106 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
107
108
109=== modified file 'openerp/tests/addons/test_uninstall/models.py'
110--- openerp/tests/addons/test_uninstall/models.py 2012-06-01 15:45:44 +0000
111+++ openerp/tests/addons/test_uninstall/models.py 2013-02-04 10:14:24 +0000
112@@ -1,9 +1,8 @@
113 # -*- coding: utf-8 -*-
114 import openerp
115-from openerp.osv import fields
116-from openerp.osv.orm import Model
117+from openerp import fields, models
118
119-class test_uninstall_model(Model):
120+class test_uninstall_model(models.Model):
121 """
122 This model uses different types of columns to make it possible to test
123 the uninstall feature of OpenERP.
124@@ -11,9 +10,9 @@
125 _name = 'test_uninstall.model'
126
127 _columns = {
128- 'name': fields.char('Name', size=64),
129- 'ref': fields.many2one('res.users', string='User'),
130- 'rel': fields.many2many('res.users', string='Users'),
131+ 'name': fields.Char('Name', size=64),
132+ 'ref': fields.ManyToOne('res.users', string='User'),
133+ 'rel': fields.ManyToMany('res.users', string='Users'),
134 }
135
136 _sql_constraints = [