start refactoring points into progressTimestamps which is essentially points with timestamps
This commit is contained in:
		| @@ -32,7 +32,7 @@ exports.index = function(req, res) { | ||||
|         tests:  [], | ||||
|         challengeSeed:  '', | ||||
|         cc: req.user ? req.user.bonfiresHash : undefined, | ||||
|         points: req.user ? req.user.points : undefined, | ||||
|         progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|         verb: resources.randomVerb(), | ||||
|         phrase: resources.randomPhrase(), | ||||
|         compliments: resources.randomCompliment(), | ||||
| @@ -112,7 +112,7 @@ exports.returnIndividualBonfire = function(req, res, next) { | ||||
|             tests: bonfire.tests, | ||||
|             challengeSeed: bonfire.challengeSeed, | ||||
|             cc: !!req.user, | ||||
|             points: req.user ? req.user.points : undefined, | ||||
|             progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|             verb: resources.randomVerb(), | ||||
|             phrase: resources.randomPhrase(), | ||||
|             compliment: resources.randomCompliment(), | ||||
| @@ -179,7 +179,7 @@ exports.testBonfire = function(req, res) { | ||||
|         tests:  bonfireTests, | ||||
|         challengeSeed:  bonfireChallengeSeed, | ||||
|         cc: req.user ? req.user.bonfiresHash : undefined, | ||||
|         points: req.user ? req.user.points : undefined, | ||||
|         progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|         verb: resources.randomVerb(), | ||||
|         phrase: resources.randomPhrase(), | ||||
|         compliment: resources.randomCompliment(), | ||||
| @@ -236,14 +236,14 @@ exports.completedBonfire = function (req, res) { | ||||
|             } else { | ||||
|                 var index = req.user.uncompletedBonfires.indexOf(bonfireHash); | ||||
|                 if (index > -1) { | ||||
|                     req.user.points++; | ||||
|                     req.user.progressTimestamps.push(Date.now() / 1000 | 0); | ||||
|                     req.user.uncompletedBonfires.splice(index, 1) | ||||
|                 } | ||||
|                 pairedWith = pairedWith.pop(); | ||||
|  | ||||
|                 index = pairedWith.uncompletedBonfires.indexOf(bonfireHash); | ||||
|                 if (index > -1) { | ||||
|                     pairedWith.points++; | ||||
|                     pairedWith.progressTimestamps.push(Date.now() / 1000 | 0); | ||||
|                     pairedWith.uncompletedBonfires.splice(index, 1); | ||||
|  | ||||
|                 } | ||||
| @@ -285,7 +285,7 @@ exports.completedBonfire = function (req, res) { | ||||
|  | ||||
|         var index = req.user.uncompletedBonfires.indexOf(bonfireHash); | ||||
|         if (index > -1) { | ||||
|             req.user.points++; | ||||
|             req.user.progressTimestamps.push(Date.now() / 1000 | 0); | ||||
|             req.user.uncompletedBonfires.splice(index, 1) | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -92,7 +92,7 @@ exports.returnIndividualCourseware = function(req, res, next) { | ||||
|                     tests: courseware.tests, | ||||
|                     challengeSeed: courseware.challengeSeed, | ||||
|                     cc: !!req.user, | ||||
|                     points: req.user ? req.user.points : undefined, | ||||
|                     progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|                     verb: resources.randomVerb(), | ||||
|                     phrase: resources.randomPhrase(), | ||||
|                     compliment: resources.randomCompliment(), | ||||
| @@ -111,7 +111,7 @@ exports.returnIndividualCourseware = function(req, res, next) { | ||||
|                     tests: courseware.tests, | ||||
|                     challengeSeed: courseware.challengeSeed, | ||||
|                     cc: !!req.user, | ||||
|                     points: req.user ? req.user.points : undefined, | ||||
|                     progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|                     verb: resources.randomVerb(), | ||||
|                     phrase: resources.randomPhrase(), | ||||
|                     compliment: resources.randomCompliment(), | ||||
| @@ -130,7 +130,7 @@ exports.returnIndividualCourseware = function(req, res, next) { | ||||
|                     tests: courseware.tests, | ||||
|                     video: courseware.challengeSeed[0], | ||||
|                     cc: !!req.user, | ||||
|                     points: req.user ? req.user.points : undefined, | ||||
|                     progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|                     verb: resources.randomVerb(), | ||||
|                     phrase: resources.randomPhrase(), | ||||
|                     compliment: resources.randomCompliment(), | ||||
| @@ -168,7 +168,7 @@ exports.testCourseware = function(req, res) { | ||||
|         challengeSeed:  coursewareChallengeSeed, | ||||
|         challengeEntryPoint: coursewareEntryPoint, | ||||
|         cc: req.user ? req.user.coursewaresHash : undefined, | ||||
|         points: req.user ? req.user.points : undefined, | ||||
|         progressTimestamps: req.user ? req.user.progressTimestamps : undefined, | ||||
|         verb: resources.randomVerb(), | ||||
|         phrase: resources.randomPhrase(), | ||||
|         compliment: resources.randomCompliment(), | ||||
| @@ -224,7 +224,7 @@ exports.completedCourseware = function (req, res) { | ||||
|  | ||||
|     var index = req.user.uncompletedCoursewares.indexOf(coursewareHash); | ||||
|     if (index > -1) { | ||||
|         req.user.points++; | ||||
|         req.user.progressTimestamps.push(Date.now() / 1000 | 0); | ||||
|         req.user.uncompletedCoursewares.splice(index, 1) | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -22,33 +22,6 @@ module.exports = { | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     stats: function stats(req, res) { | ||||
|         var date1 = new Date("10/15/2014"); | ||||
|         var date2 = new Date(); | ||||
|         var timeDiff = Math.abs(date2.getTime() - date1.getTime()); | ||||
|         var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24)); | ||||
|         client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(trello, response) { | ||||
|             var nonprofitProjects = (trello && trello.length) || 15; | ||||
|             User.count({'points': {'$gt': 2}}, function(err, c3) { if (err) { debug('User err: ', err); next(err); } | ||||
|                 User.count({'points': {'$gt': 9}}, function(err, c10) { if (err) { debug('User err: ', err); next(err); } | ||||
|                     User.count({'points': {'$gt': 29}}, function(err, c30) { if (err) { debug('User err: ', err); next(err); } | ||||
|                         User.count({'points': {'$gt': 53}}, function(err, all) { if (err) { debug('User err: ', err); next(err); } | ||||
|                             res.render('resources/stats', { | ||||
|                                 title: 'Free Code Camp Stats:', | ||||
|                                 daysRunning: daysRunning, | ||||
|                                 nonprofitProjects: nonprofitProjects, | ||||
|                                 c3: c3, | ||||
|                                 c10: c10, | ||||
|                                 c30: c30, | ||||
|                                 all: all | ||||
|                             }); | ||||
|                         }); | ||||
|                     }); | ||||
|                 }); | ||||
|             }); | ||||
|         }); | ||||
|     }, | ||||
|  | ||||
|     deployAWebsite: function deployAWebsite(req, res) { | ||||
|         res.render('resources/deploy-a-website', { | ||||
|             title: 'Deploy a Dynamic Website in 7 Minutes' | ||||
| @@ -145,6 +118,21 @@ module.exports = { | ||||
|     about: function(req, res) { | ||||
|         var date1 = new Date("10/15/2014"); | ||||
|         var date2 = new Date(); | ||||
|         var progressTimestamps = req.user.progressTimestamps; | ||||
|         var now = Date.now() / 1000 | 0; | ||||
|         if (req.user.pointsNeedMigration) { | ||||
|             var challengesHash = req.user.challengesHash; | ||||
|             for(var key in challengesHash) { | ||||
|                 if (challengesHash[key] > 0) { | ||||
|                     req.user.progressTimestamps.push(challengesHash[key]); | ||||
|                 } | ||||
|             } | ||||
|             req.user.pointsNeedMigration = false; | ||||
|             req.user.save(); | ||||
|         } | ||||
|         if (progressTimestamps[progressTimestamps.length - 1] <= (now - 43200)) { | ||||
|             req.user.progressTimestamps.push(now); | ||||
|         } | ||||
|         var timeDiff = Math.abs(date2.getTime() - date1.getTime()); | ||||
|         var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24)); | ||||
|         var announcements = resources.announcements; | ||||
|   | ||||
| @@ -21,7 +21,9 @@ var userSchema = new mongoose.Schema({ | ||||
|         type: Number, | ||||
|         default: 0 | ||||
|     }, | ||||
|     progressTimestamps: { type: Array, default: [] }, | ||||
|     challengesCompleted: { type: Array, default: [] }, | ||||
|     pointsNeedMigration: { type: Boolean, default: true }, | ||||
|     challengesHash: { | ||||
|         0: { | ||||
|             type: Number, | ||||
|   | ||||
| @@ -44,7 +44,7 @@ block content | ||||
|                         .col-xs-12.col-sm-12.col-md-3.text-center | ||||
|                             .background-svg.img-center | ||||
|                                 .points-on-top | ||||
|                                     = "[ " + points + " ]" | ||||
|                                     = "[ " + progressTimestamps.length + " ]" | ||||
|  | ||||
|  | ||||
|                 .row | ||||
|   | ||||
| @@ -25,7 +25,7 @@ | ||||
|         else | ||||
|             li | ||||
|                 if (user.profile.username) | ||||
|                     a(href='/' + user.profile.username) [ #{user.points} ] | ||||
|                     a(href='/' + user.profile.username) [ #{user.progressTimestamps.length} ] | ||||
|                 else | ||||
|                     a(href='/account') [ #{user.points} ] | ||||
|             .hidden-xs | ||||
|   | ||||
		Reference in New Issue
	
	Block a user