Пример #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 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')
Пример #3
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)