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

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

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
sembra corretto su due piedi, vuoi allegare tutto il file py? vediamo se l'errore si nasconde da altre parti...
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Te lo posto, ma non è che ci sia molto altro rispetto a quello che già hai visto
from osv import osv
from osv import fields
import pdb

class hr_employee_skill(osv.osv):
    _name = "hr.employee.skill"
    _description = "Skill Risorsa"
    
    def _get_skill_complete(self, cr, uid, ids, field_name, arg, context=None):
        res = {}
        for record in self.browse(cr, uid, ids):
            skill = record.skill.complete_name
            level = record.level.x_name
            complete_skill = (skill + " " + level)
            res[record.id] = complete_skill
        return res
    
    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
    
    _columns = {
        'level': fields.many2one('x_senioritylevel', 'Seniority', select=True, required=True),
        'skill': fields.many2one('hr.employee.category', 'Skill', select=True, required=True),
        'name': fields.function(_get_skill_complete, method=True, type="char", string="Skill Primario", store=True),
        #'employee_ids': fields.many2many('hr.employee', 'employee_skills_rel', 'skill_id', 'emp_id', 'Risorse', store=True),
        'employee_id': fields.many2one('hr.employee', 'Risorsa', store=True, required=True, select=True),
        'is_primary': fields.boolean('Skill primario')
    }
    
    _order = "skill"

hr_employee_skill()
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • OpenCode
  • Avatar di OpenCode
  • Offline
  • Gold Boarder
  • Vi Veri Veniversum Vivus Vici
  • Messaggi: 179
  • Ringraziamenti ricevuti 32
  • Karma: 4
uncino,

se usi questo codice, cosa esce nel terminale?
def unlink(self, cr, uid, ids, context=None):
    print 'BLABLA1'
    res = super(hr_employee_skill, self).unlink(cr, uid, ids, context)
    print 'BLABLA2'
    return res
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Posso provarlo lunedì quando sarò al lavoro :) ... intanto grazie!
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • OpenCode
  • Avatar di OpenCode
  • Offline
  • Gold Boarder
  • Vi Veri Veniversum Vivus Vici
  • Messaggi: 179
  • Ringraziamenti ricevuti 32
  • Karma: 4
uncino, prova anche questo codice:
def unlink(self, cr, uid, ids, context=None):
    lines = self.browse(cr, uid, ids, context=context)
    for line in lines:
        if line.is_primary:
            res = True    
            raise osv.except_osv(_('Azione non consentita!'), _('Non puoi eliminare lo skill primario della risorsa.'))
        else:
            res = super(hr_employee_skill, self).unlink(cr, uid, ids, context)
    return res
Ultima modifica: 6 Anni 8 Mesi fa da OpenCode.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • uncino
  • Avatar di uncino
  • Offline
  • Junior Boarder
  • Messaggi: 24
  • Karma: 0
Rieccomi come promesso.
Ho risolto ... in pratica era un mio errore di logica. In realtà io non stavo cancellando la riga ma solo il collegamento con hr.employee. Aggiungendo una voce di menu per le skill ed eliminando dalla lista globale la funzione unlink viene effettivamente chiamata. Errore da principiante :)
Adesso ho però un altro problema: la cancellazione mi da il seguente errore:
File "/opt/openerp/openerp-6.1-1/openerp/addons/hr_employee_skill/hr_employee_skill.py", line 55, in unlink
    raise osv.except_osv(_('Azione non consentita!'), _('Non puoi eliminare lo skill primario della risorsa.'))
NameError: global name '_' is not defined

Qualcuno sa dirmi che significa?
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.156 secondi

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

Protected by R Antispam