Skip to content
Snippets Groups Projects
Commit 1c119620 authored by Nadja Geisler's avatar Nadja Geisler :sunny:
Browse files

preselect next active event when creating objects as admin

parent a32cd663
No related branches found
No related tags found
No related merge requests found
......@@ -35,6 +35,13 @@ class AKOwnerAdmin(admin.ModelAdmin):
list_editable = []
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)
class AKCategoryAdmin(admin.ModelAdmin):
......@@ -44,6 +51,13 @@ class AKCategoryAdmin(admin.ModelAdmin):
list_editable = ['color']
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)
class AKTrackAdmin(admin.ModelAdmin):
......@@ -53,6 +67,13 @@ class AKTrackAdmin(admin.ModelAdmin):
list_editable = ['color']
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)
class AKTagAdmin(admin.ModelAdmin):
......@@ -71,6 +92,13 @@ class AKRequirementAdmin(admin.ModelAdmin):
list_editable = []
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):
title = _("Wish") # a label for our filter
......@@ -113,6 +141,13 @@ class AKAdmin(admin.ModelAdmin):
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)
class RoomAdmin(admin.ModelAdmin):
......@@ -122,6 +157,13 @@ class RoomAdmin(admin.ModelAdmin):
list_editable = []
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)
class AKSlotAdmin(admin.ModelAdmin):
......@@ -142,6 +184,13 @@ class AKSlotAdmin(admin.ModelAdmin):
timezone.activate("UTC")
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)
class AvailabilityAdmin(admin.ModelAdmin):
......
......@@ -45,6 +45,14 @@ class Event(models.Model):
def get_by_slug(slug):
return Event.objects.get(slug=slug)
@staticmethod
def get_next_active():
active_events = Event.objects.filter(active=True).order_by('start')
if not active_events:
return None
else:
return active_events[0]
class AKOwner(models.Model):
""" 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.
Finish editing this message first!
Please register or to comment