Skip to content

Commit 05463a5

Browse files
rename BoardOfDirectors.reviewers to claim_reviewers
Signed-off-by: Rudransh Shrivastava <rudransh.shrivastava@owasp.org>
1 parent 82e6975 commit 05463a5

15 files changed

Lines changed: 74 additions & 43 deletions

backend/src/apps/owasp/admin/board_of_directors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class BoardOfDirectorsAdmin(admin.ModelAdmin):
99
"""Admin for Snapshot model."""
1010

11-
filter_horizontal = ("reviewers",)
11+
filter_horizontal = ("claim_reviewers",)
1212
list_filter = ("year",)
1313
ordering = ("-year",)
1414
search_fields = ("year",)

backend/src/apps/owasp/api/internal/mutations/board_candidate_claim_review.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def create_board_candidate_claim_review(
8787
user = info.context.request.user
8888

8989
is_reviewer = BoardOfDirectors.objects.filter(
90-
year=input_data.year, reviewers=user
90+
year=input_data.year, claim_reviewers=user
9191
).exists()
9292
if not user.github_user or not is_reviewer:
9393
return ReviewResult(ok=False, code="FORBIDDEN", message=ACCESS_DENIED_MSG)

backend/src/apps/owasp/api/internal/nodes/board_candidate_claim.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ def reviews(
6060
if is_self or root.status == BoardCandidateClaim.Status.APPROVED:
6161
return root.reviews.all()
6262

63-
is_reviewer = user.is_authenticated and root.board.reviewers.filter(id=user.id).exists()
63+
is_reviewer = (
64+
user.is_authenticated and root.board.claim_reviewers.filter(id=user.id).exists()
65+
)
6466
if is_reviewer:
6567
return root.reviews.filter(reviewer=user)
6668
return []

backend/src/apps/owasp/api/internal/nodes/board_of_directors.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ def owasp_url(self, root: BoardOfDirectors) -> str:
4343
def reviewer(self, root: BoardOfDirectors, login: str) -> UserNode | None:
4444
"""Resolve board election reviewer."""
4545
user = (
46-
root.reviewers.select_related("github_user").filter(github_user__login=login).first()
46+
root.claim_reviewers.select_related("github_user")
47+
.filter(github_user__login=login)
48+
.first()
4749
)
4850
return user.github_user if user else None

backend/src/apps/owasp/api/internal/queries/board_candidate_claim.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def board_candidate_claims(
3232
user = info.context.request.user
3333
is_reviewer = (
3434
user.is_authenticated
35-
and BoardOfDirectors.objects.filter(year=year, reviewers=user).exists()
35+
and BoardOfDirectors.objects.filter(year=year, claim_reviewers=user).exists()
3636
)
3737
claims = BoardCandidateClaim.objects.filter(
3838
board__year=year,
@@ -126,7 +126,9 @@ def board_candidate_claim(
126126
and user.github_user is not None
127127
and user.github_user == claim.candidate.member
128128
)
129-
is_reviewer = user.is_authenticated and claim.board.reviewers.filter(id=user.id).exists()
129+
is_reviewer = (
130+
user.is_authenticated and claim.board.claim_reviewers.filter(id=user.id).exists()
131+
)
130132

131133
return (
132134
claim

backend/src/apps/owasp/api/internal/queries/board_candidate_claim_evidence.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def get_claim_evidence(
4444
and user.github_user == evidence.claim.candidate.member
4545
)
4646
is_reviewer = (
47-
user.is_authenticated and evidence.claim.board.reviewers.filter(id=user.id).exists()
47+
user.is_authenticated and evidence.claim.board.claim_reviewers.filter(id=user.id).exists()
4848
)
4949

5050
return (
@@ -92,7 +92,9 @@ def board_candidate_claim_evidences(
9292
and claim.candidate.member is not None
9393
and user.github_user == claim.candidate.member
9494
)
95-
is_reviewer = user.is_authenticated and claim.board.reviewers.filter(id=user.id).exists()
95+
is_reviewer = (
96+
user.is_authenticated and claim.board.claim_reviewers.filter(id=user.id).exists()
97+
)
9698

9799
return (
98100
claim.evidences.filter(is_removed=False)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Generated by Django 6.0.6 on 2026-08-08 15:51
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("owasp", "0081_alter_boardcandidateclaim_board_and_more"),
10+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
]
12+
13+
operations = [
14+
migrations.RemoveField(
15+
model_name="boardofdirectors",
16+
name="reviewers",
17+
),
18+
migrations.AddField(
19+
model_name="boardofdirectors",
20+
name="claim_reviewers",
21+
field=models.ManyToManyField(
22+
blank=True,
23+
help_text="Reviewers for this year's board election claims.",
24+
related_name="+",
25+
to=settings.AUTH_USER_MODEL,
26+
verbose_name="Claim reviewers",
27+
),
28+
),
29+
]

backend/src/apps/owasp/models/board_candidate_claim_review.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def clean(self) -> None:
6464
err = "Review can only be added to submitted claims."
6565
raise ValidationError(err)
6666

67-
if not self.claim.board.reviewers.filter(id=self.reviewer.id).exists():
67+
if not self.claim.board.claim_reviewers.filter(id=self.reviewer.id).exists():
6868
err = "Only Claim Reviewers can review claims."
6969
raise ValidationError(err)
7070

backend/src/apps/owasp/models/board_of_directors.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ class Meta:
3030

3131
created_at = models.DateTimeField(auto_now_add=True)
3232
updated_at = models.DateTimeField(auto_now=True)
33-
reviewers = models.ManyToManyField(
33+
claim_reviewers = models.ManyToManyField(
3434
"nest.User",
35-
verbose_name="Reviewers",
35+
verbose_name="Claim reviewers",
3636
related_name="+",
3737
blank=True,
3838
help_text="Reviewers for this year's board election claims.",

backend/tests/unit/apps/owasp/admin/board_of_directors_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ class TestBoardOfDirectorsAdmin:
1111
"""Tests for BoardOfDirectorsAdmin."""
1212

1313
def test_filter_horizontal(self):
14-
"""Test filter_horizontal includes reviewers."""
14+
"""Test filter_horizontal includes claim_reviewers."""
1515
admin_instance = BoardOfDirectorsAdmin(BoardOfDirectors, AdminSite())
1616

17-
assert admin_instance.filter_horizontal == ("reviewers",)
17+
assert admin_instance.filter_horizontal == ("claim_reviewers",)
1818

1919
def test_list_filter(self):
2020
"""Test list_filter includes year."""

0 commit comments

Comments
 (0)