filter-fields, readonly fields for FKs

This commit is contained in:
Klaas van Schelven
2024-03-24 22:02:15 +01:00
parent 22969a240d
commit d30a8dbdf4
8 changed files with 86 additions and 7 deletions

View File

@@ -34,6 +34,7 @@ INSTALLED_APPS = [
'tailwind',
'theme',
'admin_auto_filters',
'compat',
'projects',

View File

@@ -3,6 +3,7 @@ from django.contrib import admin
import json
from projects.admin import ProjectFilter
from .models import Event
@@ -22,7 +23,7 @@ class EventAdmin(admin.ModelAdmin):
]
list_filter = [
'project',
ProjectFilter,
'platform',
'level',
'sdk_name',
@@ -34,6 +35,9 @@ class EventAdmin(admin.ModelAdmin):
exclude = ["data"]
readonly_fields = [
'ingested_event',
'issue',
'project',
'pretty_data',
]

View File

@@ -3,15 +3,25 @@ from django.contrib import admin
import json
from projects.admin import ProjectFilter
from .models import DecompressedEvent
@admin.register(DecompressedEvent)
class DecompressedEventAdmin(admin.ModelAdmin):
list_display = ["timestamp", "project"]
list_filter = [
ProjectFilter,
]
list_display = [
"timestamp",
"project",
]
exclude = ["data"]
readonly_fields = [
'project',
'pretty_data',
]

View File

@@ -5,6 +5,20 @@ from .models import Issue
@admin.register(Issue)
class IssueAdmin(admin.ModelAdmin):
fields = [
'project',
'hash',
'last_seen',
'first_seen',
'is_resolved',
'fixed_at',
'events_at',
'is_muted',
'unmute_on_volume_based_conditions',
'unmute_after',
'event_count',
]
list_display = [
"title",
"hash",
@@ -18,6 +32,7 @@ class IssueAdmin(admin.ModelAdmin):
exclude = ["events"]
readonly_fields = [
'project',
'event_count',
]

View File

@@ -1,22 +1,67 @@
from django.contrib import admin
from admin_auto_filters.filters import AutocompleteFilter
from .models import Project, ProjectMembership
class ProjectFilter(AutocompleteFilter):
title = 'Project'
field_name = 'project'
class UserFilter(AutocompleteFilter):
title = 'User'
field_name = 'user'
class ProjectMembershipInline(admin.TabularInline):
model = ProjectMembership
autocomplete_fields = [
'user',
]
extra = 0
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
search_fields = [
'name',
]
list_display = [
'name',
'dsn',
'alert_on_new_issue',
'alert_on_regression',
'alert_on_unmute',
]
readonly_fields = [
'dsn',
]
inlines = [
ProjectMembershipInline,
]
# the preferred way to deal with ProjectMembership is actually through the inline above; however, because this may prove
# to not scale well with (very? more than 50?) memberships per project, we've left the separate admin interface here for
# future reference.
@admin.register(ProjectMembership)
class ProjectMembershipAdmin(admin.ModelAdmin):
list_filter = [
ProjectFilter,
UserFilter,
]
list_display = [
'project',
'user',
'send_email_alerts',
]
autocomplete_fields = [
'project',
'user',
]

View File

@@ -1,5 +1,6 @@
from django.contrib import admin
from projects.admin import ProjectFilter
from .models import Release
@@ -14,5 +15,11 @@ class ReleaseAdmin(admin.ModelAdmin):
]
list_filter = [
'project',
ProjectFilter,
]
readonly_fields = [
'project',
'is_semver',
'sort_epoch',
]

View File

@@ -5,3 +5,4 @@ django-tailwind==3.6.*
jsonschema==4.19.*
semver==3.0.*
Celery[librabbitmq]
django-admin-autocomplete-filter==0.7.*

View File

@@ -1294,10 +1294,6 @@ select {
font-style: italic;
}
.not-italic {
font-style: normal;
}
.leading-normal {
line-height: 1.5;
}