From 2e138b0d0d65e691bd324e3c9f072f5b9c3ef844 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Tue, 12 Apr 2011 10:26:42 +0530 Subject: [PATCH 01/17] [FIX] : Fixed partner label report bug. bzr revid: uco@tinyerp.com-20110412045642-d2gpgoyzmi00glio --- openerp/addons/base/res/partner/report/partner_address.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/partner/report/partner_address.xml b/openerp/addons/base/res/partner/report/partner_address.xml index a6865f88153..2a413f4e3c6 100644 --- a/openerp/addons/base/res/partner/report/partner_address.xml +++ b/openerp/addons/base/res/partner/report/partner_address.xml @@ -1,11 +1,11 @@
- + - + <title type="field" name="title.name"/> <name type="field" name="name"/> <street type="field" name="street"/> <street2 type="field" name="street2"/> From 59ee56541c419268aafd7890396923459d903a53 Mon Sep 17 00:00:00 2001 From: "AMP (OpenERP)" <amp@tinyerp.com> Date: Thu, 14 Apr 2011 15:22:31 +0530 Subject: [PATCH 02/17] [FIX] base : Fixes the partner manager group problem bzr revid: amp@tinyerp.com-20110414095231-jltmqb3i22z4s7i3 --- openerp/addons/base/res/res_security.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openerp/addons/base/res/res_security.xml b/openerp/addons/base/res/res_security.xml index 9185ec2dcac..df80f90373c 100644 --- a/openerp/addons/base/res/res_security.xml +++ b/openerp/addons/base/res/res_security.xml @@ -12,6 +12,9 @@ <record model="ir.ui.menu" id="menu_base_config"> <field eval="[(6,0,[ref('group_system'), ref('group_partner_manager')])]" name="groups_id"/> </record> + <record model="ir.ui.menu" id="menu_base_partner"> + <field eval="[(6,0,[ref('group_partner_manager')])]" name="groups_id"/> + </record> <!-- Record Rule For Company --> From da64dc059f21cbd1fcf07f11a78df613b8ae2c2d Mon Sep 17 00:00:00 2001 From: "Anup (OpenERP)" <ach@tinyerp.com> Date: Tue, 19 Apr 2011 14:33:43 +0530 Subject: [PATCH 03/17] [FIX] base : Now It's Possible to save languages that have code having size>5 bzr revid: ach@tinyerp.com-20110419090343-7h35qwblnfeotsg2 --- openerp/addons/base/res/partner/partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/partner/partner.py b/openerp/addons/base/res/partner/partner.py index a2de7f9d154..f02260a520f 100644 --- a/openerp/addons/base/res/partner/partner.py +++ b/openerp/addons/base/res/partner/partner.py @@ -116,7 +116,7 @@ class res_partner(osv.osv): 'parent_id': fields.many2one('res.partner','Parent Partner'), 'child_ids': fields.one2many('res.partner', 'parent_id', 'Partner Ref.'), 'ref': fields.char('Reference', size=64, select=1), - 'lang': fields.selection(_lang_get, 'Language', size=5, help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), + 'lang': fields.selection(_lang_get, 'Language', help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), 'user_id': fields.many2one('res.users', 'Salesman', help='The internal user that is in charge of communicating with this partner if any.'), 'vat': fields.char('VAT',size=32 ,help="Value Added Tax number. Check the box if the partner is subjected to the VAT. Used by the VAT legal statement."), 'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'), From 8cd3b960193f5709cbaf73f1575ed7d7bd454f00 Mon Sep 17 00:00:00 2001 From: "AMP (OpenERP)" <amp@tinyerp.com> Date: Tue, 19 Apr 2011 18:41:54 +0530 Subject: [PATCH 04/17] [FIX] Usability : Usability Improvement bzr revid: amp@tinyerp.com-20110419131154-1ucsrn7wtpq83apg --- .../base/publisher_warranty/publisher_warranty_view.xml | 5 +++-- openerp/addons/base/res/bank_view.xml | 2 +- openerp/addons/base/res/partner/partner.py | 4 ++-- openerp/addons/base/res/res_currency.py | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml b/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml index 7ee95eecde9..8c40d0a1c6b 100644 --- a/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml +++ b/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml @@ -37,9 +37,10 @@ <field name="check_opw"/> </group> <group col="2" colspan="3"> - <button name="check_validity" string="Validate" type="object" + <button name="check_validity" icon="camera_test.png +" string="Validate" type="object" attrs="{'invisible':[('state','in',['valid', 'terminated', 'canceled'])]}"/> - <button name="check_validity" string="Refresh Validation Dates" type="object" + <button name="check_validity" icon="camera_test.png" string="Refresh Validation Dates" type="object" attrs="{'invisible':[('state','in',['unvalidated'])]}"/> </group> </group> diff --git a/openerp/addons/base/res/bank_view.xml b/openerp/addons/base/res/bank_view.xml index 2929055b21e..10c78e847a2 100644 --- a/openerp/addons/base/res/bank_view.xml +++ b/openerp/addons/base/res/bank_view.xml @@ -25,7 +25,7 @@ <group colspan="2" col="2"> <field name="phone"/> <field name="fax"/> - <field name="email"/> + <field name="email" widget="email"/> </group> </form> </field> diff --git a/openerp/addons/base/res/partner/partner.py b/openerp/addons/base/res/partner/partner.py index a2de7f9d154..f773a101827 100644 --- a/openerp/addons/base/res/partner/partner.py +++ b/openerp/addons/base/res/partner/partner.py @@ -112,7 +112,7 @@ class res_partner(osv.osv): _columns = { 'name': fields.char('Name', size=128, required=True, select=True), 'date': fields.date('Date', select=1), - 'title': fields.many2one('res.partner.title','Partner Form'), + 'title': fields.many2one('res.partner.title','Partner Firm'), 'parent_id': fields.many2one('res.partner','Parent Partner'), 'child_ids': fields.one2many('res.partner', 'parent_id', 'Partner Ref.'), 'ref': fields.char('Reference', size=64, select=1), @@ -120,7 +120,7 @@ class res_partner(osv.osv): 'user_id': fields.many2one('res.users', 'Salesman', help='The internal user that is in charge of communicating with this partner if any.'), 'vat': fields.char('VAT',size=32 ,help="Value Added Tax number. Check the box if the partner is subjected to the VAT. Used by the VAT legal statement."), 'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'), - 'website': fields.char('Website',size=64, help="Website of Partner"), + 'website': fields.char('Website',size=64, help="Website of Partner."), 'comment': fields.text('Notes'), 'address': fields.one2many('res.partner.address', 'partner_id', 'Contacts'), 'category_id': fields.many2many('res.partner.category', 'res_partner_category_rel', 'partner_id', 'category_id', 'Categories'), diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index 2565d471cd3..caa97ec0339 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -49,12 +49,12 @@ class res_currency(osv.osv): _columns = { # Note: 'code' column was removed as of v6.0, the 'name' should now hold the ISO code. 'name': fields.char('Currency', size=32, required=True, help="Currency Code (ISO 4217)"), - 'symbol': fields.char('Symbol', size=3, help="Currency sign, to be used when printing amounts"), + 'symbol': fields.char('Symbol', size=3, help="Currency sign, to be used when printing amounts."), 'rate': fields.function(_current_rate, method=True, string='Current Rate', digits=(12,6), - help='The rate of the currency to the currency of rate 1'), + help='The rate of the currency to the currency of rate 1.'), 'rate_ids': fields.one2many('res.currency.rate', 'currency_id', 'Rates'), 'accuracy': fields.integer('Computational Accuracy'), - 'rounding': fields.float('Rounding factor', digits=(12,6)), + 'rounding': fields.float('Rounding Factor', digits=(12,6)), 'active': fields.boolean('Active'), 'company_id':fields.many2one('res.company', 'Company'), 'date': fields.date('Date'), From 6e516475ee4896a053d3227d93c2603ac23afe08 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Wed, 20 Apr 2011 11:19:47 +0530 Subject: [PATCH 05/17] [FIX]:editing shortcuts from client were not dispalying the changes bzr revid: nch@tinyerp.com-20110420054947-t02qg7sm8g5vzcuf --- openerp/addons/base/ir/ir_ui_view.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index b342235133e..1600fa62d90 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -196,13 +196,10 @@ class view_sc(osv.osv): def get_sc(self, cr, uid, user_id, model='ir.ui.menu', context=None): ids = self.search(cr, uid, [('user_id','=',user_id),('resource','=',model)], context=context) - results = self.read(cr, uid, ids, ['res_id'], context=context) - name_map = dict(self.pool.get(model).name_get(cr, uid, [x['res_id'] for x in results], context=context)) + results = self.read(cr, uid, ids, ['res_id','name'], context=context) + available_menus = self.pool.get(model).search(cr, uid, [], context=context) # Make sure to return only shortcuts pointing to exisintg menu items. - filtered_results = filter(lambda result: result['res_id'] in name_map, results) - for result in filtered_results: - result.update(name=name_map[result['res_id']]) - return filtered_results + return filter(lambda result: result['res_id'] in available_menus, results) _order = 'sequence,name' _defaults = { From dc6973b41ed1267291f65571f721080e6bb38b5c Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Wed, 20 Apr 2011 18:43:46 +0530 Subject: [PATCH 06/17] [FIX]:help defined in xml view was not considered for translation eg:on button lp bug: https://launchpad.net/bugs/705597 fixed bzr revid: nch@tinyerp.com-20110420131346-n5jfy76efdgnztqr --- openerp/osv/orm.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index c0b2e65c678..26f011cd252 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1277,6 +1277,10 @@ class orm_template(object): trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('sum')) if trans: node.set('sum', trans) + if node.get('help'): + trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('help')) + if trans: + node.set('help', trans) for f in node: if children or (node.tag == 'field' and f.tag in ('filter','separator')): From 4c65b5fbcc430dda6e246415e4629f0c5cfa4039 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Thu, 21 Apr 2011 12:06:28 +0530 Subject: [PATCH 07/17] [FIX]:printscreen report Title not getting translated value lp bug: https://launchpad.net/bugs/728173 fixed bzr revid: nch@tinyerp.com-20110421063628-1hy46os11im1qh0i --- openerp/report/printscreen/ps_list.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openerp/report/printscreen/ps_list.py b/openerp/report/printscreen/ps_list.py index 851945922ab..8b0ece6eaa0 100644 --- a/openerp/report/printscreen/ps_list.py +++ b/openerp/report/printscreen/ps_list.py @@ -67,11 +67,12 @@ class report_printscreen_list(report_int): self.groupby_no_leaf = context.get('group_by_no_leaf',False) pool = pooler.get_pool(cr.dbname) model = pool.get(datas['model']) - # Title come from description of model which are specified in py file. + model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)]) model_desc = model._description + if model_id: + model_desc = pool.get('ir.model').browse(cr, uid, model_id[0], context).name self.title = model_desc datas['ids'] = ids - model = pooler.get_pool(cr.dbname).get(datas['model']) result = model.fields_view_get(cr, uid, view_type='tree', context=context) fields_order = self.groupby + self._parse_string(result['arch']) if self.groupby: From 9de7a041ae0f372a24e0860c411ed98575235bd3 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Thu, 21 Apr 2011 14:22:57 +0530 Subject: [PATCH 08/17] [IMP]:added model name in the list view for ir.actions.report.xml lp bug: https://launchpad.net/bugs/755473 fixed bzr revid: nch@tinyerp.com-20110421085257-e0aitgy4vuz2m0so --- openerp/addons/base/ir/ir.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 8867dcd2351..6ce6d8c3285 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -474,6 +474,7 @@ <tree string="Report xml"> <field name="name"/> <field name="type"/> + <field name="model"/> <field name="report_name"/> <field name="report_type"/> <field name="attachment"/> From dce1a9ab59f11e75fad0d1ba92c60024614e31e7 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Thu, 21 Apr 2011 15:04:00 +0530 Subject: [PATCH 09/17] [FIX]:added missing of parsing of 'help' attribute while synchronizing translations bzr revid: nch@tinyerp.com-20110421093400-aigxqul71iw2avph --- openerp/tools/translate.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index 6b23ddd25a8..9723135ff49 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -503,6 +503,8 @@ def trans_parse_view(de): res.append(de.text.encode("utf8")) if de.get("string"): res.append(de.get('string').encode("utf8")) + if de.get("help"): + res.append(de.get('help').encode("utf8")) if de.get("sum"): res.append(de.get('sum').encode("utf8")) if de.get("confirm"): @@ -993,7 +995,7 @@ def resetlocale(): def load_language(cr, lang): """Loads a translation terms for a language. Used mainly to automate language loading at db initialization. - + :param lang: language ISO code with optional _underscore_ and l10n flavor (ex: 'fr', 'fr_BE', but not 'fr-BE') :type lang: str """ From ddfac1ecf7c63ce041ae636294a9697dbdff019b Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" <nch@tinyerp.com> Date: Thu, 21 Apr 2011 17:34:43 +0530 Subject: [PATCH 10/17] [IMP]:optimization lp bug: https://launchpad.net/bugs/722766 fixed bzr revid: nch@tinyerp.com-20110421120443-d30x5z0u1wciut42 --- openerp/osv/orm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index c0b2e65c678..70d22ed1dc4 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1616,7 +1616,7 @@ class orm_template(object): _rec_name = self._columns.keys()[0] xml = '<?xml version="1.0" encoding="utf-8"?>' \ '<tree string="%s"><field name="%s"/></tree>' \ - % (self._description, self._rec_name) + % (self._description, _rec_name) elif view_type == 'calendar': xml = self.__get_default_calendar_view() From 0ae1e8f2b9b6d5d499b145302bc982fcaf7faa4a Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Fri, 22 Apr 2011 17:54:52 +0200 Subject: [PATCH 11/17] [IMP] Some code about many2many widgets. bzr revid: nicolas.vanhoren@openerp.com-20110422155452-9lth3lrm8pwf9c2r --- addons/base/static/src/js/form.js | 16 ++++++++++++++++ addons/base/static/src/js/list.js | 8 +++++--- addons/base/static/src/xml/base.xml | 1 + 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 84d7fe0babd..ea2b377078b 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -896,6 +896,22 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldMany2Many"; + this.list_id = _.uniqueId("many2many"); + }, + start: function() { + debugger; + this._super.apply(this, arguments); + this.dataset = new openerp.base.DataSetSearch(this.session, this.field.relation); + this.list_view = new openerp.base.ListView(undefined, this.view.session, + this.list_id, this.dataset, false, undefined); + this.list_view.start(); + }, + set_value: function(value) { + if (value != false) { + this.dataset.ids = value; + this.dataset.count = value.length; + this.list_view.do_update(); + } } }); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 8035616e59a..aa9882aed36 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -64,7 +64,7 @@ openerp.base.ListView = openerp.base.Controller.extend( return this.rpc("/base/listview/load", { model: this.model, view_id: this.view_id, - toolbar: !!this.view_manager.sidebar + toolbar: this.view_manager ? !!this.view_manager.sidebar : false }, this.on_loaded); }, /** @@ -168,7 +168,7 @@ openerp.base.ListView = openerp.base.Controller.extend( 'tr', 'click', this.on_select_row); // sidebar stuff - if (this.view_manager.sidebar) { + if (this.view_manager && this.view_manager.sidebar) { this.view_manager.sidebar.set_toolbar(data.fields_view.toolbar); } }, @@ -262,7 +262,9 @@ openerp.base.ListView = openerp.base.Controller.extend( view = view || 'form'; this.dataset.index = index; _.delay(_.bind(function () { - this.view_manager.on_mode_switch(view); + if(this.view_manager) { + this.view_manager.on_mode_switch(view); + } }, this)); }, /** diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b49ef2c7d6a..4804f34d785 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -353,6 +353,7 @@ <t t-name="FieldMany2Many"> <div style="background: #ccc; padding: 20px"> Many2Many widget + <div t-attr-id="widget.list_id"></div> </div> </t> <t t-name="FieldReference"> From 5e2cda5a0c382c297e45bb28d32b9ad7c89b9271 Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Tue, 26 Apr 2011 10:55:27 +0200 Subject: [PATCH 12/17] [FIX] Made the list appear in many2many. bzr revid: nicolas.vanhoren@openerp.com-20110426085527-5ntgrkug2clipp2s --- addons/base/static/src/js/form.js | 1 - addons/base/static/src/js/search.js | 1 - addons/base/static/src/xml/base.xml | 5 +---- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index ea2b377078b..c6ec07b11e6 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -899,7 +899,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.list_id = _.uniqueId("many2many"); }, start: function() { - debugger; this._super.apply(this, arguments); this.dataset = new openerp.base.DataSetSearch(this.session, this.field.relation); this.list_view = new openerp.base.ListView(undefined, this.view.session, diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 0f4ab8585b8..ae5e8551b93 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -146,7 +146,6 @@ openerp.base.SearchView = openerp.base.Controller.extend({ do_search: function (e) { if (e && e.preventDefault) { e.preventDefault(); } - //debugger; var domains = [], contexts = []; var errors = []; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 4804f34d785..ef4cbba46b0 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -351,10 +351,7 @@ </div> </t> <t t-name="FieldMany2Many"> - <div style="background: #ccc; padding: 20px"> - Many2Many widget - <div t-attr-id="widget.list_id"></div> - </div> + <div t-att-id="widget.list_id"></div> </t> <t t-name="FieldReference"> <input type="text" t-att-name="widget.name" t-att-id="widget.element_id" t-att-class="'field_' + widget.type" style="width: 100%" placeholder="Widget Reference"/> From 2cfc487ccddc9b1a21c23facdd44aee27b0d82c9 Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Tue, 26 Apr 2011 13:24:13 +0200 Subject: [PATCH 13/17] [IMP] Read-only many2many implemented. bzr revid: nicolas.vanhoren@openerp.com-20110426112413-nfoozpnol8zbli26 --- addons/base/static/src/js/data.js | 9 +++++++++ addons/base/static/src/js/form.js | 28 ++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index a29f320b79c..bd84f1d7229 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -183,6 +183,15 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ openerp.base.DataSetRelational = openerp.base.DataSet.extend( /** @lends openerp.base.DataSet# */{ }); +openerp.base.DataSetMany2Many = openerp.base.DataSetSearch.extend({ + /* should extend DataSetStatic instead, but list view still does not support it + */ + + unlink: function(ids) { + // just do nothing + }, +}); + }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index c6ec07b11e6..08c4a4fbb74 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -900,20 +900,36 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ }, start: function() { this._super.apply(this, arguments); - this.dataset = new openerp.base.DataSetSearch(this.session, this.field.relation); - this.list_view = new openerp.base.ListView(undefined, this.view.session, - this.list_id, this.dataset, false, undefined); + this.dataset = new openerp.base.DataSetMany2Many(this.session, this.field.relation); + this.list_view = new openerp.base.form.Many2ManyListView(undefined, this.view.session, + this.list_id, this.dataset, false, {'selected': false, 'addable': null, 'deletable': false}); this.list_view.start(); }, set_value: function(value) { if (value != false) { - this.dataset.ids = value; - this.dataset.count = value.length; - this.list_view.do_update(); + // this is not correct behavior, need to change once list view can work with + // static datasets + this.dataset.domain = [["id","in",value]]; + /*this.dataset.ids = value; + this.dataset.count = value.length;*/ + this.list_view.do_reload(); } } }); +openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ + do_delete: function (e) { + /* + e.stopImmediatePropagation(); + var ids = [this.rows[$(e.currentTarget).closest('tr').prevAll().length].data.id.value]; + this.dataset.ids = _.without.apply(null, [this.dataset.ids].concat(ids)); + this.dataset.count = this.dataset.ids.length; + // there may be a faster way + this.do_reload(); + */ + } +}); + openerp.base.form.FieldReference = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); From 96c1dacf4c2fd6b903d2d09697f2b3a21babf64b Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Tue, 26 Apr 2011 14:11:46 +0200 Subject: [PATCH 14/17] [IMP] m2m now support suppression of elements. bzr revid: nicolas.vanhoren@openerp.com-20110426121146-kq1cuu7i1r0nwfiq --- addons/base/static/src/js/data.js | 2 +- addons/base/static/src/js/form.js | 32 ++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index bd84f1d7229..6d566f4de0a 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -183,7 +183,7 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ openerp.base.DataSetRelational = openerp.base.DataSet.extend( /** @lends openerp.base.DataSet# */{ }); -openerp.base.DataSetMany2Many = openerp.base.DataSetSearch.extend({ +openerp.base.DataSetMany2Many = openerp.base.DataSetStatic.extend({ /* should extend DataSetStatic instead, but list view still does not support it */ diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 08c4a4fbb74..5e0d739a279 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -902,32 +902,46 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this._super.apply(this, arguments); this.dataset = new openerp.base.DataSetMany2Many(this.session, this.field.relation); this.list_view = new openerp.base.form.Many2ManyListView(undefined, this.view.session, - this.list_id, this.dataset, false, {'selected': false, 'addable': null, 'deletable': false}); + this.list_id, this.dataset, false, {'selected': false, 'addable': 'Add'}); + var self = this; + this.list_view.do_delete.add_last(function() { + self.on_ui_change(); + }); this.list_view.start(); }, set_value: function(value) { if (value != false) { - // this is not correct behavior, need to change once list view can work with - // static datasets - this.dataset.domain = [["id","in",value]]; - /*this.dataset.ids = value; - this.dataset.count = value.length;*/ + this.dataset.ids = value; + this.dataset.count = value.length; this.list_view.do_reload(); } + }, + get_value: function() { + return [[6,false,this.dataset.ids]]; } }); openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ do_delete: function (e) { - /* e.stopImmediatePropagation(); var ids = [this.rows[$(e.currentTarget).closest('tr').prevAll().length].data.id.value]; this.dataset.ids = _.without.apply(null, [this.dataset.ids].concat(ids)); this.dataset.count = this.dataset.ids.length; // there may be a faster way this.do_reload(); - */ - } + }, + do_reload: function () { + /* Dear xmo, according to your comments, this method's implementation in list view seems + * to be a little bit bullshit. + * I assume the list view will be changed later, so I hope it will support static datasets. + */ + return this.rpc('/base/listview/fill', { + 'model': this.dataset.model, + 'id': this.view_id, + 'domain': [["id", "in", this.dataset.ids]], + 'context': this.dataset.context + }, this.do_fill_table); + }, }); openerp.base.form.FieldReference = openerp.base.form.Field.extend({ From 7bb1ffec7bb15d8a8dd246b5717377105e252c27 Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Tue, 26 Apr 2011 16:13:34 +0200 Subject: [PATCH 15/17] [IMP] Improved m2m to open a popup when we click one of the items. bzr revid: nicolas.vanhoren@openerp.com-20110426141334-s3xl2y8rp9arphmn --- addons/base/static/src/js/form.js | 54 ++++++++++++++++++++++++++++-- addons/base/static/src/js/views.js | 9 ++++- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 5e0d739a279..4ed5c8f250a 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -904,9 +904,7 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.list_view = new openerp.base.form.Many2ManyListView(undefined, this.view.session, this.list_id, this.dataset, false, {'selected': false, 'addable': 'Add'}); var self = this; - this.list_view.do_delete.add_last(function() { - self.on_ui_change(); - }); + this.list_view.m2m_field = this; this.list_view.start(); }, set_value: function(value) { @@ -929,6 +927,8 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ this.dataset.count = this.dataset.ids.length; // there may be a faster way this.do_reload(); + + this.m2m_field.on_ui_change(); }, do_reload: function () { /* Dear xmo, according to your comments, this method's implementation in list view seems @@ -942,6 +942,54 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ 'context': this.dataset.context }, this.do_fill_table); }, + do_add_record: function () { + // TODO: need to open a popup with search view + }, + on_select_row: function(event) { + var $target = $(event.currentTarget); + var row = this.rows[$target.prevAll().length]; + var id = row.data.id.value; + if(! id) { + return; + } + var action_manager = this.m2m_field.view.session.action_manager; + action_manager.do_action({ + "res_model": this.dataset.model, + "views":[[false,"form"]], + "res_id": id, + "type":"ir.actions.act_window", + "view_type":"form", + "view_mode":"form", + "target":"new" + }); + /*action_manager.do_action({ + "groups_id":[], + "domain":"[]", + "help":false, + "res_model":"partner.sms.send", + "search_view_id":false, + "id":75, + "src_model":"res.partner", + "views":[[false,"form"]], + "menus":false, + "display_menu_tip":true, + "usage":"", + "type":"ir.actions.act_window", + "string":"SMS Send", + "view_type":"form", + "view_id":false, + "auto_refresh":0, + "view_mode":"form", + "view_ids":[], + "target":"new", + "multi":false, + "name":"SMS Send", + "auto_search":true, + "filter":false, + "limit":0, + "context":"{}" + });*/ + } }); openerp.base.form.FieldReference = openerp.base.form.Field.extend({ diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 8ef14a3edbf..8b29850d071 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -183,7 +183,14 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ openerp.base.ViewManagerAction = openerp.base.ViewManager.extend({ init: function(session, element_id, action, sidebar) { - var dataset = new openerp.base.DataSetSearch(session, action.res_model); + var dataset; + if(!action.res_id) { + dataset = new openerp.base.DataSetSearch(session, action.res_model); + } else { + dataset = new openerp.base.DataSetStatic(session, action.res_model); + dataset.ids = [action.res_id]; + dataset.count = 1; + } this._super(session, element_id, dataset, action.views); this.action = action; this.sidebar = sidebar; From 33a7bbb0c489b30f7a4889eb47f8163540e42ae7 Mon Sep 17 00:00:00 2001 From: niv-openerp <nicolas.vanhoren@openerp.com> Date: Tue, 26 Apr 2011 16:24:24 +0200 Subject: [PATCH 16/17] [FIX] Some problem when clicking 'Add' in many2many. bzr revid: nicolas.vanhoren@openerp.com-20110426142424-llpiez4i9tgvjkr6 --- addons/base/static/src/js/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 4ed5c8f250a..cda1b0047eb 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -942,7 +942,8 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ 'context': this.dataset.context }, this.do_fill_table); }, - do_add_record: function () { + do_add_record: function (e) { + e.stopImmediatePropagation(); // TODO: need to open a popup with search view }, on_select_row: function(event) { From c048cdac7503e6bdda56835c856577da7de3bcfa Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 27 Apr 2011 04:37:42 +0000 Subject: [PATCH 17/17] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110427043742-x1bwe8whtov62a5q --- bin/addons/base/i18n/vi.po | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/addons/base/i18n/vi.po b/bin/addons/base/i18n/vi.po index 1ae261cb99e..6bacfb648cd 100644 --- a/bin/addons/base/i18n/vi.po +++ b/bin/addons/base/i18n/vi.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-11 08:47+0000\n" -"Last-Translator: OpenERP Administrators <Unknown>\n" +"PO-Revision-Date: 2011-04-26 05:28+0000\n" +"Last-Translator: Phong Nguyen-Thanh <Unknown>\n" "Language-Team: Vietnamese <vi@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-19 04:48+0000\n" +"X-Launchpad-Export-Date: 2011-04-27 04:37+0000\n" "X-Generator: Launchpad (build 12758)\n" #. module: base @@ -118,6 +118,8 @@ msgid "" "You can not write in this document (%s) ! Be sure your user belongs to one " "of these groups: %s." msgstr "" +"Bạn không thể viết trong tài liệu này (% s) ! Hãy chắc chắn người dùng của " +"bạn thuộc một trong các nhóm: %s." #. module: base #: help:ir.model.fields,domain:0