djhtmx 1.2.3__tar.gz → 1.2.5__tar.gz

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.
Files changed (39) hide show
  1. {djhtmx-1.2.3 → djhtmx-1.2.5}/CHANGELOG.md +13 -0
  2. {djhtmx-1.2.3 → djhtmx-1.2.5}/PKG-INFO +1 -1
  3. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/__init__.py +1 -1
  4. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/command_queue.py +4 -4
  5. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/templatetags/htmx.py +1 -5
  6. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/urls.py +1 -1
  7. {djhtmx-1.2.3 → djhtmx-1.2.5}/.gitignore +0 -0
  8. {djhtmx-1.2.3 → djhtmx-1.2.5}/LICENSE +0 -0
  9. {djhtmx-1.2.3 → djhtmx-1.2.5}/MANIFEST.in +0 -0
  10. {djhtmx-1.2.3 → djhtmx-1.2.5}/README.md +0 -0
  11. {djhtmx-1.2.3 → djhtmx-1.2.5}/pyproject.toml +0 -0
  12. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/apps.py +0 -0
  13. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/commands.py +0 -0
  14. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/component.py +0 -0
  15. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/consumer.py +0 -0
  16. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/context.py +0 -0
  17. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/exceptions.py +0 -0
  18. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/global_events.py +0 -0
  19. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/introspection.py +0 -0
  20. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/json.py +0 -0
  21. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/management/commands/htmx.py +0 -0
  22. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/middleware.py +0 -0
  23. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/query.py +0 -0
  24. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/repo.py +0 -0
  25. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/settings.py +0 -0
  26. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/ext/ws.js +0 -0
  27. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.amd.js +0 -0
  28. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.cjs.js +0 -0
  29. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.esm.d.ts +0 -0
  30. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.esm.js +0 -0
  31. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.js +0 -0
  32. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/2.0.4/htmx.min.js +0 -0
  33. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/static/htmx/django.js +0 -0
  34. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/templates/htmx/headers.html +0 -0
  35. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/templates/htmx/lazy.html +0 -0
  36. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/templatetags/__init__.py +0 -0
  37. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/testing.py +0 -0
  38. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/tracing.py +0 -0
  39. {djhtmx-1.2.3 → djhtmx-1.2.5}/src/djhtmx/utils.py +0 -0
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.5] - 2025-12-05
11
+
12
+ ### Fixed
13
+ - Fixed Destroy of component to use proper hx-swap-oob="delete" syntax
14
+
15
+ ## [1.2.4] - 2025-10-29
16
+
17
+ ### Fixed
18
+ - Prioritize Destroy commands to prevent stale component access - fixes race condition where signals would awaken components whose model instances were already deleted
19
+
20
+ ### Changed
21
+ - Code quality improvements (Ruff suggestions for ternary operators)
22
+
10
23
  ## [1.2.3] - 2025-10-09
11
24
 
12
25
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: djhtmx
3
- Version: 1.2.3
3
+ Version: 1.2.5
4
4
  Summary: Interactive UI Components for Django using HTMX
5
5
  Project-URL: Homepage, https://github.com/edelvalle/djhtmx
6
6
  Project-URL: Documentation, https://github.com/edelvalle/djhtmx#readme
@@ -1,4 +1,4 @@
1
1
  from .middleware import middleware
2
2
 
3
- __version__ = "1.2.3"
3
+ __version__ = "1.2.5"
4
4
  __all__ = ("middleware",)
@@ -124,12 +124,12 @@ class CommandQueue:
124
124
  match command:
125
125
  case Execute():
126
126
  return 0, "", 0
127
+ case Destroy(component_id):
128
+ return 1, component_id, 0
127
129
  case Signal(_, timestamp):
128
- return 1, "", timestamp
129
- case Emit(_, timestamp):
130
130
  return 2, "", timestamp
131
- case Destroy():
132
- return 3, "", 0
131
+ case Emit(_, timestamp):
132
+ return 3, "", timestamp
133
133
  case SkipRender():
134
134
  return 4, "", 0
135
135
  case BuildAndRender(_, _, _, _, timestamp):
@@ -138,11 +138,7 @@ def hx_tag(context: Context):
138
138
  def oob(context: Context, suffix: str):
139
139
  oob = context.get("hx_oob")
140
140
  context["hx_oob"] = False
141
- if (component := context.get("this")):
142
- component_id = component.id
143
- else:
144
- component_id = None
145
-
141
+ component_id = component.id if (component := context.get("this")) else None
146
142
  id = "-".join(filter(None, (component_id, suffix)))
147
143
  return format_html_attrs({"id": id, "hx-swap-oob": "true" if oob else None})
148
144
 
@@ -45,7 +45,7 @@ def endpoint(request: HttpRequest, component_name: str, component_id: str, event
45
45
  case Destroy(component_id):
46
46
  content.append(
47
47
  format_html(
48
- '<div hx-swap-oob="outerHtml:#{component_id}"></div>',
48
+ '<div id="{component_id}" hx-swap-oob="delete"></div>',
49
49
  component_id=component_id,
50
50
  )
51
51
  )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes