Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: sitescripts/stats/bin/pagegenerator.py

Issue 5662084981325824: Fixed last day of month being below the fold and got rid of a duplicated constant (Closed)
Patch Set: Created Jan. 13, 2014, 7:24 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sitescripts/stats/common.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sitescripts/stats/bin/pagegenerator.py
===================================================================
--- a/sitescripts/stats/bin/pagegenerator.py
+++ b/sitescripts/stats/bin/pagegenerator.py
@@ -28,16 +28,17 @@ def get_template_environment():
"weekday": lambda value: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"][int(value)],
"countryname": lambda value: countrycodes.get(value, "Unknown"),
"sortfield": lambda value, field: (field["sort"] if "sort" in field else default_sort)(value),
"maxhits": lambda items: max(itertools.chain((value["hits"] for key, value in items), [1])),
"maxbandwidth": lambda items: max(itertools.chain((value["bandwidth"] for key, value in items), [1])),
"sumhits": lambda items: max(sum(value["hits"] for key, value in items), 1),
"sumbandwidth": lambda items: max(sum(value["bandwidth"] for key, value in items), 1),
"isspecial": lambda name, field: field["isspecial"](name) if "isspecial" in field else False,
+ "defaultcount": get_default_count,
})
@cached(float("inf"))
def get_main_page_template():
return get_template_environment().get_template(get_config().get("stats", "mainPageTemplate"))
@cached(float("inf"))
def get_file_stats_template():
@@ -88,16 +89,19 @@ def generate_file_overview(outputfile, u
}).dump(outputfile, encoding="utf-8")
def get_names(dir, needdirectories):
for file in os.listdir(dir):
path = os.path.join(dir, file)
if (needdirectories and os.path.isdir(path)) or (not needdirectories and os.path.isfile(path)):
yield common.filename_decode(file), path
+def get_default_count(field):
+ return field.get("defaultcount", 30)
+
def generate_pages(datadir, outputdir):
for server_type, server_type_dir in get_names(datadir, True):
baseURL = get_config().get("stats", "baseURL_" + server_type)
filedata = {}
current_month = None
for month, month_dir in get_names(server_type_dir, True):
if current_month == None or month > current_month:
current_month = month
@@ -109,17 +113,18 @@ def generate_pages(datadir, outputdir):
overview_url = "../../overview-" + common.filename_encode(filename + ".html")
filtered_urls = {}
for field in common.fields:
if field["name"] not in data:
continue
# Create filtered views for the first thirty values of a field if they
# have filtered data.
- for name, value in get_template_environment().filters["sortfield"](data[field["name"]], field)[0:30]:
+ sorted_field = get_template_environment().filters["sortfield"](data[field["name"]], field)
+ for name, value in sorted_field[0:get_default_count(field)]:
if filter(lambda k: k not in ("hits", "bandwidth"), value.iterkeys()):
outputfile = os.path.join(outputdir,
common.filename_encode(server_type),
common.filename_encode(month),
common.filename_encode(filename),
"filtered-%s-%s.html" % (
common.filename_encode(field["name"]),
common.filename_encode(name),
« no previous file with comments | « no previous file | sitescripts/stats/common.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld