from django.contrib import admin
from .models import Artigo, Categoria, Tag


@admin.register(Categoria)
class CategoriaAdmin(admin.ModelAdmin):
    search_fields = ('nome',)


@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
    search_fields = ('nome',)


@admin.register(Artigo)
class ArtigoAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'autor', 'categoria', 'is_artigo_picante', 'visualizacoes', 'data_criacao')
    list_filter = ('is_artigo_picante', 'categoria', 'data_criacao')
    search_fields = ('titulo', 'conteudo', 'autor__email', 'categoria__nome', 'tags__nome')
    filter_horizontal = ('tags',)
    readonly_fields = ('autor',)

    def get_fieldsets(self, request, obj=None):
        fields = ('thumbnail', 'titulo', 'categoria', 'tags', 'tempo_leitura')
        if obj is not None:
            fields = ('thumbnail', 'titulo', 'autor', 'categoria', 'tags', 'tempo_leitura')

        return (
            (None, {'fields': fields}),
            ('Conteúdo', {'fields': ('conteudo',)}),
            ('Mídia', {'fields': ('video', 'audio')}),
            ('Configurações', {'fields': ('is_artigo_picante',)}),
        )

    autocomplete_fields = ('categoria', 'tags')

    def save_model(self, request, obj, form, change):
        if not change and not obj.autor_id:
            obj.autor = request.user
        super().save_model(request, obj, form, change)


