--- a/src/pyams_content/features/review/__init__.py Fri Dec 08 10:46:16 2017 +0100
+++ b/src/pyams_content/features/review/__init__.py Fri Dec 08 10:46:50 2017 +0100
@@ -39,7 +39,7 @@
from pyams_security.principal import MissingPrincipal
from pyams_utils.adapter import adapter_config, ContextAdapter
from pyams_utils.container import BTreeOrderedContainer
-from pyams_utils.registry import query_utility
+from pyams_utils.registry import query_utility, get_utility
from pyams_utils.request import check_request, query_request
from pyams_utils.url import absolute_url
from pyramid.events import subscriber
@@ -58,14 +58,20 @@
"""Review comment persistent class"""
owner = FieldProperty(IReviewComment['owner'])
+ reviewers = FieldProperty(IReviewComment['reviewers'])
+ comment_type = FieldProperty(IReviewComment['comment_type'])
comment = FieldProperty(IReviewComment['comment'])
- comment_type = FieldProperty(IReviewComment['comment_type'])
+ is_reviewer_comment = FieldProperty(IReviewComment['is_reviewer_comment'])
creation_date = FieldProperty(IReviewComment['creation_date'])
- def __init__(self, owner, comment, comment_type='comment'):
+ def __init__(self, owner, comment, comment_type='comment', reviewers=None):
self.owner = owner
self.comment = comment
self.comment_type = comment_type
+ security = get_utility(ISecurityManager)
+ if reviewers:
+ self.reviewers = ', '.join((principal.title for principal in (
+ security.get_principal(reviewer) for reviewer in reviewers)))
self.creation_date = datetime.utcnow()
@@ -131,7 +137,7 @@
request = check_request()
translate = request.localizer.translate
# initialize mailer
- security = query_utility(ISecurityManager)
+ security = get_utility(ISecurityManager)
settings = INotificationSettings(security)
sender_name = request.principal.title if request.principal is not None else settings.sender_name
sender_address = settings.sender_email
@@ -176,8 +182,9 @@
roles.readers = readers
# add comment
review_comment = ReviewComment(owner=request.principal.id,
- comment=comment,
- comment_type='request')
+ comment_type='request',
+ comment=translate(_("Request comment: {comment}")).format(comment=comment),
+ reviewers=reviewers)
IReviewComments(self.context).add_comment(review_comment)
# return notifications count
return notifications
@@ -193,7 +200,6 @@
except ImportError:
pass
else:
-
@subscriber(ICommentAddedEvent)
def handle_new_comment(event):
"""Handle new review comment"""