odoo_dev 开发培训作业:图书管理系统
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

44 lines
1.4KB

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