def search_page(): """Search and return for recipes using form queries If 'GET' returns search form If 'POST' returns api request data as JSON *certain key names are changed to match the parameters in API* """ form = SelectForm() params = {"apiKey": API_KEY, "number": 100} if form.validate_on_submit(): for k, v in form.data.items(): if (v != 'None'): params[k] = v for key in params: if (key == 'exclude_cuisine'): params['excludeCuisine'] = params.pop('exclude_cuisine') elif (key == 'meal_type'): params['type'] = params.pop('meal_type') print(params) res = requests.get(f"{BASE_URL}/complexSearch", params) return res.json() else: return render_template('/recipes/search.html', form=form)
def select(request): if request.method == "GET": return Http404 signon = load_signon(request) form = SelectForm(signon=signon, data=request.POST) if form.is_valid(): auth_login(request, form.cleaned_data['identity'].user) signon.user = request.user signon.save() return HttpResponseRedirect('/') # TODO: return TemplateResponse( request, form.template_name, dict(request=request, form=form))
def dataset_dashboard(): # map_func = Code("function () {" # "for (var key in this) {emit(key, null);}" # "}" # ) # reduce_func = Code("function (key, stuff) {return null; }") # result = db.iri.map_reduce(map_func, reduce_func, "myresults") # ans = result.find().distinct("_id") # ans =list(ans) ans = list(datasets.find({'filename': session['filename']}))[0] # print(ans['col_info']) query_obj = [] # [{item['key']: None} for item in ans['col_info']] for item in ans['col_info']: count = len(list(db[session['filename']].find({item['key']: np.nan}))) obj = {} obj['key'] = item['key'] obj['count'] = count query_obj.append(obj) print(query_obj) # result = db.session['filename'].find(query_obj) # print(list(result)) selectform = SelectForm() chartButtonForm = ChartButtonForm() if selectform.validate_on_submit(): return redirect('/select/query') if chartButtonForm.validate_on_submit(): return redirect('/charts') return render_template('dataset_dashboard.html', cols=ans['col_info'], missing=query_obj, select=selectform, chart=chartButtonForm, logged_in=True, heading='CyAnalytics')
def product(): form = SelectForm(request.form) data = Products.query.all() # mycursor.execute("select products.product_name, products.main_photo, products.price from Products") # data = mycursor.fetchall() return render_template("product.html", data=data, form=form)
def select(): MAX_SONGS_TO_DISPLAY = 15 user = request.args.get("user") url = "/getSongs/playlists" sp = getSpotifyClient(user) name = sp.me()["display_name"] message = getLoadingMessage('loadFromSources', sp.me()["display_name"], user) playlists = SONG_SOURCES_DICT[int(user)] source_choices = list(map(lambda x : (x.id, x.name), playlists)) source_choices = [("saved", "Your Saved Songs")] + source_choices form = SelectForm() form.response.choices = source_choices if(form.is_submitted()): selection = form.data["response"] selected_objects = [] # save the selected playlists for the user, but don't count the saved # songs as playlist if it's chosen to be included. if selection[0] == "saved": selected_objects.append(selection[0]) selection = selection[1:] selected_objects += [p for p in playlists if p.id in selection] SONG_SOURCES_DICT[int(user)] = selected_objects return render_template("loading.html", message=message, user=user, url=url) # We don't the playlist selection drop down to be too big if there are a lot of # playlists. display_size = min(MAX_SONGS_TO_DISPLAY, len(source_choices) + 1) return render_template("playlists.html", message=message, user=user, form = form, name=name, display_size=display_size)
def get_context_data(self): # Need to load all promotions of all types and chain them together # no pagination required for now. data = [] num_promotions = 0 for klass in PROMOTION_CLASSES: objects = klass.objects.all() num_promotions += objects.count() data.append(objects) promotions = itertools.chain(*data) ctx = { 'num_promotions': num_promotions, 'promotions': promotions, 'select_form': SelectForm(), } return ctx
def render_all_teachers(): form = SelectForm() if request.method == "GET": teachers = s.all_teachers() random.shuffle(teachers) elif request.method == "POST": order = form.order.data if order == "random": return redirect("/all/") elif order == "rating": teachers = db.session.query(Teacher).order_by( Teacher.rating.desc()).all() elif order == "expensive": teachers = db.session.query(Teacher).order_by( Teacher.price.desc()).all() elif order == "cheap": teachers = db.session.query(Teacher).order_by(Teacher.price).all() return render_template("all.html", teachers=teachers, form=form, title="Все преподаватели")
def pitching(): team = 'SF' type = 'Season' try: team = request.form.to_dict(flat=False)["team"][0] type = request.form.to_dict(flat=False)["cType"][0] except Exception as e: pass fo = SelectForm() fo.name.choices = dataGrab.listOfPlayers(team, "Pitching", True) fo.category.choices = [(c, c) for c in dataGrab.pitchingCategories[type]] if fo.validate_on_submit(): playerTeam = request.form.to_dict(flat=False)["team"][0] playerName = request.form.to_dict(flat=False)["name"][0] catType = request.form.to_dict(flat=False)["cType"][0] chosenCategory = request.form.to_dict(flat=False)["category"][0] if 'All ' in playerName and 'All ' in chosenCategory: return render_template( "pitch.html", pitchForm=fo, bothAreAll= "No charts are displayed when looking for both All Players and All Categories...yet. Any other combination would work though" ) if 'All ' not in playerName: if 'All Categories' not in chosenCategory: if catType == 'Season': dates, player_category = dataGrab.seasonPitching( playerTeam, playerName, chosenCategory) else: dates, player_category = dataGrab.perGamePitching( playerTeam, playerName, chosenCategory) return render_template("pitch.html", pitchForm=fo, player_date=dates, player_category=player_category, category=playerName + "'s " + catType + ' ' + chosenCategory) else: allCategories = {} for cate in fo.category.choices: c = cate[0] if 'All ' not in c: if catType == 'Season': dates, player_category = dataGrab.seasonPitching( playerTeam, playerName, c) allCategories[c] = player_category else: dates, player_category = dataGrab.perGamePitching( playerTeam, playerName, c) allCategories[c] = player_category return render_template("pitch.html", pitchForm=fo, player_date=dates, allCategories=allCategories, player=playerName, type=catType) else: allPlayers = {} for pt in fo.name.choices: pn = pt[0] if 'All ' not in pn: if catType == 'Season': dates, player_category = dataGrab.seasonPitching( playerTeam, pn, chosenCategory) allPlayers[pn] = { 'stats': player_category, 'dates': dates } if catType == 'Per Game': dates, player_category = dataGrab.perGamePitching( playerTeam, pn, chosenCategory) allPlayers[pn] = { 'stats': player_category, 'dates': dates } return render_template("pitch.html", pitchForm=fo, allPlayers=allPlayers, category=chosenCategory, type=catType) return render_template('pitch.html', pitchForm=fo)
def product_details(product_name): form = SelectForm(request.form) product = Products.query.filter_by(product_name=product_name).first() return render_template("product-details.html", product=product, form=form)