Hi David, Thanks for your solution :) It worked like expected... Is there a way we can get the repository name on the extension ?
On Tue, Sep 6, 2016 at 8:49 PM, David Trowbridge <trowb...@gmail.com> wrote: > Actually, there's an even more efficient way to compute that state. Plus I > had a bug where I wasn't returning an error message: > > review_exists = review_request.reviews.filter(public=True, > ship_it=True).exclude(user_id=review_request.submitter_id).exists() > > if review_exists: > return True > else: > return False, 'No "ship-it" reviews done by other users' > > -David > > On Tue, Sep 6, 2016 at 8:43 PM David Trowbridge <trowb...@gmail.com> > wrote: > >> Hi, >> >> If what you're trying to do is mark the review request as "not approved" >> if it has not been reviewed by someone other than the author, I think >> what you want to do is loop over all the public reviews associated with >> the review request. which is not done by the original submitter of the >> change. That would look something like this: >> >> def is_approved(self, review_request, prev_approved, prev_failure): >> if not prev_approved: >> return prev_approved, prev_failure >> >> for review in review_request.reviews.filter(public=True, >> ship_it=True): >> if review.user_id != review_request.submitter_id: >> return True >> >> return False >> >> >> If you want to trigger an e-mail when a review is published by the >> original author which includes a ship-it, then the >> ReviewRequestApprovalHook isn't the right place to do that. That hook gets >> run whenever the API is accessed (to compute and return the "approved" >> state therein). To send an e-mail, you'd want to attach a listener to >> reviewboard.reviews.signals.review_published and send your email from >> there. >> >> With all of this, if people are trying to commit code without code >> review, you really have a cultural problem rather than a technical one, and >> you'll be better served by addressing that rather than trying to build >> technical roadblocks. >> >> -David >> >> On Tue, Sep 6, 2016 at 8:33 PM Dave Ca <iamnewt...@gmail.com> wrote: >> >>> how to get the username of the reviewer who clicked ship it? I need to >>> validate certain condition and send out a mail if the submitter and >>> reviewer is same. >>> >>> Here is the code: >>> >>> from __future__ import unicode_literals >>> >>> from django.conf import settings >>> from django.conf.urls import patterns, include >>> from reviewboard.extensions.base import Extension >>> from reviewboard.extensions.hooks import ReviewRequestApprovalHook >>> import io >>> import os >>> import requests >>> import time >>> >>> >>> class SampleApprovalHook(ReviewRequestApprovalHook): >>> def is_approved(self, review_request, prev_approved, prev_failure): >>> if not prev_approved: >>> return prev_approved, prev_failure >>> elif (review_request.shipit_count < 3): >>> file = open(os.path.join('/tmp',"approvedTest.txt"), >>> "w") >>> file.write("SUBMITTED BY:") >>> file.write(review_request.submitter.username) >>> file.write("REVIEWED BY:") >>> file.write(review_request.approved.username) >>> file.close() >>> return True; >>> >>> class TestHook(Extension): >>> metadata = { >>> 'Name': 'Test', >>> 'Summary': 'Describe your extension here.', >>> } >>> is_configurable = True >>> >>> def initialize(self): >>> # Your extension initialization is done here. >>> SampleApprovalHook(self) >>> pass >>> >>> -- >>> Supercharge your Review Board with Power Pack: >>> https://www.reviewboard.org/powerpack/ >>> Want us to host Review Board for you? Check out RBCommons: >>> https://rbcommons.com/ >>> Happy user? Let us know! https://www.reviewboard.org/users/ >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "reviewboard" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to reviewboard+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > Supercharge your Review Board with Power Pack: > https://www.reviewboard.org/powerpack/ > Want us to host Review Board for you? Check out RBCommons: > https://rbcommons.com/ > Happy user? Let us know! https://www.reviewboard.org/users/ > --- > You received this message because you are subscribed to the Google Groups > "reviewboard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to reviewboard+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.