Quellcode durchsuchen

[FIX]mass_editing:Fixed the Remove option for O2m fields.

Vacha Trivedi vor 6 Jahren
Ursprung
Commit
97b326e923

+ 1 - 1
mass_editing/views/mass_editing_view.xml

@@ -42,7 +42,7 @@
                     <notebook colspan="4">
                         <page string="Fields">
                             <field name="field_ids" context="{'mass_edit':True}" colspan="4" nolabel="1"
-                            domain="[('ttype', 'not in', ['refenrence', 'function', 'monetary']), ('model_id', 'in', model_list)]"/>
+                            domain="[('ttype', 'not in', ['reference', 'function', 'monetary']), ('model_id', 'in', model_list)]"/>
                         </page>
                         <page string="Advanced" attrs="{'invisible':[('ref_ir_act_window_id','=',False)]}">
                             <group colspan="2" col="2">

+ 21 - 1
mass_editing/wizard/mass_editing_wizard.py

@@ -420,6 +420,8 @@ class MassEditingWizard(models.TransientModel):
             fields_obj = self.env['ir.model.fields']
             model_obj = self.env[self._context.get('active_model')]
             model_rec = model_obj.browse(self._context.get('active_ids'))
+            model_id = self.env['ir.model'].search([
+                ('model', '=', self._context.get('active_model'))])
             values = {}
             for key, val in vals.items():
                 if key.startswith('selection_'):
@@ -436,7 +438,25 @@ class MassEditingWizard(models.TransientModel):
                                 m2m_list.append((3, m2m_id))
                             values.update({split_key: m2m_list})
                     elif val in ['remove_o2m', 'remove_m2m_all']:
-                        values.update({split_key: [(5, 0, [])]})
+                        # model_fieds will return the particular model
+                        # in order to get the field of the model
+                        # and its relation.
+                        model_fields = self.env['ir.model.fields'].search(
+                            [('name', '=', split_key),
+                             ('model_id', '=', model_id and model_id.id)])
+                        # field_model is relation of Object Relation
+                        field_model = tools.ustr(model_fields and
+                                                 model_fields.relation)
+                        # field relation is relation field of O2m
+                        field_relation = tools.ustr(
+                            model_fields and
+                            model_fields.relation_field)
+                        # remove_ids is return O2m field particular ids
+                        remove_ids = self.env[field_model].search(
+                            [(field_relation, 'in',
+                              self._context.get('active_ids'))])
+                        o2m_list = [(2, rmv_id.id) for rmv_id in remove_ids]
+                        values.update({split_key: o2m_list})
                     elif val == 'add':
                         if vals.get(split_key, False):
                             m2m_list = []