From 0c4e6e2762a3c44792f59a0903ba100b391062be Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 19:53:54 -0400 Subject: [PATCH 1/5] Linkify the bonfire names in profile view. --- views/account/show.jade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/views/account/show.jade b/views/account/show.jade index 58a4e8a72e..62212b0261 100644 --- a/views/account/show.jade +++ b/views/account/show.jade @@ -161,7 +161,8 @@ block content th.col-xs-6 Solution for bonfire in bonfires tr - td.col-xs-4= bonfire.name + td.col-xs-4 + a(href='/bonfires/' + bonfire.name)= bonfire.name~ td.col-xs-2= moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") td.col-xs-6 pre.wrappable= bonfire.solution From 7b42757c9f533691a71ecbd96bc6acdd61cf7428 Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 20:00:14 -0400 Subject: [PATCH 2/5] Tilde bug --- views/account/show.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/account/show.jade b/views/account/show.jade index 62212b0261..73af6cdea4 100644 --- a/views/account/show.jade +++ b/views/account/show.jade @@ -162,7 +162,7 @@ block content for bonfire in bonfires tr td.col-xs-4 - a(href='/bonfires/' + bonfire.name)= bonfire.name~ + a(href='/bonfires/' + bonfire.name)= bonfire.name td.col-xs-2= moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") td.col-xs-6 pre.wrappable= bonfire.solution From 30c4085d21e5d06503748e53766450af65871356 Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 20:03:27 -0400 Subject: [PATCH 3/5] Quick fix for longest streak logic --- controllers/user.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/controllers/user.js b/controllers/user.js index 502a2929a1..250e30b1b5 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -289,7 +289,9 @@ exports.returnUser = function(req, res, next) { if (moment(timeKeys[i - 1]).add(1, 'd').toString() === moment(timeKeys[i]).toString()) { tmpLongest++; - user.longestStreak = tmpLongest; + if (tmpLongest > user.longestStreak) { + user.longestStreak = tmpLongest; + } } else { tmpLongest = 1; } From 517c37f633828068779f5542d7ae4a841afecc98 Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 21:13:46 -0400 Subject: [PATCH 4/5] More fixes to streak calculation --- controllers/user.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/controllers/user.js b/controllers/user.js index 250e30b1b5..6f449cad6c 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -285,6 +285,7 @@ exports.returnUser = function(req, res, next) { var tmpLongest = 1; var timeKeys = R.keys(timeObject); + user.longestStreak = 0; for (var i = 1; i <= timeKeys.length; i++) { if (moment(timeKeys[i - 1]).add(1, 'd').toString() === moment(timeKeys[i]).toString()) { @@ -298,18 +299,28 @@ exports.returnUser = function(req, res, next) { } timeKeys = timeKeys.reverse(); - var today = moment(Date.now()), currStreak = 1; - if (moment(timeKeys[0]).add(1, 'd').toString === today.toString()) { - for (var i = 2; i <= timeKeys.length; i++) { - if (moment(timeKeys[i - 1]).add(1, 'd').toString() - === moment(timeKeys[i]).toString()) { - currStreak++; + tmpLongest = 1; + + var today = moment(Date.now()).format('YYYY-MM-DD'); + + if (moment(today).toString() === moment(timeKeys[0]).toString() || + moment(today).subtract(1, 'd').toString() === + moment(timeKeys[0]).toString()) { + for (var i = 1; i <= timeKeys.length; i++) { + if (moment(timeKeys[i - 1]).subtract(1, 'd').toString() + === moment(timeKeys[i]).toString()) { + debug(timeKeys[i - 1], timeKeys[i]); + tmpLongest++; + if (tmpLongest > user.currentStreak) { + user.currentStreak = tmpLongest; + } } else { break; } } + } else { + user.currentStreak = 1; } - user.currentStreak = currStreak; user.save(function(err) { if (err) { From ba78710c82a367512be2bce50e2da5b42035b63d Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 21:21:13 -0400 Subject: [PATCH 5/5] Go with calculating streaks with fresh data as cached mongo can"t be relied upon --- controllers/user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/controllers/user.js b/controllers/user.js index 6f449cad6c..43c8b908b4 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -301,6 +301,7 @@ exports.returnUser = function(req, res, next) { timeKeys = timeKeys.reverse(); tmpLongest = 1; + user.currentStreak = 1; var today = moment(Date.now()).format('YYYY-MM-DD'); if (moment(today).toString() === moment(timeKeys[0]).toString() ||