def route_suggest(): from model import Route options = [] for route in Route.search(request.args.get('term'), request.args.get('area_id')): options.append({'label': route['name'], 'value': route['route_id']}) return json.dumps(options)
def route_work_save(): from model import RouteWork errors = [] # Validate data # Check for required fields labels = {'area': 'Area', 'route': 'Route', 'work_date': 'Completed On', 'bolts_placed': 'Bolts', 'anchor': 'Anchor', 'info': 'Notes'} for el in ['area', 'route', 'work_date', 'bolts_placed']: if el not in request.form or len(request.form[el]) == 0: errors.append("'{0}' is a required field.".format(labels[el])) # Make sure route id matches route name if len(request.form['route_id']): if request.form['route_id'] == '0': errors.append("There was a problem finding the route that you entered, please try again.") else: from model import Route route = Route.Route(request.form['route_id']) if route.name != request.form['route']: errors.append("There was a problem finding the route that you entered, please try again.") else: # Try to find route based on area name and route name from model import Route if len(request.form['area_id']): routes = Route.search(request.form['route'], request.form['area_id']) else: routes = Route.search(request.form['route']) # If a single route was found, use that if len(routes) == 1: route = Route.Route(routes[0]['route_id']) # Otherewise, error else: errors.append("There was a problem finding the route that you entered, please try typing part of the route name and then selecting from suggested routes.") # Make sure area id matches area name if len(request.form['area_id']): from model import Area area = Area.Area(request.form['area_id']) if (area.name != request.form['area']): errors.append('There was a problem finding the area that you entered, please try again.') # If errors, display form again if len(errors) != 0: return render_template( 'route_work/form.html', error = "<br/>\n".join(errors), area_options = [('1', 'New River Gorge'), ('2', 'Meadow River Gorge')], route = request.form['route'], route_id = request.form['route_id'], area = request.form['area'], area_id = request.form['area_id'], work_date = request.form['work_date'], who = request.form['who'], bolts_placed = request.form['bolts_placed'], anchor_replaced = '1' if request.form['anchor'] == 'replaced' else '', new_anchor = '1' if request.form['anchor'] == 'new' else '', info = request.form['info'] ) # If no errors, save route work work = RouteWork.RouteWork(request.form['route_work_id']) work.route_id = route.route_id work.work_date = __form_to_sql(request.form['work_date']) work.who = request.form['who'] work.bolts_placed = request.form['bolts_placed'] if len(request.form['bolts_placed']) > 0 else '0' if request.form['anchor'] == 'replaced': work.anchor_replaced = 1 else: work.anchor_replaced = 0 if request.form['anchor'] == 'new': work.new_anchor = 1 else: work.new_anchor = 0 work.user_id = session['user_id'] work.info = request.form['info'] work.save() flash('Route work saved') return redirect(url_for('route_list'))