diff --git a/.gitignore b/.gitignore
index 8cefbfc1..5937d309 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
node_modules/
-logs/
\ No newline at end of file
+logs/
+.idea/
diff --git a/achievements/doubleReview.achievement.js b/achievements/doubleReview.achievement.js
index 34fe74f5..027b3308 100644
--- a/achievements/doubleReview.achievement.js
+++ b/achievements/doubleReview.achievement.js
@@ -9,7 +9,7 @@ var doubleReview = {
avatar : 'images/achievements/doubleReview.achievement.gif',
name : 'We\'re ready, master',
short : _.escape('"This way!"-"No, that way!"'),
- description : 'double headed code review.
It doesn\'t matter who added you, apperantly, both of you are needed for a one man job 😇',
+ description : 'double headed code review.
It doesn\'t matter who added you, apparently, both of you are needed for a one man job 😇',
relatedPullRequest: pullRequest.id
};
diff --git a/achievements/helpingHand.achievement.js b/achievements/helpingHand.achievement.js
new file mode 100644
index 00000000..1c97f3e2
--- /dev/null
+++ b/achievements/helpingHand.achievement.js
@@ -0,0 +1,58 @@
+var _ = require('lodash');
+
+var helpingHand = {
+ name: 'Helping Hand',
+ check: function(pullRequest, shall) {
+ var committedReviewers = reviewersWhoCommittedToPullRequest(pullRequest);
+
+ if (!_.isEmpty(committedReviewers)) {
+
+ var isMultipleCommittedReviewers = committedReviewers.length > 1 ? 's ' : ' ';
+
+ var reviewerAchievement = {
+ avatar: 'images/achievements/helpingHandHelloThere.achievement.jpg',
+ name: 'Helping Hand',
+ short: 'Hello there. Slow going?',
+ description: [
+ 'You\'ve committed to ', pullRequest.creator.username,
+ '\'s Pull Request you are reviewing'
+ ].join(''),
+ relatedPullRequest: pullRequest._id
+ };
+
+ var committerAchievement = {
+ avatar: 'images/achievements/helpingHandManInBlack.achievement.jpg',
+ name: 'Helping Hand',
+ short: 'Look, I don\'t mean to be rude but this is not as easy as it looks',
+ description: [
+ 'Your reviewer', isMultipleCommittedReviewers,
+ _.map(committedReviewers, 'username').join(', '),
+ ' committed to your Pull Request'
+ ].join(''),
+ relatedPullRequest: pullRequest._id
+ };
+
+ _.forEach(committedReviewers, function(reviewer) {
+ shall.grant(reviewer.username, reviewerAchievement);
+ });
+
+ shall.grant(pullRequest.creator.username, committerAchievement);
+ }
+ }
+};
+
+
+function reviewersWhoCommittedToPullRequest(pullRequest) {
+ var committedReviewers = [];
+
+ _.forEach(pullRequest.commits, function(commit) {
+ if (commit.author.username !== pullRequest.creator.username &&
+ _.find(pullRequest.reviewers, {username: commit.author.username})) {
+ committedReviewers.push(commit.author);
+ }
+ });
+
+ return committedReviewers;
+}
+
+module.exports = helpingHand;
diff --git a/achievements/neverGoFullRetard.achievement.js b/achievements/neverGoFullRetard.achievement.js
index 0d1ca25d..cdd8c746 100644
--- a/achievements/neverGoFullRetard.achievement.js
+++ b/achievements/neverGoFullRetard.achievement.js
@@ -14,7 +14,7 @@ var neverGoFullRetard = {
relatedPullRequest: pullRequest.id
};
shall.grant(pullRequest.creator.username, achieve);
- _.forEach(pullRequest.reviewer, function(reviewer) {
+ _.forEach(pullRequest.reviewers, function(reviewer) {
shall.grant(reviewer.username, achieve);
});
}
diff --git a/eventManager.js b/eventManager.js
index e65a1865..a32811fd 100644
--- a/eventManager.js
+++ b/eventManager.js
@@ -292,7 +292,7 @@ var EventManager = function() {
var allPRUsers = [pullRequests[id].creator];
if (_.isArray(pullRequests[id].reviewers)) {
- allPRUsers.concat(pullRequests[id].reviewers);
+ allPRUsers = allPRUsers.concat(pullRequests[id].reviewers);
}
grantAchievements(allPRUsers, pullRequests[id], io);
});
diff --git a/public/images/achievements/helpingHandHelloThere.achievement.jpg b/public/images/achievements/helpingHandHelloThere.achievement.jpg
new file mode 100644
index 00000000..1b699fb2
Binary files /dev/null and b/public/images/achievements/helpingHandHelloThere.achievement.jpg differ
diff --git a/public/images/achievements/helpingHandManInBlack.achievement.jpg b/public/images/achievements/helpingHandManInBlack.achievement.jpg
new file mode 100644
index 00000000..09f40190
Binary files /dev/null and b/public/images/achievements/helpingHandManInBlack.achievement.jpg differ