def shutdown(self): # Restore the built-in opcode generator. set_diff_opcode_generator_class(self.original_opcode_generator) # We have to put the TestingDone field back before we shut down # in order to get the instance back to its original state. main_fieldset = get_review_request_fieldset('main') if not get_review_request_field('testing_done'): main_fieldset.add_field(TestingDoneField) info_fieldset = get_review_request_fieldset('info') if not get_review_request_field('branch'): info_fieldset.add_field(BranchField) if not get_review_request_field('depends_on'): info_fieldset.add_field(DependsOnField) if not get_review_request_field('blocks'): info_fieldset.add_field(BlocksField) super(MozReviewExtension, self).shutdown()
def initialize(self): AuthBackendHook(self, BugzillaBackend) self.original_opcode_generator = get_diff_opcode_generator_class() set_diff_opcode_generator_class(NoFilterDiffOpcodeGenerator) initialize_pulse_handlers(self) URLHook(self, patterns('', url(r'^mozreview/', include('mozreview.urls')))) HeaderDropdownActionHook( self, actions=[{ 'id': 'nav-mozreview-menu', 'label': 'MozReview', 'items': [ { 'label': 'User Guide', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview-user.html', }, { 'label': 'Mercurial for Mozillians', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/index.html', }, { 'label': 'Hacking MozReview', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/hacking-mozreview.html', }, { 'label': 'File a Bug', 'url': 'https://bugzilla.mozilla.org/enter_bug.cgi?product=MozReview&component=General', }, ], }]) review_request_dropdown_actions = [ { 'label': 'Automation', 'id': 'automation-menu', 'items': [ { 'id': 'autoland-try-trigger', 'label': 'Trigger a Try Build', 'url': '#', }, { 'id': 'autoland-trigger', 'label': 'Land Commits', 'url': '#', }, ], }, ] ReviewRequestDropdownActionHook( self, actions=review_request_dropdown_actions) DiffViewerDropdownActionHook(self, actions=review_request_dropdown_actions) # Hide fields from all review requests that are not used by Mozilla # developers. main_fieldset = get_review_request_fieldset('main') testing_done_field = get_review_request_field('testing_done') if testing_done_field: main_fieldset.remove_field(testing_done_field) info_fieldset = get_review_request_fieldset('info') for field_name in ('branch', 'depends_on', 'blocks'): field = get_review_request_field(field_name) if field: info_fieldset.remove_field(field) # We "monkey patch" (yes, I feel dirty) the should_render method on # the description field so that it is not rendered description_field = get_review_request_field('description') if description_field: self.old_desc_should_render = description_field.should_render description_field.should_render = lambda self, value: False # All of our review request styling is injected via # review-stylings-css, which in turn loads the review.css static # bundle. TemplateHook(self, 'base-css', 'mozreview/review-stylings-css.html', apply_to=review_request_url_names) TemplateHook(self, 'base-css', 'mozreview/viewdiff-stylings-css.html', apply_to=diffviewer_url_names) TemplateHook( self, 'base-css', 'mozreview/admin-stylings-css.html', apply_to=['reviewboard.extensions.views.configure_extension']) TemplateHook(self, 'base-scripts-post', 'mozreview/review-scripts-js.html', apply_to=review_request_url_names) TemplateHook(self, 'base-extrahead', 'mozreview/base-extrahead-login-form.html', apply_to=['login']) TemplateHook(self, 'before-login-form', 'mozreview/before-login-form.html', apply_to=['login']) TemplateHook(self, 'after-login-form', 'mozreview/after-login-form.html', apply_to=['login']) TemplateHook(self, 'base-after-content', '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) TemplateHook(self, 'base-after-content', 'mozreview/diff-data.html', apply_to=diffviewer_url_names) TemplateHook(self, 'review-summary-body', 'mozreview/review_summary_flag_info.html') ReviewRequestFieldsHook(self, 'main', [CommitsListField]) ReviewRequestFieldsHook(self, 'main', [CommitDetailField]) CommitContextTemplateHook(self, 'mozreview-pre-review-request-box', 'mozreview/commits.html', apply_to=review_request_url_names) # The above hack forced Commits at the top, but the rest of these # fields are fine below the Description. ReviewRequestFieldsHook(self, 'main', [CombinedReviewersField]) ReviewRequestFieldsHook(self, 'main', [TryField]) ReviewRequestFieldsHook(self, 'main', [BaseCommitField]) ReviewRequestFieldsHook(self, 'main', [FileDiffReviewerField]) ReviewRequestFieldsHook(self, 'info', [CommitAuthorField]) # Use a custom method to calculate a review approval state. MozReviewApprovalHook(self) # Instantiate the various signal handlers initialize_signal_handlers(self) HostingServiceHook(self, HMORepository) HostingServiceHook(self, BMOBugTracker)
def initialize(self): self.original_opcode_generator = get_diff_opcode_generator_class() set_diff_opcode_generator_class(NoFilterDiffOpcodeGenerator) initialize_pulse_handlers(self) URLHook(self, patterns('', url(r'^mozreview/', include('mozreview.urls')))) HeaderDropdownActionHook(self, actions=[{ 'label': 'MozReview', 'items': [ { 'label': 'User Guide', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview-user.html', }, { 'label': 'Mercurial for Mozillians', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/index.html', }, { 'label': 'Hacking MozReview', 'url': 'https://mozilla-version-control-tools.readthedocs.io/en/latest/hacking-mozreview.html', }, { 'label': 'File a Bug', 'url': 'https://bugzilla.mozilla.org/enter_bug.cgi?product=MozReview&component=General', }, ], }]) ReviewRequestDropdownActionHook(self, actions=[ { 'label': 'Automation', 'id': 'automation-menu', 'items': [ { 'id': 'autoland-try-trigger', 'label': 'Trigger a Try Build', 'url': '#', }, { 'id': 'autoland-trigger', 'label': 'Land Commits', 'url': '#', }, ], }, ]) # Hide fields from all review requests that are not used by Mozilla # developers. main_fieldset = get_review_request_fieldset('main') testing_done_field = get_review_request_field('testing_done') if testing_done_field: main_fieldset.remove_field(testing_done_field) info_fieldset = get_review_request_fieldset('info') for field_name in ('branch', 'depends_on', 'blocks'): field = get_review_request_field(field_name) if field: info_fieldset.remove_field(field) # We "monkey patch" (yes, I feel dirty) the should_render method on # the description field so that it is not rendered for parent review # requests. description_field = get_review_request_field('description') if description_field: description_field.should_render = (lambda self, value: not is_parent(self.review_request_details)) # All of our review request styling is injected via # review-stylings-css, which in turn loads the review.css static # bundle. TemplateHook(self, 'base-css', 'mozreview/review-stylings-css.html', apply_to=review_request_url_names) TemplateHook(self, 'base-css', 'mozreview/viewdiff-stylings-css.html', apply_to=diffviewer_url_names) TemplateHook(self, 'base-css', 'mozreview/admin-stylings-css.html', apply_to=['reviewboard.extensions.views.configure_extension']) TemplateHook(self, 'base-scripts-post', 'mozreview/review-scripts-js.html', apply_to=review_request_url_names) TemplateHook(self, 'base-extrahead', 'mozreview/base-extrahead-login-form.html', apply_to=['login']) TemplateHook(self, 'before-login-form', 'mozreview/before-login-form.html', apply_to=['login']) TemplateHook(self, 'after-login-form', 'mozreview/after-login-form.html', apply_to=['login']) TemplateHook(self, 'base-after-content', 'mozreview/scm_level.html') TemplateHook(self, 'base-after-content', 'mozreview/repository.html') ReviewRequestFieldsHook(self, 'main', [CommitsListField]) # This forces the Commits field to be the top item. main_fieldset.field_classes.insert(0, main_fieldset.field_classes.pop()) # The above hack forced Commits at the top, but the rest of these # fields are fine below the Description. ReviewRequestFieldsHook(self, 'main', [CombinedReviewersField]) ReviewRequestFieldsHook(self, 'main', [TryField]) ReviewRequestFieldsHook(self, 'main', [BaseCommitField]) ReviewRequestFieldsHook(self, 'main', [FileDiffReviewerField]) ReviewRequestFieldsHook(self, 'info', [CommitAuthorField]) # We want pull to appear first as it is the more robust way of # retrieving changesets. ReviewRequestFieldsHook(self, 'info', [PullCommitField]) ReviewRequestFieldsHook(self, 'info', [ImportCommitField]) # Use a custom method to calculate a review approval state. MozReviewApprovalHook(self) # Instantiate the various signal handlers initialize_signal_handlers(self) HostingServiceHook(self, HMORepository)