File behavior
This commit is contained in:
+27
-51
@@ -112,10 +112,10 @@ class dsscontracts(models.Model):
|
|||||||
|
|
||||||
werbe_feld_selected = fields.One2many('dss.advertisefields','contract',string='Werbefelder',tracking=True)
|
werbe_feld_selected = fields.One2many('dss.advertisefields','contract',string='Werbefelder',tracking=True)
|
||||||
|
|
||||||
need_media = fields.Many2many('dss.mediarelations','mediarelations_contract_rel','contract_id','mediarelations_id',string='benötigte Medien')
|
# need_media = fields.Many2many('dss.mediarelations','mediarelations_contract_rel','contract_id','mediarelations_id',string='benötigte Medien')
|
||||||
last_media = fields.One2many('dss.mediarelations','contract',string='Medien')
|
last_media = fields.One2many('dss.mediarelations','contract',string='Medien',domain="[('isreference','=',False)]")
|
||||||
# last_media = fields.Many2many('dss.mediarelations','mediarelations_ad_relations','contract_id','mediarelations_id',string='Medien')
|
# last_media = fields.Many2many('dss.mediarelations','mediarelations_ad_relations','contract_id','mediarelations_id',string='Medien')
|
||||||
# need_media = fields.Many2many('dss.mediarelations','contract',string='Medien')
|
need_media = fields.One2many('dss.mediarelations','contract',string='Medien',domain="[('isreference','=',True)]")
|
||||||
# need_media_computed = fields.One2many('dss.mediarelations','field',compute='_get_media_list')
|
# need_media_computed = fields.One2many('dss.mediarelations','field',compute='_get_media_list')
|
||||||
# need_media_computed = fields.One2many('dss.mediarelations','uuid',domain="[('field','in',werbe_feld_selected)]")
|
# need_media_computed = fields.One2many('dss.mediarelations','uuid',domain="[('field','in',werbe_feld_selected)]")
|
||||||
|
|
||||||
@@ -187,23 +187,6 @@ class dsscontracts(models.Model):
|
|||||||
|
|
||||||
cloudlink = fields.Char('Cloud Verzeichnis',help='Verzeichnis für das Project innerhalb des Projekt Ordners')
|
cloudlink = fields.Char('Cloud Verzeichnis',help='Verzeichnis für das Project innerhalb des Projekt Ordners')
|
||||||
|
|
||||||
@api.onchange('werbe_feld_selected')
|
|
||||||
def _onchange_werbe_feld_selected(self) :
|
|
||||||
for record in self :
|
|
||||||
# self.write({'need_media': [(5,0,0)]})
|
|
||||||
medias_ids = []
|
|
||||||
for feld in record.werbe_feld_selected:
|
|
||||||
_logger.info("Feld : %s %s" % (record._origin.id,feld._origin.id))
|
|
||||||
medias = self.env['dss.mediarelations'].search([('field','=',feld._origin.id)])
|
|
||||||
for med in medias:
|
|
||||||
med.contract=record._origin.id
|
|
||||||
medias_ids.append(med.id)
|
|
||||||
self.write({'need_media': [(6,0,medias_ids)]})
|
|
||||||
_logger.info("Media : "+str(record.need_media))
|
|
||||||
# mrelobj.write({'field': feldid })
|
|
||||||
# mrelobj.write({'project': record.project.id})
|
|
||||||
|
|
||||||
|
|
||||||
@api.constrains('client_id')
|
@api.constrains('client_id')
|
||||||
def _check_client_id(self) :
|
def _check_client_id(self) :
|
||||||
for record in self :
|
for record in self :
|
||||||
@@ -300,19 +283,19 @@ class dsscontracts(models.Model):
|
|||||||
# context = action['context']
|
# context = action['context']
|
||||||
ds = self.env['dss.ads'].search([('contract','=',self.id),('ad_is_lastpos','=',True)],limit=1)
|
ds = self.env['dss.ads'].search([('contract','=',self.id),('ad_is_lastpos','=',True)],limit=1)
|
||||||
if not ds:
|
if not ds:
|
||||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+' - keine letzte Kampagne')
|
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+' - keine letzte Kampagne')
|
||||||
ds = self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
ds = self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
||||||
else:
|
else:
|
||||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Kampagne gefunden ')
|
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Kampagne gefunden ')
|
||||||
self.ads_last_ad = ds
|
self.ads_last_ad = ds
|
||||||
# prüfen ob LetzteKampagne medien hat
|
# prüfen ob LetzteKampagne medien hat
|
||||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Suche evtl Medien der Kampagne ')
|
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Suche evtl Medien der Kampagne ')
|
||||||
medias = self.env['dss.mediarelations'].search(['&',('contract','=',self.id),('ad','=',ds.id)])
|
medias = self.env['dss.mediarelations'].search(['&',('contract','=',self.id),('ad','=',ds.id)])
|
||||||
if medias:
|
if medias:
|
||||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Medien gefunden '+str(medias.ids))
|
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Medien gefunden '+str(medias.ids))
|
||||||
self.write({'last_media': [(6,0,medias.ids)]})
|
self.write({'last_media': [(6,0,medias.ids)]})
|
||||||
else:
|
else:
|
||||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Keine Medien gefunden ')
|
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+'A_'+str(ds.id)+' - Keine Medien gefunden ')
|
||||||
|
|
||||||
# Medien erzeugen wenn nicht vorhanden
|
# Medien erzeugen wenn nicht vorhanden
|
||||||
kampagne=self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
kampagne=self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
||||||
@@ -330,11 +313,13 @@ class dsscontracts(models.Model):
|
|||||||
_logger.info('Click auf Werbekampagne : '+str(self.id)+' Kampagne erstellt '+str(kampagne.id))
|
_logger.info('Click auf Werbekampagne : '+str(self.id)+' Kampagne erstellt '+str(kampagne.id))
|
||||||
kampagne.parent_ad = kampagne.id
|
kampagne.parent_ad = kampagne.id
|
||||||
mediaids = []
|
mediaids = []
|
||||||
for singlemedi in self.need_media:
|
for feld in self.werbe_feld_selected:
|
||||||
if not singlemedi:
|
for media in feld.mediastructure.medias:
|
||||||
_logger.info('Prüfe Medien : C_'+str(self.id)+'K_'+str(kampagne.id)+' Kein Medium in NEED_MEDIA')
|
if not media:
|
||||||
else:
|
_logger.info('Prüfe Medien : C_'+str(self.id)+'K_'+str(kampagne.id)+' Kein Medium in MedienStructur von F_'+str(feld.id)+'M_'+str(media.id))
|
||||||
newmedi=singlemedi.copy({'contract':self.id,'ad':kampagne.id})
|
else:
|
||||||
|
newmedia=self.env['dss.mediarelations'].create({
|
||||||
|
newmedi=media.copy({'contract':self.id,'ad':kampagne.id})
|
||||||
_logger.info('Prüfe Medien : C_'+str(self.id)+'K_'+str(kampagne.id)+' setze Vertrag für Medium : '+str(newmedi.contract)+'/'+str(newmedi.ad))
|
_logger.info('Prüfe Medien : C_'+str(self.id)+'K_'+str(kampagne.id)+' setze Vertrag für Medium : '+str(newmedi.contract)+'/'+str(newmedi.ad))
|
||||||
mediaids.append(newmedi.id)
|
mediaids.append(newmedi.id)
|
||||||
kampagne.write({'need_media': [(6,0,mediaids)]})
|
kampagne.write({'need_media': [(6,0,mediaids)]})
|
||||||
@@ -828,17 +813,7 @@ class dssadvertisefields(models.Model):
|
|||||||
resstr = mtyp.structurename
|
resstr = mtyp.structurename
|
||||||
_logger.info(resstr + ' uuid : '+record.mediastructure.uuid)
|
_logger.info(resstr + ' uuid : '+record.mediastructure.uuid)
|
||||||
foundused = self.env['dss.mediarelations'].search_count(["&",('field_uuid','=',record.uuid),'|',('secured_ro','=',True),('used_ro','=',True)])
|
foundused = self.env['dss.mediarelations'].search_count(["&",('field_uuid','=',record.uuid),'|',('secured_ro','=',True),('used_ro','=',True)])
|
||||||
if foundused == 0 :
|
if foundused != 0 :
|
||||||
self.env['dss.mediarelations'].search([('field_uuid','=',record.uuid)]).unlink()
|
|
||||||
for media in mtyp.medias :
|
|
||||||
resstr = media.medianame
|
|
||||||
_logger.info('Erstellung : '+str(self._origin.id)+'/'+str(record.id)+'('+str(record._origin.id)+')/'+str(media.id)+'/'+str(record.project.id)+' '+str(restr))
|
|
||||||
mrelobj = self.env['dss.mediarelations'].create({'field':record.id,'relname':resstr,'mediatype': media.id,'field_uuid':record.uuid,'project':record.project.id})
|
|
||||||
feldid = self._origin.id
|
|
||||||
mrelobj.write({'field': feldid })
|
|
||||||
mrelobj.write({'project': record.project.id})
|
|
||||||
_logger.info('Erzeugt : '+str(mrelobj)+' - '+str(mrelobj.project)+' - '+str(mrelobj.field))
|
|
||||||
else :
|
|
||||||
_logger.info('change - Canceled !')
|
_logger.info('change - Canceled !')
|
||||||
raise ValidationError(_("Datensatz kann nicht gewechselt werden ! Es sind benutzt Medien in der Kampagne ! Bitte erst diese freigeben !"))
|
raise ValidationError(_("Datensatz kann nicht gewechselt werden ! Es sind benutzt Medien in der Kampagne ! Bitte erst diese freigeben !"))
|
||||||
self.date_lastedit = str(date.today())
|
self.date_lastedit = str(date.today())
|
||||||
@@ -929,6 +904,7 @@ class dssmediarelations(models.Model):
|
|||||||
mediafile_file = fields.Char('Dateiname')
|
mediafile_file = fields.Char('Dateiname')
|
||||||
secured_ro = fields.Boolean('Gesperrt ro')
|
secured_ro = fields.Boolean('Gesperrt ro')
|
||||||
used_ro = fields.Boolean('Benutzt ro')
|
used_ro = fields.Boolean('Benutzt ro')
|
||||||
|
isreference = fields.Boolean('Für Referenz')
|
||||||
|
|
||||||
# @api.onchange('field')
|
# @api.onchange('field')
|
||||||
# def _onchange_field(self):
|
# def _onchange_field(self):
|
||||||
@@ -1070,15 +1046,15 @@ class dsscontractads(models.Model):
|
|||||||
contract.ads_last_ad = n_record
|
contract.ads_last_ad = n_record
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@api.depends('need_media')
|
# @api.depends('need_media')
|
||||||
def _getmedialist(self):
|
# def _getmedialist(self):
|
||||||
mlist = []
|
# mlist = []
|
||||||
mlist = self.env['dss.mediarelations'].search([('ad','=',self.id)])
|
# mlist = self.env['dss.mediarelations'].search([('ad','=',self.id)])
|
||||||
if mlist != False:
|
# if mlist != False:
|
||||||
_logger.info('AD Need_Medias A_'+str(self)+' - Computed Medias '+str(mlist))
|
# _logger.info('AD Need_Medias A_'+str(self)+' - Computed Medias '+str(mlist))
|
||||||
self.need_media = mlist.ids
|
# self.need_media = mlist.ids
|
||||||
else:
|
# else:
|
||||||
self.need_media = False
|
# self.need_media = False
|
||||||
|
|
||||||
_name = "dss.ads"
|
_name = "dss.ads"
|
||||||
_description = "DigitalSignage Werbekampagnen Phasen"
|
_description = "DigitalSignage Werbekampagnen Phasen"
|
||||||
|
|||||||
Reference in New Issue
Block a user