def getAirplanes(self): fileObject = FileHandler(self.aircraftPath) fileForRead = fileObject.readFile() reader = csv.DictReader(fileForRead) field_list = fileObject.findFieldNames() airplane_list = [] for row in reader: airplane_list.append( AirplaneData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]])) return airplane_list
def getDestinations(self): fileObject = FileHandler(self.destinationPath) fileForRead = fileObject.readFile() reader = csv.DictReader(fileForRead) field_list = fileObject.findFieldNames() destination_list = [] for row in reader: destination_list.append( DestinationData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]])) return destination_list
def getStaff(self): fileObject = FileHandler(self.crewPath) fileForRead = fileObject.readFile() reader = csv.DictReader(fileForRead) field_list = fileObject.findFieldNames() crew_list = [] for row in reader: crew_list.append( StaffData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]], row[field_list[5]], row[field_list[6]], row[field_list[7]], row[field_list[8]])) return crew_list
def getVoyages(self): fileObject = FileHandler(self.upcomingVoyagesPath) fileForRead = fileObject.readFile() reader = csv.DictReader(fileForRead) field_list = fileObject.findFieldNames() voyages_list = [] for row in reader: voyages_list.append( VoyageData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]], row[field_list[5]], row[field_list[6]], row[field_list[7]], row[field_list[8]], row[field_list[9]])) return voyages_list
def addNewDest(self, newDestination): # FileHandler DTO instance created fileObject = FileHandler(self.destinationPath) # File opened with appendFile() destinationFile = fileObject.appendFile() field_list = fileObject.findFieldNames() writer = csv.DictWriter(destinationFile, fieldnames=field_list) writer.writerow({ field_list[0]: newDestination.getCountry(), field_list[1]: newDestination.getFlightTime(), field_list[2]: newDestination.getContact(), field_list[3]: newDestination.getEmergencyNumber(), field_list[4]: newDestination.getDestId() }) destinationFile.close()
def addLicense(self, dataList): # FileHandler DTO instance created fileObject = FileHandler(self.licensePath) # File opened with readFile() crewFile = fileObject.readFile() reader = csv.DictReader(crewFile) field_list = fileObject.findFieldNames() crew_list = [] for row in reader: crew_list.append( StaffData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]], row[field_list[5]], row[field_list[6]], row[field_list[7]], row[field_list[8]])) crewFile.close() # File opened with writeFile() crewFile = fileObject.writeFile() fieldnames = field_list writer = csv.DictWriter(crewFile, fieldnames=fieldnames) writer.writeheader() crewFile.close() # File opened with appendFile() crewFile = fileObject.appendFile() fieldnames = field_list writer = csv.DictWriter(crewFile, fieldnames=fieldnames) for employee in crew_list: if employee.getSSN() == dataList[0]: employee.setLicense(dataList[1]) writer.writerow({ field_list[0]: employee.getSSN(), field_list[1]: employee.getName(), field_list[2]: employee.getAddress(), field_list[3]: employee.getCellPhone(), field_list[4]: employee.getPhoneNumber(), field_list[5]: employee.getEmail(), field_list[6]: employee.getRole(), field_list[7]: employee.getRank(), field_list[8]: employee.getLicense() }) crewFile.close()
def addNewAirplane(self, newAirplane): # FileHandler DTO instance created fileObject = FileHandler(self.aircraftPath) # File opened with appendFile() airplaneFile = fileObject.appendFile() field_list = fileObject.findFieldNames( ) # findFieldNames creates a list where each row is a element from the first line writer = csv.DictWriter(airplaneFile, fieldnames=field_list) writer.writerow({ field_list[0]: newAirplane.getPlaneId(), field_list[1]: newAirplane.getType(), field_list[2]: newAirplane.getModel(), field_list[3]: newAirplane.getCapacity() }) airplaneFile.close()
def updateDest(self, dataList): # FileHandler DTO instance created fileObject = FileHandler(self.destinationPath) # File opened with readFile() destinationsFile = fileObject.readFile() reader = csv.DictReader(destinationsFile) field_list = fileObject.findFieldNames() destinations_list = [] for row in reader: destinations_list.append( DestinationData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]])) destinationsFile.close() # File opened with writeFile() destinationsFile = fileObject.writeFile() fieldnames = field_list writer = csv.DictWriter(destinationsFile, fieldnames=fieldnames) writer.writeheader() destinationsFile.close() # File opened with appendFile() destinationsFile = fileObject.appendFile() fieldnames = field_list writer = csv.DictWriter(destinationsFile, fieldnames=fieldnames) for destination in destinations_list: if destination.getCountry() == dataList[0]: destination.setContact(dataList[1]) destination.setEmergencyNumber(dataList[2]) writer.writerow({ field_list[0]: destination.getCountry(), field_list[1]: destination.getFlightTime(), field_list[2]: destination.getContact(), field_list[3]: destination.getEmergencyNumber(), field_list[4]: destination.getDestId() }) destinationsFile.close()
def addNewStaff(self, newEmployee): # FileHandler DTO instance created fileObject = FileHandler(self.crewPath) # File opened with appendFile() crewFile = fileObject.appendFile() field_list = fileObject.findFieldNames() writer = csv.DictWriter(crewFile, fieldnames=field_list) writer.writerow({ field_list[0]: newEmployee.getSSN(), field_list[1]: newEmployee.getName(), field_list[2]: newEmployee.getAddress(), field_list[3]: newEmployee.getCellPhone(), field_list[4]: newEmployee.getPhoneNumber(), field_list[5]: newEmployee.getEmail(), field_list[6]: newEmployee.getRole(), field_list[7]: newEmployee.getRank(), field_list[8]: newEmployee.getLicense() }) crewFile.close()
def addNewVoyage(self, newVoyage): # FileHandler DTO instance created fileObject = FileHandler(self.upcomingVoyagesPath) # File opened with appendFile() voyageFile = fileObject.appendFile() field_list = fileObject.findFieldNames() writer = csv.DictWriter(voyageFile, fieldnames=field_list) writer.writerow({ field_list[0]: newVoyage.getFlightNumber(), field_list[1]: newVoyage.getDepartingFrom(), field_list[2]: newVoyage.getArrivingAt(), field_list[3]: newVoyage.getDepartureTime(), field_list[4]: newVoyage.getArrivalTime(), field_list[5]: newVoyage.getAircraftId(), field_list[6]: newVoyage.getCaptain(), field_list[7]: newVoyage.getCoPilot(), field_list[8]: newVoyage.getFa1(), field_list[9]: newVoyage.getFa2() }) voyageFile.close()
def updateVoyage(self, dataList, staffList): '''We update a voyage only to add the staff to a voyage. Voyage is the most complicated because when we find the line(instance) we want to change the line below the target instance where's''' # FileHandler DTO instance created fileObject = FileHandler(self.upcomingVoyagePath) upcomingVoyageFile = fileObject.readFile() reader = csv.DictReader(upcomingVoyageFile) field_list = fileObject.findFieldNames() voyage_list = [] for row in reader: voyage_list.append( VoyageData(row[field_list[0]], row[field_list[1]], row[field_list[2]], row[field_list[3]], row[field_list[4]], row[field_list[5]], row[field_list[6]], row[field_list[7]], row[field_list[8]], row[field_list[9]])) upcomingVoyageFile.close() upcomingVoyageFile = fileObject.writeFile() fieldnames = field_list writer = csv.DictWriter(upcomingVoyageFile, fieldnames=fieldnames) writer.writeheader() upcomingVoyageFile.close() upcomingVoyageFile = fileObject.appendFile() fieldnames = field_list writer = csv.DictWriter(upcomingVoyageFile, fieldnames=fieldnames) i = 0 while i < len(voyage_list): if dataList[0].getDepartureTime( ) == voyage_list[i].getDepartureTime(): voyage_list[i].setCaptain(staffList[0]) voyage_list[i].setCoPilot(staffList[1]) voyage_list[i].setFa1(staffList[2]) voyage_list[i].setFa2(staffList[3]) # after setting the new staff for the first flight we do the same for the second voyage_list[i + 1].setCaptain(staffList[0]) voyage_list[i + 1].setCoPilot(staffList[1]) voyage_list[i + 1].setFa1(staffList[2]) voyage_list[i + 1].setFa2(staffList[3]) writer.writerow({ field_list[0]: voyage_list[i].getFlightNumber(), field_list[1]: voyage_list[i].getDepartingFrom(), field_list[2]: voyage_list[i].getArrivingAt(), field_list[3]: voyage_list[i].getDepartureTime(), field_list[4]: voyage_list[i].getArrivalTime(), field_list[5]: voyage_list[i].getAircraftId(), field_list[6]: voyage_list[i].getCaptain(), field_list[7]: voyage_list[i].getCoPilot(), field_list[8]: voyage_list[i].getFa1(), field_list[9]: voyage_list[i].getFa2() }) # We have updated the first flight and writen it in the csv file and we do the same for the next flight writer.writerow({ field_list[0]: voyage_list[i + 1].getFlightNumber(), field_list[1]: voyage_list[i + 1].getDepartingFrom(), field_list[2]: voyage_list[i + 1].getArrivingAt(), field_list[3]: voyage_list[i + 1].getDepartureTime(), field_list[4]: voyage_list[i + 1].getArrivalTime(), field_list[5]: voyage_list[i + 1].getAircraftId(), field_list[6]: voyage_list[i + 1].getCaptain(), field_list[7]: voyage_list[i + 1].getCoPilot(), field_list[8]: voyage_list[i + 1].getFa1(), field_list[9]: voyage_list[i + 1].getFa2() }) i += 2 upcomingVoyageFile.close()