Skip to content

Commit 8f497af

Browse files
committed
Add admin.py for review models
- Legacy-Id: 12128
1 parent 5a87898 commit 8f497af

2 files changed

Lines changed: 95 additions & 6 deletions

File tree

ietf/review/admin.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from django.contrib import admin
2+
3+
from ietf.review.models import (ReviewerSettings, UnavailablePeriod, ReviewWish,
4+
ResultUsedInReviewTeam, TypeUsedInReviewTeam, NextReviewerInTeam,
5+
ReviewRequest)
6+
7+
class ReviewerSettingsAdmin(admin.ModelAdmin):
8+
list_filter = ["team"]
9+
search_fields = ["person__name"]
10+
ordering = ["-id"]
11+
raw_id_fields = ["team", "person"]
12+
13+
admin.site.register(ReviewerSettings, ReviewerSettingsAdmin)
14+
15+
class UnavailablePeriodAdmin(admin.ModelAdmin):
16+
list_display = ["person", "team", "start_date", "end_date", "availability"]
17+
list_display_links = ["person"]
18+
list_filter = ["team"]
19+
date_hierarchy = "start_date"
20+
search_fields = ["person__name"]
21+
ordering = ["-id"]
22+
raw_id_fields = ["team", "person"]
23+
24+
admin.site.register(UnavailablePeriod, UnavailablePeriodAdmin)
25+
26+
class ReviewWishAdmin(admin.ModelAdmin):
27+
list_display = ["person", "team", "doc"]
28+
list_display_links = ["person"]
29+
list_filter = ["team"]
30+
search_fields = ["person__name"]
31+
ordering = ["-id"]
32+
raw_id_fields = ["team", "person", "doc"]
33+
34+
admin.site.register(ReviewWish, ReviewWishAdmin)
35+
36+
class ResultUsedInReviewTeamAdmin(admin.ModelAdmin):
37+
list_display = ["team", "result"]
38+
list_display_links = ["team"]
39+
list_filter = ["team"]
40+
ordering = ["team", "result__order"]
41+
raw_id_fields = ["team"]
42+
43+
admin.site.register(ResultUsedInReviewTeam, ResultUsedInReviewTeamAdmin)
44+
45+
class TypeUsedInReviewTeamAdmin(admin.ModelAdmin):
46+
list_display = ["team", "type"]
47+
list_display_links = ["team"]
48+
list_filter = ["team"]
49+
ordering = ["team", "type__order"]
50+
raw_id_fields = ["team"]
51+
52+
admin.site.register(TypeUsedInReviewTeam, TypeUsedInReviewTeamAdmin)
53+
54+
class NextReviewerInTeamAdmin(admin.ModelAdmin):
55+
list_display = ["team", "next_reviewer"]
56+
list_display_links = ["team"]
57+
ordering = ["team"]
58+
raw_id_fields = ["team", "next_reviewer"]
59+
60+
admin.site.register(NextReviewerInTeam, NextReviewerInTeamAdmin)
61+
62+
class ReviewRequestAdmin(admin.ModelAdmin):
63+
list_display = ["doc", "time", "type", "team", "deadline"]
64+
list_display_links = ["doc"]
65+
list_filter = ["team", "type", "state", "result"]
66+
ordering = ["-id"]
67+
raw_id_fields = ["doc", "team", "requested_by", "reviewer", "review"]
68+
date_hierarchy = "time"
69+
search_fields = ["doc__name", "reviewer__person__name"]
70+
71+
admin.site.register(ReviewRequest, ReviewRequestAdmin)

ietf/review/models.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class ReviewerSettings(models.Model):
1111
"""Keeps track of admin data associated with the reviewer in the
1212
particular team. There will be one record for each combination of
1313
reviewer and team."""
14-
team = models.ForeignKey(Group)
14+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
1515
person = models.ForeignKey(Person)
1616
INTERVALS = [
1717
(7, "Once per week"),
@@ -28,8 +28,11 @@ class ReviewerSettings(models.Model):
2828
def __unicode__(self):
2929
return u"{} in {}".format(self.person, self.team)
3030

31+
class Meta:
32+
verbose_name_plural = "reviewer settings"
33+
3134
class UnavailablePeriod(models.Model):
32-
team = models.ForeignKey(Group)
35+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
3336
person = models.ForeignKey(Person)
3437
start_date = models.DateField(default=datetime.date.today, help_text="Choose the start date so that you can still do a review if it's assigned just before the start date - this usually means you should mark yourself unavailable for assignment some time before you are actually away.")
3538
end_date = models.DateField(blank=True, null=True, help_text="Leaving the end date blank means that the period continues indefinitely. You can end it later.")
@@ -60,40 +63,55 @@ def __unicode__(self):
6063
class ReviewWish(models.Model):
6164
"""Reviewer wishes to review a document when it becomes available for review."""
6265
time = models.DateTimeField(default=datetime.datetime.now)
63-
team = models.ForeignKey(Group)
66+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
6467
person = models.ForeignKey(Person)
6568
doc = models.ForeignKey(Document)
6669

6770
def __unicode__(self):
6871
return u"{} wishes to review {} in {}".format(self.person, self.doc.name, self.team.acronym)
72+
73+
class Meta:
74+
verbose_name_plural = "review wishes"
6975

7076
class ResultUsedInReviewTeam(models.Model):
7177
"""Captures that a result name is valid for a given team for new
7278
reviews. This also implicitly defines which teams are review
7379
teams - if there are no possible review results valid for a given
7480
team, it can't be a review team."""
75-
team = models.ForeignKey(Group)
81+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
7682
result = models.ForeignKey(ReviewResultName)
7783

7884
def __unicode__(self):
7985
return u"{} in {}".format(self.result.name, self.team.acronym)
8086

87+
class Meta:
88+
verbose_name = "review result used in review team setting"
89+
verbose_name_plural = "review result used in review team settings"
90+
8191
class TypeUsedInReviewTeam(models.Model):
8292
"""Captures that a type name is valid for a given team for new
8393
reviews. """
84-
team = models.ForeignKey(Group)
94+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
8595
type = models.ForeignKey(ReviewTypeName)
8696

8797
def __unicode__(self):
8898
return u"{} in {}".format(self.type.name, self.team.acronym)
8999

100+
class Meta:
101+
verbose_name = "review type used in review team setting"
102+
verbose_name_plural = "review type used in review team settings"
103+
90104
class NextReviewerInTeam(models.Model):
91-
team = models.ForeignKey(Group)
105+
team = models.ForeignKey(Group, limit_choices_to=~models.Q(resultusedinreviewteam=None))
92106
next_reviewer = models.ForeignKey(Person)
93107

94108
def __unicode__(self):
95109
return u"{} next in {}".format(self.next_reviewer, self.team)
96110

111+
class Meta:
112+
verbose_name = "next reviewer in team setting"
113+
verbose_name_plural = "next reviewer in team settings"
114+
97115
class ReviewRequest(models.Model):
98116
"""Represents a request for a review and the process it goes through.
99117
There should be one ReviewRequest entered for each combination of

0 commit comments

Comments
 (0)