def disposal_date(self): """ Calculate the disposal date by returning the latest disposal date in this sample's partitions """ parts = self.objectValues("SamplePartition") dates = [] for part in parts: date = part.getDisposalDate() if date: dates.append(date) if dates: dis_date = dt2DT(max([DT2dt(date) for date in dates])) else: dis_date = None return dis_date
def disposal_date(self): """ return disposal date """ DateSampled = self.getDateSampled() # fallback to sampletype retention period st_retention = self.aq_parent.getSampleType().getRetentionPeriod() # but prefer retention period from preservation pres = self.getPreservation() pres_retention = pres and pres.getRetentionPeriod() or None rp = pres_retention and pres_retention or None rp = rp or st_retention td = timedelta(days='days' in rp and int(rp['days']) or 0, hours='hours' in rp and int(rp['hours']) or 0, minutes='minutes' in rp and int(rp['minutes']) or 0) dis_date = DateSampled and dt2DT(DT2dt(DateSampled) + td) or None return dis_date
def disposal_date(self): """ return disposal date """ DateSampled = self.getDateSampled() # fallback to sampletype retention period st_retention = self.aq_parent.getSampleType().getRetentionPeriod() # but prefer retention period from preservation pres = self.getPreservation() pres_retention = pres and pres.getRetentionPeriod() or None rp = pres_retention and pres_retention or None rp = rp or st_retention td = timedelta( days='days' in rp and int(rp['days']) or 0, hours='hours' in rp and int(rp['hours']) or 0, minutes='minutes' in rp and int(rp['minutes']) or 0) dis_date = DateSampled and dt2DT(DT2dt(DateSampled) + td) or None return dis_date