import uuid import logging from odoo import api, fields, models, _ from odoo import tools _logger = logging.getLogger(__name__) class dssm2mvalues(models.Model): @api.model def analyze_emails(self): # Prüfe, ob der Datensatz ein Email-Objekt ist email_text = self.website_message_ids.body # Prüfe, ob der Text "ProjektID:" enthält if "ProjektID:" in email_text: # Finde die Position von "ProjektID:" pos = email_text.find("ProjektID:") _logger.info("Import M2M Emails - Get ID. File - Message : pos "+str(pos)) # Extrahiere die nächsten 3 Ziffern project_id = email_text[pos + 11:pos + 14].strip() self.project_id = project_id self.analyzed = True @api.model def create(self, vals): result = super(dssm2mvalues, self).create(vals) settings = self.env['dss.settings'].search([],limit=1) cron_job = settings.m2mcron if cron_job: _logger.info("Import M2M Emails - Create - Cron activating : "+str(cron_job)) cron_job._trigger() return result _name = "dss.m2mmail" _description = "DigitalSignage M2M Rückmeldungen" # _rec_name = "statusname" _inherit = ['mail.thread', 'mail.activity.mixin'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') analyzed = fields.Boolean('Analysiert', default=False, tracking=True) project_id = fields.Char(string='Projekt-ID',tracking=True) project = fields.Many2one('dss.projects', string='Projekt', compute='_compute_project') @api.depends('project_id') def _compute_project(self): self.project = False for record in self: if record.project_id: project = self.env['dss.projects'].search([('projectid', '=', int(record.project_id))]) if project: record.project = project # ... andere Methoden ... @api.model def _default_uuid(self): return str(uuid.uuid4())