class ClientWindow(Client, BaseWidget): def __init__(self, isCreating): Client.__init__(self, '', '') BaseWidget.__init__(self, 'Client') self.__isCreating = isCreating self._idField = ControlText("Id") if not isCreating: self._idField.enabled = False self._nameField = ControlText("Name") self._buttonField = ControlButton('Add a new client') self._buttonField.value = self._updateAction self._label = ControlLabel("") def getData(self, id, name): self._idField.value = id self._nameField.value = name def _updateAction(self): self.id = self._idField.value self.name = self._nameField.value self._label.hide() try: if self.parent is not None: if self.__isCreating: self.parent.addClient(str(self.id), self.name) else: self.parent.updateClient(str(self.id), self.name) except Exception as e: self._label.show() self._label.value = str(e)
class RentalWindow(Rental, BaseWidget): def __init__(self, isCreating): Rental.__init__(self, '', '', '', '', '', '') BaseWidget.__init__(self, 'Rental') self.__isCreating = isCreating self._idField = ControlText("Id") self._clientIdField = ControlText("Client Id") self._movieIdField = ControlText("Movie Id") self._dueDateField = ControlText("Due Date") self._rentedDateField = ControlText("Rented Date") self._returnedDateField = ControlText("Returned Date") self._buttonField = ControlButton('Rent a new Movie') self._buttonField.value = self._updateAction self._rentedDateField.enabled = False self._returnedDateField.enabled = False self._label = ControlLabel("") if not isCreating: self._idField.enabled = False self._clientIdField.enabled = False self._movieIdField.enabled = False self._dueDateField.enabled = False self._returnedDateField.enabled = False self._rentedDateField.enabled = False self._buttonField.value = self.returnMovie self._buttonField.name = "Return movie" def returnMovie(self): self.parent.returnAMovie(self._idField.value) def getData(self, id, movieId, clientId, rentedDate, dueDate, returnedDate): self._idField.value = id self._movieIdField.value = movieId self._clientIdField.value = clientId self._rentedDateField.value = rentedDate self._dueDateField.value = dueDate self._returnedDateField.value = returnedDate if str(self._returnedDateField) != '-1': self._buttonField.enabled = False def _updateAction(self): self.id = self._idField.value self.movieId = self._movieIdField.value self.clientId = self._clientIdField.value self.returnedDate = self._returnedDateField.value self.rentedDate = self._rentedDateField.value self.dueDate = self._dueDateField.value self._label.hide() try: if self.parent is not None: if self.__isCreating: self.parent.addRental(str(self.id), self.movieId, self.clientId, datetime.datetime.today().strftime('%Y-%m-%d'), self.dueDate, '-1') else: self.parent.returnAMovie(self.id) except Exception as e: self._label.show() self._label.value = str(e)
class MovieWindow(Movie, BaseWidget): def __init__(self, isCreating): Movie.__init__(self, '', '', '', '') BaseWidget.__init__(self, 'Movie') self.__isCreating = isCreating self._idField = ControlText("Id") self._titleField = ControlText("Title") self._descriptionField = ControlTextArea("Description") self._genre = ControlCombo("Genre") for i in MOVIE_GENRE: self._genre += i self._buttonField = ControlButton('Add a new movie') self._buttonField.value = self._updateAction if not isCreating: self._idField.enabled = False self._buttonField.name = "Update movie" self._label = ControlLabel("") def getData(self, id, title, description, genre): self._idField.value = id self._titleField.value = title self._descriptionField.value = description self._genre.value = genre def _updateAction(self): self.id = self._idField.value self.description = self._descriptionField.value self.genre = self._genre.value self.title = self._titleField.value self._label.hide() try: if self.parent is not None: if self.__isCreating: self.parent.addMovie(str(self.id), self.title, self.description, self.genre) else: self.parent.updateMovie(str(self.id), self.title, self.description, self.genre) except Exception as e: self._label.show() self._label.value = str(e)