def add_vehicle(self): brand = self.line_brand.text() mileage = self.line_milage.text() consumption = self.line_consumption.text() service_date = self.date_service.date().toPyDate() if self.radioBus.isChecked(): vehicle_base = session.query(VehicleBase).first() new_bus = Bus(Brand=brand, Mileage=int(mileage), FuelConsumption=int(consumption), ServiceBegin=service_date, VehicleBase_id=vehicle_base.id) session.add(new_bus) session.commit() self.loaddata() self.show_message("SUCCESS") if self.radioTram.isChecked(): vehicle_base = session.query(VehicleBase).first() new_bus = Train(Brand=brand, Mileage=int(mileage), ElectricityPerHour=int(consumption), ServiceBegin=service_date, VehicleBase_id=vehicle_base.id) session.add(new_bus) session.commit() self.loaddata() self.show_message("SUCCESS")
def loadpersonal(self): drivers = session.query(Driver).all() ticketsmen = session.query(Ticketsman).all() row = 0 self.table_personal.setRowCount(len(drivers) + len(ticketsmen)) for driver in drivers: self.table_personal.setItem( row, 0, QtWidgets.QTableWidgetItem(driver.FirstName)) self.table_personal.setItem( row, 1, QtWidgets.QTableWidgetItem(driver.LastName)) self.table_personal.setItem( row, 2, QtWidgets.QTableWidgetItem(str(driver.Salary))) self.table_personal.setItem( row, 3, QtWidgets.QTableWidgetItem(str(driver.Experience))) self.table_personal.setItem(row, 4, QtWidgets.QTableWidgetItem("Driver")) row = row + 1 for tick in ticketsmen: self.table_personal.setItem( row, 0, QtWidgets.QTableWidgetItem(tick.FirstName)) self.table_personal.setItem( row, 1, QtWidgets.QTableWidgetItem(tick.LastName)) self.table_personal.setItem( row, 2, QtWidgets.QTableWidgetItem(str(tick.Salary))) self.table_personal.setItem( row, 4, QtWidgets.QTableWidgetItem("Ticketsman")) row = row + 1
def get_vehicle_object(self, string, type): line = string.split() id = line[len(line) - 1][3:] if type == "bus": vehicle = session.query(Bus).filter(Bus.id == id).first() if type == "tram": vehicle = session.query(Train).filter(Train.id == id).first() return vehicle
def edit_route(self, item): route = session.query(Route).filter( Route.Title == str(item.text())).first() self.current_route = route try: stations = session.query(Station).filter( Station.Route_id == self.current_route.id).all() self.loadstations(stations) except: self.show_message("choose by Title!")
def loadroutes(self): routes = session.query(Route).all() row = 0 self.table_routes.setRowCount(len(routes)) self.table_routes.itemClicked.connect(self.edit_route) for route in routes: stations = session.query(Station).filter( Station.Route_id == int(route.id)).all() self.table_routes.setItem(row, 0, QtWidgets.QTableWidgetItem(route.Title)) self.table_routes.setItem( row, 1, QtWidgets.QTableWidgetItem(str(len(stations)))) row = row + 1
def load_by_name(self): firstname = self.line_firstname.text() lastname = self.line_lastname.text() ticketsman = session.query(Ticketsman).filter( Ticketsman.FirstName == firstname, Ticketsman.LastName == lastname).first() driver = session.query(Driver).filter( Driver.FirstName == firstname, Driver.LastName == lastname).first() if ticketsman: reports = session.query(TicketsmanReport).filter( TicketsmanReport.Ticketsman_id == ticketsman.id).all() self.table_reports.setRowCount(len(reports)) row = 0 for report in reports: date = session.query(DayReport).filter( DayReport.TicketsmanReport_id == report.id).first().Date worker = ticketsman.LastName vehicle = "-" route = "-" mileage = "-" problems = "-" worktime = report.WorkTime money = report.Money self.fill_row(date, worker, vehicle, route, mileage, problems, worktime, money, row) row = row + 1 if driver: reports = session.query(DriverReport).filter( DriverReport.Driver_id == driver.id).all() self.table_reports.setRowCount(len(reports)) row = 0 for report in reports: date = session.query(DayReport).filter( DayReport.DriverReport_id == report.id).first().Date worker = driver.LastName tram = report.Train_id bus = report.Bus_id if tram: vehicle = session.query(Train).filter( Train.id == tram).first().Brand if bus: vehicle = session.query(Bus).filter( Bus.id == bus).first().Brand route = session.query(Route).filter( Route.id == report.Route_id).first().Title mileage = report.Mileage problems = report.Problems worktime = "-" money = "-" self.fill_row(date, worker, vehicle, route, mileage, problems, worktime, money, row) row = row + 1
def populate_notices_data(): countries = session.query(Country).all()[4:] for country in countries: for entity in notices.get_notices_for_nationality(country.code): entity_id = entity.get("entity_id") entity_data = notices.get_entity_data(entity_id) date_of_birth = transform_date(entity_data.get('date_of_birth')) try: obj = Notice(entity_id=entity_id, date_of_birth=date_of_birth, country=country.code, sex=entity_data.get('sex'), place_of_birth=entity_data.get('place_of_birth'), charge=entity_data.get("charge")) nationalities = entity_data.get('nationalities') print(country, entity_id) # for nation in nationalities: # nation_obj = session.query(Country).filter(Country.code == nation).first() # obj.nationalities.append(nation_obj) session.add(obj) session.commit() except exc.IntegrityError: session.rollback() sleep(1)
async def regtest_active_balance_by_user(): data = [] users = session.query(User).group_by(User.id).order_by( func.max(User.id).desc()).all() for user in users: user_data = { 'name': user.name, 'id': user.id, 'keys': [], 'created': datetime.datetime.utcfromtimestamp( user.created).strftime('%Y-%m-%d %H:%M:%S'), 'balance': str(user.balance), 'level': user.level, 'email': user.email, 'status': user.status } for key in user.trxkey: balance = await btcd_utils.RegTest.get_user_balance([key]) if balance > 0: user_data['keys'].append({ 'id': key.id, 'value': key.value, 'balance': balance }) if len(user_data['keys']) > 0: data.append(user_data) return data
async def fetch_users_by_name(match_pattern): result = session.query(User).filter( User.name.ilike(match_pattern)).one_or_none() if result is not None: return result else: return -1
def check_if_dayreport_has_ticketsmans_report(self, date): day_report = session.query(DayReport).filter( DayReport.Date == date).first() if day_report.TicketsmanReport_id: return True else: return False
class BaseUser: widget = None user = None organisation = session.query(Organisation).first() def logout(self): from interface.index_interface import IndexUi index_page = IndexUi() self.widget.addWidget(index_page) self.widget.setCurrentIndex(self.widget.currentIndex() + 1) def show_message(self, text): msgBox = QMessageBox() msgBox.setText(text) msgBox.exec_() def get_organisation_name(self): return self.organisation.Title def get_user_name(self): return "{0} {1}".format(self.user.LastName, self.user.FirstName) def check_dayreports_by_date(self, date): day_report = session.query(DayReport).filter( DayReport.Date == date).first() if day_report: return True else: return False
async def findKey(key: str): existing_key = session.query(TrxKey).filter(TrxKey.value == key).first() if existing_key is None: return False else: return existing_key.id
async def find_single_key(kid: int) -> Union[bool, SKey]: existing_key = session.query(SKey).filter(SKey.kid == kid).first() if existing_key is None: return False else: return existing_key
def check_dayreports_by_date(self, date): day_report = session.query(DayReport).filter( DayReport.Date == date).first() if day_report: return True else: return False
def add_report(self): date = self.date.date().toPyDate() day_report = session.query(DayReport).filter( DayReport.Date == date).first() mileage = self.spin_mileage.value() problems = self.line_problems.text() route = self.get_route_object(self.combo_route.currentText()) vehicle = None type = None if self.radio_bus.isChecked(): bus = self.combo_bus.currentText() type = "bus" vehicle = self.get_vehicle_object(bus, type) if self.radio_tram.isChecked(): tram = self.combo_tram.currentText() type = "tram" vehicle = self.get_vehicle_object(tram, type) data = { "date": date, "mileage": mileage, "problems": problems, "route": route, "vehicle": vehicle, "type": type } if not day_report: self.create_day_report_with_driverreport_inside(data) if day_report: if not day_report.DriverReport_id: self.create_driverreport_and_add_to_existing_dayreport( day_report, data) else: self.create_day_report_with_driverreport_inside(data)
async def find_key_for_uid(uid: int) -> Union[bool, TrxKey]: key = session.query(TrxKey).filter(TrxKey.uid == uid, TrxKey.status == true()).first() if key is None: return False else: return key
async def check_authentication(user, password, email): query_user = session.query(User).filter(User.name == user).first() if query_user is not None: if not User.verify_password(email, password): return None return query_user else: return None
def latest_price_history(currency: str): result = session.query(CXPriceRevision).filter( CXPriceRevision.currency == currency).order_by( CXPriceRevision.rid.desc()).limit(15).all() if result is not None: for r in result: print(r.serialize()) return result
def load_all_tick(self): tick_reports = session.query(TicketsmanReport).all() row = 0 self.table_reports.setRowCount(len(tick_reports)) for tick in tick_reports: date = session.query(DayReport).filter( DayReport.TicketsmanReport_id == tick.id).first().Date worker = session.query(Ticketsman).filter( Ticketsman.id == tick.Ticketsman_id).first().LastName vehicle = "-" route = "-" mileage = "-" problems = "-" worktime = tick.WorkTime money = tick.Money self.fill_row(date, worker, vehicle, route, mileage, problems, worktime, money, row) row = row + 1
def __init__(self, name='SPY'): ''' ''' self.name = name self.tradable = session.query(Tradable).filter_by(name=self.name).first() self.chain, self.underlying = self.getchain() self.callcolor = (1.0, 0, 0, 0.4) self.putcolor = (0, 0, 1.0, 0.4)
async def trc_latest_price(): """ Retrieves the latest price recorded on the TRC Mockchain (in CAD) :return: """ latest_trc_price = session.query(TRCHistory).group_by( TRCHistory.id).order_by(func.max( TRCHistory.id).desc()).limit(1).one_or_none() return latest_trc_price
async def regtest_pay_keys(amount: str): keys = session.query(TrxKey).filter(TrxKey.status == true()).all() additions_to_ledger = 0 for key in keys: if await regtest_pay_key(wif=key.value, amount=amount) is not None: additions_to_ledger += 1 if additions_to_ledger > 0: await trx_block_pending() return additions_to_ledger
def recount_income(self): ticketsman_reports = session.query(TicketsmanReport).all() driver_reports = session.query(DriverReport).all() income = 0 for tick_rep in ticketsman_reports: income = income + tick_rep.Money for driv_rep in driver_reports: if driv_rep.Train_id: train = session.query(Train).filter( Train.id == driv_rep.Train_id).first() income = income - (train.ElectricityPerHour * driv_rep.Mileage) if driv_rep.Bus_id: bus = session.query(Bus).filter( Bus.id == driv_rep.Bus_id).first() income = income - (bus.FuelConsumption * driv_rep.Mileage) self.organisation.Income = income session.commit() self.label_current_income.setText(str(income))
def check_authentication_by_name(user, password): query_user = session.query(User).filter(User.name == user).first() if query_user is not None: if not User.verify_password_by_name(user, password): return -1 return query_user else: return -1
async def latest_price_history_async(currency: str): result = session.query(CXPriceRevision).filter( CXPriceRevision.currency == currency).order_by( CXPriceRevision.rid.desc()).limit(15).all() data = [] if result is not None: for r in result: data.append(r.serialize()) return data
def check_auth_by_name(user, password): # Create fallback for checking password query_user = session.query(User).filter(User.name == user).first() if query_user is not None: if not User.verify_password_by_name(user, password): return -1 return query_user else: return None
def get_or_create(model, **kwargs): instance = session.query(model).filter_by(**kwargs).first() if instance: return instance else: instance = model(**kwargs) session.add(instance) session.commit() return instance
def build_comments(comments, now, session): if comments is not None: return [{ 'cid': x.cid, 'body': x.body, 'user': session.query(HeartbeatUser).filter( HeartbeatUser.uid == x.uid).one(), 'timeago': timeago.format(x.created, now), 'subcomments': build_sub_comments( session.query(HeartbeatComment).filter( HeartbeatComment.entity_id == x.cid, HeartbeatComment.entity_type == 'comment').all(), now, session) } for x in comments]
def loaddata(self): buses = session.query(Bus).all() trains = session.query(Train).all() row = 0 self.table_bus.setRowCount(len(buses)) self.table_tram.setRowCount(len(trains)) for bus in buses: self.table_bus.setItem(row, 0, QtWidgets.QTableWidgetItem(bus.Brand)) self.table_bus.setItem(row, 1, QtWidgets.QTableWidgetItem(str(bus.ServiceBegin))) self.table_bus.setItem(row, 2, QtWidgets.QTableWidgetItem(str(bus.FuelConsumption))) self.table_bus.setItem(row, 3, QtWidgets.QTableWidgetItem(str(bus.Mileage))) row = row+1 row = 0 for train in trains: self.table_tram.setItem(row, 0, QtWidgets.QTableWidgetItem(train.Brand)) self.table_tram.setItem(row, 1, QtWidgets.QTableWidgetItem(str(train.ServiceBegin))) self.table_tram.setItem(row, 2, QtWidgets.QTableWidgetItem(str(train.ElectricityPerHour))) self.table_tram.setItem(row, 3, QtWidgets.QTableWidgetItem(str(train.Mileage))) row = row+1
async def regtest_user_balance(uid: str): user = session.query(User).filter(User.id == int(uid), User.status == 1).one_or_none() if user is not None: balance_data = await btcd_utils.RegTest.get_user_balance(user.trxkey) balance = sum(balance_data) if isinstance(balance_data, list) else balance_data user.balance = balance await update_user_balance(user, balance) return balance