Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
4930 Visualizzazioni

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

Avatar
Abbandona
Risposta migliore

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.

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
1
lug 25
2354
2
lug 25
7849
2
lug 25
4245
2
lug 25
4013
2
giu 25
2611