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
def _process( self ): from MaKaC.rb_room import RoomBase from datetime import datetime,timedelta from MaKaC.rb_reservation import ReservationBase startdt = enddt = datetime.now() today = startdt.date() startdt.replace( hour = 0, minute = 0) enddt.replace( hour = 23, minute = 59) self._responseUtil.content_type = 'text/xml' XG = xmlGen.XMLGen() XG.openTag("response") rooms = RoomBase.getRooms() nbRooms = len(rooms) nbPublicRooms = nbPrivateRooms = nbSemiPrivateRooms = 0 for r in rooms: if not r.isReservable: nbPrivateRooms += 1 elif not r.resvsNeedConfirmation: nbPublicRooms += 1 else: nbSemiPrivateRooms += 1 self._createIndicator(XG, "total", "total number of managed rooms", nbRooms) self._createIndicator(XG, "public", "number of public rooms", nbPublicRooms) self._createIndicator(XG, "semiprivate", "number of semi-private rooms", nbSemiPrivateRooms) self._createIndicator(XG, "private", "number of private rooms", nbPrivateRooms) resvex = ReservationBase() resvex.isConfirmed = True resvex.isCancelled = False nbResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.usesAVC = True nbAVResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.needsAVCSupport = True resvex.needsAssistance = False nbAVResvsWithSupport = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) self._createIndicator(XG, "nbbookings", "total number of bookings for today", nbResvs) self._createIndicator(XG, "nbvc", "number of remote collaboration bookings (video or phone conference)", nbAVResvs) self._createIndicator(XG, "nbvcsupport", "number of remote collaboration bookings with planned IT support", nbAVResvsWithSupport) XG.closeTag("response") return XG.getXml()
def _process( self ): from MaKaC.rb_room import RoomBase from datetime import datetime,timedelta from MaKaC.rb_reservation import ReservationBase startdt = enddt = datetime.now() today = startdt.date() startdt.replace( hour = 0, minute = 0) enddt.replace( hour = 23, minute = 59) self._req.content_type = "text/xml" XG = xmlGen.XMLGen() XG.openTag("response") rooms = RoomBase.getRooms() nbRooms = len(rooms) nbPublicRooms = nbPrivateRooms = nbSemiPrivateRooms = 0 for r in rooms: if not r.isReservable: nbPrivateRooms += 1 elif not r.resvsNeedConfirmation: nbPublicRooms += 1 else: nbSemiPrivateRooms += 1 self._createIndicator(XG, "total", "total number of managed rooms", nbRooms) self._createIndicator(XG, "public", "number of public rooms", nbPublicRooms) self._createIndicator(XG, "semiprivate", "number of semi-private rooms", nbSemiPrivateRooms) self._createIndicator(XG, "private", "number of private rooms", nbPrivateRooms) resvex = ReservationBase() resvex.isConfirmed = True resvex.isCancelled = False nbResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.usesAVC = True nbAVResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.needsAVCSupport = True resvex.needsAssistance = False nbAVResvsWithSupport = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) self._createIndicator(XG, "nbbookings", "total number of bookings for today", nbResvs) self._createIndicator(XG, "nbvc", "number of remote collaboration bookings (video or phone conference)", nbAVResvs) self._createIndicator(XG, "nbvcsupport", "number of remote collaboration bookings with planned IT support", nbAVResvsWithSupport) XG.closeTag("response") return XG.getXml()