diff --git a/census/controllers/census.js b/census/controllers/census.js index 64674535..0ded0c44 100644 --- a/census/controllers/census.js +++ b/census/controllers/census.js @@ -171,7 +171,7 @@ var submitPost = function(req, res, data) { query = objToSave.save(); } - query.then(function(result) { + query.then(result => { let msg; let redirectPath; let submissionPath; @@ -194,7 +194,7 @@ var submitPost = function(req, res, data) { } res.redirect(redirectPath + '?post_submission=' + submissionPath); - }).catch(console.trace.bind(console)); + }).catch(err => console.log(err.stack)); } }; @@ -223,7 +223,7 @@ var pending = function(req, res) { }; req.app.get('models').Entry.findOne(entryQueryParams) - .then(function(entry) { + .then(entry => { if (!entry) { res.status(404).send('There is no submission with id ' + req.params.id); return; @@ -231,91 +231,90 @@ var pending = function(req, res) { let dataOptions = _.merge(modelUtils.getDataOptions(req), { scoredQuestionsOnly: false }); - modelUtils.getData(dataOptions) - .then(function(data) { - let dataset = _.find(data.datasets, {id: entry.dataset}); - let place = _.find(data.places, {id: entry.place}); - let places = modelUtils.translateSet(req, data.places); - let datasets = modelUtils.translateSet(req, data.datasets); - let qsSchemaPromise; - let questionsPromise; - let datasetContext = {}; - if (dataset) { - qsSchemaPromise = dataset.getQuestionSetSchema(); - questionsPromise = dataset.getQuestions(); - datasetContext = _.assign(datasetContext, { - characteristics: dataset.characteristics, - datasetName: dataset.name, - datasetDescription: dataset.description, - updateEvery: dataset.updateevery - }); - } + return modelUtils.getData(dataOptions) + .then(data => [data, entry]); + }) + .spread(function(data, entry) { + let dataset = _.find(data.datasets, {id: entry.dataset}); + let place = _.find(data.places, {id: entry.place}); + let places = modelUtils.translateSet(req, data.places); + let datasets = modelUtils.translateSet(req, data.datasets); + let qsSchemaPromise; + let questionsPromise; + let datasetContext = {}; + if (dataset) { + qsSchemaPromise = dataset.getQuestionSetSchema(); + questionsPromise = dataset.getQuestions(); + datasetContext = _.assign(datasetContext, { + characteristics: dataset.characteristics, + datasetName: dataset.name, + datasetDescription: dataset.description, + updateEvery: dataset.updateevery + }); + } - Promise.join(qsSchemaPromise, questionsPromise, (qsSchema, questions) => { - if (qsSchema === undefined) qsSchema = []; - questions = _.map(questions, question => { - return { - id: question.id, - text: nunjucks.renderString(question.question, - {datasetContext: datasetContext}), - type: question.type, - description: nunjucks.renderString(question.description, - {datasetContext: datasetContext}), - placeholder: question.placeholder, - config: question.config - }; - }); - // Prefill the EntryForm with entry data. - let formData = { - place: entry.place, - dataset: entry.dataset, - answers: entry.answers, - details: entry.details, - anonymous: (entry.submitterId === null) ? 'Yes' : 'No', - reviewComments: entry.reviewComments - // yourKnowledge* fields here too + Promise.join(qsSchemaPromise, questionsPromise, (qsSchema, questions) => { + if (qsSchema === undefined) qsSchema = []; + questions = _.map(questions, question => { + return { + id: question.id, + text: nunjucks.renderString(question.question, + {datasetContext: datasetContext}), + type: question.type, + description: nunjucks.renderString(question.description, + {datasetContext: datasetContext}), + placeholder: question.placeholder, + config: question.config }; + }); + // Prefill the EntryForm with entry data. + let formData = { + place: entry.place, + dataset: entry.dataset, + answers: entry.answers, + details: entry.details, + anonymous: (entry.submitterId === null) ? 'Yes' : 'No', + reviewComments: entry.reviewComments + // yourKnowledge* fields here too + }; - let initialHTML = renderToString(); - let reviewersData = {place: place, dataset: dataset}; - let reviewers = utils.getReviewers(req, reviewersData); - let entryStatus = 'pending'; - if (entry.isCurrent) { - entryStatus = 'accepted'; - } else if (entry.reviewed && !entry.reviewResult) { - entryStatus = 'rejected'; - } - res.render('create.html', { - places: places, - datasets: datasets, - placeName: _.get(place, 'name'), - datasetName: _.get(dataset, 'name'), - qsSchema: JSON.stringify(qsSchema), - questions: JSON.stringify(questions), - datasetContext: datasetContext, - formData: formData, - initialRenderedEntry: initialHTML, - breadcrumbTitle: 'Review a Submission', - submitInstructions: config.get('review_page'), - errors: _.get(data, 'errors'), - isReview: true, - entryStatus: entryStatus, - entry: entry, - canReview: utils.canReview(reviewers, req.user), - reviewClosed: entry.reviewResult || - (entry.year !== req.app.get('year')) - }); + let initialHTML = renderToString(); + let reviewersData = {place: place, dataset: dataset}; + let reviewers = utils.getReviewers(req, reviewersData); + let entryStatus = 'pending'; + if (entry.isCurrent) { + entryStatus = 'accepted'; + } else if (entry.reviewed && !entry.reviewResult) { + entryStatus = 'rejected'; + } + res.render('create.html', { + places: places, + datasets: datasets, + placeName: _.get(place, 'name'), + datasetName: _.get(dataset, 'name'), + qsSchema: JSON.stringify(qsSchema), + questions: JSON.stringify(questions), + datasetContext: datasetContext, + formData: formData, + initialRenderedEntry: initialHTML, + breadcrumbTitle: 'Review a Submission', + submitInstructions: config.get('review_page'), + errors: _.get(data, 'errors'), + isReview: true, + entryStatus: entryStatus, + entry: entry, + canReview: utils.canReview(reviewers, req.user), + reviewClosed: entry.reviewResult || + (entry.year !== req.app.get('year')) }); - }) - .catch(err => console.log(err.stack)); - }) - .catch(err => console.log(err.stack)); + }); + }).catch(err => console.log(err.stack)); }; var reviewPost = function(req, res) { @@ -384,7 +383,7 @@ var reviewPost = function(req, res) { req.flash('info', msg); } res.redirect('/'); - }).catch(err => console.log(err)); + }).catch(err => console.log(err.stack)); }; var review = function(req, res) {