Improve punch-card on activity report
* Turn punch-card upside down to make Mon the first and Sun the last * Cleanup the grid and axes names Change-Id: I5a666b5fefb0baa312fed35685410113dac6b4a0
This commit is contained in:
@@ -20,7 +20,6 @@ import operator
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
import flask
|
import flask
|
||||||
import six
|
|
||||||
|
|
||||||
from stackalytics.dashboard import decorators
|
from stackalytics.dashboard import decorators
|
||||||
from stackalytics.dashboard import helpers
|
from stackalytics.dashboard import helpers
|
||||||
@@ -205,18 +204,18 @@ def cores():
|
|||||||
|
|
||||||
def _get_punch_card_data(records):
|
def _get_punch_card_data(records):
|
||||||
punch_card_raw = [] # matrix days x hours
|
punch_card_raw = [] # matrix days x hours
|
||||||
for wday in six.moves.range(0, 7):
|
for wday in range(7):
|
||||||
punch_card_raw.append([0] * 24)
|
punch_card_raw.append([0] * 24)
|
||||||
for record in records:
|
for record in records:
|
||||||
tt = datetime.datetime.fromtimestamp(record.date).timetuple()
|
tt = datetime.datetime.fromtimestamp(record.date).timetuple()
|
||||||
punch_card_raw[tt.tm_wday][tt.tm_hour] += 1
|
punch_card_raw[tt.tm_wday][tt.tm_hour] += 1
|
||||||
|
|
||||||
punch_card_data = [] # format for jqplot bubble renderer
|
punch_card_data = [] # format for jqplot bubble renderer
|
||||||
for wday in six.moves.range(0, 7):
|
for wday in range(7):
|
||||||
for hour in six.moves.range(0, 24):
|
for hour in range(24):
|
||||||
v = punch_card_raw[wday][hour]
|
v = punch_card_raw[wday][hour]
|
||||||
if v:
|
if v:
|
||||||
punch_card_data.append([hour, wday, v, v])
|
punch_card_data.append([hour, 6 - wday, v, v]) # upside down
|
||||||
|
|
||||||
# add corner point, otherwise chart doesn't know the bounds
|
# add corner point, otherwise chart doesn't know the bounds
|
||||||
if punch_card_raw[0][0] == 0:
|
if punch_card_raw[0][0] == 0:
|
||||||
|
@@ -497,3 +497,9 @@ div.stackamenu li.current-menu-item a span {
|
|||||||
color: red;
|
color: red;
|
||||||
margin: 0.5em 0;
|
margin: 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#punch_card {
|
||||||
|
margin-top: 1em;
|
||||||
|
width: 99%;
|
||||||
|
height: 350px;
|
||||||
|
}
|
||||||
|
@@ -220,22 +220,22 @@ function renderPunchCard(chart_id, chart_data) {
|
|||||||
},
|
},
|
||||||
axes: {
|
axes: {
|
||||||
xaxis: {
|
xaxis: {
|
||||||
label: 'Hour',
|
label: 'hour, UTC',
|
||||||
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
|
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
|
||||||
tickOptions: {
|
tickOptions: {
|
||||||
formatter: function (format, val) {
|
formatter: function (format, val) {
|
||||||
if (val < 0 || val > 24) { return "" }
|
if (val < 0 || val > 23) { return "" }
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
yaxis: {
|
yaxis: {
|
||||||
label: 'Day of week',
|
label: 'day of week',
|
||||||
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
|
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
|
||||||
tickOptions: {
|
tickOptions: {
|
||||||
formatter: function (format, val) {
|
formatter: function (format, val) {
|
||||||
if (val < 0 || val > 6) { return "" }
|
if (val < 0 || val > 6) { return "" }
|
||||||
var labels = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
var labels = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"].reverse();
|
||||||
return labels[val];
|
return labels[val];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
{{ contribution_summary.show_contribution_summary(company=company_name) }}
|
{{ contribution_summary.show_contribution_summary(company=company_name) }}
|
||||||
|
|
||||||
<div id="punch_card" style="width: 100%; height: 350px;"></div>
|
<div id="punch_card"></div>
|
||||||
|
|
||||||
{{ activity_log.show_activity_log(company=company_name, gravatar_size=64) }}
|
{{ activity_log.show_activity_log(company=company_name, gravatar_size=64) }}
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
{{ user_profile.show_user_profile(user_id=user.user_id) }}
|
{{ user_profile.show_user_profile(user_id=user.user_id) }}
|
||||||
{{ contribution_summary.show_contribution_summary(user_id=user.user_id) }}
|
{{ contribution_summary.show_contribution_summary(user_id=user.user_id) }}
|
||||||
|
|
||||||
<div id="punch_card" style="width: 100%; height: 350px;"></div>
|
<div id="punch_card"></div>
|
||||||
|
|
||||||
{{ activity_log.show_activity_log(user_id=user.user_id, show_user_gravatar=false, gravatar_size=64) }}
|
{{ activity_log.show_activity_log(user_id=user.user_id, show_user_gravatar=false, gravatar_size=64) }}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user