odoo_dev 开发培训作业:图书管理系统
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

45 rindas
1.5KB

  1. from odoo import api, exceptions, fields, models
  2. import logging
  3. _logger = logging.getLogger(__name__)
  4. class CheckoutMassMessage(models.TransientModel):
  5. _name = 'library.checkout.massmessage'
  6. _description = 'Send Message to Borrowers'
  7. checkout_ids = fields.Many2many(
  8. 'library.checkout',
  9. string='Checkouts')
  10. message_subject = fields.Char()
  11. message_body = fields.Html()
  12. @api.model
  13. def default_get(self, field_names):
  14. defaults = super().default_get(field_names)
  15. checkout_ids = self.env.context.get('active_ids')
  16. defaults['checkout_ids'] = checkout_ids
  17. return defaults
  18. def button_send(self):
  19. self.ensure_one()
  20. if not self.checkout_ids:
  21. raise exceptions.UserError(
  22. '请至少选择一条借阅记录来发送消息!')
  23. if self.message_body == '<p><br></p>':
  24. raise exceptions.UserError(
  25. '请填写要发送的消息体!')
  26. if not self.message_body:
  27. raise exceptions.UserError(
  28. '请填写要发送的消息体!')
  29. # print('*'*37,self.message_body)
  30. for checkout in self.checkout_ids:
  31. checkout.message_post(
  32. body=self.message_body,
  33. subject=self.message_subject,
  34. subtype='mail.mt_comment',
  35. )
  36. _logger.info(
  37. 'Posted %d messages to Checkouts: %s',
  38. len(self.checkout_ids),
  39. str(self.checkout_ids),
  40. )
  41. return True
上海开阖软件有限公司 沪ICP备12045867号-1