diff --git a/better_zip/__init__.py b/better_zip/__init__.py new file mode 100644 index 000000000..cc8209e99 --- /dev/null +++ b/better_zip/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author Nicolas Bessi. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from . import better_zip diff --git a/better_zip/__openerp__.py b/better_zip/__openerp__.py new file mode 100644 index 000000000..e88013c19 --- /dev/null +++ b/better_zip/__openerp__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author Nicolas Bessi. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +{'name': 'Better zip management', + 'version': '0.3', + 'depends': ['base',], + 'author': 'Camptocamp', + 'description': """Introduce a better zip/npa management system. Enable partner completion""", + 'website': 'http://www.camptocamp.com', + 'data': ['security/security.xml', 'better_zip_view.xml'], + 'installable': True, + 'active': False, + } diff --git a/better_zip/better_zip.py b/better_zip/better_zip.py new file mode 100644 index 000000000..aa9d844ad --- /dev/null +++ b/better_zip/better_zip.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author Nicolas Bessi. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv.orm import Model, fields + + +class BetterZip(Model): + " Zip/NPA object" + + _name = "res.better.zip" + _description = __doc__ + _order = "priority" + + _columns = {'priority': fields.integer('Priority'), + 'name': fields.char('ZIP', required=True), + 'city': fields.char('City', required=True), + 'state_id': fields.many2one('res.country.state', 'State'), + 'country_id': fields.many2one('res.country', 'Country'), + } + + _defaults = {'priority': 100} + + def name_get(self, cursor, uid, ids, context=None): + res = [] + for bzip in self.browse(cursor, uid, ids): + res.append((bzip.id, u"%s %s" % (bzip.name, bzip.city))) + return res + + +class Partner(Model): + _inherit = "res.partner" + _columns = {'zip_id': fields.many2one('res.better.zip', 'ZIP/PN')} + + def onchange_zip_id(self, cursor, uid, ids, zip_id, context=None): + if not zip_id: + return {} + if isinstance(zip_id, list): + zip_id = zip_id[0] + bzip = self.pool['res.better.zip'].browse(cursor, uid, zip_id, context=context) + return {'value': {'zip': bzip.name, 'city': bzip.city, + 'country_id': bzip.country_id.id, 'state_id': bzip.state_id.id}} diff --git a/better_zip/better_zip_view.xml b/better_zip/better_zip_view.xml new file mode 100644 index 000000000..0bf23ca0e --- /dev/null +++ b/better_zip/better_zip_view.xml @@ -0,0 +1,59 @@ + + + + + res.partner.zip_id.2 + res.partner + + + + + + + + + + res.better.zip.form + res.better.zip + +
+ + + + + + + +
+
+
+ + + res.better.zip.tree + res.better.zip + + + + + + + + + + + + ZIP Management + res.better.zip + form + tree,form + + + + +
+
diff --git a/better_zip/security/security.xml b/better_zip/security/security.xml new file mode 100644 index 000000000..4139e2ea5 --- /dev/null +++ b/better_zip/security/security.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file