File behavior
This commit is contained in:
parent
cbd55b3073
commit
f652edf77d
|
|
@ -112,10 +112,10 @@ class dsscontracts(models.Model):
|
|||
|
||||
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')
|
||||
last_media = fields.One2many('dss.mediarelations','contract',string='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',domain="[('isreference','=',False)]")
|
||||
# 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','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')
|
||||
|
||||
@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')
|
||||
def _check_client_id(self) :
|
||||
for record in self :
|
||||
|
|
@ -300,19 +283,19 @@ class dsscontracts(models.Model):
|
|||
# context = action['context']
|
||||
ds = self.env['dss.ads'].search([('contract','=',self.id),('ad_is_lastpos','=',True)],limit=1)
|
||||
if not ds:
|
||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+' - keine letzte Kampagne')
|
||||
ds = self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
||||
_logger.info('Click auf Werbekampagne : C_'+str(self.id)+' - keine letzte Kampagne')
|
||||
ds = self.env['dss.ads'].search([('contract','=',self.id)],limit=1)
|
||||
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
|
||||
# prüfen ob LetzteKampagne medien hat
|
||||
_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)])
|
||||
if medias:
|
||||
_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)]})
|
||||
_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)]})
|
||||
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
|
||||
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))
|
||||
kampagne.parent_ad = kampagne.id
|
||||
mediaids = []
|
||||
for singlemedi in self.need_media:
|
||||
if not singlemedi:
|
||||
_logger.info('Prüfe Medien : C_'+str(self.id)+'K_'+str(kampagne.id)+' Kein Medium in NEED_MEDIA')
|
||||
else:
|
||||
newmedi=singlemedi.copy({'contract':self.id,'ad':kampagne.id})
|
||||
for feld in self.werbe_feld_selected:
|
||||
for media in feld.mediastructure.medias:
|
||||
if not media:
|
||||
_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))
|
||||
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))
|
||||
mediaids.append(newmedi.id)
|
||||
kampagne.write({'need_media': [(6,0,mediaids)]})
|
||||
|
|
@ -828,17 +813,7 @@ class dssadvertisefields(models.Model):
|
|||
resstr = mtyp.structurename
|
||||
_logger.info(resstr + ' uuid : '+record.mediastructure.uuid)
|
||||
foundused = self.env['dss.mediarelations'].search_count(["&",('field_uuid','=',record.uuid),'|',('secured_ro','=',True),('used_ro','=',True)])
|
||||
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 :
|
||||
if foundused != 0 :
|
||||
_logger.info('change - Canceled !')
|
||||
raise ValidationError(_("Datensatz kann nicht gewechselt werden ! Es sind benutzt Medien in der Kampagne ! Bitte erst diese freigeben !"))
|
||||
self.date_lastedit = str(date.today())
|
||||
|
|
@ -929,6 +904,7 @@ class dssmediarelations(models.Model):
|
|||
mediafile_file = fields.Char('Dateiname')
|
||||
secured_ro = fields.Boolean('Gesperrt ro')
|
||||
used_ro = fields.Boolean('Benutzt ro')
|
||||
isreference = fields.Boolean('Für Referenz')
|
||||
|
||||
# @api.onchange('field')
|
||||
# def _onchange_field(self):
|
||||
|
|
@ -1070,15 +1046,15 @@ class dsscontractads(models.Model):
|
|||
contract.ads_last_ad = n_record
|
||||
return result
|
||||
|
||||
@api.depends('need_media')
|
||||
def _getmedialist(self):
|
||||
mlist = []
|
||||
mlist = self.env['dss.mediarelations'].search([('ad','=',self.id)])
|
||||
if mlist != False:
|
||||
_logger.info('AD Need_Medias A_'+str(self)+' - Computed Medias '+str(mlist))
|
||||
self.need_media = mlist.ids
|
||||
else:
|
||||
self.need_media = False
|
||||
# @api.depends('need_media')
|
||||
# def _getmedialist(self):
|
||||
# mlist = []
|
||||
# mlist = self.env['dss.mediarelations'].search([('ad','=',self.id)])
|
||||
# if mlist != False:
|
||||
# _logger.info('AD Need_Medias A_'+str(self)+' - Computed Medias '+str(mlist))
|
||||
# self.need_media = mlist.ids
|
||||
# else:
|
||||
# self.need_media = False
|
||||
|
||||
_name = "dss.ads"
|
||||
_description = "DigitalSignage Werbekampagnen Phasen"
|
||||
|
|
|
|||
Loading…
Reference in New Issue