2016-06-11 15 views
1

Die Situation ist wie folgt:Wie schreibe ich "write" -Funktion ohne die geerbte Klasse in Odoo 8 zu beeinflussen?

Das ist meine .py Datei

class mom_meeting(osv.osv): 

    _name = "mom.meeting" 
    _rec_name = 'meet_ref' 
    _inherit = ['mail.thread'] 

und ich hatte die Mail-Anhänger oder openchatter in meinem benutzerdefinierten Modul, jetzt hinzugefügt, wenn ich versuchte, eine „schreiben“ -Funktion zu schreiben als folgt:

def write(self, cr, uid, ids, vals, context=None): 
     user_ids = [] 
     sobj = self.pool.get('mom.meeting').browse(cr, uid, ids, context=None) 
      if rec.ch_prsn.user_id.id == uid or rec.min_prp.id == uid: 
       return super(mom_meeting, self).write(cr, uid, [rec.id], vals, context=None) 
      else: 
       raise osv.except_osv('Error', 'You dont have access right to edit this record, Please click Discard to revert changes') 

Erlaubt keinem anderen Benutzer, eine Nachricht in openchatter zu senden. Jede Hilfe/Anregung wäre wirklich großartig. Vielen Dank!

+0

verwenden SUPERUSERID – prakash

+0

Ich bekomme nicht den Zweck, was Sie mit diesem Code erreichen wollen? Es gibt keine Bedeutung von for-Schleife hier, weil Sie return und raise-Anweisung in If hinzugefügt haben - sonst wird jede der Anweisung diese Schleife brechen. –

+0

Emipro Technologies, Sorry, Mein Fehler, der Code wurde geändert. Der Punkt ist, ich habe solche Bedingungen hinzugefügt, außer zwei Personen im Feld 'ch_prsn' und 'min_prp' sollten nicht in der Lage sein, den Datensatz zu bearbeiten, der 'mom.meeting' ist. –

Antwort

0

Um Notwendigkeit des Aufrufs Super Methode zu beseitigen, können Sie wie folgt verwenden: -

statt dessen ->

super(mom_meeting, self).write(cr, uid, [rec.id], vals, context=None) 

können Sie>osv.osv.write(cr, uid, [rec.id], vals, context=None)

Give-Diese direkt wird Anruf schreiben Funktion von ORM ...

Hoffe, das hilft ....

+0

Baiju KS, ich habe es versucht, es ist immer noch das gleiche. ( –