def show_creative_selection_page(): """Shows a page that lets users select the specific creative""" #page elements data = {} data['page_title'] = 'Creative Selection Page' data['clients'] = redshift.get_tile_data(cache, attributes=['client', 'status'], sort='client') #data data['client'] = request.args.get('client') campaigns = redshift.get_tile_data(cache, selectors={'client': data['client']}, attributes='campaign', sort='campaign') tiles = redshift.get_tile_data(cache, selectors={'client': data['client']}) #organize the tiles by campaign data['campaigns'] = {} for campaign in campaigns: #create mapping object if campaign['campaign']: data['campaigns'][campaign['campaign']] = [] data['campaigns']["Uncategorized"] = [] #add general bucket as well #insert the data for tile in tiles: if tile['campaign'] == False: data['campaigns']["Uncategorized"].append(tile) else: data['campaigns'][tile['campaign']].append(tile) #meta-data about the campaigns (different from overall selection meta-data) data['metadata'] = defaultdict(dict) for campaign, tiles in data['campaigns'].iteritems(): data['metadata'][campaign]['tile_count'] = 0 data['metadata'][campaign]['locale_count'] = set() data['metadata'][campaign]['last_modified'] = datetime(1900, 1, 1) for tile in tiles: data['metadata'][campaign]['tile_count'] += 1 data['metadata'][campaign]['locale_count'].update(tile['locale']) if tile['created_at'] > data['metadata'][campaign]['last_modified']: data['metadata'][campaign]['last_modified'] = tile[ 'created_at'] data['metadata'][campaign]['locale_count'] = len( data['metadata'][campaign]['locale_count']) #remove Uncategorized if empty if data['campaigns']['Uncategorized'] == []: del data['campaigns']['Uncategorized'] del data['metadata']['Uncategorized'] return render_template('selection.html', data=data)
def show_main_page(): data = {} data['page_title'] = '' data['clients'] = redshift.get_tile_data(cache, attributes=['client', 'status'], sort='client') return render_template("selection.html", data=data)
def show_creative_selection_page(): """Shows a page that lets users select the specific creative""" #page elements data = {} data['page_title'] = 'Creative Selection Page' data['clients'] = redshift.get_tile_data(cache, attributes=['client', 'status'], sort='client') #data data['client'] = request.args.get('client') campaigns = redshift.get_tile_data(cache, selectors={'client':data['client']}, attributes='campaign', sort='campaign') tiles = redshift.get_tile_data(cache, selectors={'client':data['client']}) #organize the tiles by campaign data['campaigns'] = {} for campaign in campaigns: #create mapping object if campaign['campaign']: data['campaigns'][campaign['campaign']] = [] data['campaigns']["Uncategorized"] = [] #add general bucket as well #insert the data for tile in tiles: if tile['campaign'] == False: data['campaigns']["Uncategorized"].append(tile) else: data['campaigns'][tile['campaign']].append(tile) #meta-data about the campaigns (different from overall selection meta-data) data['metadata'] = defaultdict(dict) for campaign, tiles in data['campaigns'].iteritems(): data['metadata'][campaign]['tile_count'] = 0 data['metadata'][campaign]['locale_count'] = set() data['metadata'][campaign]['last_modified'] = datetime(1900, 1, 1) for tile in tiles: data['metadata'][campaign]['tile_count'] += 1 data['metadata'][campaign]['locale_count'].update(tile['locale']) if tile['created_at'] > data['metadata'][campaign]['last_modified']: data['metadata'][campaign]['last_modified'] = tile['created_at'] data['metadata'][campaign]['locale_count'] = len(data['metadata'][campaign]['locale_count']) #remove Uncategorized if empty if data['campaigns']['Uncategorized'] == []: del data['campaigns']['Uncategorized'] del data['metadata']['Uncategorized'] return render_template('selection.html', data=data)
def show_impressions(): """Shows daily impressions for a tile_id/client""" data = {} #get cached data data['clients'] = redshift.get_tile_data(cache, attributes=['client', 'status'], sort='client') data['countries'] = sorted(cache['countries']['country_to_code'].keys()) #get pivot data['pivot'] = request.args.get('pivot') #parse selectors data['country_name'] = request.args.get('country_name') data['selectors'] = redshift.parse_selectors(request.args) #get impressions data data['impressions'] = redshift.get_impressions_data( cache, data['pivot'], data['selectors']) #get other page settings data['meta_data'] = redshift.get_meta_data(cache, data['selectors']) data['slider'] = get_slider_parameters(data['meta_data'], data['selectors']) #convert the data to be graph-able if data['pivot'] == 'date': data['graph'] = redshift.convert_impressions_data_for_graph( data['impressions']) data['summary'] = ["Impressions", "Clicks", "CTR", "Blocks", "Pins"] #insert an error message if needed data['error'] = False if len(data['impressions']) == 0: data['error'] = error() data['url'] = make_url_from_selectors('impressions', data['selectors']) #build the url data['impressions_title'] = make_impressions_page_title( data['selectors']) #make the title #render the template return render_template("impressions.html", data=data)
def show_impressions(): """Shows daily impressions for a tile_id/client""" data = {} #get cached data data['clients'] = redshift.get_tile_data(cache, attributes=['client', 'status'], sort='client') data['countries'] = sorted(cache['countries']['country_to_code'].keys()) #get pivot data['pivot'] = request.args.get('pivot') #parse selectors data['country_name'] = request.args.get('country_name') data['selectors'] = redshift.parse_selectors(request.args) #get impressions data data['impressions'] = redshift.get_impressions_data(cache, data['pivot'], data['selectors']) #get other page settings data['meta_data'] = redshift.get_meta_data(cache, data['selectors']) data['slider'] = get_slider_parameters(data['meta_data'], data['selectors']) #convert the data to be graph-able if data['pivot'] == 'date': data['graph'] = redshift.convert_impressions_data_for_graph(data['impressions']) data['summary'] = ["Impressions", "Clicks", "CTR", "Blocks", "Pins"] #insert an error message if needed data['error'] = False if len(data['impressions']) == 0: data['error'] = error() data['url'] = make_url_from_selectors('impressions', data['selectors']) #build the url data['impressions_title'] = make_impressions_page_title(data['selectors']) #make the title #render the template return render_template("impressions.html", data=data)