def _postprocess(self, obj, fossil, iface): if iface is IRoomMetadataWithReservationsFossil: (startDT, endDT) = (self._fromDT or MIN_DATETIME, self._toDT or MAX_DATETIME) if self._fromDT or self._toDT: toDate = self._toDT.date() if self._toDT else None fromDate = self._fromDT.date() if self._fromDT else None resvEx = ReservationBase() resvEx.startDT = startDT resvEx.endDT = endDT resvEx.room = obj resvEx.isRejected = False resvEx.isCancelled = False if fromDate != toDate: resvEx.repeatability = RepeatabilityEnum.daily resvs = set(c.withReservation for c in resvEx.getCollisions()) else: resvs = obj.getReservations() iresvs1, iresvs2 = itertools.tee(itertools.ifilter(self._resvFilter, resvs), 2) fresvs = fossilize(iresvs1, IRoomReservationMetadataFossil, tz=self._tz, naiveTZ=self._serverTZ) for fresv, resv in itertools.izip(iter(fresvs), iresvs2): self._addOccurrences(fresv, resv, startDT, endDT) fossil['reservations'] = fresvs return fossil