diff --git a/ennstatus/data/views.py b/ennstatus/data/views.py
--- a/ennstatus/data/views.py
+++ b/ennstatus/data/views.py
@@ -14,11 +14,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+import json
+
from collections import defaultdict
from flask import Blueprint, jsonify
from ennstatus.status.functions import split_all_servers_to_types
+from ennstatus.donate.functions import all_csv_to_dict, year_sum, month_sum
data_page = Blueprint('data', __name__)
@@ -40,3 +43,30 @@ def worldmap():
countries['max'] = maximum
return jsonify(countries)
+
+
+@data_page.route('/year')
+def yeardata():
+ data = all_csv_to_dict()
+ data = year_sum(data)
+ datalist = []
+
+ for key, values in data.items():
+ datalist.append({"key": key, "value": float(values)})
+ datalist.sort(key=lambda x: x["key"])
+
+ return json.dumps(datalist)
+
+
+@data_page.route('/month')
+def monthdata():
+ data = all_csv_to_dict()
+ data = month_sum(data)
+ data_list = []
+
+ for key, values in data.items():
+ data_list.append({"key": key, "value": float(values)})
+
+ data_list.sort(key=lambda x: x["key"])
+
+ return json.dumps(data_list)
diff --git a/ennstatus/donate/views.py b/ennstatus/donate/views.py
--- a/ennstatus/donate/views.py
+++ b/ennstatus/donate/views.py
@@ -32,8 +32,6 @@ from ennstatus.donate.functions import (
get_highest_donation,
get_median_donation,
get_mode_donation,
- year_sum,
- month_sum,
)
from ennstatus.root.forms import BPMForm
@@ -140,6 +138,7 @@ def received():
@donate_page.route('/statistics')
def statistics():
data = all_csv_to_dict()
+
all_years_mean = format_decimal(
get_all_years_mean(data),
locale='de'
@@ -167,6 +166,12 @@ def statistics():
locale='de'
)
+ dates = [name for name in get_choices()]
+ dates.sort()
+
+ last_default_date = dates[-1]
+ first_default_date = dates[-12]
+
return render_template('donate/statistics.html',
all_years_mean=all_years_mean,
month_mean=month_mean,
@@ -174,31 +179,8 @@ def statistics():
best_month=best_month,
highest_donation=highest_donation,
median_donation=median_donation,
- mode_donation=mode_donation
+ mode_donation=mode_donation,
+ dates=dates,
+ first_default_date=first_default_date,
+ last_default_date=last_default_date
)
-
-@donate_page.route('/data/year')
-def yeardata():
- data = all_csv_to_dict()
- data = year_sum(data)
- datalist = []
-
- for key, values in data.items():
- datalist.append({"key": key, "value": float(values)})
- datalist.sort(key=lambda x: x["key"])
-
- return json.dumps(datalist)
-
-
-@donate_page.route('/data/month')
-def monthdata():
- data = all_csv_to_dict()
- data = month_sum(data)
- data_list = []
-
- for key, values in data.items():
- data_list.append({"key": key, "value": float(values)})
-
- data_list.sort(key=lambda x: x["key"])
-
- return json.dumps(data_list)
diff --git a/ennstatus/static/js/barcharts.js b/ennstatus/static/js/barcharts.js
--- a/ennstatus/static/js/barcharts.js
+++ b/ennstatus/static/js/barcharts.js
@@ -34,7 +34,7 @@ function setup(ywidth, yheight, mwidth,
}
function draw(ywidth, yheight, mwidth, mheight) {
- d3.json("/donate/data/year", function(err, data) {
+ d3.json("/data/year", function(err, data) {
var xscale = d3.scale.ordinal().rangeRoundBands([0, ywidth], .1);
xscale.domain(data.map(function(d) { return d.key; }));
var yscale = d3.scale.linear().range([yheight, 0]);
@@ -83,11 +83,21 @@ function draw(ywidth, yheight, mwidth, m
.on("mouseout", tip.hide)
});
- d3.json("/donate/data/month", function(err, data) {
- var xscale = d3.scale.ordinal().rangeRoundBands([0, mwidth], .1);
- xscale.domain(data.map(function(d) { return d.key }));
+ d3.json("/data/month", function(err, data) {
+ var firstdate = d3.select("#monthfirstdate").node().value;
+ var lastdate = d3.select("#monthlastdate").node().value;
+ var newdata = [];
+ for (var key in data) {
+ if (data[key]["key"] >= firstdate && data[key]["key"] <= lastdate) {
+ console.log(key)
+ newdata.push(data[key])
+ }
+ }
+
+ var xscale = d3.scale.ordinal().rangeRoundBands([0, mwidth - (newdata.length - 3) * 5], .1);
+ xscale.domain(newdata.map(function(d) { return d.key }));
var yscale = d3.scale.linear().range([mheight, 0]);
- yscale.domain([0, d3.max(data, function(d) { return d.value; })]);
+ yscale.domain([0, d3.max(newdata, function(d) { return d.value; })]);
var key = function(d) { return d.key; };
var xaxis = d3.svg.axis()
@@ -111,7 +121,7 @@ function draw(ywidth, yheight, mwidth, m
.style("text-anchor", "end");
monthchart.selectAll("rect")
- .data(data, key)
+ .data(newdata, key)
.enter()
.append("rect")
.attr("class", "bar")
diff --git a/ennstatus/templates/donate/statistics.html b/ennstatus/templates/donate/statistics.html
--- a/ennstatus/templates/donate/statistics.html
+++ b/ennstatus/templates/donate/statistics.html
@@ -58,6 +58,22 @@