plain.observer 0.3.0__py3-none-any.whl → 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of plain.observer might be problematic. Click here for more details.

@@ -1,5 +1,16 @@
1
1
  # plain-observer changelog
2
2
 
3
+ ## [0.3.1](https://github.com/dropseed/plain/releases/plain-observer@0.3.1) (2025-07-23)
4
+
5
+ ### What's changed
6
+
7
+ - Added delete actions to the admin interface for both Traces and Spans, allowing bulk deletion of selected items ([0d85670](https://github.com/dropseed/plain/commit/0d85670412))
8
+ - Added bootstrap icons to admin navigation (activity icon for Traces, diagram-3 icon for Spans) ([9e9f8b0](https://github.com/dropseed/plain/commit/9e9f8b0e2c))
9
+
10
+ ### Upgrade instructions
11
+
12
+ - No changes required
13
+
3
14
  ## [0.3.0](https://github.com/dropseed/plain/releases/plain-observer@0.3.0) (2025-07-22)
4
15
 
5
16
  ### What's changed
plain/observer/admin.py CHANGED
@@ -17,6 +17,7 @@ class TraceViewset(AdminViewset):
17
17
  class ListView(AdminModelListView):
18
18
  nav_section = "Observer"
19
19
  model = Trace
20
+ nav_icon = "activity"
20
21
  fields = [
21
22
  "trace_id",
22
23
  "request_id",
@@ -25,12 +26,11 @@ class TraceViewset(AdminViewset):
25
26
  "start_time",
26
27
  ]
27
28
  allow_global_search = False
28
- # Actually want a button to delete ALL! not possible yet
29
- # actions = ["Delete"]
29
+ actions = ["Delete"]
30
30
 
31
- # def perform_action(self, action: str, target_ids: list):
32
- # if action == "Delete":
33
- # Trace.objects.filter(id__in=target_ids).delete()
31
+ def perform_action(self, action: str, target_ids: list):
32
+ if action == "Delete":
33
+ Trace.objects.filter(id__in=target_ids).delete()
34
34
 
35
35
  class DetailView(AdminModelDetailView):
36
36
  model = Trace
@@ -41,6 +41,7 @@ class SpanViewset(AdminViewset):
41
41
  class ListView(AdminModelListView):
42
42
  nav_section = "Observer"
43
43
  model = Span
44
+ nav_icon = "diagram-3"
44
45
  fields = [
45
46
  "name",
46
47
  "kind",
@@ -53,6 +54,11 @@ class SpanViewset(AdminViewset):
53
54
  allow_global_search = False
54
55
  displays = ["Parents only"]
55
56
  search_fields = ["name", "span_id", "parent_id"]
57
+ actions = ["Delete"]
58
+
59
+ def perform_action(self, action: str, target_ids: list):
60
+ if action == "Delete":
61
+ Span.objects.filter(id__in=target_ids).delete()
56
62
 
57
63
  def get_objects(self):
58
64
  return (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.observer
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: On-page telemetry and observability tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -1,7 +1,7 @@
1
- plain/observer/CHANGELOG.md,sha256=Af6I47_-oKIWBHFKb0J6fDqfYiww73BkxK-M3fjJGLI,2522
1
+ plain/observer/CHANGELOG.md,sha256=AjTGgo-wwRvR3aljVmhukc-DGoAWUNyian65hSADDZI,3023
2
2
  plain/observer/README.md,sha256=5wM48-iE8i7xOjIK8KCgZ-Vmp2xpDtX73UnE5QeNnd4,31
3
3
  plain/observer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- plain/observer/admin.py,sha256=Hst19WLMzjjztjTIf3j3PGxijikPZYJJukZBAF5DSNI,2537
4
+ plain/observer/admin.py,sha256=Csvd5V9F5u0zksWpbpISY_NlBJa-0TptSX_Kn652WRc,2719
5
5
  plain/observer/cli.py,sha256=-huHPj4xkrq4xemDo8XzoNtmE53g0YWuVLW66Gr1d88,20935
6
6
  plain/observer/config.py,sha256=FuJi1jiDSvOTcmP-6Ea4OlGZt5cRf4iTp1e0dgpJ45E,1494
7
7
  plain/observer/core.py,sha256=D9vX0GP8JBB8-NFAKrOwPSHl_wdZo1h0A5C6xKsJVjA,2245
@@ -19,7 +19,7 @@ plain/observer/templates/observer/trace_share.html,sha256=HrYLti5BpX96-6Bm_37OOb
19
19
  plain/observer/templates/observer/traces.html,sha256=cFnlIuCf6XJEpHRD2_yfVmPDGZfiqMq6Cg-iMlT3CWY,22184
20
20
  plain/observer/templates/toolbar/observer.html,sha256=uaDKiWR7EYqC1kEXE-uHDlE7nfFEMR_zmOgvlKwQHJ4,1365
21
21
  plain/observer/templates/toolbar/observer_button.html,sha256=xsHJSuOjW6ddnxlPlPKek22WrWnuVYGIcBfFdkb76pk,1199
22
- plain_observer-0.3.0.dist-info/METADATA,sha256=BalQVNKI9YklCQFin2uWiQG-hsF3YCjn_TeyFj3sr1o,429
23
- plain_observer-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
- plain_observer-0.3.0.dist-info/licenses/LICENSE,sha256=YZdq6Pz8ivjs97eSVLRmoGDI1hjEikX6N49DfM0DWio,1500
25
- plain_observer-0.3.0.dist-info/RECORD,,
22
+ plain_observer-0.3.1.dist-info/METADATA,sha256=iX8SwrvpuhV4JJUztd7kRoYmryHj4W5ybnckPj99mV0,429
23
+ plain_observer-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
+ plain_observer-0.3.1.dist-info/licenses/LICENSE,sha256=YZdq6Pz8ivjs97eSVLRmoGDI1hjEikX6N49DfM0DWio,1500
25
+ plain_observer-0.3.1.dist-info/RECORD,,