Added date filtering

This commit is contained in:
cole m alban 2017-04-05 16:57:57 -04:00
parent 8e2d357c3d
commit 13b4fdb59b
2 changed files with 78 additions and 44 deletions

View File

@ -1,32 +1,28 @@
/*
Set up both the datepicker tabs with this
*/
$('#from_datepicker').datepicker() $('#from_datepicker').datepicker()
$('#to_datepicker').datepicker() $('#to_datepicker').datepicker()
/*
*This is code for the grades chart. $(document).ready(
*/ $.get("statistics.json", function(gradeData){
var ctx = document.getElementById("gradesChart"); constructGradesGraph(gradeData);
var myChart = new Chart(ctx, { })
);
function constructGradesGraph(gradeData){
console.log(gradeData)
var colors = generateColors(gradeData);
var ctx = document.getElementById("gradesChart");
var myChart = new Chart(ctx, {
type: 'bar', type: 'bar',
data: { data: {
labels: ["Grade1", "Grade2", "Grade3", "Grade4", "Grade5", "Grade6"], labels: generateLabels(gradeData),
datasets: [{ datasets: [{
label: 'Count for each grade', label: 'Count for each grade',
data: [12, 19, 3, 5, 2, 3], data: getGradeCount(gradeData),
backgroundColor: [ backgroundColor: colors,
'rgba(255, 99, 132, 0.2)', borderColor: colors,
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1 borderWidth: 1
}] }]
}, },
@ -39,5 +35,40 @@ var myChart = new Chart(ctx, {
}] }]
} }
} }
}); });
}
function generateLabels(gradeData){
let grades = gradeData.grades;
labels = [];
for(var i = 0; i < grades.length; i++){
labels.push(grades[i].Full_name)
}
return labels;
}
function generateColors(gradeData){
colors = [];
availableColors = [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
];
for(var i = 0; i < gradeData.grades.length; i++){
var index = Math.round(Math.random() * (availableColors.length - 1));
var color = availableColors[index]
colors.push(color);
}
return colors;
}
function getGradeCount(gradeData){
counts = [];
for(var i = 0; i < gradeData.grades.length; i++){
counts.push(Math.random() * 100);
}
return counts;
}

View File

@ -1,14 +1,17 @@
class StatisticsController < ApplicationController class StatisticsController < ApplicationController
def index def index
puts Grade.all
if params[:from_date] != nil && params[:to_date] != nil if params[:from_date] != nil && params[:to_date] != nil
from_date = Date.parse params[:from_date] from_date = Date.strptime(params[:from_date], '%m/%d/%Y')
to_date = Date.parse params[:to_date] to_date = Date.strptime(params[:to_date], '%m/%d/%Y')
runs = Run.where(:runDate => from_date.beginning_of_day..to_date.end_of_day) runs = Run.where(:runDate => from_date.beginning_of_day..to_date.end_of_day)
puts runs.inspect
else else
runs = Run.all runs = Run.all
puts runs.inspect end
respond_to do |f|
f.html
f.json {render :json => {grades:Grade.all,runData:runs}}
end end
end end
end end