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: [],
|
tests: [],
|
||||||
challengeSeed: '',
|
challengeSeed: '',
|
||||||
cc: req.user ? req.user.bonfiresHash : undefined,
|
cc: req.user ? req.user.bonfiresHash : undefined,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliments: resources.randomCompliment(),
|
compliments: resources.randomCompliment(),
|
||||||
@ -112,7 +112,7 @@ exports.returnIndividualBonfire = function(req, res, next) {
|
|||||||
tests: bonfire.tests,
|
tests: bonfire.tests,
|
||||||
challengeSeed: bonfire.challengeSeed,
|
challengeSeed: bonfire.challengeSeed,
|
||||||
cc: !!req.user,
|
cc: !!req.user,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -179,7 +179,7 @@ exports.testBonfire = function(req, res) {
|
|||||||
tests: bonfireTests,
|
tests: bonfireTests,
|
||||||
challengeSeed: bonfireChallengeSeed,
|
challengeSeed: bonfireChallengeSeed,
|
||||||
cc: req.user ? req.user.bonfiresHash : undefined,
|
cc: req.user ? req.user.bonfiresHash : undefined,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -236,14 +236,14 @@ exports.completedBonfire = function (req, res) {
|
|||||||
} else {
|
} else {
|
||||||
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
|
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
req.user.points++;
|
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
|
||||||
req.user.uncompletedBonfires.splice(index, 1)
|
req.user.uncompletedBonfires.splice(index, 1)
|
||||||
}
|
}
|
||||||
pairedWith = pairedWith.pop();
|
pairedWith = pairedWith.pop();
|
||||||
|
|
||||||
index = pairedWith.uncompletedBonfires.indexOf(bonfireHash);
|
index = pairedWith.uncompletedBonfires.indexOf(bonfireHash);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
pairedWith.points++;
|
pairedWith.progressTimestamps.push(Date.now() / 1000 | 0);
|
||||||
pairedWith.uncompletedBonfires.splice(index, 1);
|
pairedWith.uncompletedBonfires.splice(index, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -285,7 +285,7 @@ exports.completedBonfire = function (req, res) {
|
|||||||
|
|
||||||
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
|
var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
req.user.points++;
|
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
|
||||||
req.user.uncompletedBonfires.splice(index, 1)
|
req.user.uncompletedBonfires.splice(index, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
|
|||||||
tests: courseware.tests,
|
tests: courseware.tests,
|
||||||
challengeSeed: courseware.challengeSeed,
|
challengeSeed: courseware.challengeSeed,
|
||||||
cc: !!req.user,
|
cc: !!req.user,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -111,7 +111,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
|
|||||||
tests: courseware.tests,
|
tests: courseware.tests,
|
||||||
challengeSeed: courseware.challengeSeed,
|
challengeSeed: courseware.challengeSeed,
|
||||||
cc: !!req.user,
|
cc: !!req.user,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -130,7 +130,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
|
|||||||
tests: courseware.tests,
|
tests: courseware.tests,
|
||||||
video: courseware.challengeSeed[0],
|
video: courseware.challengeSeed[0],
|
||||||
cc: !!req.user,
|
cc: !!req.user,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -168,7 +168,7 @@ exports.testCourseware = function(req, res) {
|
|||||||
challengeSeed: coursewareChallengeSeed,
|
challengeSeed: coursewareChallengeSeed,
|
||||||
challengeEntryPoint: coursewareEntryPoint,
|
challengeEntryPoint: coursewareEntryPoint,
|
||||||
cc: req.user ? req.user.coursewaresHash : undefined,
|
cc: req.user ? req.user.coursewaresHash : undefined,
|
||||||
points: req.user ? req.user.points : undefined,
|
progressTimestamps: req.user ? req.user.progressTimestamps : undefined,
|
||||||
verb: resources.randomVerb(),
|
verb: resources.randomVerb(),
|
||||||
phrase: resources.randomPhrase(),
|
phrase: resources.randomPhrase(),
|
||||||
compliment: resources.randomCompliment(),
|
compliment: resources.randomCompliment(),
|
||||||
@ -224,7 +224,7 @@ exports.completedCourseware = function (req, res) {
|
|||||||
|
|
||||||
var index = req.user.uncompletedCoursewares.indexOf(coursewareHash);
|
var index = req.user.uncompletedCoursewares.indexOf(coursewareHash);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
req.user.points++;
|
req.user.progressTimestamps.push(Date.now() / 1000 | 0);
|
||||||
req.user.uncompletedCoursewares.splice(index, 1)
|
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) {
|
deployAWebsite: function deployAWebsite(req, res) {
|
||||||
res.render('resources/deploy-a-website', {
|
res.render('resources/deploy-a-website', {
|
||||||
title: 'Deploy a Dynamic Website in 7 Minutes'
|
title: 'Deploy a Dynamic Website in 7 Minutes'
|
||||||
@ -145,6 +118,21 @@ module.exports = {
|
|||||||
about: function(req, res) {
|
about: function(req, res) {
|
||||||
var date1 = new Date("10/15/2014");
|
var date1 = new Date("10/15/2014");
|
||||||
var date2 = new Date();
|
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 timeDiff = Math.abs(date2.getTime() - date1.getTime());
|
||||||
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
||||||
var announcements = resources.announcements;
|
var announcements = resources.announcements;
|
||||||
|
@ -21,7 +21,9 @@ var userSchema = new mongoose.Schema({
|
|||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
},
|
},
|
||||||
|
progressTimestamps: { type: Array, default: [] },
|
||||||
challengesCompleted: { type: Array, default: [] },
|
challengesCompleted: { type: Array, default: [] },
|
||||||
|
pointsNeedMigration: { type: Boolean, default: true },
|
||||||
challengesHash: {
|
challengesHash: {
|
||||||
0: {
|
0: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
@ -44,7 +44,7 @@ block content
|
|||||||
.col-xs-12.col-sm-12.col-md-3.text-center
|
.col-xs-12.col-sm-12.col-md-3.text-center
|
||||||
.background-svg.img-center
|
.background-svg.img-center
|
||||||
.points-on-top
|
.points-on-top
|
||||||
= "[ " + points + " ]"
|
= "[ " + progressTimestamps.length + " ]"
|
||||||
|
|
||||||
|
|
||||||
.row
|
.row
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
else
|
else
|
||||||
li
|
li
|
||||||
if (user.profile.username)
|
if (user.profile.username)
|
||||||
a(href='/' + user.profile.username) [ #{user.points} ]
|
a(href='/' + user.profile.username) [ #{user.progressTimestamps.length} ]
|
||||||
else
|
else
|
||||||
a(href='/account') [ #{user.points} ]
|
a(href='/account') [ #{user.points} ]
|
||||||
.hidden-xs
|
.hidden-xs
|
||||||
|
Reference in New Issue
Block a user