- Aufgabe.erstellt_am für implizite 7-Tage-Fälligkeit - frist_effektiv property; ist_ueberfaellig nutzt sie - AufgabenVerknuepfung (GenericForeignKey) mit HTMX-Panel - ExternalIssue (OneToOne) mit IssueAdapter-ABC und HTMX-Panel - link_registry.py und issue_facade.py als zentrale Registries - 8 neue Tests, 76 gesamt grün Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import Aufgabe, AufgabenVerknuepfung, Bieterfrage, ExternalIssue
|
|
|
|
|
|
class AufgabenVerknuepfungInline(admin.TabularInline):
|
|
model = AufgabenVerknuepfung
|
|
extra = 0
|
|
readonly_fields = ['ziel', 'erstellt_am']
|
|
|
|
|
|
@admin.register(Aufgabe)
|
|
class AufgabeAdmin(admin.ModelAdmin):
|
|
list_display = ['titel', 'typ', 'status', 'prioritaet', 'frist', 'verantwortlicher']
|
|
list_filter = ['typ', 'status', 'prioritaet']
|
|
inlines = [AufgabenVerknuepfungInline]
|
|
|
|
|
|
@admin.register(AufgabenVerknuepfung)
|
|
class AufgabenVerknuepfungAdmin(admin.ModelAdmin):
|
|
list_display = ['aufgabe', 'content_type', 'object_id', 'erstellt_am']
|
|
list_filter = ['content_type']
|
|
|
|
|
|
@admin.register(ExternalIssue)
|
|
class ExternalIssueAdmin(admin.ModelAdmin):
|
|
list_display = ['aufgabe', 'system', 'issue_key', 'sync_status', 'letzter_sync']
|
|
list_filter = ['system', 'sync_status']
|
|
|
|
|
|
@admin.register(Bieterfrage)
|
|
class BieterfragAdmin(admin.ModelAdmin):
|
|
list_display = ['fragentext', 'status', 'prioritaet', 'einreichungsdatum', 'eingearbeitet']
|
|
list_filter = ['status', 'prioritaet', 'eingearbeitet']
|