Skip to content

Commit 96b28c9

Browse files
authored
Sponsorship form: Do not display benefits marked as unavailable in admin (#2122)
* Sponsorship form: Do not display benefits marked as unavailable in admin * update help-text for benefit.unavailable
1 parent 37ab5a0 commit 96b28c9

File tree

5 files changed

+28
-4
lines changed

5 files changed

+28
-4
lines changed

sponsors/admin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class SponsorshipBenefitAdmin(PolymorphicInlineSupportMixin, OrderedModelAdmin):
116116
"short_name",
117117
"package_only",
118118
"internal_value",
119+
"unavailable",
119120
"move_up_down_links",
120121
]
121122
list_filter = ["program", "year", "package_only", "packages", "new", "standalone", "unavailable"]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 2.2.24 on 2022-08-16 15:17
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('sponsors', '0091_sponsorshippackage_allow_a_la_carte'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='sponsorshipbenefit',
15+
name='unavailable',
16+
field=models.BooleanField(default=False, help_text='If selected, this benefit will not be visible or available to applicants.', verbose_name='Benefit is unavailable'),
17+
),
18+
]

sponsors/models/managers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,21 @@ def without_conflicts(self):
8989
return self.filter(conflicts__isnull=True)
9090

9191
def a_la_carte(self):
92-
return self.annotate(num_packages=Count("packages")).filter(num_packages=0, standalone=False)
92+
return self.annotate(num_packages=Count("packages")).filter(num_packages=0, standalone=False).exclude(unavailable=True)
9393

9494
def standalone(self):
95-
return self.filter(standalone=True)
95+
return self.filter(standalone=True).exclude(unavailable=True)
9696

9797
def with_packages(self):
9898
return (
9999
self.annotate(num_packages=Count("packages"))
100100
.exclude(Q(num_packages=0) | Q(standalone=True))
101+
.exclude(unavailable=True)
101102
.order_by("-num_packages", "order")
102103
)
103104

104105
def from_year(self, year):
105-
return self.filter(year=year)
106+
return self.filter(year=year).exclude(unavailable=True)
106107

107108
def from_current_year(self):
108109
from sponsors.models import SponsorshipCurrentYear

sponsors/models/sponsorship.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ class SponsorshipBenefit(OrderedModel):
414414
unavailable = models.BooleanField(
415415
default=False,
416416
verbose_name="Benefit is unavailable",
417-
help_text="If selected, this benefit will not be available to applicants.",
417+
help_text="If selected, this benefit will not be visible or available to applicants.",
418418
)
419419
standalone = models.BooleanField(
420420
default=False,

sponsors/tests/test_managers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,13 @@ def setUp(self):
151151
package = baker.make(SponsorshipPackage)
152152
current_year = SponsorshipCurrentYear.get_year()
153153
self.regular_benefit = baker.make(SponsorshipBenefit, year=current_year)
154+
self.regular_benefit_unavailable = baker.make(SponsorshipBenefit, year=current_year, unavailable=True)
155+
self.regular_benefit.packages.add(package)
154156
self.regular_benefit.packages.add(package)
155157
self.a_la_carte = baker.make(SponsorshipBenefit, year=current_year-1)
158+
self.a_la_carte_unavail = baker.make(SponsorshipBenefit, year=current_year-1, unavailable=True)
156159
self.standalone = baker.make(SponsorshipBenefit, standalone=True)
160+
self.standalone_unavail = baker.make(SponsorshipBenefit, standalone=True, unavailable=True)
157161

158162
def test_a_la_carte_queryset(self):
159163
qs = SponsorshipBenefit.objects.a_la_carte()

0 commit comments

Comments
 (0)