openerp-community-reviewer team mailing list archive
-
openerp-community-reviewer team
-
Mailing list archive
-
Message #07569
[Merge] lp:~sylvain-legal/server-env-tools/7.0-flake8 into lp:server-env-tools
Sylvain LE GAL (GRAP) has proposed merging lp:~sylvain-legal/server-env-tools/7.0-flake8 into lp:server-env-tools.
Commit message:
[REF] flake8 for 'mass_editing', 'auth_admin_passkey', 'disable_openerp_online' modules;
Requested reviews:
Server Environment And Tools Core Editors (server-env-tools-core-editors)
For more details, see:
https://code.launchpad.net/~sylvain-legal/server-env-tools/7.0-flake8/+merge/225456
Flake8 for 3 modules:
- mass_editing, auth_admin_passkey, disable_openerp_online;
--
https://code.launchpad.net/~sylvain-legal/server-env-tools/7.0-flake8/+merge/225456
Your team Server Environment And Tools Core Editors is requested to review the proposed merge of lp:~sylvain-legal/server-env-tools/7.0-flake8 into lp:server-env-tools.
=== modified file 'auth_admin_passkey/tests/test_auth_admin_passkey.py'
--- auth_admin_passkey/tests/test_auth_admin_passkey.py 2014-05-14 13:32:27 +0000
+++ auth_admin_passkey/tests/test_auth_admin_passkey.py 2014-07-03 11:02:18 +0000
@@ -91,7 +91,7 @@
Test the correct behaviour of login with 'bad_login' / 'admin'"""
exception_raised = False
try:
- res = self.ru_obj.authenticate(self.db, 'bad_login', 'admin', {})
+ self.ru_obj.authenticate(self.db, 'bad_login', 'admin', {})
except:
exception_raised = True
self.assertEqual(
=== modified file 'disable_openerp_online/__openerp__.py'
--- disable_openerp_online/__openerp__.py 2013-12-21 14:01:48 +0000
+++ disable_openerp_online/__openerp__.py 2014-07-03 11:02:18 +0000
@@ -19,9 +19,9 @@
#
##############################################################################
{
- "name" : "Remove openerp.com bindings",
- "version" : "1.1",
- "author" : "Therp BV",
+ "name": "Remove openerp.com bindings",
+ "version": "1.1",
+ "author": "Therp BV",
"complexity": "normal",
"description": """
This module deactivates all bindings to openerp.com that
@@ -30,14 +30,15 @@
* update notifier code is deactivated and the function is overwritten
* apps and updates menu items in settings are removed
* help and account menu items in user menu are removed
-* prevent lookup of OPW for current database uuid and resulting 'unsupported' warning
+* prevent lookup of OPW for current database uuid and resulting"""
+ """ 'unsupported' warning
""",
- "category" : "",
- "depends" : [
+ "category": "",
+ "depends": [
'base',
'mail',
],
- "data" : [
+ "data": [
'data/ir_ui_menu.xml',
'data/ir_cron.xml',
],
@@ -51,7 +52,7 @@
],
"auto_install": False,
"installable": True,
- "external_dependencies" : {
- 'python' : [],
+ "external_dependencies": {
+ 'python': [],
},
}
=== modified file 'mass_editing/__openerp__.py'
--- mass_editing/__openerp__.py 2013-04-12 12:38:39 +0000
+++ mass_editing/__openerp__.py 2014-07-03 11:02:18 +0000
@@ -2,7 +2,8 @@
##############################################################################
#
# This module uses OpenERP, Open Source Management Solution Framework.
-# Copyright (C) 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
+# Copyright (C):
+# 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
#
# 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
@@ -19,16 +20,21 @@
#
##############################################################################
{
- "name" : "Mass Editing",
- "version" : "1.3",
- "author" : "Serpent Consulting Services",
- "category" : "Tools",
- "website" : "http://www.serpentcs.com",
- "description": """This module provides the functionality to add, update or remove the values of more than one records on the fly at the same time.
- You can configure mass editing for any OpenERP model.
- The video explaining the features and how-to for OpenERP Version 6 is here http://t.co/wukYMx1A
- The video explaining the features and how-to for OpenERP Version 7 is here : http://www.youtube.com/watch?v=9BH0o74A748&feature=youtu.be
- For more details/customization/feedback contact us on contact@xxxxxxxxxxxxx.
+ "name": "Mass Editing",
+ "version": "1.3",
+ "author": "Serpent Consulting Services",
+ "category": "Tools",
+ "website": "http://www.serpentcs.com",
+ "description": """
+This module provides the functionality to add, update or remove the values"""
+ """of more than one records on the fly at the same time.
+ You can configure mass editing for any OpenERP model.
+ The video explaining the features and how-to for OpenERP Version 6"""
+ """ is here http://t.co/wukYMx1A
+ The video explaining the features and how-to for OpenERP Version 7 is"""
+ """ here : http://www.youtube.com/watch?v=9BH0o74A748&feature=youtu.be
+ For more details/customization/feedback contact us on"""
+ """ contact@xxxxxxxxxxxxx.
""",
'depends': ['base'],
'data': [
=== modified file 'mass_editing/mass_editing.py'
--- mass_editing/mass_editing.py 2013-05-08 12:41:12 +0000
+++ mass_editing/mass_editing.py 2014-07-03 11:02:18 +0000
@@ -2,7 +2,8 @@
##############################################################################
#
# This module uses OpenERP, Open Source Management Solution Framework.
-# Copyright (C) 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
+# Copyright (C):
+# 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
#
# 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
@@ -19,37 +20,48 @@
#
##############################################################################
-from openerp.osv import orm, fields
-import openerp.tools
+from openerp.osv import orm, fields, osv
from openerp.tools.translate import _
-from lxml import etree
+
class ir_model_fields(orm.Model):
_inherit = 'ir.model.fields'
-
- def search(self, cr, uid, args, offset=0, limit=0, order=None, context=None, count=False):
+
+ def search(
+ self, cr, uid, args, offset=0, limit=0, order=None, context=None,
+ count=False):
model_domain = []
for domain in args:
- if domain[0] == 'model_id' and domain[2] and type(domain[2]) != list:
- model_domain += [('model_id', 'in', map(int, domain[2][1:-1].split(',')))]
+ if domain[0] == 'model_id' and domain[2]\
+ and type(domain[2]) != list:
+ model_domain += [(
+ 'model_id', 'in', map(int, domain[2][1:-1].split(',')))]
else:
model_domain.append(domain)
- return super(ir_model_fields, self).search(cr, uid, model_domain, offset=offset, limit=limit, order=order, context=context, count=count)
+ return super(ir_model_fields, self).search(
+ cr, uid, model_domain, offset=offset, limit=limit, order=order,
+ context=context, count=count)
ir_model_fields()
+
class mass_object(orm.Model):
_name = "mass.object"
_columns = {
- 'name' : fields.char("Name", size=64, required=True, select=1),
- 'model_id' : fields.many2one('ir.model', 'Model', required=True, select=1),
- 'field_ids' : fields.many2many('ir.model.fields', 'mass_field_rel', 'mass_id', 'field_id', 'Fields'),
- 'ref_ir_act_window':fields.many2one('ir.actions.act_window', 'Sidebar Action', readonly=True,
- help="Sidebar action to make this template available on records \
- of the related document model"),
- 'ref_ir_value':fields.many2one('ir.values', 'Sidebar Button', readonly=True,
- help="Sidebar button to open the sidebar action"),
+ 'name': fields.char("Name", size=64, required=True, select=1),
+ 'model_id': fields.many2one(
+ 'ir.model', 'Model', required=True, select=1),
+ 'field_ids': fields.many2many(
+ 'ir.model.fields', 'mass_field_rel', 'mass_id', 'field_id',
+ 'Fields'),
+ 'ref_ir_act_window': fields.many2one(
+ 'ir.actions.act_window', 'Sidebar Action', readonly=True,
+ help="Sidebar action to make this template available on records \
+ of the related document model"),
+ 'ref_ir_value': fields.many2one(
+ 'ir.values', 'Sidebar Button', readonly=True,
+ help="Sidebar button to open the sidebar action"),
'model_ids': fields.many2many('ir.model', string='Model List')
}
@@ -58,60 +70,68 @@
]
def onchange_model(self, cr, uid, ids, model_id, context=None):
- if context is None: context = {}
+ if context is None:
+ context = {}
if not model_id:
return {'value': {'model_ids': [(6, 0, [])]}}
model_ids = [model_id]
model_obj = self.pool.get('ir.model')
- active_model_obj = self.pool.get(model_obj.browse(cr, uid, model_id).model)
+ active_model_obj = self.pool.get(model_obj.browse(
+ cr, uid, model_id).model)
if active_model_obj._inherits:
for key, val in active_model_obj._inherits.items():
- found_model_ids = model_obj.search(cr, uid, [('model', '=', key)], context=context)
+ found_model_ids = model_obj.search(
+ cr, uid, [('model', '=', key)], context=context)
model_ids += found_model_ids
return {'value': {'model_ids': [(6, 0, model_ids)]}}
def create_action(self, cr, uid, ids, context=None):
vals = {}
action_obj = self.pool.get('ir.actions.act_window')
- data_obj = self.pool.get('ir.model.data')
ir_values_obj = self.pool.get('ir.values')
for data in self.browse(cr, uid, ids, context=context):
src_obj = data.model_id.model
button_name = _('Mass Editing (%s)') % data.name
vals['ref_ir_act_window'] = action_obj.create(cr, uid, {
- 'name': button_name,
- 'type': 'ir.actions.act_window',
- 'res_model': 'mass.editing.wizard',
- 'src_model': src_obj,
- 'view_type': 'form',
- 'context': "{'mass_editing_object' : %d}" % (data.id),
- 'view_mode':'form,tree',
- 'target': 'new',
- 'auto_refresh':1
- }, context)
+ 'name': button_name,
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'mass.editing.wizard',
+ 'src_model': src_obj,
+ 'view_type': 'form',
+ 'context': "{'mass_editing_object' : %d}" % (data.id),
+ 'view_mode': 'form,tree',
+ 'target': 'new',
+ 'auto_refresh': 1,
+ }, context)
vals['ref_ir_value'] = ir_values_obj.create(cr, uid, {
- 'name': button_name,
- 'model': src_obj,
- 'key2': 'client_action_multi',
- 'value': "ir.actions.act_window," + str(vals['ref_ir_act_window']),
- 'object': True,
- }, context)
+ 'name': button_name,
+ 'model': src_obj,
+ 'key2': 'client_action_multi',
+ 'value': (
+ "ir.actions.act_window,"
+ + str(vals['ref_ir_act_window'])),
+ 'object': True,
+ }, context)
self.write(cr, uid, ids, {
- 'ref_ir_act_window': vals.get('ref_ir_act_window', False),
- 'ref_ir_value': vals.get('ref_ir_value', False),
- }, context)
+ 'ref_ir_act_window': vals.get('ref_ir_act_window', False),
+ 'ref_ir_value': vals.get('ref_ir_value', False),
+ }, context)
return True
def unlink_action(self, cr, uid, ids, context=None):
for template in self.browse(cr, uid, ids, context=context):
try:
if template.ref_ir_act_window:
- self.pool.get('ir.actions.act_window').unlink(cr, uid, template.ref_ir_act_window.id, context)
+ self.pool.get('ir.actions.act_window').unlink(
+ cr, uid, template.ref_ir_act_window.id, context)
if template.ref_ir_value:
ir_values_obj = self.pool.get('ir.values')
- ir_values_obj.unlink(cr, uid, template.ref_ir_value.id, context)
+ ir_values_obj.unlink(
+ cr, uid, template.ref_ir_value.id, context)
except:
- raise osv.except_osv(_("Warning"), _("Deletion of the action record failed."))
+ raise osv.except_osv(
+ _("Warning"),
+ _("Deletion of the action record failed."))
return True
def unlink(self, cr, uid, ids, context=None):
@@ -121,9 +141,9 @@
def copy(self, cr, uid, record_id, default=None, context=None):
if default is None:
default = {}
-
- default.update({'name':'','field_ids': []})
- return super(mass_object, self).copy(cr, uid, record_id, default, context)
+ default.update({'name': '', 'field_ids': []})
+ return super(mass_object, self).copy(
+ cr, uid, record_id, default, context)
mass_object()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'mass_editing/wizard/mass_editing_wizard.py'
--- mass_editing/wizard/mass_editing_wizard.py 2013-06-13 04:17:19 +0000
+++ mass_editing/wizard/mass_editing_wizard.py 2014-07-03 11:02:18 +0000
@@ -2,7 +2,8 @@
##############################################################################
#
# This module uses OpenERP, Open Source Management Solution Framework.
-# Copyright (C) 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
+# Copyright (C):
+# 2012-Today Serpent Consulting Services (<http://www.serpentcs.com>)
#
# 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
@@ -19,80 +20,165 @@
#
##############################################################################
-from openerp.osv import orm, fields
+from openerp.osv import orm
import openerp.tools as tools
from lxml import etree
+
class mass_editing_wizard(orm.TransientModel):
_name = 'mass.editing.wizard'
_columns = {
}
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- result = super(mass_editing_wizard, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
+ def fields_view_get(
+ self, cr, uid, view_id=None, view_type='form', context=None,
+ toolbar=False, submenu=False):
+ result = super(mass_editing_wizard, self).fields_view_get(
+ cr, uid, view_id, view_type, context, toolbar, submenu)
if context.get('mass_editing_object'):
- mass_object = self.pool.get('mass.object')
- editing_data = mass_object.browse(cr, uid, context.get('mass_editing_object'), context)
+ mass_object = self.pool.get('mass.object')
+ editing_data = mass_object.browse(
+ cr, uid, context.get('mass_editing_object'), context)
all_fields = {}
- xml_form = etree.Element('form', {'string': tools.ustr(editing_data.name), 'version':'7.0'})
+ xml_form = etree.Element('form', {
+ 'string': tools.ustr(editing_data.name), 'version': '7.0'})
xml_group = etree.SubElement(xml_form, 'group', {'colspan': '4'})
- etree.SubElement(xml_group, 'label', {'string': '', 'colspan': '2'})
+ etree.SubElement(xml_group, 'label', {
+ 'string': '', 'colspan': '2'})
xml_group = etree.SubElement(xml_form, 'group', {'colspan': '4'})
model_obj = self.pool.get(context.get('active_model'))
field_info = model_obj.fields_get(cr, uid, [], context)
for field in editing_data.field_ids:
if field.ttype == "many2many":
- all_fields[field.name] = field_info[field.name]
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove_m2m', 'Remove'), ('add', 'Add')]}
- xml_group = etree.SubElement(xml_group, 'group', {'colspan': '4'})
- etree.SubElement(xml_group, 'separator', {'string': field_info[field.name]['string'], 'colspan': '2'})
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan': '2', 'nolabel':'1'})
- etree.SubElement(xml_group, 'field', {'name': field.name, 'colspan':'4', 'nolabel':'1', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove_m2m')]}"})
+ all_fields[field.name] = field_info[field.name]
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [
+ ('set', 'Set'), ('remove_m2m', 'Remove'),
+ ('add', 'Add')]}
+ xml_group = etree.SubElement(xml_group, 'group', {
+ 'colspan': '4'})
+ etree.SubElement(xml_group, 'separator', {
+ 'string': field_info[field.name]['string'],
+ 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name,
+ 'colspan': '2', 'nolabel': '1'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'colspan': '4', 'nolabel': '1',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove_m2m')]}")})
elif field.ttype == "one2many":
- all_fields["selection__" + field.name] = {'type':'selection',
- 'string': field_info[field.name]['string'],
- 'selection':[('set', 'Set'),
- ('remove', 'Remove')]}
- all_fields[field.name] = {'type':field.ttype,
- 'string': field.field_description,
- 'relation': field.relation}
- etree.SubElement(xml_group, 'field',
- {'name': "selection__" + field.name, 'colspan':'2'})
- etree.SubElement(xml_group, 'field',
- {'name': field.name, 'colspan':'4', 'nolabel':'1',
- 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove_o2m')]}"})
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [('set', 'Set'), ('remove', 'Remove')]}
+ all_fields[field.name] = {
+ 'type': field.ttype, 'string': field.field_description,
+ 'relation': field.relation}
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name, 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'colspan': '4', 'nolabel': '1',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove_o2m')]}")})
elif field.ttype == "many2one":
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove', 'Remove')]}
- all_fields[field.name] = {'type':field.ttype, 'string': field.field_description, 'relation': field.relation}
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan':'2'})
- etree.SubElement(xml_group, 'field', {'name': field.name, 'nolabel':'1', 'colspan':'2', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove')]}"})
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [('set', 'Set'), ('remove', 'Remove')]}
+ all_fields[field.name] = {
+ 'type': field.ttype, 'string': field.field_description,
+ 'relation': field.relation}
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name, 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'nolabel': '1', 'colspan': '2',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove')]}")})
elif field.ttype == "char":
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove', 'Remove')]}
- all_fields[field.name] = {'type':field.ttype, 'string': field.field_description, 'size': field.size or 256}
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan':'2', 'colspan':'2'})
- etree.SubElement(xml_group, 'field', {'name': field.name, 'nolabel':'1', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove')]}", 'colspan':'2'})
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [('set', 'Set'), ('remove', 'Remove')]}
+ all_fields[field.name] = {
+ 'type': field.ttype, 'string': field.field_description,
+ 'size': field.size or 256}
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name,
+ 'colspan': '2',
+ 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'nolabel': '1',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove')]}"),
+ 'colspan': '2'})
elif field.ttype == 'selection':
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove', 'Remove')]}
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan':'2'})
- etree.SubElement(xml_group, 'field', {'name': field.name, 'nolabel':'1', 'colspan':'2', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove')]}"})
- all_fields[field.name] = {'type':field.ttype, 'string': field.field_description, 'selection': field_info[field.name]['selection']}
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [('set', 'Set'), ('remove', 'Remove')]}
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name, 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'nolabel': '1', 'colspan': '2',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove')]}")})
+ all_fields[field.name] = {
+ 'type': field.ttype,
+ 'string': field.field_description,
+ 'selection': field_info[field.name]['selection']}
else:
- all_fields[field.name] = {'type':field.ttype, 'string': field.field_description}
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove', 'Remove')]}
+ all_fields[field.name] = {
+ 'type': field.ttype, 'string': field.field_description}
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [('set', 'Set'), ('remove', 'Remove')]}
if field.ttype == 'text':
- xml_group = etree.SubElement(xml_group, 'group', {'colspan': '6'})
- etree.SubElement(xml_group, 'separator', {'string': all_fields[field.name]['string'], 'colspan': '2'})
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan': '2', 'nolabel':'1'})
- etree.SubElement(xml_group, 'field', {'name': field.name, 'colspan':'4', 'nolabel':'1', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove')]}"})
+ xml_group = etree.SubElement(xml_group, 'group', {
+ 'colspan': '6'})
+ etree.SubElement(xml_group, 'separator', {
+ 'string': all_fields[field.name]['string'],
+ 'colspan': '2'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name,
+ 'colspan': '2', 'nolabel': '1'})
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'colspan': '4', 'nolabel': '1',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove')]}")})
else:
- all_fields["selection__" + field.name] = {'type':'selection', 'string': field_info[field.name]['string'], 'selection':[('set', 'Set'), ('remove', 'Remove')]}
- etree.SubElement(xml_group, 'field', {'name': "selection__" + field.name, 'colspan': '2', })
- etree.SubElement(xml_group, 'field', {'name': field.name, 'nolabel':'1', 'attrs':"{'invisible':[('selection__" + field.name + "','=','remove')]}", 'colspan': '2', })
- etree.SubElement(xml_form, 'separator', {'string' : '', 'colspan': '4'})
+ all_fields["selection__" + field.name] = {
+ 'type': 'selection',
+ 'string': field_info[field.name]['string'],
+ 'selection': [(
+ 'set', 'Set'), ('remove', 'Remove')]}
+ etree.SubElement(xml_group, 'field', {
+ 'name': "selection__" + field.name,
+ 'colspan': '2', })
+ etree.SubElement(xml_group, 'field', {
+ 'name': field.name, 'nolabel': '1',
+ 'attrs': (
+ "{'invisible':[('selection__"
+ + field.name + "','=','remove')]}"),
+ 'colspan': '2', })
+ etree.SubElement(
+ xml_form, 'separator', {'string': '', 'colspan': '4'})
xml_group3 = etree.SubElement(xml_form, 'footer', {})
- etree.SubElement(xml_group3, 'button', {'string' :'Close', 'icon': "gtk-close", 'special' :'cancel'})
- etree.SubElement(xml_group3, 'button', {'string' :'Apply', 'icon': "gtk-execute", 'type' :'object', 'name':"action_apply"})
+ etree.SubElement(xml_group3, 'button', {
+ 'string': 'Close', 'icon': "gtk-close", 'special': 'cancel'})
+ etree.SubElement(xml_group3, 'button', {
+ 'string': 'Apply', 'icon': "gtk-execute",
+ 'type': 'object', 'name': "action_apply"})
root = xml_form.getroottree()
result['arch'] = etree.tostring(root)
result['fields'] = all_fields
@@ -102,7 +188,7 @@
if context.get('active_model') and context.get('active_ids'):
model_obj = self.pool.get(context.get('active_model'))
dict = {}
- for key , val in vals.items():
+ for key, val in vals.items():
if key.startswith('selection__'):
split_key = key.split('__', 1)[1]
if val == 'set':
@@ -110,19 +196,22 @@
elif val == 'remove':
dict.update({split_key: False})
elif val == 'remove_m2m':
- dict.update({split_key: [(3, id) for id in vals.get(split_key, False)[0][2]]})
+ dict.update({split_key: [
+ (3, id) for id in vals.get(
+ split_key, False)[0][2]]})
elif val == 'add':
m2m_list = []
for m2m_id in vals.get(split_key, False)[0][2]:
m2m_list.append((4, m2m_id))
dict.update({split_key: m2m_list})
if dict:
- model_obj.write(cr, uid, context.get('active_ids'), dict, context)
+ model_obj.write(
+ cr, uid, context.get('active_ids'), dict, context)
result = super(mass_editing_wizard, self).create(cr, uid, {}, context)
return result
def action_apply(self, cr, uid, ids, context=None):
- return {'type': 'ir.actions.act_window_close'}
+ return {'type': 'ir.actions.act_window_close'}
mass_editing_wizard()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Follow ups