Skip to content

Commit 0197bd5

Browse files
authored
Add some assitive ordering and reprs for objects related to Sponsorship years in Django Admin (python#2111)
1 parent 723539e commit 0197bd5

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

sponsors/admin.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,10 @@ class ProvidedFileAssetConfigurationInline(StackedPolymorphicInline.Child):
109109
class SponsorshipBenefitAdmin(PolymorphicInlineSupportMixin, OrderedModelAdmin):
110110
change_form_template = "sponsors/admin/sponsorshipbenefit_change_form.html"
111111
inlines = [BenefitFeatureConfigurationInline]
112-
ordering = ("program", "order")
112+
ordering = ("-year", "program", "order")
113113
list_display = [
114114
"program",
115+
"year",
115116
"short_name",
116117
"package_only",
117118
"internal_value",
@@ -170,7 +171,7 @@ def update_related_sponsorships(self, *args, **kwargs):
170171

171172
@admin.register(SponsorshipPackage)
172173
class SponsorshipPackageAdmin(OrderedModelAdmin):
173-
ordering = ("order",)
174+
ordering = ("-year", "order",)
174175
list_display = ["name", "year", "advertise", "move_up_down_links"]
175176
list_filter = ["advertise", "year"]
176177
search_fields = ["name"]
@@ -197,8 +198,8 @@ class SponsorContactInline(admin.TabularInline):
197198

198199
class SponsorshipsInline(admin.TabularInline):
199200
model = Sponsorship
200-
fields = ["link", "status", "applied_on", "start_date", "end_date"]
201-
readonly_fields = ["link", "status", "applied_on", "start_date", "end_date"]
201+
fields = ["link", "status", "year", "applied_on", "start_date", "end_date"]
202+
readonly_fields = ["link", "status", "year", "applied_on", "start_date", "end_date"]
202203
can_delete = False
203204
extra = 0
204205

sponsors/models/sponsorship.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ class SponsorshipPackage(OrderedModel):
5151
year = models.PositiveIntegerField(null=True, validators=YEAR_VALIDATORS, db_index=True)
5252

5353
def __str__(self):
54-
return self.name
54+
return f'{self.name} ({self.year})'
5555

56-
class Meta(OrderedModel.Meta):
57-
pass
56+
class Meta:
57+
ordering = ('-year', 'order',)
5858

5959
def has_user_customization(self, benefits):
6060
"""
@@ -199,7 +199,7 @@ def user_customizations(self):
199199
return self.package.get_user_customization(benefits)
200200

201201
def __str__(self):
202-
repr = f"{self.level_name} ({self.get_status_display()}) for sponsor {self.sponsor.name}"
202+
repr = f"{self.level_name} - {self.year} - ({self.get_status_display()}) for sponsor {self.sponsor.name}"
203203
if self.start_date and self.end_date:
204204
fmt = "%m/%d/%Y"
205205
start = self.start_date.strftime(fmt)
@@ -498,7 +498,7 @@ def related_sponsorships(self):
498498
return Sponsorship.objects.filter(id__in=Subquery(ids_qs))
499499

500500
def __str__(self):
501-
return f"{self.program} > {self.name}"
501+
return f"{self.program} > {self.name} ({self.year})"
502502

503503
def _short_name(self):
504504
return truncatechars(self.name, 42)

0 commit comments

Comments
 (0)