예제 #1
0
파일: bon_api.py 프로젝트: Machyne/pal
def _clean_menu(menu):
    """ Returns a cleaned version of the given menu info for dishes."""
    if not menu:
        return None
    for food_id in menu:
        info = filter_dict_by_keys(menu[food_id], _MENU_FIELDS)
        for regex, new in _MENU_REPLACEMENTS:
            info[u'description'] = regex.sub(new, info[u'description'])
            info[u'label'] = regex.sub(new, info[u'label'])
        menu[food_id] = info
    return menu
예제 #2
0
파일: bon_api.py 프로젝트: Machyne/pal
def _clean_meals_and_merge_dishes(dayparts, dishes):
    """ Takes in the cleaned menu and messy dayparts, cleans the dayparts then
        merges the dishes into the right stations in the meals.
    """
    if not dayparts:
        return dayparts
    dayparts = _use_labels_as_keys(dayparts)
    for meal_name in dayparts:
        info = filter_dict_by_keys(dayparts[meal_name], _MEAL_FIELDS)
        meal_stations = _use_labels_as_keys(info[u'stations'])
        for stat_name in meal_stations:
            stat_info = filter_dict_by_keys(meal_stations[stat_name],
                                            _MEAL_STATION_FIELDS)
            if u'items' in stat_info:
                # Put all the dishes served at this station into the dict
                items = stat_info[u'items']
                stat_info[u'items'] = [dishes[eid]
                                       for eid in items
                                       if type(eid) == unicode]
            meal_stations[stat_name] = stat_info
        info[u'stations'] = meal_stations
        dayparts[meal_name] = info
    return dayparts
예제 #3
0
def venues() -> str:
    groups = (Venue.query.with_entities(Venue.city, Venue.state,
                                        func.array_agg(Venue.id)).group_by(
                                            Venue.city, Venue.state).all())

    data = []
    for group in groups:
        venues = []
        for venue_id in group[2]:
            venue_data = Venue.query.filter_by(id=venue_id).one()
            venue_dict = model_to_dict(venue_data)
            venue_dict = filter_dict_by_keys(venue_dict, ["id", "name"])

            venue_shows = venue_data.shows
            shows_dict = compose_show_attributes(venue_shows)
            shows_dict = {
                "num_upcoming_shows": shows_dict["upcoming_shows_count"]
            }

            venue_dict.update(shows_dict)
            venues.append(venue_dict)
        data.append({"city": group[0], "state": group[1], "venues": venues})

    return render_template("pages/venues.html", areas=data)