Пример #1
0
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)
Пример #2
0
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))
Пример #3
0
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')
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
 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
Пример #7
0
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="Все преподаватели")
Пример #8
0
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)
Пример #9
0
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)