コード例 #1
0
    def insert( self ):
        """ Documentation in base class. """
        ReservationBase.insert( self )

        resvBTree = Reservation.getReservationsRoot()
        # Ensure ID
        if self.id == None:
            # Maximum ID + 1
            if len( resvBTree ) > 0:
                self.id = resvBTree.maxKey() + 1
            else:
                self.id = 1 # Can not use maxKey for 1st record in a tree
        # Add self to the BTree
        resvBTree[self.id] = self
        
        # Update room => room reservations index
        roomReservationsIndexBTree = Reservation.getRoomReservationsIndexRoot()
        resvs = roomReservationsIndexBTree.get( self.room.id )
        if resvs == None:
            resvs = [] # New list of reservations for this room
            roomReservationsIndexBTree.insert( self.room.id, resvs )
        resvs.append( self )
        roomReservationsIndexBTree[self.room.id] = resvs

        # Update user => user reservations index
        userReservationsIndexBTree = Reservation.getUserReservationsIndexRoot()
        resvs = userReservationsIndexBTree.get( self.createdBy )
        if resvs == None:
            resvs = [] # New list of reservations for this room
            userReservationsIndexBTree.insert( self.createdBy, resvs )
        resvs.append( self )
        userReservationsIndexBTree[self.createdBy] = resvs
        
        # Update day => reservations index
        self._addToDayReservationsIndex()
コード例 #2
0
ファイル: reservation.py プロジェクト: arescope/indico
    def insert(self):
        """ Documentation in base class. """
        ReservationBase.insert(self)

        resvBTree = Reservation.getReservationsRoot()
        # Ensure ID
        if self.id == None:
            #            # Maximum ID + 1
            #            if len( resvBTree ) > 0:
            #                self.id = resvBTree.maxKey() + 1
            #            else:
            #                self.id = 1 # Can not use maxKey for 1st record in a tree
            # Faster version of the code above
            try:
                self.id = resvBTree.maxKey() + 1
            except ValueError:
                self.id = 1
        # Add self to the BTree
        resvBTree[self.id] = self

        # Update room => room reservations index
        roomReservationsIndexBTree = Reservation.getRoomReservationsIndexRoot()
        resvs = roomReservationsIndexBTree.get(self.room.id)
        if resvs == None:
            resvs = []  # New list of reservations for this room
            roomReservationsIndexBTree.insert(self.room.id, resvs)
        resvs.append(self)
        roomReservationsIndexBTree[self.room.id] = resvs

        # Update user => user reservations index
        userReservationsIndexBTree = Reservation.getUserReservationsIndexRoot()
        resvs = userReservationsIndexBTree.get(self.createdBy)
        if resvs == None:
            resvs = []  # New list of reservations for this room
            userReservationsIndexBTree.insert(self.createdBy, resvs)
        resvs.append(self)
        userReservationsIndexBTree[self.createdBy] = resvs

        # Update day => reservations index
        self._addToDayReservationsIndex()

        # Update room+day => reservations index
        self._addToRoomDayReservationsIndex()

        self._notify("reservationCreated")
コード例 #3
0
    def insert(self):
        """ Documentation in base class. """
        ReservationBase.insert(self)

        resvBTree = Reservation.getReservationsRoot()
        # Ensure ID
        if self.id == None:
            #            # Maximum ID + 1
            #            if len( resvBTree ) > 0:
            #                self.id = resvBTree.maxKey() + 1
            #            else:
            #                self.id = 1 # Can not use maxKey for 1st record in a tree
            #Faster version of the code above
            try:
                self.id = resvBTree.maxKey() + 1
            except ValueError:
                self.id = 1
        # Add self to the BTree
        resvBTree[self.id] = self

        # Update room => room reservations index
        roomReservationsIndexBTree = Reservation.getRoomReservationsIndexRoot()
        resvs = roomReservationsIndexBTree.get(self.room.id)
        if resvs == None:
            resvs = []  # New list of reservations for this room
            roomReservationsIndexBTree.insert(self.room.id, resvs)
        resvs.append(self)
        roomReservationsIndexBTree[self.room.id] = resvs

        # Update user => user reservations index
        userReservationsIndexBTree = Reservation.getUserReservationsIndexRoot()
        resvs = userReservationsIndexBTree.get(self.createdBy)
        if resvs == None:
            resvs = []  # New list of reservations for this room
            userReservationsIndexBTree.insert(self.createdBy, resvs)
        resvs.append(self)
        userReservationsIndexBTree[self.createdBy] = resvs

        # Update day => reservations index
        self._addToDayReservationsIndex()

        # Update room+day => reservations index
        self._addToRoomDayReservationsIndex()

        self._notify('reservationCreated')