Mercurial > kallithea
comparison kallithea/model/changeset_status.py @ 7429:471b29a2f302
model: changeset_status: remove support for 'dont_allow_on_closed_pull_request' and 'StatusChangeOnClosedPullRequestError'
Previous commit removed the only usage of this parameter and exception.
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Sat, 10 Nov 2018 21:35:54 +0100 |
parents | 7691290837d2 |
children | 0a277465fddf |
comparison
equal
deleted
inserted
replaced
7428:9de5c174a37c | 7429:471b29a2f302 |
---|---|
27 | 27 |
28 import logging | 28 import logging |
29 from sqlalchemy.orm import joinedload | 29 from sqlalchemy.orm import joinedload |
30 | 30 |
31 from kallithea.model.db import ChangesetStatus, PullRequest, Repository, User, Session | 31 from kallithea.model.db import ChangesetStatus, PullRequest, Repository, User, Session |
32 from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError | |
33 | 32 |
34 log = logging.getLogger(__name__) | 33 log = logging.getLogger(__name__) |
35 | 34 |
36 | 35 |
37 class ChangesetStatusModel(object): | 36 class ChangesetStatusModel(object): |
131 if as_str: | 130 if as_str: |
132 return str(status.status) if status else ChangesetStatus.DEFAULT | 131 return str(status.status) if status else ChangesetStatus.DEFAULT |
133 return status | 132 return status |
134 | 133 |
135 def set_status(self, repo, status, user, comment, revision=None, | 134 def set_status(self, repo, status, user, comment, revision=None, |
136 pull_request=None, dont_allow_on_closed_pull_request=False): | 135 pull_request=None): |
137 """ | 136 """ |
138 Creates new status for changeset or updates the old ones bumping their | 137 Creates new status for changeset or updates the old ones bumping their |
139 version, leaving the current status at the value of 'status'. | 138 version, leaving the current status at the value of 'status'. |
140 | 139 |
141 :param repo: | 140 :param repo: |
142 :param status: | 141 :param status: |
143 :param user: | 142 :param user: |
144 :param comment: | 143 :param comment: |
145 :param revision: | 144 :param revision: |
146 :param pull_request: | 145 :param pull_request: |
147 :param dont_allow_on_closed_pull_request: don't allow a status change | |
148 if last status was for pull request and it's closed. We shouldn't | |
149 mess around this manually | |
150 """ | 146 """ |
151 repo = Repository.guess_instance(repo) | 147 repo = Repository.guess_instance(repo) |
152 | 148 |
153 q = ChangesetStatus.query() | 149 q = ChangesetStatus.query() |
154 if revision is not None: | 150 if revision is not None: |
163 q = q.filter(ChangesetStatus.repo == repo) | 159 q = q.filter(ChangesetStatus.repo == repo) |
164 q = q.filter(ChangesetStatus.revision.in_(pull_request.revisions)) | 160 q = q.filter(ChangesetStatus.revision.in_(pull_request.revisions)) |
165 revisions = pull_request.revisions | 161 revisions = pull_request.revisions |
166 cur_statuses = q.all() | 162 cur_statuses = q.all() |
167 | 163 |
168 # if statuses exists and last is associated with a closed pull request | |
169 # we need to check if we can allow this status change | |
170 if (dont_allow_on_closed_pull_request and cur_statuses | |
171 and getattr(cur_statuses[0].pull_request, 'status', '') | |
172 == PullRequest.STATUS_CLOSED): | |
173 raise StatusChangeOnClosedPullRequestError( | |
174 'Changing status on closed pull request is not allowed' | |
175 ) | |
176 | |
177 # update all current statuses with older version | 164 # update all current statuses with older version |
178 for st in cur_statuses: | 165 for st in cur_statuses: |
179 st.version += 1 | 166 st.version += 1 |
180 | 167 |
181 new_statuses = [] | 168 new_statuses = [] |