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 <iamnewt...@gmail.com> 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 <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.

Reply via email to