Skip to content
Snippets Groups Projects
Commit b1ab6895 authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Merge branch 'admin-preselect' into 'master'

preselect next active event when creating objects as admin

Closes #16

See merge request kif/akplanning!17
parents a32cd663 37c2acd3
No related branches found
No related tags found
1 merge request!17preselect next active event when creating objects as admin
...@@ -35,6 +35,13 @@ class AKOwnerAdmin(admin.ModelAdmin): ...@@ -35,6 +35,13 @@ class AKOwnerAdmin(admin.ModelAdmin):
list_editable = [] list_editable = []
ordering = ['name'] ordering = ['name']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKOwnerAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(AKCategory) @admin.register(AKCategory)
class AKCategoryAdmin(admin.ModelAdmin): class AKCategoryAdmin(admin.ModelAdmin):
...@@ -44,6 +51,13 @@ class AKCategoryAdmin(admin.ModelAdmin): ...@@ -44,6 +51,13 @@ class AKCategoryAdmin(admin.ModelAdmin):
list_editable = ['color'] list_editable = ['color']
ordering = ['name'] ordering = ['name']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKCategoryAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(AKTrack) @admin.register(AKTrack)
class AKTrackAdmin(admin.ModelAdmin): class AKTrackAdmin(admin.ModelAdmin):
...@@ -53,6 +67,13 @@ class AKTrackAdmin(admin.ModelAdmin): ...@@ -53,6 +67,13 @@ class AKTrackAdmin(admin.ModelAdmin):
list_editable = ['color'] list_editable = ['color']
ordering = ['name'] ordering = ['name']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKTrackAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(AKTag) @admin.register(AKTag)
class AKTagAdmin(admin.ModelAdmin): class AKTagAdmin(admin.ModelAdmin):
...@@ -71,6 +92,13 @@ class AKRequirementAdmin(admin.ModelAdmin): ...@@ -71,6 +92,13 @@ class AKRequirementAdmin(admin.ModelAdmin):
list_editable = [] list_editable = []
ordering = ['name'] ordering = ['name']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKRequirementAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
class WishFilter(SimpleListFilter): class WishFilter(SimpleListFilter):
title = _("Wish") # a label for our filter title = _("Wish") # a label for our filter
...@@ -113,6 +141,13 @@ class AKAdmin(admin.ModelAdmin): ...@@ -113,6 +141,13 @@ class AKAdmin(admin.ModelAdmin):
is_wish.boolean = True is_wish.boolean = True
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(Room) @admin.register(Room)
class RoomAdmin(admin.ModelAdmin): class RoomAdmin(admin.ModelAdmin):
...@@ -122,6 +157,13 @@ class RoomAdmin(admin.ModelAdmin): ...@@ -122,6 +157,13 @@ class RoomAdmin(admin.ModelAdmin):
list_editable = [] list_editable = []
ordering = ['building', 'name'] ordering = ['building', 'name']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(RoomAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(AKSlot) @admin.register(AKSlot)
class AKSlotAdmin(admin.ModelAdmin): class AKSlotAdmin(admin.ModelAdmin):
...@@ -142,6 +184,13 @@ class AKSlotAdmin(admin.ModelAdmin): ...@@ -142,6 +184,13 @@ class AKSlotAdmin(admin.ModelAdmin):
timezone.activate("UTC") timezone.activate("UTC")
return super().get_form(request, obj, change, **kwargs) return super().get_form(request, obj, change, **kwargs)
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event':
kwargs['initial'] = Event.get_next_active()
return super(AKSlotAdmin, self).formfield_for_foreignkey(
db_field, request, **kwargs
)
@admin.register(Availability) @admin.register(Availability)
class AvailabilityAdmin(admin.ModelAdmin): class AvailabilityAdmin(admin.ModelAdmin):
......
...@@ -45,6 +45,10 @@ class Event(models.Model): ...@@ -45,6 +45,10 @@ class Event(models.Model):
def get_by_slug(slug): def get_by_slug(slug):
return Event.objects.get(slug=slug) return Event.objects.get(slug=slug)
@staticmethod
def get_next_active():
return Event.objects.filter(active=True).order_by('start').first()
class AKOwner(models.Model): class AKOwner(models.Model):
""" An AKOwner describes the person organizing/holding an AK. """ An AKOwner describes the person organizing/holding an AK.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment