Пример #1
0
    def getRoomsByExample():
        Test.dalManager.connect()

        # By ID
        room = RoomBase.getRooms( roomID = 176 )
        assert( room.name == '4-1-021' )

        # By other attributes
        roomEx = Factory.newRoom()
        roomEx.site = 'prevessin'
        roomEx.comments = 'res'
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 8 ) # 20

        roomEx = Factory.newRoom()
        roomEx.capacity = 20
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 26 )

        roomEx = Factory.newRoom()
        roomEx.isReservable = True
        roomEx.setEquipment( [ 'Video projector', 'Wireless' ] )
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 33 )

        Test.dalManager.disconnect()
Пример #2
0
 def remove( self ):
     """ Documentation in base class. """
     RoomBase.remove( self )
     roomsBTree = Room.getRoot()
     del roomsBTree[self.id]
     if Catalog.getIdx('user_room').has_obj(self.guid):
         Catalog.getIdx('user_room').unindex_obj(self.guid)
Пример #3
0
 def remove( self ):
     """ Documentation in base class. """
     RoomBase.remove( self )
     roomsBTree = Room.getRoot()
     del roomsBTree[self.id]
     if Catalog.getIdx('user_room').has_obj(self.guid):
         Catalog.getIdx('user_room').unindex_obj(self.guid)
Пример #4
0
Файл: room.py Проект: jt1/indico
    def getRoomsByExample():
        Test.dalManager.connect()

        # By ID
        room = RoomBase.getRooms(roomID=176)
        assert room.name == "4-1-021"

        # By other attributes
        roomEx = Factory.newRoom()
        roomEx.site = "prevessin"
        roomEx.comments = "res"
        rooms = RoomBase.getRooms(roomExample=roomEx)
        assert len(rooms) == 8  # 20

        roomEx = Factory.newRoom()
        roomEx.capacity = 20
        rooms = RoomBase.getRooms(roomExample=roomEx)
        assert len(rooms) == 26

        roomEx = Factory.newRoom()
        roomEx.isReservable = True
        roomEx.setEquipment(["Video projector", "Wireless"])
        rooms = RoomBase.getRooms(roomExample=roomEx)
        assert len(rooms) == 33

        Test.dalManager.disconnect()
Пример #5
0
    def getRoomsByExample():
        Test.dalManager.connect()

        # By ID
        room = RoomBase.getRooms( roomID = 176 )
        assert( room.name == '4-1-021' )

        # By other attributes
        roomEx = Factory.newRoom()
        roomEx.site = 'prevessin'
        roomEx.comments = 'res'
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 8 ) # 20

        roomEx = Factory.newRoom()
        roomEx.capacity = 20
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 26 )

        roomEx = Factory.newRoom()
        roomEx.isReservable = True
        roomEx.setEquipment( [ 'Video projector', 'Wireless' ] )
        rooms = RoomBase.getRooms( roomExample = roomEx )
        assert( len( rooms ) == 33 )

        Test.dalManager.disconnect()
Пример #6
0
 def remove( self ):
     """ Documentation in base class. """
     RoomBase.remove( self )
     roomsBTree = Room.getRoot()
     del roomsBTree[self.id]
     from MaKaC.user import AvatarHolder
     AvatarHolder().invalidateRoomManagerIdList()
Пример #7
0
 def insert( self ):
     """ Documentation in base class. """
     RoomBase.insert( self )
     roomsBTree = Room.getRoot()
     # Ensure ID
     if self.id == None:
         # Maximum ID + 1
         if len( roomsBTree ) > 0:
             self.id = roomsBTree.maxKey() + 1
         else:
             self.id = 1 # Can not use maxKey for 1st record in a tree
     # Add self to the BTree
     roomsBTree[self.id] = self 
Пример #8
0
 def update( self ):
     """ Documentation in base class. """
     RoomBase.update( self )
     
     # Check Simba mailing list
     listName = self.customAtts.get( 'Simba List' )
     if listName:
         from MaKaC.user import GroupHolder
         groups = GroupHolder().match( { 'name': listName }, forceWithoutExtAuth = True )
         if not groups:
             groups = GroupHolder().match( { 'name': listName } )
         if not groups:
             self.customAtts['Simba List'] = 'Error: unknown mailing list'
     
     self._p_changed = True
Пример #9
0
    def getRoomsByFreeText():
        Test.dalManager.connect()

        rooms = RoomBase.getRooms( freeText = 'meyrin vrvs' ) # 78828
        assert( len( rooms ) == 12 )

        Test.dalManager.disconnect()
Пример #10
0
def QueryConference(conference, bookingId):
    booking = conference.getBookingById(bookingId)
    if booking == None:
        raise ServiceError("Invalid hermes id.")

    #mcuConference = McuApi.first(McuApi.SelectConferences(conferenceName = booking.getHermesName()))
    #if mcuConference == None:
    #raise ServiceError("Conference no longer exists in MCU.", conferenceName)

    roomName = None
    roomAddress = None
    conferenceRoom = conference.getRoom()
    if conferenceRoom:
        roomName = conferenceRoom.getName()
        try:
            DALManagerCERN.connect()
            room = RoomBase.getRooms(roomName=roomName)
            if room:
                roomAddress = room.customAtts["H323 IP"]
        finally:
            DALManagerCERN.disconnect()

    properties = {
        "mcu": McuApi.mcuAddress,
        "roomName": roomName,
        "roomAddress": roomAddress
    }
    return booking, properties
Пример #11
0
    def getRoomsByFreeText():
        Test.dalManager.connect()

        rooms = RoomBase.getRooms( freeText = 'meyrin vrvs' ) # 78828
        assert( len( rooms ) == 12 )

        Test.dalManager.disconnect()
Пример #12
0
def QueryConference(conference, bookingId):
    booking = conference.getBookingById(bookingId)
    if booking == None:
        raise ServiceError("Invalid hermes id.")
    
    #mcuConference = McuApi.first(McuApi.SelectConferences(conferenceName = booking.getHermesName()))
    #if mcuConference == None:
        #raise ServiceError("Conference no longer exists in MCU.", conferenceName)

    roomName = None
    roomAddress = None
    conferenceRoom = conference.getRoom()
    if conferenceRoom:
        roomName = conferenceRoom.getName()
        try:
            DALManagerCERN.connect()
            room = RoomBase.getRooms(roomName = roomName)
            if room:
                roomAddress = room.customAtts["H323 IP"]
        finally:
            DALManagerCERN.disconnect()

    properties = {
        "mcu": McuApi.mcuAddress,
        "roomName": roomName,
        "roomAddress": roomAddress
    }
    return booking, properties
Пример #13
0
def _getRoomSpecificNotificationBeforeDays():
    """Get the resvStartNotificationBefore for all rooms that uses notifications. """
    def _filter(r):
        return (r.resvStartNotification or r.resvEndNotification
                ) and r.resvStartNotificationBefore is not None

    return set(r.resvStartNotificationBefore
               for r in ifilter(_filter, RoomBase.getRooms()))
Пример #14
0
    def play():
        from MaKaC.rb_location import CrossLocationDB
        from MaKaC.rb_room import RoomBase
        from MaKaC.common.db import DBMgr

        DBMgr.getInstance().startRequest()
        CrossLocationDB.connect()

        roomEx = RoomBase()
        roomEx.isActive = False
        rooms = CrossLocationQueries.getRooms( roomExample = roomEx )
        for r in rooms:
            print r
            
        CrossLocationDB.commit()
        CrossLocationDB.disconnect()
        DBMgr.getInstance().endRequest()
Пример #15
0
    def update( self ):
        """ Documentation in base class. """
        RoomBase.update( self )

        # Check Simba mailing list
        listName = self.customAtts.get( 'Simba List' )
        if listName:
            from MaKaC.user import GroupHolder
            groups = GroupHolder().match( { 'name': listName }, forceWithoutExtAuth = True )
            if not groups:
                groups = GroupHolder().match( { 'name': listName } )
            if not groups:
                self.customAtts['Simba List'] = 'Error: unknown mailing list'

        # reindex - needed due to possible manager changes
        # super slow, though...
        Catalog.getIdx('user_room').unindex_obj(self.guid)
        Catalog.getIdx('user_room').index_obj(self.guid)

        self._p_changed = True
Пример #16
0
    def update( self ):
        """ Documentation in base class. """
        RoomBase.update( self )

        # Check Simba mailing list
        listName = self.customAtts.get( 'Simba List' )
        if listName:
            from MaKaC.user import GroupHolder
            groups = GroupHolder().match( { 'name': listName }, forceWithoutExtAuth = True )
            if not groups:
                groups = GroupHolder().match( { 'name': listName } )
            if not groups:
                self.customAtts['Simba List'] = 'Error: unknown mailing list'

        # reindex - needed due to possible manager changes
        # super slow, though...
        Catalog.getIdx('user_room').unindex_obj(self.guid)
        Catalog.getIdx('user_room').index_obj(self.guid)

        self._p_changed = True
Пример #17
0
    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()
Пример #18
0
    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()
Пример #19
0
Файл: room.py Проект: jt1/indico
    def getAvailableRooms():
        Test.dalManager.connect()

        from datetime import datetime

        roomEx = Factory.newRoom()
        roomEx.isActive = True
        roomEx.isReservable = True

        resvEx = Factory.newReservation()
        resvEx.startDT = datetime(2006, 12, 01, 10)
        resvEx.endDT = datetime(2006, 12, 14, 15)
        resvEx.repeatability = 0  # Daily

        rooms = RoomBase.getRooms(roomExample=roomEx, resvExample=resvEx, available=True)

        for room in rooms:
            print "\n=======================================\n"
            print room

        Test.dalManager.disconnect()
Пример #20
0
    def getAvailableRooms():
        Test.dalManager.connect()

        from datetime import datetime

        roomEx = Factory.newRoom()
        roomEx.isActive = True
        roomEx.isReservable = True

        resvEx = Factory.newReservation()
        resvEx.startDT = datetime( 2006, 12, 01, 10 )
        resvEx.endDT = datetime( 2006, 12, 14, 15 )
        resvEx.repeatability = 0 # Daily

        rooms = RoomBase.getRooms( \
            roomExample = roomEx,
            resvExample = resvEx,
            available = True )

        for room in rooms:
            print "\n=======================================\n"
            print room

        Test.dalManager.disconnect()
Пример #21
0
 def stats():
     Test.dalManager.connect()
     print "All rooms: %d" % RoomBase.getNumberOfRooms()
     print "Active rooms: %d" % RoomBase.getNumberOfActiveRooms()
     print "Reservable rooms: %d" % RoomBase.getNumberOfReservableRooms()
     Test.dalManager.disconnect()
Пример #22
0
 def __init__(self):
     RoomBase.__init__( self )
     self.customAtts = PersistentMapping()
     self.avaibleVC = []
Пример #23
0
 def __init__(self):
     RoomBase.__init__( self )
     self.customAtts = PersistentMapping()
     self.avaibleVC = []
     self._nonBookableDates = []
Пример #24
0
def _getRoomSpecificNotificationBeforeDays():
    """Get the resvStartNotificationBefore for all rooms that uses notifications. """
    def _filter(r):
        return (r.resvStartNotification or r.resvEndNotification) and r.resvStartNotificationBefore is not None
    return set(r.resvStartNotificationBefore for r in ifilter(_filter, RoomBase.getRooms()))
Пример #25
0
 def __init__(self):
     RoomBase.__init__( self )
     self.customAtts = PersistentMapping()
     self.avaibleVC = []
     self._nonBookableDates = []
Пример #26
0
 def stats():
     Test.dalManager.connect()
     print "All rooms: %d" % RoomBase.getNumberOfRooms()
     print "Active rooms: %d" % RoomBase.getNumberOfActiveRooms()
     print "Reservable rooms: %d" % RoomBase.getNumberOfReservableRooms()
     Test.dalManager.disconnect()