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()
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")
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')