Объект 'hr.payslip' не имеет атрибута 'action_email_payslip_send' при оценке 'action = records.action_email_payslip_send ()' " - PullRequest
0 голосов
/ 29 июня 2019

когда я нажимаю на платежном листе с действием по электронной почте, я получаю эту ошибку ValueError:: у объекта 'hr.payslip' нет атрибута 'action_email_payslip_send' 'при оценке' action = records.action_email_payslip_send () '

manifest .py

'name': 'Emailpayslip',
'summary': """This module will send the payslip to the employee as pdf document""",
'version': '10.0.1.0.0',
'description': """This module will send the payslip to the employee as pdf document""",
'author': 'Pramod Kumar',
'company': 'Net Tantra Technology',
'website': 'http://www.nettantra.com',
'category': 'Human Resource',
'depends': ['base','hr_payroll','mail','web'],
'license': 'AGPL-3',
'data': [
    'views/emailpayslip.xml',
    'data/email_template_data.xml'
],
'demo': [],
'installable': True,
'auto_install': False,

models / emailpayslip.py

из полей импорта odoo, моделей, api, _ из odoo.exceptions import Warning Предупреждение

Класс Emailpayslip (models.Model):

_name = 'email.payslip'
_inherit = 'hr.payslip'
@api.multi
def action_email_payslip_send(self):
  self.ensure_one()
  template = self.env.ref(
    'Email_Payslip.email_template_payslip',
    False,
  )
  compose_form = self.env.ref(
    'mail.email_compose_message_wizard_form',
    False,
  )
  ctx = dict(
    default_model='hr.payslip',
    default_res_id=self.id,
    default_use_template=bool(template),
    default_template_id=template and template.id or False,
    default_composition_mode='comment',
    )
  return {
    'name': _('Compose Email'),
    'type': 'ir.actions.act_window',
    'view_type': 'form',
    'view_mode': 'form',
    'res_model': 'mail.compose.message',
    'views': [(compose_form.id, 'form')],
    'view_id': compose_form.id,
    'target': 'new',
    'context': ctx,
    }

init .py

от.импорт моделей

views / emailpayslip.xml

emailpayslip.xml

Сообщение об ошибке Сообщение об ошибке

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

В моделях / emailpayslip.py внести некоторые изменения.Просто измените _name = 'hr.payslip'. Это будет работать.

0 голосов
/ 29 июня 2019

Ваша проблема в том, что у вас есть объект hr.payslips, но этот метод, который вы пытаетесь вызвать, доступен только для одного подкласса Emails.

Вместо этого реализуйте атрибуты в суперклассе.

...