diff --git a/src/IDF/Views/Review.php b/src/IDF/Views/Review.php
index b183df7..cffe893 100644
--- a/src/IDF/Views/Review.php
+++ b/src/IDF/Views/Review.php
@@ -153,11 +153,41 @@ class IDF_Views_Review
));
if ($form->isValid()) {
$patch = $form->save();
+ $review = $patch->get_review();
$urlr = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
- array($prj->shortname, $patch->get_review()->id));
- $request->user->setMessage(sprintf(__('Your code review %d has been published.'), $urlr, $patch->get_review()->id));
+ array($prj->shortname, $review->id));
+ $request->user->setMessage(sprintf(__('Your code review %d has been published.'), $urlr, $review->id));
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::index',
array($prj->shortname));
+ // Get the list of reviewers + submitter
+ $reviewers = $review->get_reviewers_list();
+ if (!Pluf_Model_InArray($review->get_submitter(), $reviewers)) {
+ $reviewers[] = $review->get_submitter();
+ }
+ $comments = $patch->get_filecomments_list(array('order' => 'id DESC'));
+ $context = new Pluf_Template_Context(
+ array(
+ 'review' => $review,
+ 'patch' => $patch,
+ 'comments' => $comments,
+ 'project' => $prj,
+ 'url_base' => Pluf::f('url_base'),
+ )
+ );
+ $tmpl = new Pluf_Template('idf/review/review-updated-email.txt');
+ $text_email = $tmpl->render($context);
+ $email = new Pluf_Mail_Batch(Pluf::f('from_email'));
+ foreach ($reviewers as $user) {
+ if ($user->id != $request->user->id) {
+ $email->setSubject(sprintf(__('Updated Code Review %s - %s (%s)'),
+ $review->id, $review->summary, $prj->shortname));
+ $email->setTo($user->email);
+ $email->setReturnPath(Pluf::f('from_email'));
+ $email->addTextMessage($text_email);
+ $email->sendMail();
+ }
+ }
+ $email->close();
return new Pluf_HTTP_Response_Redirect($url);
}
} else {
diff --git a/src/IDF/templates/idf/review/review-updated-email.txt b/src/IDF/templates/idf/review/review-updated-email.txt
new file mode 100644
index 0000000..e75c5ba
--- /dev/null
+++ b/src/IDF/templates/idf/review/review-updated-email.txt
@@ -0,0 +1,24 @@
+{trans 'Hello,'}
+
+{blocktrans}The following review has been updated:{/blocktrans}
+
+{$review.id} - {$review.summary|safe}
+{trans 'Project:'} {$project.name|safe}
+{trans 'Status:'} {$review.get_status.name}
+{trans 'Reported by:'} {$review.get_submitter|safe}
+{trans 'URL:'} {$url_base}{url 'IDF_Views_Review::view', array($project.shortname, $review.id)}
+{assign $tags = $review.get_tags_list()}{if $tags.count()}{trans 'Labels:'}
+{foreach $tags as $tag} {$tag.class|safe}:{$tag.name|safe}
+{/foreach}
+{/if}{trans 'Comments (last first):'}
+
+{foreach $comments as $c}{assign $who = $c.get_submitter()}# {blocktrans}By {$who|safe}, {$c.creation_dtime|date}, on file:
+{$c.cfile|safe}
+{/blocktrans}
+
+{$c.content|safe}
+
+{/foreach}
+
+--
+{trans 'Review:'} {$url_base}{url 'IDF_Views_Review::view', array($project.shortname, $review.id)}