Vo Minh Thu (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/trunk-reexport-thu into lp:openobject-server.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-reexport-thu/+merge/146372

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?
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-reexport-thu/+merge/146372
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/trunk-reexport-thu.
=== modified file 'openerp/__init__.py'
--- openerp/__init__.py	2013-01-18 15:32:35 +0000
+++ openerp/__init__.py	2013-02-04 10:00:38 +0000
@@ -29,6 +29,8 @@
 import cli
 import conf
 import loglevels
+import fields
+import models
 import modules
 import netsvc
 import osv
@@ -55,4 +57,3 @@
 evented = False
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-

=== added file 'openerp/fields.py'
--- openerp/fields.py	1970-01-01 00:00:00 +0000
+++ openerp/fields.py	2013-02-04 10:00:38 +0000
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+
+# Re-export (before we move things around properly).
+from openerp.osv.fields import \
+  Boolean, \
+  Integer, \
+  Reference, \
+  Char, \
+  Text, \
+  Html, \
+  Float, \
+  Date, \
+  DateTime, \
+  Binary, \
+  Selection, \
+  ManyToOne, \
+  OneToMany, \
+  ManyToMany, \
+  Function, \
+  Related, \
+  Sparse, \
+  Serialized, \
+  Property
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'openerp/models.py'
--- openerp/models.py	1970-01-01 00:00:00 +0000
+++ openerp/models.py	2013-02-04 10:00:38 +0000
@@ -0,0 +1,7 @@
+# -*- coding: utf-8 -*-
+
+# Re-export (before we move things around properly).
+from openerp.osv.orm import Model, TransientModel, AbstractModel
+from . import fields
+
+# vim:expandtab:smartindent:tabstop\4:softtabstop\4:shiftwidth\4:

=== 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:00:38 +0000
@@ -41,7 +41,7 @@
 import pytz
 import re
 import xmlrpclib
-from psycopg2 import Binary
+import psycopg2
 
 import openerp
 import openerp.tools as tools
@@ -376,7 +376,7 @@
     # unicode in some circumstances, hence the str() cast in symbol_f.
     # This str coercion will only work for pure ASCII unicode strings,
     # on purpose - non base64 data must be passed as a 8bit byte strings.
-    _symbol_f = lambda symb: symb and Binary(str(symb)) or None
+    _symbol_f = lambda symb: symb and psycopg2.Binary(str(symb)) or None
 
     _symbol_set = (_symbol_c, _symbol_f)
     _symbol_get = lambda self, x: x and str(x)
@@ -1572,5 +1572,26 @@
             self.__class__.__name__, self.name, self.column,
             self.parent_model, self.parent_column, self.original_parent)
 
+# Synonyms, to match the naming convention of Model, TransientModel, and AbstractModel
+Boolean = boolean
+Integer = integer
+Reference = reference
+Char = char
+Text = text
+Html = html
+Float = float
+Date = date
+DateTime = datetime
+Binary = binary
+Selection = selection
+ManyToOne = many2one
+OneToMany = one2many
+ManyToMany = many2many
+Function = function
+Related = related
+Sparse = sparse
+Serialized = serialized
+Property = property
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 

=== 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:00:38 +0000
@@ -1,9 +1,8 @@
 # -*- coding: utf-8 -*-
 import openerp
-from openerp.osv import fields
-from openerp.osv.orm import Model
+from openerp import fields, models
 
-class test_uninstall_model(Model):
+class test_uninstall_model(models.Model):
     """
     This model uses different types of columns to make it possible to test
     the uninstall feature of OpenERP.
@@ -11,9 +10,9 @@
     _name = 'test_uninstall.model'
 
     _columns = {
-        'name': fields.char('Name', size=64),
-        'ref': fields.many2one('res.users', string='User'),
-        'rel': fields.many2many('res.users', string='Users'),
+        'name': fields.Char('Name', size=64),
+        'ref': fields.ManyToOne('res.users', string='User'),
+        'rel': fields.ManyToMany('res.users', string='Users'),
     }
 
     _sql_constraints = [

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : openerp-dev-gtk@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to