Dave, The ReviewRequest model has a foreign key to Repository, so you can do review_request.repository.name
-David On Wed, Sep 7, 2016 at 1:44 PM Dave Ca <[email protected]> wrote: > 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 <[email protected]> > 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 <[email protected]> >> 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 <[email protected]> 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 [email protected]. >>>> 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 [email protected]. >> 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
