Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2
  • 3

ARGOMENTO: Cancellazione di un record di un campo o2m

Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7554

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Ciao a tutti,
ho sviluppato un modulo e l'ho messo in relazione o2m con il modulo hr.employee. Vorrei sapere se e come è possibile "intercettare" l'azione di cancellazione che viene effettuata tramite la piccola x che si trova a destra di ogni riga nella tree view del campo.
Ho provato a sovrascrivere il metodo unlink ma sembra che non venga chiamato.
Grazie
Filippo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7555

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
La cancellazione è proprio unlink, prova a mettere un pdb nel tuo metodo per vedere se effettivamente passa da li il programmma, in caso contrario prova a postare il file py con l'override che hai fatto.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7559

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Grazie Nico
ho messo il pdb nel metodo unlink ma sulla console nulla si muove. Ti posto un estratto del codice:
class hr_employee_skill(osv.osv):
    ...

    def unlink(self, uid, ids, context=None):
        pdb.set_trace()
        state = self.read(cr, uid, ids, ['is_primary'], context=context)
        for t in state:
            if not t['is_primary']:
                raise osv.except_osv(_('Azione non consentita!'), _('Non puoi eliminare lo skill primario della risorsa.'))
        return True
    
    _columns = {
        ...

        'is_primary': fields.boolean('Skill primario')
    }
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7560

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
La sintassi è questa:
def unlink(self, cr, user, ids, context=None):
    
    #TODO: process before delete resource
    res = super(ModelName, self).unlink(cr, uid, ids, context)
    return res


a te manca il cr quindi non credo la consideri come un overrite, ti ricordo poi che se cambi un file py devi sempre riavviare il server da console. Manca poi la chiamata super al tuo metodo, ovvero se non "is_primary" devi poi cancellare i record, non lo fa lui se non glielo dici con super (in pratica chiami il metodo originale)
Ultima modifica: 6 Anni 8 Mesi fa da NicoTheBrush.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7561

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Ho modificato la funzione unlink come da te suggerito ma nulla succede. La nuova funzione è la seguente
def unlink(self, cr, uid, ids, context=None):
        pdb.set_trace()
        state = self.read(cr, uid, ids, ['is_primary'], context=context)
        for t in state:
            if t['is_primary']:
                raise osv.except_osv(_('Azione non consentita!'), _('Non puoi eliminare lo skill primario della risorsa.'))
            else:
                super(hr_employee_skill, self).unlink(cr, uid, ids, context)
        return True

la condizione è invertita perchè priva ti avevo postato il codice frutto di varie prove :)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Cancellazione di un record di un campo o2m 6 Anni 8 Mesi fa #7564

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Niente ... non funziona. Altre idee?
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.149 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam