495 lines
22 KiB
Python
Executable File
495 lines
22 KiB
Python
Executable File
# -*- coding: utf-8 -*-
|
|
import ast
|
|
import json
|
|
import re
|
|
import uuid
|
|
import logging
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import ValidationError
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
class dsscontracts(models.Model):
|
|
|
|
@api.model
|
|
def _get_default_project(self):
|
|
_logger.debug("Ermittelte Id aus Context : %s" % (self.env.context.get('active_id')))
|
|
ds = self.env('dss.projects').search([('id','=',self.env.context.get('active_id'))],limit=1)
|
|
return ds
|
|
|
|
def _default_work_state(self):
|
|
ds=self.env['dss.workstate'].search([('statusname','=','Neu')],limit=1).id
|
|
_logger.debug(ds)
|
|
return ds
|
|
|
|
def _default_work_state_color(self):
|
|
ds=self.env['dss.workstate'].search([('statusname','=','Neu')],limit=1).color
|
|
_logger.info(ds)
|
|
return ds
|
|
|
|
def _default_todo_state(self):
|
|
ds=self.env['dss.todostate'].search([('statusnr','=','0')],limit=1).id
|
|
if not ds : ds = 1
|
|
_logger.debug(ds)
|
|
# ds =
|
|
return ds
|
|
|
|
|
|
_name = "dss.contracts"
|
|
_description = "DigitalSignage Vertraege"
|
|
_rec_name = "contract_auto_name"
|
|
_inherit = ['mail.thread']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
contract_id = fields.Char("Kundennummer",store=True)
|
|
contract_name = fields.Char('Kurzbezeichnung', required=True)
|
|
contract_state = fields.Many2one('dss.contractstate',group_expand='_read_group_stage_ids')
|
|
contract_state_order = fields.Integer(related='contract_state.order',store=True)
|
|
contract_auto_id = fields.Char("Kundennummer")
|
|
contract_auto_name = fields.Char('Vertragskennug')
|
|
project = fields.Many2one('dss.projects' , string='Project', store=True)
|
|
project_id = fields.Integer(related='project.projectid', string='Project ID')
|
|
projectIid = fields.Integer('Project IID')
|
|
client = fields.Many2one('res.partner',domain="['&',('dsspartner','=',True),('dsspartner_werbung','=',True)]")
|
|
client_id = fields.Char("Kundenid")
|
|
client_uuid = fields.Char(related="client.dss_uuid")
|
|
parent_id = fields.Many2one('dss.contracts', string='Parent Task', index=True)
|
|
|
|
client_short_company = fields.Char('Firmenname Kunde')
|
|
client_short_vorname = fields.Char('Vorname Kunde')
|
|
client_short_name = fields.Char('Name Kunde')
|
|
client_short_strasse = fields.Char('Strasse Kunde')
|
|
client_short_plz = fields.Char('PLZ Kunde')
|
|
client_short_ort = fields.Char('Ort Kunde')
|
|
client_short_land = fields.Many2one('res.country','Land Kunde')
|
|
client_short_email = fields.Char('Email Kunde')
|
|
client_short_telefon = fields.Char('Telefon Kunde')
|
|
client_short_mobil = fields.Char('Mobilfunk Kunde')
|
|
client_short_website = fields.Char('Webseite Kunde')
|
|
|
|
client_other_projects = fields.Many2many('dss.projects',string='Weitere Projekte')
|
|
|
|
|
|
info_account_changes = fields.Boolean('Benarichtigen bei Accountänderungen')
|
|
info_spot_changes = fields.Boolean('Benarichtigen bei Spotänderungen')
|
|
info_contract_changes = fields.Boolean('Benarichtigen bei Vertragsänderungen')
|
|
info_partner_changes = fields.Boolean('Benarichtigen bei Partneränderungen')
|
|
info_partner = fields.Many2one('res.partner','Benarichtigung an : ')
|
|
|
|
work_state = fields.Many2one('dss.workstate',default=_default_work_state)
|
|
work_state_color = fields.Char(related='work_state.color')
|
|
work_state_text = fields.Char(related='work_state.statusname')
|
|
work_state_info = fields.Char('Zusatzinfo')
|
|
|
|
todo_state = fields.Many2one('dss.todostate',default=_default_todo_state)
|
|
todo_state_color = fields.Char(related='todo_state.color')
|
|
todo_state_text = fields.Char(related='todo_state.statusname')
|
|
todo_state_info = fields.Char('Zusatzinfo')
|
|
|
|
|
|
@api.constrains('client_id')
|
|
def _check_client_id(self) :
|
|
for record in self :
|
|
if len(record.client_id) != 2 :
|
|
_logger.debug("Kundenid muss 2 Stellen haben %s" % (record.client_id))
|
|
raise ValidationError(_("KundenID muss 2 Stellen haben"))
|
|
|
|
@api.onchange('client_id')
|
|
def _onchange_client_id(self):
|
|
for record in self :
|
|
if record.contract_name == '' :
|
|
cname = 'unbekannter Kunden'
|
|
else:
|
|
cname = record.contract_name
|
|
resstr = "%s%s %s" % (record.project_id,record.client_id,cname)
|
|
cidstr = "%s%s" % (record.project_id,record.client_id)
|
|
if resstr is None :
|
|
resstr = 'nicht ermittelbar'
|
|
_logger.debug(resstr)
|
|
self.contract_auto_name = resstr
|
|
self.contract_auto_id = cidstr
|
|
|
|
@api.onchange('project_id')
|
|
def _onchange_project_id(self):
|
|
for record in self :
|
|
if record.contract_name == '' :
|
|
cname = 'unbekannter Kunden'
|
|
else:
|
|
cname = record.contract_name
|
|
resstr = "%s%s %s" % (record.project_id,record.client_id,cname)
|
|
cidstr = "%s%s" % (record.project_id,record.client_id)
|
|
if resstr is None :
|
|
resstr = 'nicht ermittelbar'
|
|
_logger.debug(resstr)
|
|
self.contract_auto_name = resstr
|
|
self.contract_auto_id = cidstr
|
|
|
|
@api.onchange('contract_name')
|
|
def _onchange_contract_name(self):
|
|
for record in self :
|
|
if record.contract_name == '' :
|
|
cname = 'unbekannter Kunden'
|
|
else:
|
|
cname = record.contract_name
|
|
resstr = "%s%s %s" % (record.project_id,record.client_id,cname)
|
|
if resstr is None :
|
|
resstr = 'nicht ermittelbar'
|
|
_logger.debug(resstr)
|
|
self.contract_auto_name = resstr
|
|
|
|
|
|
# @api.model
|
|
# def create(self,vals):
|
|
# vals['projectid'] = self.env.context.get('active_id')
|
|
# project = self.env('dss.projects').search(['id','=',vals['projectid']])
|
|
# vals['project'] = project('projektname');
|
|
# contract=super().create(vals)
|
|
# return contract
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
def _getdefwscolor(self):
|
|
return str('#ffffff')
|
|
|
|
@api.model
|
|
def _default_client_id(self):
|
|
return str("00")
|
|
|
|
@api.model
|
|
def _read_group_stage_ids(self,stages,domain,order):
|
|
contract_state_ids = self.env['dss.contractstate'].search([],order='order')
|
|
return contract_state_ids
|
|
|
|
@api.model
|
|
def pyaction_dss_contract_make_partner(self):
|
|
action = self.env['ir.actions.act_window'].with_context({'default_contractid': self.id})._for_xml_id('DigitalSignage.act_dss_project_view_contract')
|
|
action['display_name'] = self.contract_name
|
|
# action['domain'] = '[["projectid","=","4"]]'
|
|
# context = action['context'].replace('', str(self.id))
|
|
# context = ast.literal_eval(context)
|
|
# context.update({
|
|
# 'create': self.active,
|
|
# 'active_test': self.active
|
|
# })
|
|
# action['context'] = context
|
|
return action
|
|
|
|
|
|
@api.model
|
|
def pyaction_view_contract(self):
|
|
action = self.env['ir.actions.act_window'].with_context({'default_contractid': self.id})._for_xml_id('DigitalSignage.act_dss_project_view_contract')
|
|
action['display_name'] = self.contract_name
|
|
# action['domain'] = '[["projectid","=","4"]]'
|
|
# context = action['context'].replace('', str(self.id))
|
|
# context = ast.literal_eval(context)
|
|
# context.update({
|
|
# 'create': self.active,
|
|
# 'active_test': self.active
|
|
# })
|
|
# action['context'] = context
|
|
return action
|
|
|
|
def pyaction_new_contract_kanban(self):
|
|
action = self.env['ir.actions.act_window'].with_context({'default_contractid': self.id})._for_xml_id('DigitalSignage.action_dss_project_new_contract_kanban')
|
|
action['display_name'] = self.contract_name
|
|
# action['domain'] = '[["projectid","=","4"]]'
|
|
# context = action['context'].replace('', str(self.id))
|
|
# context = ast.literal_eval(context)
|
|
# context.update({
|
|
# 'create': self.active,
|
|
# 'active_test': self.active
|
|
# })
|
|
# action['context'] = context
|
|
return action
|
|
|
|
def pyaction_dss_project_make_contract(self):
|
|
action = self.env['ir.actions.act_window'].with_context({'default_projectid': self.id})._for_xml_id('DigitalSignage.action_dss_project_view_contract')
|
|
return action
|
|
|
|
|
|
|
|
|
|
class dssmain(models.Model):
|
|
_name = "dss.projects"
|
|
_description = "DigitalSignage Projekte"
|
|
_rec_name = "projektname"
|
|
_inherit = ['mail.thread']
|
|
projektname = fields.Char('Projektname', required=True)
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
projectid = fields.Integer('Projekt ID')
|
|
color = fields.Integer('Color Index')
|
|
active = fields.Boolean('Active', default=True)
|
|
name = fields.Char('Interner Name', required=True)
|
|
aktstatus = fields.Many2one('dss.projectstate',string='Aktueller Status:')
|
|
aktstatus_color = fields.Integer(related='aktstatus.color')
|
|
aktstatus_icon = fields.Image(related='aktstatus.icon')
|
|
description = fields.Text('Beschreibung')
|
|
systemname = fields.Many2one('dss.systems')
|
|
grundsystemname = fields.Many2one('dss.systemtypen')
|
|
grundsystemicon = fields.Image(related='grundsystemname.icon')
|
|
grundsystemicon5050 = fields.Image(related='grundsystemname.icon_5050')
|
|
vertragsschreiber = fields.Many2one('res.partner',domain="['&',('dsspartner','=',True),('dsspartner_vertrieb','=',True)]")
|
|
standortpartner = fields.Many2one('res.partner',domain="['&',('dsspartner','=',True),('dsspartner_standort','=',True)]")
|
|
vertriebspartner = fields.Many2many('res.partner',domain="['&',('dsspartner','=',True),('dsspartner_vertrieb','=',True)]")
|
|
zeiten_on = fields.Datetime('Einschaltzeit')
|
|
zeiten_off = fields.Datetime('Ausschaltzeit')
|
|
errichtet_am = fields.Datetime('Errichtungstag')
|
|
standort_inout = fields.Selection([('indoor','im Gebäude'), ('outdoor','Aussenbereich'), ('semiindoor','Überdachter Aussenbereich'),('Divers','Andere Art')]);
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
def pyaction_view_contracts(self):
|
|
action = self.env['ir.actions.act_window'].with_context({'default_project': self.id})._for_xml_id('DigitalSignage.action_dss_project_contracts')
|
|
action['display_name'] = self.projektname
|
|
context = action['context'].replace('active_id', str(self.id))
|
|
# context = ast.literal_eval(context)
|
|
# context = "{
|
|
# 'create': self.active,
|
|
# 'active_test': self.active
|
|
# }
|
|
action['context'] = context
|
|
return action
|
|
|
|
|
|
|
|
|
|
|
|
class dssgeraetetypen(models.Model):
|
|
_name = "dss.geraetetypen"
|
|
_description = "DigitalSignage Geraetetypen"
|
|
_inherit = ['mail.thread']
|
|
_rec_name = "geraetename"
|
|
geraetename = fields.Char('Geraetename', required=True)
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
geraetetyp = fields.Selection([('SYS','Systemgerät'), ('STE','Steuergerät'), ('DIV','Anderes'), ('ANZ','Anzeigegerät'), ('PLY','Abspielgerät')])
|
|
grundsystem = fields.Many2one('dss.systemtypen', string="Gerät ist nutzbar für")
|
|
grundsystem_kennung = fields.Char(string='Kennung', related='grundsystem.kennung')
|
|
|
|
farbe = fields.Char('Grundfarbe')
|
|
|
|
has_heizung = fields.Boolean('Mit Heizsystem')
|
|
has_klima = fields.Boolean('Mit Klimasystem')
|
|
has_fan = fields.Boolean('Mit Ventiltorensystem')
|
|
|
|
stromzaehler = fields.Many2one('dss.geraetetypen')
|
|
stromverbrauch_avg = fields.Integer('Stromverbrauch AVG in W')
|
|
|
|
osvorhanden = fields.Boolean('Mit Betriebssystem')
|
|
osname = fields.Char('Betriebssystem')
|
|
ostyp = fields.Selection([('Win','Windows'), ('Lin','Linux'), ('And','Android'),('Ras','Raspberry PI'),('Non','Keines bekannt'),('Div','Anderes')]);
|
|
|
|
lcd_ausrichtung = fields.Selection([('quer','Horizontal/Querformat'), ('hoch','Vertikal/Hochformat'),('Divers','Andere Art')],'LCD Ausrichtung');
|
|
lcd_touch = fields.Boolean('Touchsystem')
|
|
lcd_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','Standfuss rollbar'), ('FI1','Boden verankert 1 Fuss'),('FI2','Boden verankert 2 Füsse'),('FIX','Bodenverankert Blockfuss'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
lcd_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
lcd_size = fields.Selection([('42','42 Zoll'), ('55','55 Zoll'), ('65','65 Zoll'),('75','75 Zoll'),('10','10.x Zoll'),('00','Sonstige')],'LCD Größe');
|
|
lcd_size_sonstige = fields.Char('LCD Sondergröße')
|
|
|
|
led_geraetetyp = fields.Selection([('MOD','LED Modul'),('NET','Netzgerät'), ('REC','Receiving Karte'), ('STE','Steuerkarte'),('LFT','Lüftertyp')])
|
|
led_module_pixelpitch = fields.Float('Modulpixelpitch')
|
|
led_module_breite = fields.Integer('Modulbreite mm')
|
|
led_module_hoehe = fields.Integer('Modulhoehe mm')
|
|
led_module_pixel_breite = fields.Integer('Modulbreite px')
|
|
led_module_pixel_hoehe = fields.Integer('Modulhoehe px')
|
|
|
|
led_module_system = fields.Selection([('FIX1','Fix Verschraubt'), ('MAG1','Magnetisch haltend'), ('RIG1','Imbus Veriegelt (vorn)'),('SONS','Sonstige')],'Modul Montage/Befestigung');
|
|
led_module_system_sonstige = fields.Char('Modulbefestigung Sonstige')
|
|
led_module_kennung = fields.Char('Modulbezeichnung')
|
|
led_module_serial = fields.Char('Modulseriennummer')
|
|
led_module_vendor = fields.Many2one('res.partner','Modul Hersteller')
|
|
|
|
led_receivingcard_vendor = fields.Many2one('res.partner','Receivingcard Hersteller')
|
|
led_receivingcard_kennung = fields.Char('Receivingcardtyp')
|
|
|
|
led_netzteil_typ = fields.Selection([('SNT','Schaltnetzteil'), ('STN','Steckernetzteil'), ('HNT','Hutschienennetzteil'),('INT','Internes Netzteil')],'Netzteil Bauart');
|
|
led_netzteil_vendor = fields.Many2one('res.partner','Netzteil Hersteller')
|
|
led_netzteil_kennung = fields.Char('Netzteilkennung')
|
|
led_netzteil_spannung = fields.Char('Netzteil Spannung V')
|
|
led_netzteil_leistung = fields.Char('Netzteil Leistung W')
|
|
|
|
lcd_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','Standfuss rollbar'), ('FI1','Boden verankert 1 Fuss'),('FI2','Boden verankert 2 Füsse'),('FIX','Bodenverankert Blockfuss'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
lcd_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
|
|
|
|
hw_anzeige = fields.Many2one('dss.geraetetypen',domain="[('geraetetyp','=','ANZ')]")
|
|
hw_steuerung = fields.Many2one('dss.geraetetypen',domain="['&',('geraetetyp','=','STE'),('grundsystem_kennung','=','LED')]")
|
|
hw_player = fields.Many2one('dss.geraetetypen',domain="[('geraetetyp','=','PLY')]")
|
|
hw_umwelt = fields.Many2one('dss.geraetetypen',domain="['|',('geraetetyp','=','SYS'),('geraetetyp','=','DIV')]")
|
|
|
|
zusatz_integrationen = fields.Many2one('dss.geraetetypen')
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
@api.depends('grundsystem')
|
|
def _compute_grundsystem_kennung(self):
|
|
for syst in self:
|
|
if syst.grundsystem:
|
|
syst.grundsystem_kennung = syst.grundsystem.kennung
|
|
|
|
class dsssystemtypen(models.Model):
|
|
_name = "dss.systemtypen"
|
|
_inherit = ['mail.thread']
|
|
_description = "DigitalSignage Systemtypen"
|
|
_rec_name = "systemname"
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
systemname = fields.Char('Systemname', required=True)
|
|
kennung = fields.Char('Kurzkennung', required=True)
|
|
farbe = fields.Integer('Grundfarbe')
|
|
icon = fields.Image()
|
|
icon_5050 = fields.Image("Icon 50")
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
|
|
|
|
class dsssoftware(models.Model):
|
|
_name = "dss.software"
|
|
_description = "Softwaresysteme"
|
|
_inherit = ['mail.thread']
|
|
_rec_name = "softwarename"
|
|
# _inherit = ['mail.thread', 'mail.activity.mixin']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
softwarename = fields.Char('Softwarename', required=True)
|
|
version = fields.Char('Version')
|
|
hersteller = fields.Char('Hersteller')
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
class dsssystems(models.Model):
|
|
_name = "dss.systems"
|
|
_description = "DigitalSignage Systemtypen"
|
|
_inherit = ['mail.thread']
|
|
_rec_name = "systemname"
|
|
# _inherit = ['mail.thread', 'mail.activity.mixin']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
systemname = fields.Char('Systemname', required=True)
|
|
|
|
grundsystem = fields.Many2one('dss.systemtypen', string="Gerät ist nutzbar für")
|
|
grundsystem_kennung = fields.Char(string='Kennung', related='grundsystem.kennung')
|
|
|
|
farbe = fields.Integer('Grundfarbe')
|
|
|
|
has_heizung = fields.Boolean('Mit Heizsystem')
|
|
has_klima = fields.Boolean('Mit Klimasystem')
|
|
has_fan = fields.Boolean('Mit Ventiltorensystem')
|
|
|
|
stromzaehler = fields.Many2one('dss.geraetetypen')
|
|
stromverbrauch_avg = fields.Integer('Stromverbrauch AVG in W')
|
|
|
|
osvorhanden = fields.Boolean('Mit Betriebssystem')
|
|
osname = fields.Char('Betriebssystem')
|
|
ostyp = fields.Selection([('Win','Windows'), ('Lin','Linux'), ('And','Android'),('Ras','Raspberry PI'),('Non','Keines bekannt'),('Div','Anderes')]);
|
|
|
|
lcd_ausrichtung = fields.Selection([('quer','Horizontal/Querformat'), ('hoch','Vertikal/Hochformat'),('Divers','Andere Art')],'LCD Ausrichtung');
|
|
lcd_touch = fields.Boolean('Touchsystem')
|
|
lcd_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','Standfuss rollbar'), ('FI1','Boden verankert 1 Fuss'),('FI2','Boden verankert 2 Füsse'),('FIX','Bodenverankert Blockfuss'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
lcd_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
|
|
lcd_panel = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','ANZ')]")
|
|
lcd_mainboard = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','STE')]")
|
|
lcd_touchcontroler = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','SYS')]")
|
|
lcd_netzteil = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','NET')]")
|
|
|
|
led_pixelpitch = fields.Char('Pixelabstand')
|
|
led_breite = fields.Integer('LED Breite mm')
|
|
led_hoehe = fields.Integer('LED Hoehe mm')
|
|
led_pixel_breite = fields.Integer('LED Breite px')
|
|
led_pixel_hoehe = fields.Integer('LED Hoehe px')
|
|
|
|
led_receivingcard = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','REC')]")
|
|
led_netzteile = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','NET')]")
|
|
led_module = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','MOD')]")
|
|
|
|
led_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','1 standFuss zentral'), ('FU2','2 Standfüsse Aussen'),('FU3','1 Standfuss dezentral'),('MO1','manuell Mobil bewegbar'),('MO2','Mobil bewegbar Container'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
led_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
|
|
zusatz_integrationen = fields.Many2many('dss.geraetetypen')
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
class dsspprojektstatus(models.Model):
|
|
_name = "dss.projectstate"
|
|
_description = "DigitalSignage Projektstatus"
|
|
_inherit = ['mail.thread']
|
|
_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')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
statusname = fields.Char('Statusname', required=True)
|
|
color = fields.Integer(string='Color Index')
|
|
icon = fields.Image()
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
class dsscontractstatus(models.Model):
|
|
_name = "dss.contractstate"
|
|
_description = "DigitalSignage Vertragsstatus"
|
|
_inherit = ['mail.thread']
|
|
_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')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
statusname = fields.Char('Statusname', required=True)
|
|
color = fields.Integer(string='Color Index')
|
|
icon = fields.Image()
|
|
order = fields.Integer('Reihenfolge')
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
|
|
class dssworkstatus(models.Model):
|
|
_name = "dss.workstate"
|
|
_description = "DigitalSignage Bearbeitungsstatus"
|
|
_inherit = ['mail.thread']
|
|
_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')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
statusname = fields.Char('Statusname', required=True)
|
|
color = fields.Char(string='Color Index')
|
|
icon = fields.Image()
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
|
|
class dsstodostatus(models.Model):
|
|
_name = "dss.todostate"
|
|
_description = "DigitalSignage Bearbeitungsschritte"
|
|
_inherit = ['mail.thread']
|
|
_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')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
statusname = fields.Char('Statusname', required=True)
|
|
statusnr = fields.Integer('Litenpostion', required=True)
|
|
color = fields.Char(string='Color Index')
|
|
icon = fields.Image()
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
|
|
|
|
|