odoo_dev 开发培训作业:图书管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.4KB

  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. import pdb; pdb.set_trace()
  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