# -*- coding: utf-8 -*-

"""
Django admin app configuration for Drycc API models.
"""


from django.contrib import admin

from .models import Build
from .models import Config
from .models import Domain
from .models import Key
from .models import Release


class BuildAdmin(admin.ModelAdmin):
    """Set presentation options for :class:`~api.models.Build` models
    in the Django admin.
    """
    date_hierarchy = 'created'
    list_display = ('created', 'owner', 'app')
    list_filter = ('owner', 'app')


admin.site.register(Build, BuildAdmin)


class ConfigAdmin(admin.ModelAdmin):
    """Set presentation options for :class:`~api.models.Config` models
    in the Django admin.
    """
    date_hierarchy = 'created'
    list_display = ('created', 'owner', 'app')
    list_filter = ('owner', 'app')


admin.site.register(Config, ConfigAdmin)


class DomainAdmin(admin.ModelAdmin):
    """Set presentation options for :class:`~api.models.Domain` models
    in the Django admin.
    """
    date_hierarchy = 'created'
    list_display = ('owner', 'app', 'domain')
    list_filter = ('owner', 'app')


admin.site.register(Domain, DomainAdmin)


class KeyAdmin(admin.ModelAdmin):
    """Set presentation options for :class:`~api.models.Key` models
    in the Django admin.
    """
    date_hierarchy = 'created'
    list_display = ('id', 'owner', '__str__')
    list_filter = ('owner',)


admin.site.register(Key, KeyAdmin)


class ReleaseAdmin(admin.ModelAdmin):
    """Set presentation options for :class:`~api.models.Release` models
    in the Django admin.
    """
    date_hierarchy = 'created'
    list_display = ('created', 'version', 'owner', 'app')
    list_display_links = ('created', 'version')
    list_filter = ('owner', 'app')


admin.site.register(Release, ReleaseAdmin)
