plain.admin 0.21.0__tar.gz → 0.22.0__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 (89) hide show
  1. {plain_admin-0.21.0 → plain_admin-0.22.0}/PKG-INFO +1 -1
  2. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/urls.py +2 -3
  3. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/urls.py +2 -3
  4. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/base.html +5 -3
  5. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/urls.py +6 -7
  6. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/models.py +1 -1
  7. {plain_admin-0.21.0 → plain_admin-0.22.0}/pyproject.toml +1 -1
  8. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/app/settings.py +1 -0
  9. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/app/urls.py +6 -7
  10. {plain_admin-0.21.0 → plain_admin-0.22.0}/.gitignore +0 -0
  11. {plain_admin-0.21.0 → plain_admin-0.22.0}/LICENSE +0 -0
  12. {plain_admin-0.21.0 → plain_admin-0.22.0}/README.md +0 -0
  13. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/README.md +0 -0
  14. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/__init__.py +0 -0
  15. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/admin.css +0 -0
  16. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/admin.js +0 -0
  17. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/chart.js +0 -0
  18. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/jquery-3.6.1.slim.min.js +0 -0
  19. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/list.js +0 -0
  20. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/popper.min.js +0 -0
  21. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/admin/tippy-bundle.umd.min.js +0 -0
  22. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/assets/toolbar/toolbar.js +0 -0
  23. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/cards/__init__.py +0 -0
  24. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/cards/base.py +0 -0
  25. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/cards/charts.py +0 -0
  26. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/cards/tables.py +0 -0
  27. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/config.py +0 -0
  28. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/dates.py +0 -0
  29. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/default_settings.py +0 -0
  30. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/README.md +0 -0
  31. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/__init__.py +0 -0
  32. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/middleware.py +0 -0
  33. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/models.py +0 -0
  34. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/permissions.py +0 -0
  35. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/settings.py +0 -0
  36. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/impersonate/views.py +0 -0
  37. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/middleware.py +0 -0
  38. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/README.md +0 -0
  39. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/__init__.py +0 -0
  40. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/core.py +0 -0
  41. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/middleware.py +0 -0
  42. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/querystats/views.py +0 -0
  43. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/cards/base.html +0 -0
  44. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/cards/card.html +0 -0
  45. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/cards/chart.html +0 -0
  46. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/cards/table.html +0 -0
  47. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/delete.html +0 -0
  48. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/detail.html +0 -0
  49. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/index.html +0 -0
  50. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/list.html +0 -0
  51. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/page.html +0 -0
  52. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/search.html +0 -0
  53. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/UUID.html +0 -0
  54. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/bool.html +0 -0
  55. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/datetime.html +0 -0
  56. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/default.html +0 -0
  57. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/dict.html +0 -0
  58. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/get_display.html +0 -0
  59. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/img.html +0 -0
  60. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/list.html +0 -0
  61. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/model.html +0 -0
  62. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/admin/values/queryset.html +0 -0
  63. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Checkbox.html +0 -0
  64. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/CheckboxField.html +0 -0
  65. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/FieldErrors.html +0 -0
  66. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Help.html +0 -0
  67. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Input.html +0 -0
  68. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/InputField.html +0 -0
  69. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Label.html +0 -0
  70. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Select.html +0 -0
  71. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/SelectField.html +0 -0
  72. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Submit.html +0 -0
  73. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/Textarea.html +0 -0
  74. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/elements/admin/TextareaField.html +0 -0
  75. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/querystats/querystats.html +0 -0
  76. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/querystats/toolbar.html +0 -0
  77. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates/toolbar/toolbar.html +0 -0
  78. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/templates.py +0 -0
  79. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/toolbar.py +0 -0
  80. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/__init__.py +0 -0
  81. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/base.py +0 -0
  82. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/objects.py +0 -0
  83. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/registry.py +0 -0
  84. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/types.py +0 -0
  85. {plain_admin-0.21.0 → plain_admin-0.22.0}/plain/admin/views/viewsets.py +0 -0
  86. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/app/users/migrations/0001_initial.py +0 -0
  87. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/app/users/migrations/__init__.py +0 -0
  88. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/app/users/models.py +0 -0
  89. {plain_admin-0.21.0 → plain_admin-0.22.0}/tests/test_admin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.admin
3
- Version: 0.21.0
3
+ Version: 0.22.0
4
4
  Summary: Admin dashboard and tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -1,10 +1,9 @@
1
- from plain.urls import RouterBase, path, register_router
1
+ from plain.urls import Router, path
2
2
 
3
3
  from .views import ImpersonateStartView, ImpersonateStopView
4
4
 
5
5
 
6
- @register_router
7
- class Router(RouterBase):
6
+ class ImpersonateRouter(Router):
8
7
  namespace = "impersonate"
