コード例 #1
0
ファイル: room.py プロジェクト: davidmorrison/indico
 def remove( self ):
     """ Documentation in base class. """
     RoomBase.remove( self )
     roomsBTree = Room.getRoot()
     del roomsBTree[self.id]
     from MaKaC.user import AvatarHolder
     AvatarHolder().invalidateRoomManagerIdList()
コード例 #2
0
ファイル: room.py プロジェクト: aninhalacerda/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()
コード例 #3
0
ファイル: room.py プロジェクト: vstitches/indico
 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
ファイル: room.py プロジェクト: davidmorrison/indico
 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 
コード例 #6
0
ファイル: room.py プロジェクト: davidmorrison/indico
 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
コード例 #7
0
ファイル: room.py プロジェクト: aninhalacerda/indico
    def getRoomsByFreeText():
        Test.dalManager.connect()

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

        Test.dalManager.disconnect()
コード例 #8
0
ファイル: Api.py プロジェクト: davidmorrison/indico
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
コード例 #9
0
ファイル: reservation.py プロジェクト: davidmorrison/indico
    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()
コード例 #10
0
ファイル: room.py プロジェクト: aninhalacerda/indico
    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
コード例 #11
0
ファイル: xmlGateway.py プロジェクト: Ictp/indico
    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()
コード例 #12
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()
コード例 #13
0
ファイル: room.py プロジェクト: aninhalacerda/indico
 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()
コード例 #14
0
ファイル: room.py プロジェクト: aninhalacerda/indico
 def __init__(self):
     RoomBase.__init__( self )
     self.customAtts = PersistentMapping()
     self.avaibleVC = []
     self._nonBookableDates = []
コード例 #15
0
ファイル: notifications.py プロジェクト: Ictp/indico
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()))
コード例 #16
0
ファイル: room.py プロジェクト: davidmorrison/indico
 def __init__(self):
     RoomBase.__init__( self )
     self.customAtts = PersistentMapping()
     self.avaibleVC = []