
# Register your models here.
from modeltranslation.admin import TranslationAdmin
from django.contrib import admin
from django.urls import path, reverse
from django.shortcuts import redirect
from .models import Carousel

class SingletonCarouselAdmin(TranslationAdmin):
    def get_urls(self):
        urls = super().get_urls()
        custom_urls = [path('', self.redirect_to_instance)]
        return custom_urls + urls

    def changelist_view(self, request, extra_context=None):
        instance = Carousel.objects.first()
        if instance:
            return redirect(reverse('admin:carousel_carousel_change', args=[instance.id]))
        return redirect('/admin/')

    def redirect_to_instance(self, request):
        instance = Carousel.objects.first()
        if instance:
            return redirect(reverse('admin:carousel_carousel_change', args=[instance.id]))
        return redirect('/admin/')

    def has_add_permission(self, request):
        return not Carousel.objects.exists()

    def has_delete_permission(self, request, obj=None):
        return False

    fieldsets = (
        ("Slide 1", {
            'fields': ('subtitle_1', 'content_1', 'image_1', 'mobile_image_1', 'button_text_1', 'button_link_1')
        }),
        ("Slide 2", {
            'fields': ('subtitle_2', 'content_2', 'image_2', 'mobile_image_2', 'button_text_2', 'button_link_2')
        }),
        ("Slide 3", {
            'fields': ('subtitle_3', 'content_3', 'image_3', 'mobile_image_3', 'button_text_3', 'button_link_3')
        }),
    )

admin.site.register(Carousel, SingletonCarouselAdmin)
