from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.html import format_html
from django.urls import reverse

User = get_user_model()


class CustomUserAdmin(BaseUserAdmin):

    def impersonate_button(self, obj):
        url = reverse("impersonate-user", args=[obj.pk])
        return format_html(
            '<a class="button" style="padding:4px 8px; background:#2a7ae2; color:white; border-radius:4px;" href="{}">Zobraziť ako</a>',
            url
        )

    impersonate_button.short_description = "Impersonácia"

    list_display = (
        "username",
        "email",
        "first_name",
        "last_name",
        "is_staff",
        "impersonate_button",
    )



try:
    admin.site.unregister(User)
except admin.sites.NotRegistered:
    pass


admin.site.register(User, CustomUserAdmin)
