mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-03 08:21:07 +00:00
challenges: stats setup
This commit is contained in:
parent
44d67ac9f8
commit
d62586ef0a
2 changed files with 21 additions and 30 deletions
|
|
@ -19,12 +19,25 @@ var api = module.exports;
|
||||||
|
|
||||||
// GET
|
// GET
|
||||||
api.get = function(req, res) {
|
api.get = function(req, res) {
|
||||||
// TODO only find in user's groups (+ public)
|
var user = res.locals.user;
|
||||||
// TODO populate (group, leader, members)
|
Challenge.find({$or:[{leader: user._id}, {members:{$in:[user._id]}}]})
|
||||||
Challenge.find({},function(err, challenges){
|
.populate('members', 'profile.name habits dailys rewards todos')
|
||||||
if(err) return res.json(500, {err:err});
|
.exec(function(err, challenges){
|
||||||
res.json(challenges);
|
if(err) return res.json(500, {err:err});
|
||||||
})
|
|
||||||
|
// slim down the return members' tasks to only the ones in the challenge
|
||||||
|
_.each(challenges, function(challenge){
|
||||||
|
_.each(challenge.members, function(member){
|
||||||
|
_.each(['habits', 'dailys', 'todos', 'rewards'], function(type){
|
||||||
|
member[type] = _.where(member[type], function(task){
|
||||||
|
return task.challenge && task.challenge.id == challenge._id;
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
res.json(challenges);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// CREATE
|
// CREATE
|
||||||
|
|
|
||||||
|
|
@ -69,27 +69,5 @@
|
||||||
habitrpg-tasks(obj='challenge', main=false)
|
habitrpg-tasks(obj='challenge', main=false)
|
||||||
h3 Statistics
|
h3 Statistics
|
||||||
div(ng-repeat='member in challenge.members')
|
div(ng-repeat='member in challenge.members')
|
||||||
h4 {{member.name}}
|
h4 {{member.profile.name}}
|
||||||
.grid
|
habitrpg-tasks(main=false, obj='member')
|
||||||
.module
|
|
||||||
app:challenges:stats(header='Habits', challenge='{{challenge}}', member='{{member}}', list='{{challenge.habits}}')
|
|
||||||
.module
|
|
||||||
app:challenges:stats(header='Dailies', challenge='{{challenge}}', member='{{member}}', list='{{challenge.dailys}}')
|
|
||||||
.module
|
|
||||||
app:challenges:stats(header='Todos', challenge='{{challenge}}', member='{{member}}', list='{{challenge.todos}}')
|
|
||||||
|
|
||||||
//// .stats
|
|
||||||
// h5 {@header}
|
|
||||||
// div
|
|
||||||
// | {#each @list as :task}
|
|
||||||
// table
|
|
||||||
// tr
|
|
||||||
// td
|
|
||||||
// //
|
|
||||||
// FIXME commented section below isn't getting updated dynamically, temp solution is less efficient
|
|
||||||
// strong {:task.text}
|
|
||||||
// | : {challengeMemberScore(@member,:task)}
|
|
||||||
// // {round(@member[@taskType]s[:task.id].value)}
|
|
||||||
// td
|
|
||||||
// .challenge-{{@challenge.id}}-member-{{@member.id}}-history-{{:task.id}}(style='margin-left: 10px;')
|
|
||||||
// | {/}
|
|
||||||
Loading…
Reference in a new issue