Add display on user profile when user commits
This commit is contained in:
@ -19,6 +19,18 @@ import {
|
||||
const sendNonUserToFront = ifNoUserRedirectTo('/');
|
||||
const debug = debugFactory('freecc:commit');
|
||||
|
||||
function findNonprofit(name) {
|
||||
let nonprofit;
|
||||
if (name) {
|
||||
nonprofit = _.find(nonprofits, (nonprofit) => {
|
||||
return name === nonprofit.name;
|
||||
});
|
||||
}
|
||||
|
||||
nonprofit = nonprofit || nonprofits[0];
|
||||
return nonprofit;
|
||||
}
|
||||
|
||||
export default function commit(app) {
|
||||
const router = app.loopback.Router();
|
||||
const { Pledge } = app.models;
|
||||
@ -38,16 +50,9 @@ export default function commit(app) {
|
||||
|
||||
function commitToNonprofit(req, res) {
|
||||
let nonprofitName = unDasherize(req.query.nonprofit);
|
||||
let nonprofit;
|
||||
const nonprofit = findNonprofit(nonprofitName);
|
||||
|
||||
debug('looking for nonprofit', nonprofitName);
|
||||
if (nonprofitName) {
|
||||
nonprofit = _.find(nonprofits, (nonprofit) => {
|
||||
return nonprofitName === nonprofit.name;
|
||||
});
|
||||
}
|
||||
|
||||
nonprofit = nonprofit || nonprofits[0];
|
||||
|
||||
res.render(
|
||||
'commit/',
|
||||
@ -61,20 +66,26 @@ export default function commit(app) {
|
||||
function pledge(req, res, next) {
|
||||
const { user } = req;
|
||||
const {
|
||||
nonprofit = 'girl develop it',
|
||||
nonprofit: nonprofitName = 'girl develop it',
|
||||
amount = '5',
|
||||
goal = 'Front End Development Certification'
|
||||
} = req.query;
|
||||
|
||||
const nonprofit = findNonprofit(nonprofitName);
|
||||
|
||||
observeQuery(user, 'pledge')
|
||||
.flatMap(oldPledge => {
|
||||
// create new pledge for user
|
||||
const pledge = Pledge({
|
||||
nonprofit,
|
||||
const pledge = Pledge(
|
||||
Object.assign(
|
||||
{
|
||||
amount,
|
||||
goal,
|
||||
userId: user.id
|
||||
});
|
||||
},
|
||||
nonprofit
|
||||
)
|
||||
);
|
||||
|
||||
if (oldPledge) {
|
||||
debug('user already has pledge, creating a new one');
|
||||
|
@ -164,7 +164,10 @@ module.exports = function(app) {
|
||||
const username = req.params.username.toLowerCase();
|
||||
const { path } = req;
|
||||
User.findOne(
|
||||
{ where: { username } },
|
||||
{
|
||||
where: { username },
|
||||
include: 'pledge'
|
||||
},
|
||||
function(err, profileUser) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
@ -175,6 +178,7 @@ module.exports = function(app) {
|
||||
});
|
||||
return res.redirect('/');
|
||||
}
|
||||
profileUser = profileUser.toJSON();
|
||||
|
||||
var cals = profileUser
|
||||
.progressTimestamps
|
||||
@ -217,7 +221,6 @@ module.exports = function(app) {
|
||||
return (obj.name || '').match(/^Waypoint/i);
|
||||
});
|
||||
|
||||
debug('user is fec', profileUser.isFrontEndCert);
|
||||
res.render('account/show', {
|
||||
title: 'Camper ' + profileUser.username + '\'s portfolio',
|
||||
username: profileUser.username,
|
||||
@ -227,6 +230,8 @@ module.exports = function(app) {
|
||||
isGithubCool: profileUser.isGithubCool,
|
||||
isLocked: !!profileUser.isLocked,
|
||||
|
||||
pledge: profileUser.pledge,
|
||||
|
||||
isFrontEndCert: profileUser.isFrontEndCert,
|
||||
isFullStackCert: profileUser.isFullStackCert,
|
||||
isHonest: profileUser.isHonest,
|
||||
|
@ -58,6 +58,12 @@ block content
|
||||
h1.flat-top.wrappable= name
|
||||
h1.flat-top.wrappable= location
|
||||
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
||||
if pledge
|
||||
.spacer
|
||||
h4 I am commited to giving $#{pledge.amount} to
|
||||
a(href='#{pledge.donate}') #{pledge.displayName}
|
||||
| each month until I have complete the #{pledge.goal}
|
||||
.spacer
|
||||
if isFrontEndCert
|
||||
a.btn.btn-primary(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
||||
if isFullStackCert
|
||||
|
Reference in New Issue
Block a user