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

Use event timezones where possible

Adapt admin views
Adapt rendering of times of AK slots for backend and frontend
parent 4471a4a0
No related branches found
No related tags found
No related merge requests found
......@@ -2,12 +2,23 @@ from django.contrib import admin
from django.contrib.admin import SimpleListFilter
from django.db.models import Count, F
from django.shortcuts import render
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from AKModel.availability import Availability
from AKModel.models import Event, AKOwner, AKCategory, AKTrack, AKTag, AKRequirement, AK, Room, AKSlot
admin.site.register(Event)
@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, change=False, **kwargs):
# Use timezone of event
if obj is not None and obj.timezone:
timezone.activate(obj.timezone)
# No timezone available? Use UTC
else:
timezone.activate("UTC")
return super().get_form(request, obj, change, **kwargs)
admin.site.register(AKOwner)
......@@ -60,6 +71,26 @@ admin.site.register(AK, AKAdmin)
admin.site.register(Room)
admin.site.register(AKSlot)
admin.site.register(Availability)
@admin.register(AKSlot)
class AKSlotAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, change=False, **kwargs):
# Use timezone of associated event
if obj is not None and obj.event.timezone:
timezone.activate(obj.event.timezone)
# No timezone available? Use UTC
else:
timezone.activate("UTC")
return super().get_form(request, obj, change, **kwargs)
@admin.register(Availability)
class AvailabilityAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, change=False, **kwargs):
# Use timezone of associated event
if obj is not None and obj.event.timezone:
timezone.activate(obj.event.timezone)
# No timezone available? Use UTC
else:
timezone.activate("UTC")
return super().get_form(request, obj, change, **kwargs)
......@@ -293,7 +293,7 @@ class AKSlot(models.Model):
"""
if self.start is None:
return _("Not scheduled yet")
return self.start.strftime('%a %H:%M')
return self.start.astimezone(self.event.timezone).strftime('%a %H:%M')
@property
def end(self):
......
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