تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
4932 أدوات العرض

In any record, when I select duplicates Odoo creates a duplicate even if I do not save (DISCARD).

this is true for anything; be it contacts, product, sales orders, BOM, operation, etc, 


I expect a duplicate ONLY if I save. 

using odoo14

الصورة الرمزية
إهمال
أفضل إجابة

This is by design.  The "Duplicate" in Action menu is calling the copy() method and direct to edit enable view mode.

To accomplish what you like, you could create a custom button with corresponding function.

This function should return a window action to form view with context and default_field.

Should look like this

def action_duplicate(self):
    self.ensure_one()
    context = {
        'default_field_1': self.field_1,
        'default_field_2': self.field_2,
        'default_field_3': self.field_3,
        ......
        ......
        ...... and so on    
        }
    return {
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'model.name',
        'views': [(self.env.ref('module_name.form_view_xml_id').id, 'form')],
        'view_id': self.env.ref('module_name.form_view_xml_id').id,
        'target': 'current',
        'context': context,        
    }

If you hit save, record is duplicated, discard will have nothing happen since you only open a form with default value.

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
يوليو 25
2354
2
يوليو 25
7849
2
يوليو 25
4245
2
يوليو 25
4013
2
يونيو 25
2611