示例#1
0
文件: server.py 项目: tspurway/z3nko
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)
示例#2
0
文件: server.py 项目: tspurway/z3nko
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)
示例#3
0
文件: server.py 项目: k88hudson/zenko
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)
示例#4
0
文件: server.py 项目: tspurway/z3nko
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)
示例#5
0
文件: server.py 项目: k88hudson/zenko
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)
示例#6
0
文件: server.py 项目: k88hudson/zenko
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)