mirror of
https://github.com/bugsink/bugsink.git
synced 2026-02-09 07:19:22 -06:00
filter-fields, readonly fields for FKs
This commit is contained in:
@@ -34,6 +34,7 @@ INSTALLED_APPS = [
|
||||
|
||||
'tailwind',
|
||||
'theme',
|
||||
'admin_auto_filters',
|
||||
|
||||
'compat',
|
||||
'projects',
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
|
||||
@@ -5,3 +5,4 @@ django-tailwind==3.6.*
|
||||
jsonschema==4.19.*
|
||||
semver==3.0.*
|
||||
Celery[librabbitmq]
|
||||
django-admin-autocomplete-filter==0.7.*
|
||||
|
||||
4
theme/static/css/dist/styles.css
vendored
4
theme/static/css/dist/styles.css
vendored
@@ -1294,10 +1294,6 @@ select {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.not-italic {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.leading-normal {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user