MozReview: Review Page Redesign: Created new 'ReviewContentField' class for review main content (
Bug 1309964). r?glob,smacleod
MozReview-Commit-ID: KdzZG2G4wJr
--- a/pylib/mozreview/mozreview/extension.py
+++ b/pylib/mozreview/mozreview/extension.py
@@ -47,16 +47,17 @@ from mozreview.extra_data import (
from mozreview.fields import (
BaseCommitField,
CombinedReviewersField,
CommitAuthorField,
CommitsListField,
FileDiffReviewerField,
ImportCommitField,
PullCommitField,
+ ReviewContentField,
TryField,
)
from mozreview.file_diff_reviewer.resources import (
file_diff_reviewer_resource,
)
from mozreview.hooks import (
MozReviewApprovalHook,
MozReviewCommitTableHook,
@@ -311,16 +312,17 @@ class MozReviewExtension(Extension):
'mozreview/user-data.html')
TemplateHook(self, 'base-after-content',
'mozreview/repository.html')
TemplateHook(self, 'base-after-content',
'mozreview/user_review_flag.html',
apply_to=review_request_url_names)
ReviewRequestFieldsHook(self, 'main', [CommitsListField])
+ ReviewRequestFieldsHook(self, 'main', [ReviewContentField])
MozReviewCommitTableHook(self, 'base-before-content',
'mozreview/commits.html',
apply_to=review_request_url_names)
# This forces the Commits field to be the top item.
main_fieldset.field_classes.insert(0,
main_fieldset.field_classes.pop())
--- a/pylib/mozreview/mozreview/fields.py
+++ b/pylib/mozreview/mozreview/fields.py
@@ -87,44 +87,25 @@ class CommitsListField(CommitDataBackedF
This field is injected in the details of a review request that
is a "push" based review request.
"""
field_id = COMMITS_KEY
label = _("Commits")
can_record_change_entry = True
+ def should_render(self, value):
+ return False
+
def has_value_changed(self, old_value, new_value):
# Just to be safe, we de-serialize the json and compare values
if old_value is not None and new_value is not None:
return json.loads(old_value) != json.loads(new_value)
return old_value != new_value
- def should_render(self, value):
- return is_pushed(self.review_request_details)
-
- def as_html(self):
- user = self.request.user
- parent = get_parent_rr(self.review_request_details.get_review_request())
- parent_details = parent.get_draft(user) or parent
-
- # If a user can view the parent draft they should also have
- # permission to view every child. We check if the child is
- # accessible anyways in case it has been restricted for other
- # reasons.
- children_details = [
- child for child in gen_child_rrs(parent_details, user=user)
- if child.is_accessible_by(user)]
-
- return get_template('mozreview/review-main.html').render(Context({
- 'review_request_details': self.review_request_details,
- 'parent_details': parent_details,
- 'user': user
- }))
-
def render_change_entry_html(self, info):
old_value = json.loads(info.get('old', ['[]'])[0])
old_commits = [c for c, r in old_value]
new_value = json.loads(info.get('new', ['[]'])[0])
new_commits = [c for c, r in new_value]
# Pad the commit lists so they're equal in length.
@@ -212,16 +193,44 @@ class PullCommitField(BaseReviewRequestF
return ''
return get_template('mozreview/hg-pull.html').render(Context({
'commit_id': commit_id,
'repo_path': repo_path,
}))
+class ReviewContentField(BaseReviewRequestField):
+
+ label = _("Commit Detail")
+ field_id = "p2rb.CommitDetail"
+
+ def should_render(self, value):
+ return is_pushed(self.review_request_details)
+
+ def as_html(self):
+ user = self.request.user
+ parent = get_parent_rr(self.review_request_details.get_review_request())
+ parent_details = parent.get_draft(user) or parent
+
+ # If a user can view the parent draft they should also have
+ # permission to view every child. We check if the child is
+ # accessible anyways in case it has been restricted for other
+ # reasons.
+ children_details = [
+ child for child in gen_child_rrs(parent_details, user=user)
+ if child.is_accessible_by(user)]
+
+ return get_template('mozreview/review-main.html').render(Context({
+ 'review_request_details': self.review_request_details,
+ 'parent_details': parent_details,
+ 'user': user
+ }))
+
+
class CommitAuthorField(CommitDataBackedField):
"""Field for the author of the review request's commit"""
field_id = AUTHOR_KEY
label = _("Author")
def should_render(self, value):
# Only show this for child review requests as for parent review
# requests different constituent commits can have different authors.
--- a/pylib/mozreview/mozreview/static/mozreview/css/mozilla-theme-reviews.less
+++ b/pylib/mozreview/mozreview/static/mozreview/css/mozilla-theme-reviews.less
@@ -17,17 +17,17 @@
.content .field-container > pre {
font-family: inherit;
border: 0;
padding: 0;
font-size: 90%;
}
- .header, label[for="field_p2rb.commits"] {
+ .header, label[for="field_p2rb.commits"], label[for="field_p2rb.CommitDetail"] {
display: none;
}
}
#mozreview-review-content {
text-align: center;
h1 {