def post(self): args = post_parser.parse_args() # add car duplicate = Car.query.filter_by(name=args['name']).first() if duplicate: return { 'message': 'Уже есть автомобиль с данным наименованием' }, 409 duplicate = Car.query.filter_by(slug=args['slug']).first() if duplicate: return { 'message': 'Уже есть автомобиль с данным идентификатором' }, 409 user_id = get_jwt_identity() car = Car(name=args['name'], slug=args['slug'], creator_id=user_id) db.session.add(car) # save car image image = args['image'] if image: db.session.flush() # for car.id try: url = upload_image(file_storage=image, obj_type='car', obj_id=car.id) except Exception as error: return {'message': str(error)}, 500 car.img_src = url db.session.commit() car_data = car_schema.dump(car) return {'status': 'success', 'data': car_data}, 200
def test_car_not_found_for_user(self, default_user, empty_user, default_car): with pytest.raises(DoesNotExist): Car.find_car_by_plate(empty_user, default_car.license_plate) with pytest.raises(DoesNotExist): Car.find_car_by_plate(default_user, 'MADEUP999')
def sale_profit(parameters): response = {"message": [], "status": "failed"} sp = Car() try: sp.cal_sale_prof() return 'x' except: return response
def get(self): template = JINJA_ENVIRONMENT.get_template('templates/caredit/list.html') unknown = CarModel.all().filter('name =', 'Annet').fetch(5) assert len(unknown)==1 unknown_cars = Car.all().filter('model =', unknown[0]).fetch(50) other = CarModel.all().filter('name =', 'Annen Alfa Romeo').fetch(5) assert len(other)==1 other_cars = Car.all().filter('model =', other[0]).fetch(50) data = { 'cars': other_cars + unknown_cars, 'linker': LookupReg() } self.response.write(template.render(data))
def car_info(parameters): response = {"data": [], "status": "failed"} car_id = parameters['id'] lc = Car() try: result = lc.fetch_one(car_id) if result['car_for'] == 'rent': res = lc.fetch_rent(car_id) response['rent_info'] = res['rent_data'] response['data'] = result response['status'] = 'success' except: return response return response
def get(self): template = JINJA_ENVIRONMENT.get_template( 'templates/caredit/list.html') unknown = CarModel.all().filter('name =', 'Annet').fetch(5) assert len(unknown) == 1 unknown_cars = Car.all().filter('model =', unknown[0]).fetch(50) other = CarModel.all().filter('name =', 'Annen Alfa Romeo').fetch(5) assert len(other) == 1 other_cars = Car.all().filter('model =', other[0]).fetch(50) data = {'cars': other_cars + unknown_cars, 'linker': LookupReg()} self.response.write(template.render(data))
def create_member_car(self, car, range_name, model_name, note): members = Member.all().filter('number', car.memberno).fetch(10) if len(members) == 0: print 'WARNING: Could not look up member with no.', car.memberno return member_car = Car() member_car.member = members[0] member_car.model = self.get_model(model_name) member_car.registration = car.registration member_car.year = int(car.year) member_car.notes = note member_car.serial_no = '' member_car.put()
def customers(): ''' 'GET': show customers table. 'POST': save a new customer or add a car to existing customer. ''' if request.method == 'POST': fullname = (request.form['fullname']).split() last_name = fullname[0] first_name = fullname[1] if len(fullname) == 3: middle_name = fullname[2] else: middle_name = '' phone_number = request.form['phone_number'] car_brand = request.form['car_brand'] car_number = request.form['car_number'] new_customer = Customer( last_name=last_name, first_name=first_name, middle_name=middle_name, phone_number=phone_number, ) new_car = Car( brand=car_brand, number=car_number, customer=new_customer, ) db_session.add(new_customer) db_session.add(new_car) db_session.commit() return redirect(url_for('customers')) else: customers = db_session.query(Customer).all() return render_template('customers.html', customers=customers)
def getCars(data): """Get information about cars Parameters: data (Dict[str, str]) : Dictionary of information about cars and rentals Return: Dict[int, Car] : Dictionary of cars orders by car's ID """ listCars = {} for c in data["cars"]: if (c['id'] is None or c['price_per_day'] is None or c['price_per_km'] is None): print("Cars : Unfound info \n") return else: if (type(c['id']) != int or type(c['price_per_day']) != int or type(c['price_per_km']) != int): print("Cars : Invalide type \n") return else: car = Car(c['id'], c['price_per_day'], c['price_per_km']) listCars[car.id] = car return listCars
class CarView(GridLayout): theCar = Car() frontLeft = NumericProperty(0) frontRight = NumericProperty(0) rearLeft = NumericProperty(0) rearRight = NumericProperty(0) currentGear = NumericProperty(0) throttlePosition = NumericProperty(0) clutchPosition = NumericProperty(0) fuelMeter = NumericProperty(0) currentEngineRpm = StringProperty('000') currentWheelRpm = StringProperty('000') def tick(self, dt): self.updateModel(dt) self.updateView() def updateModel(self, dt): self.theCar.updateModel(dt) def updateView(self): self.frontLeft = self.theCar.theEngine.theGearbox.wheels['frontLeft'].orientation self.frontRight = self.theCar.theEngine.theGearbox.wheels['frontRight'].orientation self.rearLeft = self.theCar.theEngine.theGearbox.wheels['rearLeft'].orientation self.rearRight = self.theCar.theEngine.theGearbox.wheels['rearRight'].orientation self.currentGear = self.theCar.theEngine.theGearbox.currentGear self.throttlePosition = self.theCar.theEngine.throttlePosition self.clutchPosition = self.theCar.theEngine.theGearbox.clutchPosition self.fuelMeter = self.theCar.theEngine.theTank.contents self.currentEngineRpm = str(round(self.theCar.theEngine.currentRpm)).zfill(3) self.currentWheelRpm = str(round(self.theCar.theEngine.currentRpm * self.theCar.theEngine.theGearbox.gears[self.theCar.theEngine.theGearbox.currentGear])).zfill(3)
def load_cars(): """Load cars into database.""" print "\n Load Cars \n" with open('seed-data/vehicles.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: car = Car( car_id=row["id"], # vehicle id make=row["make"], # manufacturer model=row["model"], # carline fuel_type=row["fuelType1"], # primary fuel year=row["year"], # model year cylinders=row["cylinders"], drive=row["drive"], eng_id=row["engId"], eng_description=row["eng_dscr"], displacement=row["displ"], # engine displacement in liters trans_description=row["trans_dscr"], # transmission descriptor transmission=row["trany"], grams_co2_mile=row["co2TailpipeGpm"], # tailpipe CO2 mpg_street=row["city08"], # city MPG for fuelType1 mpg_hw=row["highway08"], # highway MPG for fuelType1 mpg_combo=row["comb08"], # combined MPG for fuelType1 ) # Add to the session so the data will be stored db.session.add(car) # Commit the changes to the database db.session.commit()
def rent_revoke(parameters): response = {"message": [], "status": "failed"} dt = car_info(parameters) try: car_id = dt['data']['_id'] except: response sr = Car() if (dt['data']['status'] == 'rented'): result = sr.revoke(car_id) if result: response['message'] = 'The car is available now!' response['status'] = 'success' return response else: response['message'] = 'The car was already available!' return response
def Get(self): cars = Car.all(Car.owner==self.user, key=self.rootKey()).fetch() context = { 'user': self.user, 'cars': cars, 'now' : datetime.date(datetime.now()) } self.render('car/index', context)
def create_member_car(self, car, range_name, model_name, note): members = Member.all().filter('number',car.memberno).fetch(10) if len(members) == 0: print 'WARNING: Could not look up member with no.',car.memberno return member_car = Car() member_car.member = members[0] member_car.model = self.get_model(model_name) member_car.registration = car.registration member_car.year = int(car.year) member_car.notes = note member_car.serial_no = '' member_car.put()
def sell_car(parameters): response = {"message": [], "status": "failed"} dt = car_info(parameters) try: car_id = dt['data']['_id'] except: response['message'] = 'Wrong car id' selling_price = parameters['amount'] sl = Car() if dt['data']['status'] == '': sl.sl_car(car_id, selling_price) response['message'] = 'Car Sold' response['status'] = 'success' return response else: response[ 'message'] = 'This car has been either sold or has been rented.' return response
def list_cars(parameters): response = {"data": [], "status": "failed"} list_type = parameters.get('list_type', None) lc = Car() if list_type: try: result = lc.fetch_all(list_type) response['data'] = result response['status'] = 'success' except: response try: result = lc.fetch_all(list_type) response['data'] = result response['status'] = 'success' except: return response return response
def delete_car(license_plate): user = User.get(User.username == auth.username()) try: car = Car.find_car_by_plate(user, license_plate) except DoesNotExist: raise BadApiRequest('Car not found') num_deleted = car.delete_instance() return json_response({'cars_deleted': num_deleted})
def generate_car(details): price = get_field(details, tag_children_name='span', tag_children_attr="ch-price") year = get_field_grandchild(details, 'li', 'destaque', 'strong') url = getFieldAttr(details, 'div', 'images-viewer', 'item-url') id_car = getFieldAttr(details, 'div', 'rowItem', 'id') km = get_field_grandchild_second(details, 'li', 'destaque', 'strong') car = Car(price=price, url=url, year=year, id=id_car, km=km) return car
def rent_car(parameters): response = {"message": [], "status": "failed"} dt = car_info(parameters) try: car_id = dt['data']['_id'] origin = parameters['origin'] destination = parameters['destination'] except: response['message'] = 'Wrong car id' return response rent = parameters['amount'] sr = Car() if (dt['data']['status'] == ''): sr.rt_car(car_id, rent, origin, destination) response['message'] = 'The car has been booked.' response['status'] = 'success' else: response[ 'message'] = 'This car has been either sold or has been rented.' return response
def get(self, member_id, car_id): template = JINJA_ENVIRONMENT.get_template('templates/members/car_detail.html') member = Member.get(member_id) car = Car.get(car_id) selector_template = JINJA_ENVIRONMENT.get_template('templates/carselector.html') data = { 'car': car, 'member': member, 'carselector_html': selector_template.render() } self.response.write(template.render(data))
def Get(self): _result = [] cars = Car.all(Car.owner==self.user, key=self.rootKey()).fetch() for car in cars: _car = car.json() _car['expenses'] = [] for _exp in Expense.all(key=ndb.Key(Car, car.key.id())).fetch(): _car['expenses'].append(_exp.json()) _result.append(_car) self.response.headers['Content-Type'] = "application/force-download; charset=utf-8" self.response.headers['Content-Disposition'] = 'attachment; filename="car-expenses-%s.json"' % str(datetime.now())[:10] self.response.write(json.dumps(_result))
def post(self): import datetime car_key = self.request.get('car_key') model_key = self.request.get('model_key') car = Car.get(car_key) car.model = CarModel.get(model_key) car.notes = '' car.put() print 'Updated car model to',car.model.name ts = datetime.datetime.now() return self.redirect('/caredit?tag='+str(ts.time().microsecond))
def post(self): import datetime car_key = self.request.get('car_key') model_key = self.request.get('model_key') car = Car.get(car_key) car.model = CarModel.get(model_key) car.notes = '' car.put() print 'Updated car model to', car.model.name ts = datetime.datetime.now() return self.redirect('/caredit?tag=' + str(ts.time().microsecond))
def parse_smart(file_path): file = open(file_path) d, i, s, v, f = file.readline().rstrip().split(' ') d, i, s, v, f = int(d), int(i), int(s), int(v), int(f) street_hist = {} street_map = {} inter_map = {} for j in range(s): #street b, e, street_name, l = file.readline().rstrip().split(' ') b, e, l = int(b), int(e), int(l) street_map[street_name] = Street(street_name, l, b, e) street_hist[street_name] = (0, l) #Out if b not in inter_map: inter_map[b] = Intersection(b, [], [street_name]) else: inter_map[b].streets_out.append(street_name) #in if e not in inter_map: inter_map[e] = Intersection(e, [street_name], []) else: inter_map[e].streets_in.append(street_name) # Cars cars = [] car_id = 0 for j in range(v): cpt = 0 line = file.readline().rstrip() p = 0 path = [] for word in line.split(' '): if cpt == 0: p = int(word) else: path.append(street_map[word]) street_hist[word] = (street_hist.get(word)[0] + 1, street_hist.get(word)[1]) cpt += 1 car_id += 1 cars.append(Car(car_id, d, True, path)) list_never_streets = get_never_list_streets(street_hist) for inter_elt in inter_map.values(): inter_elt.init_scheduler_histo(list_never_streets, street_hist, ) return street_map, inter_map, cars, street_hist
def get(self, member_id, car_id): template = JINJA_ENVIRONMENT.get_template( 'templates/members/car_detail.html') member = Member.get(member_id) car = Car.get(car_id) selector_template = JINJA_ENVIRONMENT.get_template( 'templates/carselector.html') data = { 'car': car, 'member': member, 'carselector_html': selector_template.render() } self.response.write(template.render(data))
def handle(event, context): body = json.loads(event.get('body')) id = body.get('id') car = Car(id=id) db = Database() db.delete(car) response = { 'statusCode': 200, 'body': json.dumps({'msg': f'Car with id {id} deleted successfully'}), } return response
def add_customer_car(id): ''' Add car to a customer if he or she has more than 1 vehicle. ''' if request.method == 'POST': brand = request.form['add_car_brand'] number = request.form['add_car_number'] customer = db_session.query(Customer).get(id) new_car = Car( brand=brand, number=number, customer=customer, ) db_session.commit() return redirect(url_for('customers')) else: return render_template('customers.html')
def post(self, member_id, car_id): if self.request.get('cancel') == '1': return self.redirect('/members/' + member_id + '/edit') car = Car.get(car_id) car.registration = self.request.get('registration') yearstr = self.request.get('year') year = 0 if yearstr != '': year = int(self.request.get('year')) if year > 0: car.year = year else: car.year = None yearstr = self.request.get('bought') year = 0 if yearstr != '': year = int(self.request.get('bought')) if year > 0: car.bought_year = year else: car.bought_year = None yearstr = self.request.get('sold') year = 0 if yearstr != '': year = int(self.request.get('sold')) if year > 0: car.sold_year = year else: car.sold_year = None model_key = self.request.get('model_key') if not car.model or not str(car.model.key()) == model_key: car.model = CarModel.get(model_key) car.serial_no = self.request.get('serial_no') car.notes = self.request.get('note') car.put() return self.redirect('/members/' + member_id + '/edit')
def update_car(license_plate): user = User.get(User.username == auth.username()) try: car = Car.find_car_by_plate(user, license_plate) except DoesNotExist: raise BadApiRequest('Car not found') required_fields = ('latitude', 'longitude') validate_json_request(request, required_fields=required_fields) try: location = Location.create_from_string(request.json['latitude'], request.json['longitude']) except ValueError as e: raise BadApiRequest(str(e)) car.update_location(location) return json_response(model_to_dict(car, recurse=False))
def handle(event, context): body = json.loads(event.get('body')) car = Car(**body) db = Database() updated_car = db.update(Car) updated_car.__dict__.pop('_sa_instance_state') response = { 'statusCode': 200, 'body': json.dumps({ 'car': updated_car.__dict__, 'msg': f'Car {updated_car.id} updated successfully' }), } return response
def create_car(): user = User.get(User.username == auth.username()) required_fields = ('license_plate', 'latitude', 'longitude') validate_json_request(request, required_fields=required_fields) try: location = Location.create_from_string(request.json['latitude'], request.json['longitude']) except ValueError as e: raise BadApiRequest(str(e)) try: car = Car.create_with_user(user, request.json['license_plate'], location) except IntegrityError: raise BadApiRequest('Car already exists') except ValueError as e: raise BadApiRequest(str(e)) return json_response(model_to_dict(car, recurse=False))
def view_profile(): """User profile page""" user_id = session.get("user_id") if user_id: name = User.query.get(user_id).name residences = Residence.query.filter_by(user_id=user_id).all() usercars = UserCar.query.filter_by(user_id=user_id).all() makes = Car.get_unique_makes() return render_template("profile.html", residences=residences, name=name, usercars=usercars, makes=makes) # return to homepage when not logged in else: return redirect("/")
def Post(self, _id=None): if _id: _car = ndb.Key(Car, int(_id), parent=self.rootKey()).get() else: _car = Car( parent = self.rootKey(), owner = self.user, ) _car.name = self.request.get('name') if self.request.get('buy_date'): _car.date = datetime.strptime(self.request.get('buy_date'), "%Y-%m-%d") if self.request.get('mile'): _car.mile = int(self.request.get('mile')) else: _car.mile = 1 if self.request.get('price'): _car.price = float(self.request.get('price')) else: _car.price = 0 self.response.write(_car.put()) self.redirect('/car')
def handle(event, context): body = json.loads(event.get('body')) car = Car(**body) db = Database() db.add(car) car.__dict__.pop('_sa_instance_state') response = { 'statusCode': 200, 'body': json.dumps({ 'driver': car.__dict__, 'msg': f'Car {car.id} added successfully' }), } return response
def homepage(): """Renders login template if the user is not signed in and the homepage if the user is logged in.""" user_id = session.get("user_id") if user_id: name = User.query.get(user_id).name years = set() years.update(TripLog.get_trip_years(user_id), ElectricityLog.get_kwh_years(user_id), NGLog.get_ng_years(user_id)) this_year = date.today().year makes = Car.get_unique_makes() usercars = UserCar.query.filter_by(user_id=user_id).order_by( UserCar.is_default.desc(), UserCar.usercar_id.desc()).all() co2_per_yr = get_yearly_totals(user_id) if co2_per_yr.get(this_year): trees_to_offset = int( round(co2_per_yr[this_year]["yr_projected"] / TREE_POUNDS_CO2_PER_YEAR)) else: trees_to_offset = 0 return render_template("homepage.html", years=sorted(years, reverse=True), makes=makes, usercars=usercars, co2_per_yr=co2_per_yr, this_year=this_year, trees=trees_to_offset, name=name) else: return render_template("login-register.html")
def create_Car(): userId = request.json['id'] idDealership = request.json['dealership'] Session = sessionmaker(bind=engine) session = Session() dealership = session.query(Dealership).filter_by(id=idDealership, ownerID=userId).first() car = Car(ownerID=userId, brand=request.json['brand'], model=request.json['model'], color=request.json['color'], plate=request.json['plate'], mileage=request.json['mileage'], fuelType=request.json['fuelType'], year=request.json['year'], price=request.json['price']) dealership.cars.append(car) session.add(car) session.commit() return jsonify({'message': 'New car inserted'})
def task_member_restore(items): for item in items: member = Member() member.number = item['number'] member.address = item['address'] if item['email'] != '' and item['email'] != None: member.email = db.Email(item['email']) member.name = item['name'] member.member_since = string_to_date(item['memberSince']) if item['phone'] != '' and item['phone'] != None: member.phone = db.PhoneNumber(item['phone']) if item['phoneWork'] != '' and item['phoneWork'] != None: member.phone_work = item['phoneWork'] if item['phoneHome'] != '' and item['phoneHome'] != None: member.phone_home = item['phoneHome'] member.notes = item['notes'] member.zipcode = item['zipcode'] member.city = item['city'] member.county = item['county'] member.country = db.get(db.Key.from_path('Country', item['countryId'])) member.status = db.get(db.Key.from_path('Status', item['statusId'])) member.membertype = db.get(db.Key.from_path('MemberType', item['typeId'])) member.put() for itemdue in item['membershipDues']: due = MembershipDues(parent=member, year=itemdue['year'],paid=itemdue['paid']) due.put() for itemcar in item['cars']: car = Car() car.member = member car.registration = itemcar['registration'] car.model = db.get(db.Key.from_path('CarModel', itemcar['modelId'])) car.bought_year = itemcar['boughtYear'] car.sold_year = itemcar['soldYear'] car.year = itemcar['year'] car.notes = itemcar['notes'] car.serial_no = itemcar['serialNo'] car.put()
def post(self, member_id): if self.request.get('cancel') == '1': return self.redirect('/members') if self.request.get('operation') == 'delete_car': car = Car.get(self.request.get('car_key')) if car: car.delete() return self.redirect('/members/' + member_id + '/edit') member = Member.get(member_id) if self.request.get('operation') == 'new_car': car = Car() car.member = member car.model = dbutils.get_default_model() car.registration = '' car.year = 0 car.notes = '' car.serial_no = '' car.put() return self.redirect('/members/' + member_id + '/car/' + str(car.key()) + '/edit' ) member.name = self.request.get('name') member.address = self.request.get('address') member.zipcode = self.request.get('zip') member.city = self.request.get('city') member.country = Country.get(self.request.get('country')) phone = self.request.get('mobile').strip() if phone != '': member.phone = db.PhoneNumber(phone) else: member.phone = None email = self.request.get('email').strip() if email != '': member.email = db.Email(email) else: member.email = None home = self.request.get('fixed').strip() if home != '': member.phone_home = db.PhoneNumber(home) else: member.phone_home = None work = self.request.get('work').strip() if work != '': member.phone_work = db.PhoneNumber(work) else: member.phone_work = None member.membertype = MemberType.get(self.request.get('type')) member.status = Status.get(self.request.get('status')) member.notes = self.request.get('note') if self.request.get('access_code') == '': member.generate_access_code() if self.request.get('magazine_count') != '': try: member.magazine_count = int(self.request.get('magazine_count')) except ValueError: pass member.put() member.update_index() # save membership dues self.save_dues(member) return self.redirect('/members')
def post(self, member_id): if self.request.get('cancel') == '1': return self.redirect('/members') if self.request.get('operation') == 'delete_car': car = Car.get(self.request.get('car_key')) if car: car.delete() return self.redirect('/members/' + member_id + '/edit') member = Member.get(member_id) if self.request.get('operation') == 'new_car': car = Car() car.member = member car.model = dbutils.get_default_model() car.registration = '' car.year = 0 car.notes = '' car.serial_no = '' car.put() return self.redirect('/members/' + member_id + '/car/' + str(car.key()) + '/edit') member.name = self.request.get('name') member.address = self.request.get('address') member.zipcode = self.request.get('zip') member.city = self.request.get('city') member.country = Country.get(self.request.get('country')) phone = self.request.get('mobile').strip() if phone != '': member.phone = db.PhoneNumber(phone) else: member.phone = None email = self.request.get('email').strip() if email != '': member.email = db.Email(email) else: member.email = None home = self.request.get('fixed').strip() if home != '': member.phone_home = db.PhoneNumber(home) else: member.phone_home = None work = self.request.get('work').strip() if work != '': member.phone_work = db.PhoneNumber(work) else: member.phone_work = None member.membertype = MemberType.get(self.request.get('type')) member.status = Status.get(self.request.get('status')) member.notes = self.request.get('note') if self.request.get('access_code') == '': member.generate_access_code() if self.request.get('magazine_count') != '': try: member.magazine_count = int(self.request.get('magazine_count')) except ValueError: pass member.put() member.update_index() # save membership dues self.save_dues(member) return self.redirect('/members')