From b11e1e20daa13eaa2ac0cd8134defc4994b957a6 Mon Sep 17 00:00:00 2001 From: Rowan Manning Date: Thu, 26 Sep 2013 16:54:36 +0100 Subject: [PATCH] Make sure only one result per day is shown --- route/task/index.js | 3 ++- view/presenter/result-list.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 view/presenter/result-list.js diff --git a/route/task/index.js b/route/task/index.js index 3c8af2f..3f7990b 100644 --- a/route/task/index.js +++ b/route/task/index.js @@ -2,6 +2,7 @@ var presentTask = require('../../view/presenter/task'); var presentResult = require('../../view/presenter/result'); +var presentResultList = require('../../view/presenter/result-list'); module.exports = route; @@ -19,7 +20,7 @@ function route (app) { } res.render('task', { task: presentTask(task), - results: results.map(presentResult), + results: presentResultList(results.map(presentResult)), mainResult: task.lastResult || null, added: (typeof req.query.added !== 'undefined') }); diff --git a/view/presenter/result-list.js b/view/presenter/result-list.js new file mode 100644 index 0000000..58c8ada --- /dev/null +++ b/view/presenter/result-list.js @@ -0,0 +1,17 @@ +'use strict'; + +var _ = require('underscore'); +var moment = require('moment'); + +module.exports = presentResultList; + +function presentResultList (results) { + var resultsByDay = _.groupBy(results, function (result) { + return moment(result.date).format('YYYY-MM-DD'); + }); + var uniqueDayResults = []; + _.keys(resultsByDay).forEach(function (day) { + uniqueDayResults.push(resultsByDay[day][0]); + }); + return uniqueDayResults; +}