Example #1
0
    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
Example #2
0
    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')
Example #3
0
def sale_profit(parameters):
    response = {"message": [], "status": "failed"}
    sp = Car()
    try:
        sp.cal_sale_prof()
        return 'x'
    except:
        return response
Example #4
0
    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))
Example #5
0
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
Example #6
0
    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))
Example #7
0
    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()
Example #8
0
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
Example #10
0
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)
Example #11
0
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()
Example #12
0
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
Example #13
0
 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)
Example #14
0
    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()
Example #15
0
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
Example #16
0
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
Example #17
0
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})
Example #18
0
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
Example #19
0
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
Example #20
0
    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))
Example #21
0
    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))
Example #22
0
    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))
Example #23
0
    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))
Example #24
0
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
Example #25
0
    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))
Example #26
0
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
Example #27
0
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')
Example #28
0
    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')
Example #29
0
    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')
Example #30
0
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))
Example #31
0
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
Example #32
0
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))
Example #33
0
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("/")
Example #34
0
    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')
Example #35
0
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
Example #36
0
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")
Example #37
0
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'})
Example #38
0
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()
Example #39
0
    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')
Example #40
0
    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')