|
5 | 5 | from django.http import Http404 |
6 | 6 |
|
7 | 7 | from .ajax import _archivesAPI |
8 | | -from .models import MailThread, Patch, PatchOnCommitFest, Tag, TargetVersion |
| 8 | +from .models import Patch, PatchOnCommitFest, Tag, TargetVersion |
9 | 9 | from .widgets import ThreadPickWidget |
10 | 10 |
|
11 | 11 |
|
@@ -214,91 +214,6 @@ def clean_threadmsgid(self): |
214 | 214 | return self.cleaned_data["threadmsgid"] |
215 | 215 |
|
216 | 216 |
|
217 | | -def _fetch_thread_choices(patch): |
218 | | - for mt in patch.mailthread_set.order_by("-latestmessage"): |
219 | | - ti = sorted( |
220 | | - _archivesAPI("/message-id.json/%s" % mt.messageid), |
221 | | - key=lambda x: x["date"], |
222 | | - reverse=True, |
223 | | - ) |
224 | | - yield [ |
225 | | - mt.subject, |
226 | | - [ |
227 | | - ( |
228 | | - "%s,%s" % (mt.messageid, t["msgid"]), |
229 | | - "From %s at %s" % (t["from"], t["date"]), |
230 | | - ) |
231 | | - for t in ti |
232 | | - ], |
233 | | - ] |
234 | | - |
235 | | - |
236 | | -review_state_choices = ( |
237 | | - (0, "Tested"), |
238 | | - (1, "Passed"), |
239 | | -) |
240 | | - |
241 | | - |
242 | | -def reviewfield(label): |
243 | | - return forms.MultipleChoiceField( |
244 | | - choices=review_state_choices, |
245 | | - label=label, |
246 | | - widget=forms.CheckboxSelectMultiple, |
247 | | - required=False, |
248 | | - ) |
249 | | - |
250 | | - |
251 | | -class CommentForm(forms.Form): |
252 | | - responseto = forms.ChoiceField(choices=[], required=True, label="In response to") |
253 | | - |
254 | | - # Specific checkbox fields for reviews |
255 | | - review_installcheck = reviewfield("make installcheck-world") |
256 | | - review_implements = reviewfield("Implements feature") |
257 | | - review_spec = reviewfield("Spec compliant") |
258 | | - review_doc = reviewfield("Documentation") |
259 | | - |
260 | | - message = forms.CharField(required=True, widget=forms.Textarea) |
261 | | - newstatus = forms.ChoiceField( |
262 | | - choices=PatchOnCommitFest.OPEN_STATUS_CHOICES(), label="New status" |
263 | | - ) |
264 | | - |
265 | | - def __init__(self, patch, poc, is_review, *args, **kwargs): |
266 | | - super(CommentForm, self).__init__(*args, **kwargs) |
267 | | - self.is_review = is_review |
268 | | - |
269 | | - self.fields["responseto"].choices = _fetch_thread_choices(patch) |
270 | | - self.fields["newstatus"].initial = poc.status |
271 | | - if not is_review: |
272 | | - del self.fields["review_installcheck"] |
273 | | - del self.fields["review_implements"] |
274 | | - del self.fields["review_spec"] |
275 | | - del self.fields["review_doc"] |
276 | | - |
277 | | - def clean_responseto(self): |
278 | | - try: |
279 | | - (threadid, respid) = self.cleaned_data["responseto"].split(",") |
280 | | - self.thread = MailThread.objects.get(messageid=threadid) |
281 | | - self.respid = respid |
282 | | - except MailThread.DoesNotExist: |
283 | | - raise ValidationError("Selected thread appears to no longer exist") |
284 | | - except Exception: |
285 | | - raise ValidationError("Invalid message selected") |
286 | | - return self.cleaned_data["responseto"] |
287 | | - |
288 | | - def clean(self): |
289 | | - if self.is_review: |
290 | | - for fn, f in self.fields.items(): |
291 | | - if fn.startswith("review_") and fn in self.cleaned_data: |
292 | | - if ( |
293 | | - "1" in self.cleaned_data[fn] |
294 | | - and "0" not in self.cleaned_data[fn] |
295 | | - ): |
296 | | - self.errors[fn] = ( |
297 | | - ("Cannot pass a test without performing it!"), |
298 | | - ) |
299 | | - return self.cleaned_data |
300 | | - |
301 | | - |
302 | 217 | class BulkEmailForm(forms.Form): |
303 | 218 | reviewers = forms.CharField(required=False, widget=HiddenInput()) |
304 | 219 | authors = forms.CharField(required=False, widget=HiddenInput()) |
|
0 commit comments