# -*- coding: utf-8 -*-
from django import forms
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from tcms.management.models import (
Build,
Classification,
Component,
Priority,
Product,
Tag,
Version,
)
[docs]
class ClassificationAdmin(admin.ModelAdmin):
search_fields = ("name", "id")
list_display = ("id", "name")
[docs]
class ProductsAdmin(admin.ModelAdmin):
search_fields = ("name", "id")
list_display = ("id", "name", "classification", "description")
list_filter = ("id", "name", "classification")
[docs]
class PriorityAdmin(admin.ModelAdmin):
search_fields = ("value", "id")
list_display = ("id", "value", "is_active")
list_filter = ("is_active",)
[docs]
class ComponentAdmin(admin.ModelAdmin):
search_fields = ("name", "id")
list_display = ("id", "name", "product", "initial_owner", "description")
list_filter = ("product",)
[docs]
def get_queryset(self, request):
return super().get_queryset(request).select_related("product", "initial_owner")
[docs]
class VersionAdmin(admin.ModelAdmin):
search_fields = ("value", "id")
list_display = ("id", "product", "value")
list_filter = ("product",)
[docs]
class BuildAdmin(admin.ModelAdmin):
search_fields = ("name", "id")
list_display = ("id", "name", "version", "product_name", "is_active")
list_filter = ("version__product", "version", "is_active")
form = BuildAdminForm
fieldsets = [
(
"",
{
"fields": ("product", "version", "name", "is_active"),
},
),
]
[docs]
def product_name(self, obj): # pylint: disable=no-self-use
return obj.version.product
product_name.short_description = _("Product")
[docs]
class AttachmentAdmin(admin.ModelAdmin):
search_fields = ("file_name", "attachment_id")
list_display = (
"attachment_id",
"file_name",
"submitter",
"description",
"create_date",
"mime_type",
)
[docs]
class TagAdmin(admin.ModelAdmin):
list_display = ("pk", "name")
admin.site.register(Classification, ClassificationAdmin)
admin.site.register(Product, ProductsAdmin)
admin.site.register(Priority, PriorityAdmin)
admin.site.register(Component, ComponentAdmin)
admin.site.register(Version, VersionAdmin)
admin.site.register(Build, BuildAdmin)
admin.site.register(Tag, TagAdmin)