Provisionen
Column Selection Design Improvemente
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
import uuid
|
||||
import logging
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo import tools
|
||||
from odoo.exceptions import ValidationError
|
||||
import sys
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class dsstriggergroups(models.Model):
|
||||
_name = "dss.triggergroups"
|
||||
_description = "DigitalSignage Trigger Gruppen"
|
||||
_inherit = ['mail.thread','mail.activity.mixin']
|
||||
_rec_name = "triggergroupname"
|
||||
# _inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
||||
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
|
||||
date_lastedit = fields.Date('Änderungsdatum')
|
||||
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
|
||||
user_lastedit = fields.Char('Änderungsuser')
|
||||
|
||||
triggergroupname = fields.Char('Trigger Gruppenname',tracking=True)
|
||||
trigger_table = fields.Many2one('ir.model','Nutzbar in',help='Für welche Daten ist dieser Tigger gültig ?',track_visibility='onchange',tracking=True)
|
||||
triggers = fields.Many2many('dss.triggertypes',string='Enthaltene Trigger',tracking=True)
|
||||
|
||||
@api.model
|
||||
def _default_uuid(self):
|
||||
return str(uuid.uuid4())
|
||||
|
||||
def _default_create_date(self):
|
||||
return str(date.today())
|
||||
|
||||
def _default_create_user(self):
|
||||
return str(self.env.user.name)
|
||||
|
||||
|
||||
class dsstriggertypes(models.Model):
|
||||
_name = "dss.triggertypes"
|
||||
_description = "DigitalSignage Trigger Typen"
|
||||
_inherit = ['mail.thread','mail.activity.mixin']
|
||||
_rec_name = "triggername"
|
||||
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
||||
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
|
||||
date_lastedit = fields.Date('Änderungsdatum')
|
||||
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
|
||||
user_lastedit = fields.Char('Änderungsuser')
|
||||
|
||||
triggername = fields.Char('Triggername',tracking=True)
|
||||
trigger_active = fields.Boolean('Trigger Aktiv ?',tracking=True)
|
||||
triggertyp = fields.Selection([('FIELD_A','Feldänderung allgemein'),('FIELD_S','Feldänderung spezifisch'),('FIELD_K','Feldwert berechnet'),('MANUAL','Menuell ausgelösst')],'Triggertyp',tracking=True)
|
||||
trigger_table = fields.Many2one('ir.model','Nutzbar in',help='Für welche Daten ist dieser Tigger gültig ?',tracking=True)
|
||||
trigger_field = fields.Many2one('ir.model.fields', help='Feldname in der Tabelle',tracking=True)
|
||||
trigger_operator = fields.Selection([('NGLEICH','Feld gleich dem Wert'),('GGLEICH','Feld größer/gleich dem Wert'),('KGLEICH','Feld kleiner/gleich dem Wert'),('UGLEICH','Feld ungleich dem Wert'),('ENTHAELT','Feld enthällt dem Wert')],'Feldwertoperator',tracking=True)
|
||||
trigger_init_trigger = fields.Boolean('Ausl. bei 1. Änderung ?',help='Soll der Trigger bereits beim setzen des 1. Wertes auslösen?',tracking=True)
|
||||
trigger_value = fields.Char('Feldwert für Trigger',tracking=True)
|
||||
trigger_old_value = fields.Char('Letzter-Feldwert für Trigger',tracking=True)
|
||||
trigger_aktionen = fields.Many2many('ir.actions.server',string='Aktionen bei auslösen des Triggers',tracking=True)
|
||||
|
||||
@api.model
|
||||
def _default_uuid(self):
|
||||
return str(uuid.uuid4())
|
||||
|
||||
def _default_create_date(self):
|
||||
return str(date.today())
|
||||
|
||||
def _default_create_user(self):
|
||||
return str(self.env.user.name)
|
||||
|
||||
def _check_trigger(self):
|
||||
for record in self:
|
||||
_logger.info('Trigger Check TR_' + str(record)+' Begin')
|
||||
if record.trigger_active:
|
||||
_logger.info('Trigger Check TR_' + str(record) + ' Check Field F_'+str(record.trigger_field.name)+' of model M_'+str(record.trigger_table.model)+' Feld-Typ :'+str(record.trigger_field.ttype))
|
||||
if record.trigger_field.ttype in ['char','text','html']:
|
||||
val = self.env[record.trigger_table.model]._origin.read([record.trigger_field.name])
|
||||
elif record.trigger_field.ttype in ['selection']:
|
||||
val = self.env[record.trigger_table.model]._origin.read([record.trigger_field.name])[0]
|
||||
elif record.trigger_field.ttype in ['one2many']:
|
||||
val = self.env[record.trigger_table.model]._origin.read([record.trigger_field.name]).ids
|
||||
elif record.trigger_field.ttype in ['many2one']:
|
||||
val = self.env[record.trigger_table.model]._origin.read([record.trigger_field.name])
|
||||
else:
|
||||
val = False
|
||||
record.trigger_old_value = str(val)
|
||||
_logger.info('Trigger Check TR_' + str(record)+' oldValue '+str(val))
|
||||
_logger.info('Trigger Check TR_' + str(record)+' Ende')
|
||||
return ""
|
||||
|
||||
class dsstriggeractions(models.Model):
|
||||
_name = "dss.triggeractions"
|
||||
_description = "DigitalSignage Trigger Aktionen"
|
||||
_inherit = ['mail.thread','mail.activity.mixin']
|
||||
_rec_name = "triggeractionname"
|
||||
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
||||
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
|
||||
date_lastedit = fields.Date('Änderungsdatum')
|
||||
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
|
||||
user_lastedit = fields.Char('Änderungsuser')
|
||||
|
||||
triggeractionname = fields.Char('Triggeraktionname',track_visibility='onchange',tracking=True)
|
||||
triggeractiontyp = fields.Selection([('EMAIL','EMail senden'),('ACTIV','Aufgabe erzeugen'),('DSEDIT','Datensatz ändern'),('TUYA','Tuya Aktion auslössen')],'Aktionstyp',tracking=True)
|
||||
email_getfrom = fields.Selection([('FIX','Email fest hinterlegt'),('DATA','Email in Feld hinterlegt')],'Emailadresse von',tracking=True)
|
||||
email_fix_email_sender = fields.Many2one('res.partner','Absender',help='Email Sender Adresse der Aktion',tracking=True)
|
||||
email_fix_email = fields.Many2one('res.partner','Empfänger',help='Email Emüfänger Adresse für Benachrichtigung/Triggeraktion',tracking=True)
|
||||
email_data_table = fields.Many2one('ir.model','Nutzbar in',help='Für welche Daten ist diese Aktion gültig ?',tracking=True)
|
||||
email_data_field = fields.Many2one('ir.model.fields', help='Feldname in der Tabelle',tracking=True)
|
||||
email_template = fields.Many2one('mail.template','Emailvorlage',tracking=True)
|
||||
|
||||
field = fields.Char('Feldname',help='Feldname in o.g. Tebelle.',tracking=True)
|
||||
type_s = fields.Char('Feldwertoperator',tracking=True)
|
||||
value_s = fields.Char('Feldwert für Trigger',tracking=True)
|
||||
|
||||
@api.model
|
||||
def _default_uuid(self):
|
||||
return str(uuid.uuid4())
|
||||
|
||||
def _default_create_date(self):
|
||||
return str(date.today())
|
||||
|
||||
def _default_create_user(self):
|
||||
return str(self.env.user.name)
|
||||
|
||||
|
||||
class dsstriggermodel(models.Model):
|
||||
_name = "dss.triggermodel"
|
||||
_description = "DigitalSignage Trigger Model für Inherit"
|
||||
_rec_name = "trigger_uuid"
|
||||
trigger_uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
||||
run_trigger = fields.Boolean('Trigger aktiv',tracking=True)
|
||||
triggergroup = fields.Many2one('dss.triggergroups',string='Triggergruppe',tracking=True,default=True)
|
||||
|
||||
@api.model
|
||||
def _default_uuid(self):
|
||||
return str(uuid.uuid4())
|
||||
Reference in New Issue
Block a user