##// END OF EJS Templates
Fixed #585, checks for status of revision where to strict, and made opening pull request with those revision impossible due to previosly set status....
marcink -
r2893:eb180eb1 beta
parent child Browse files
Show More
@@ -172,8 +172,9 b' class PullrequestsController(BaseRepoCon'
172
172
173 @NotAnonymous()
173 @NotAnonymous()
174 def create(self, repo_name):
174 def create(self, repo_name):
175 repo = RepoModel()._get_repo(repo_name)
175 try:
176 try:
176 _form = PullRequestForm()().to_python(request.POST)
177 _form = PullRequestForm(repo.repo_id)().to_python(request.POST)
177 except formencode.Invalid, errors:
178 except formencode.Invalid, errors:
178 log.error(traceback.format_exc())
179 log.error(traceback.format_exc())
179 if errors.error_dict.get('revisions'):
180 if errors.error_dict.get('revisions'):
@@ -327,7 +327,7 b' def UserExtraEmailForm():'
327 return _UserExtraEmailForm
327 return _UserExtraEmailForm
328
328
329
329
330 def PullRequestForm():
330 def PullRequestForm(repo_id):
331 class _PullRequestForm(formencode.Schema):
331 class _PullRequestForm(formencode.Schema):
332 allow_extra_fields = True
332 allow_extra_fields = True
333 filter_extra_fields = True
333 filter_extra_fields = True
@@ -337,7 +337,7 b' def PullRequestForm():'
337 org_ref = v.UnicodeString(strip=True, required=True)
337 org_ref = v.UnicodeString(strip=True, required=True)
338 other_repo = v.UnicodeString(strip=True, required=True)
338 other_repo = v.UnicodeString(strip=True, required=True)
339 other_ref = v.UnicodeString(strip=True, required=True)
339 other_ref = v.UnicodeString(strip=True, required=True)
340 revisions = All(v.NotReviewedRevisions()(), v.UniqueList(not_empty=True))
340 revisions = All(v.NotReviewedRevisions(repo_id)(), v.UniqueList(not_empty=True))
341 review_members = v.UniqueList(not_empty=True)
341 review_members = v.UniqueList(not_empty=True)
342
342
343 pullrequest_title = v.UnicodeString(strip=True, required=True, min=3)
343 pullrequest_title = v.UnicodeString(strip=True, required=True, min=3)
@@ -666,7 +666,7 b' def AttrLoginValidator():'
666 return _validator
666 return _validator
667
667
668
668
669 def NotReviewedRevisions():
669 def NotReviewedRevisions(repo_id):
670 class _validator(formencode.validators.FancyValidator):
670 class _validator(formencode.validators.FancyValidator):
671 messages = {
671 messages = {
672 'rev_already_reviewed':
672 'rev_already_reviewed':
@@ -678,7 +678,10 b' def NotReviewedRevisions():'
678 # check revisions if they are not reviewed, or a part of another
678 # check revisions if they are not reviewed, or a part of another
679 # pull request
679 # pull request
680 statuses = ChangesetStatus.query()\
680 statuses = ChangesetStatus.query()\
681 .filter(ChangesetStatus.revision.in_(value)).all()
681 .filter(ChangesetStatus.revision.in_(value))\
682 .filter(ChangesetStatus.repo_id == repo_id)\
683 .all()
684
682 errors = []
685 errors = []
683 for cs in statuses:
686 for cs in statuses:
684 if cs.pull_request_id:
687 if cs.pull_request_id:
General Comments 0
You need to be logged in to leave comments. Login now