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.

41 lines
1.4KB

  1. from odoo import models, fields
  2. from odoo.tools.safe_eval import safe_eval ,datetime, dateutil
  3. #import datetime, dateutil
  4. class DiscoveryWizard(models.TransientModel):
  5. _name = 'discovery.wizard'
  6. channel_ids = fields.Many2many('discovery.channel', string='异常', required=True)
  7. def button_ok(self):
  8. res_ids = []
  9. for channel in self.channel_ids:
  10. records = self.env[channel.model_id.model].search([])
  11. todo_ids = []
  12. for rec in records:
  13. eval_context = {
  14. 'record': rec,
  15. 'user': self.env.user,
  16. 'datetime':datetime,
  17. 'dateutil': dateutil,
  18. }
  19. if safe_eval(channel.sudo().condition.strip(), eval_context, nocopy=True):
  20. todo_ids.append(rec.id)
  21. res_ids.append(
  22. self.env['discovery.result'].create({
  23. 'channel_id': channel.id,
  24. 'id_list': todo_ids,
  25. 'id_count': len(todo_ids),
  26. }).id
  27. )
  28. return {
  29. 'name': '今日洞察报告',
  30. 'view_mode': 'tree',
  31. 'view_id': False,
  32. 'views': [(self.env.ref('gooderp_discovery.discovery_result_view_tree').id, 'tree')],
  33. 'res_model': 'discovery.result',
  34. 'type': 'ir.actions.act_window',
  35. 'target': 'main',
  36. 'domain': [('id', 'in', res_ids)],
  37. }
上海开阖软件有限公司 沪ICP备12045867号-1