9
8
  urls = [
10
9
  path("stop/", ImpersonateStopView, name="stop"),
@@ -1,10 +1,9 @@
1
- from plain.urls import RouterBase, path, register_router
1
+ from plain.urls import Router, path
2
2
 
3
3
  from . import views
4
4
 
5
5
 
6
- @register_router
7
- class Router(RouterBase):
6
+ class QuerystatsRouter(Router):
8
7
  namespace = "querystats"
9
8
  urls = [
10
9
  path("", views.QuerystatsView, name="querystats"),
@@ -32,7 +32,7 @@
32
32
  </button>
33
33
 
34
34
  <a class="inline-flex items-center text-stone-300" href="{{ url('admin:index') }}">
35
- <span class="text-stone-400">Admin</span>
35
+ <span class="text-stone-400 font-semibold">Admin</span>
36
36
  </a>
37
37
 
38
38
  {#
@@ -96,7 +96,7 @@
96
96
  </div>
97
97
  <div class="mt-8 flex flex-col text-sm pb-3 pt-3 text-stone-400 sticky bottom-0 bg-stone-950">
98
98
  <a class="sm:hidden py-1" href="{{ url('admin:search') }}">Global search</a>
99
- <div class="flex items-center justify-between">
99
+ <div class="flex items-center justify-between space-x-1.5">
100
100
  <div class="flex items-center truncate">
101
101
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="w-6 h-6 mr-1.5 bi bi-person-circle" viewBox="0 0 16 16">
102
102
  <path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
@@ -106,7 +106,9 @@
106
106
  {{ request.user }}
107
107
  </span>
108
108
  </div>
109
- <a class="ml-2 hover:text-white hover:underline flex-shrink-0" href="{{ url('logout') }}">Log out</a>
109
+ <form method="POST" action="{{ url('logout') }}" class="flex-shrink-0">
110
+ <button type="submit" class="hover:text-white hover:underline">Log out</button>
111
+ </form>
110
112
  </div>
111
113
  </div>
112
114
  </aside>
@@ -1,8 +1,8 @@
1
1
  from plain.http import ResponseRedirect
2
- from plain.urls import RouterBase, include, path, register_router
2
+ from plain.urls import Router, include, path
3
3
 
4
- from .impersonate import urls as impersonate_urls
5
- from .querystats import urls as querystats_urls
4
+ from .impersonate.urls import ImpersonateRouter
5
+ from .querystats.urls import QuerystatsRouter
6
6
  from .views.base import AdminView
7
7
  from .views.registry import registry
8
8
 
@@ -31,13 +31,12 @@ class AdminSearchView(AdminView):
31
31
  return context
32
32
 
33
33
 
34
- @register_router
35
- class Router(RouterBase):
34
+ class AdminRouter(Router):
36
35
  namespace = "admin"
37
36
  urls = [
38
37
  path("search/", AdminSearchView, name="search"),
39
- include("impersonate/", impersonate_urls),
40
- include("querystats/", querystats_urls),
38
+ include("impersonate/", ImpersonateRouter),
39
+ include("querystats/", QuerystatsRouter),
41
40
  include("", registry.get_urls()),
42
41
  path("", AdminIndexView, name="index"),
43
42
  ]
@@ -151,7 +151,7 @@ class AdminModelDetailView(AdminDetailView):
151
151
  if fields := super().get_fields():
152
152
  return fields
153
153
 
154
- return ["pk"] + [f.name for f in self.object._meta.get_fields() if f.concrete]
154
+ return [f.name for f in self.object._meta.get_fields() if f.concrete]
155
155
 
156
156
  def get_field_value(self, obj, field: str):
157
157
  try:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.admin"
3
- version = "0.21.0"
3
+ version = "0.22.0"
4
4
  description = "Admin dashboard and tools for Plain."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  license = "BSD-3-Clause"
@@ -1,4 +1,5 @@
1
1
  SECRET_KEY = "test"
2
+ URLS_ROUTER = "app.urls.AppRouter"
2
3
  INSTALLED_PACKAGES = [
3
4
  "plain.auth",
4
5
  "plain.sessions",
@@ -1,6 +1,6 @@
1
- import plain.admin.urls
2
- import plain.assets.urls
3
- from plain.urls import RouterBase, include, path, register_router
1
+ from plain.admin.urls import AdminRouter
2
+ from plain.assets.urls import AssetsRouter
3
+ from plain.urls import Router, include, path
4
4
  from plain.views import View
5
5
 
6
6
 
@@ -14,12 +14,11 @@ class LogoutView(View):
14
14
  return "Logout!"
15
15
 
16
16
 
17
- @register_router
18
- class Router(RouterBase):
17
+ class AppRouter(Router):
19
18
  namespace = ""
20
19
  urls = [
21
- include("admin/", plain.admin.urls),
22
- include("assets/", plain.assets.urls),
20
+ include("admin/", AdminRouter),
21
+ include("assets/", AssetsRouter),
23
22
  path("login/", LoginView, name="login"),
24
23
  path("logout/", LogoutView, name="logout"),
25
24
  ]
File without changes
File without changes
File without changes