This question has been flagged
1 Reply
4002 Views

I try to override this method in portal_sale  to avoid custumer receive an email with a priced offer before a supervisor accept it. 

can someone help me?

def action_quotation_send(self, cr, uid, ids, context=None):
        ''' Override to use a modified template that includes a portal signup link '''
        action_dict = super(sale_order, self).action_quotation_send(cr, uid, ids, context=context)
        try:
            template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_sale', 'em$
            # assume context is still a dict, as prepared by super
            ctx = action_dict['context']
            ctx['default_template_id'] = 5
            ctx['default_use_template'] = True
        except Exception:
            pass
        return action_dict

Thanks

Avatar
Discard
Best Answer

Hi if you want to override a standard method, then you need not call super method of its...

When you use Super it is Inheriting, without it it is overriding...

So your method should be like this...

def action_quotation_send(self, cr, uid, ids, context=None):
        ''' Override to use a modified template that includes a portal signup link '''
               try:
            template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_sale', 'em$
            # assume context is still a dict, as prepared by super
            ctx = action_dict['context']
            ctx['default_template_id'] = 5
            ctx['default_use_template'] = True
        except Exception:
            pass
        return action_dict
  [Note: Check the standard method's return value, and adapt the same here]

I have removed the line of calling the super method in your code

action_dict = super(sale_order, self).action_quotation_send(cr, uid, ids, context=context)

Avatar
Discard