Adds setting home in account

This commit is contained in:
2017-11-07 22:33:14 +01:00
parent 958a9bdd9f
commit 028b52d12f
7 changed files with 274 additions and 16 deletions

View File

@@ -1,18 +1,21 @@
from flask import url_for, redirect, render_template, request
from flask import url_for, redirect, render_template, request, jsonify
from flask_security import login_required
from flask_security.core import current_user
from sqlalchemy.exc import IntegrityError
import requests
from ..entities import Vehicle, Consumable
from ..forms import EditVehicleForm, DeleteVehicleForm, DeleteAccountForm
from ..tools import db_log_update, db_log_delete, db_log_add
from .. import app, db, user_datastore
from .. import app, db, user_datastore, limiter
@app.route('/account', methods=['GET'])
@login_required
def get_account_page():
return render_template('account.html')
print(current_user.home_lat, current_user.home_long)
return render_template('account.html',
map_pos=(current_user.home_lat, current_user.home_long, current_user.home_zoom))
@app.route('/account/vehicle/edit/<int:vid>', methods=['GET', 'POST'])
@@ -37,7 +40,7 @@ def edit_vehicle(vid):
vehicle.name = form.name.data
# we cannot delete consumables where there are pitstops for => report error
vehicle.consumables = []
for consumable_id in form.consumables.data:
for consumable_id in form.consumables.data:
consumable = Consumable.query.get(consumable_id)
if consumable is not None:
vehicle.consumables.append(consumable)
@@ -130,19 +133,60 @@ def delete_account():
return render_template('deleteAccountForm.html', form=form)
@app.route('/account/home', methods=['GET'])
@login_required
def get_users_home():
return jsonify(
{'lat': float(current_user.home_lat), 'long': float(current_user.home_long), 'zoom': current_user.home_zoom})
@app.route('/account/home', methods=['POST'])
@login_required
def set_users_home():
current_user.home_lat = request.json['lat']
current_user.home_long = request.json['long']
current_user.home_zoom = request.json['zoom']
db.session.commit()
return jsonify({'lat': float(current_user.home_lat)})
@app.route('/filling_stations', methods=['GET'])
#@login_required
@login_required
@limiter.limit('1 per second')
def query_filling_stations():
api_key = app.config['TANKERKOENIG_API_KEY']
lat = request.args.get('latitude')
lon = request.args.get('longitude')
rad = request.args.get('radius', default=10)
latitude = request.args.get('latitude')
longitude = request.args.get('longitude')
radius = request.args.get('radius', default=1.5)
type = request.args.get('type', default='all')
sort = request.args.get('sort', default='price')
return lat
sort = request.args.get('sort', default='dist')
url = 'https://creativecommons.tankerkoenig.de/json/list.php'
params = {
'lat': latitude, 'lng': longitude, 'rad': radius, 'apikey': api_key, 'type': type, 'sort': sort
}
response = requests.get(url, params=params)
print(response.url)
return jsonify(response.json())
@app.route('/filling_stations/<fsid>', methods=['GET'])
#@login_required
@login_required
@limiter.limit('1 per second')
def query_filling_station_details(fsid):
api_key = app.config['TANKERKOENIG_API_KEY']
return fsid
if ',' in fsid:
# more than one id, redirect to method 2 (preisabfrage)
url = 'https://creativecommons.tankerkoenig.de/json/prices.php'
params = {
'apikey': api_key, 'ids': fsid
}
else:
url = 'https://creativecommons.tankerkoenig.de/json/detail.php'
params = {
'apikey': api_key, 'id': fsid
}
response = requests.get(url, params=params)
return jsonify(response.json())