openadmin-dev 0.5.0__tar.gz → 0.6.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 (81) hide show
  1. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/PKG-INFO +1 -1
  2. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/admin_page.py +4 -1
  3. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/admin_panel.py +2 -0
  4. openadmin_dev-0.6.0/openadmin/fastapi/counters.py +17 -0
  5. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/section.py +1 -0
  6. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/page.py +1 -0
  7. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/section.py +1 -0
  8. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/pyproject.toml +1 -1
  9. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  10. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/ISSUE_TEMPLATE/chore.md +0 -0
  11. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  12. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/branch-name/action.yml +0 -0
  13. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/dependency-cves/action.yml +0 -0
  14. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/format/action.yml +0 -0
  15. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/license/action.yml +0 -0
  16. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/lint/action.yml +0 -0
  17. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/security/action.yml +0 -0
  18. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/spell-check/action.yml +0 -0
  19. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/test/action.yml +0 -0
  20. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/typecheck/action.yml +0 -0
  21. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/actions/unused-code/action.yml +0 -0
  22. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/workflows/ci.yml +0 -0
  23. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.github/workflows/publish.yml +0 -0
  24. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.gitignore +0 -0
  25. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/.python-version +0 -0
  26. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/LICENSE +0 -0
  27. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/LICENSES/AGPL-3.0-or-later.txt +0 -0
  28. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/Makefile +0 -0
  29. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/README.md +0 -0
  30. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/REUSE.toml +0 -0
  31. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/docs/assets/logo.png +0 -0
  32. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/__init__.py +0 -0
  33. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/__init__.py +0 -0
  34. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/analytics.py +0 -0
  35. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/authors.py +0 -0
  36. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/books.py +0 -0
  37. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/genres.py +0 -0
  38. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/health.py +0 -0
  39. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/overview.py +0 -0
  40. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/publishers.py +0 -0
  41. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/reports.py +0 -0
  42. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/admin/tags.py +0 -0
  43. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/lib/__init__.py +0 -0
  44. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/lib/database.py +0 -0
  45. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/lib/lifespan.py +0 -0
  46. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/lib/models.py +0 -0
  47. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/lib/seed.py +0 -0
  48. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/examples/main.py +0 -0
  49. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/__init__.py +0 -0
  50. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/deps.py +0 -0
  51. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/__init__.py +0 -0
  52. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/action.py +0 -0
  53. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/area_chart.py +0 -0
  54. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/bar_chart.py +0 -0
  55. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/form.py +0 -0
  56. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/line_chart.py +0 -0
  57. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/markdown.py +0 -0
  58. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/page_protocol.py +0 -0
  59. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/pagination_params.py +0 -0
  60. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/pie_chart.py +0 -0
  61. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/stat.py +0 -0
  62. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/types/table.py +0 -0
  63. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/fastapi/utils.py +0 -0
  64. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/__init__.py +0 -0
  65. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/__init__.py +0 -0
  66. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/action.py +0 -0
  67. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/area_chart.py +0 -0
  68. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/bar_chart.py +0 -0
  69. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/form.py +0 -0
  70. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/http_methods.py +0 -0
  71. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/icons.py +0 -0
  72. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/line_chart.py +0 -0
  73. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/markdown.py +0 -0
  74. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/pie_chart.py +0 -0
  75. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/property.py +0 -0
  76. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/property_type.py +0 -0
  77. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/stat.py +0 -0
  78. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/components/table.py +0 -0
  79. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/openadmin/spec/spec.py +0 -0
  80. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/tests/test_hello.py +0 -0
  81. {openadmin_dev-0.5.0 → openadmin_dev-0.6.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openadmin-dev
3
- Version: 0.5.0
3
+ Version: 0.6.0
4
4
  Summary: Add your description here
5
5
  Project-URL: Homepage, https://github.com/openadmin-team/openadmin-py
6
6
  Project-URL: Issues, https://github.com/openadmin-team/openadmin-py/issues
@@ -9,7 +9,7 @@ from collections.abc import Callable
9
9
  from fastapi import APIRouter, FastAPI
10
10
  from openadmin import spec
11
11
 
12
- from . import types
12
+ from . import counters, types
13
13
  from .utils import extract_params
14
14
 
15
15
  _SPECIAL_CHARS_RE = re.compile(r"[^a-zA-Z0-9\s]")
@@ -29,6 +29,8 @@ class AdminPage:
29
29
  self.state: list[types.Component] = []
30
30
  self.router = APIRouter(prefix=f"/{name.lower().replace(' ', '-')}")
31
31
  self.key_repeat_count: dict[str, int] = {}
32
+ self.page_count = counters.get_next("page")
33
+ self.page_kebab_name, _ = self.__get_kebab_and_unique_name(self.name)
32
34
 
33
35
  def get_page_spec(self, app: FastAPI) -> spec.Page:
34
36
  components: list[spec.Component] = []
@@ -148,6 +150,7 @@ class AdminPage:
148
150
  )
149
151
 
150
152
  return spec.Page(
153
+ id=f"{self.page_kebab_name}-{self.page_count}",
151
154
  name=self.name,
152
155
  description=self.description,
153
156
  icon=self.icon,
@@ -28,6 +28,7 @@ class AdminPanel:
28
28
  for section in self.state:
29
29
  sections.append(
30
30
  spec.Section(
31
+ id=section.id,
31
32
  name=section.name,
32
33
  description=section.description,
33
34
  icon=section.icon,
@@ -61,6 +62,7 @@ class AdminPanel:
61
62
 
62
63
  self.state.append(
63
64
  types.Section(
65
+ id=kebab_name,
64
66
  name=name,
65
67
  description=description,
66
68
  icon=icon,
@@ -0,0 +1,17 @@
1
+ # SPDX-FileCopyrightText: 2026 OpenAdmin
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later
4
+
5
+ from typing import Literal
6
+
7
+ __counters = {}
8
+
9
+
10
+ def get_next(key: Literal["page"]) -> int:
11
+ if key not in __counters:
12
+ __counters[key] = 1
13
+
14
+ value = __counters[key]
15
+ __counters[key] += 1
16
+
17
+ return value
@@ -12,6 +12,7 @@ from .page_protocol import PageProtocol
12
12
 
13
13
  @dataclass
14
14
  class Section:
15
+ id: str
15
16
  name: str
16
17
  description: str | None
17
18
  icon: spec.Icon | None
@@ -10,6 +10,7 @@ from .components import Component, Icon
10
10
 
11
11
 
12
12
  class Page(BaseModel):
13
+ id: str
13
14
  name: str
14
15
  description: str | None
15
16
  icon: Icon | None
@@ -11,6 +11,7 @@ from .page import Page
11
11
 
12
12
 
13
13
  class Section(BaseModel):
14
+ id: str
14
15
  name: str
15
16
  description: str | None
16
17
  icon: Icon | None
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openadmin-dev"
3
- version = "0.5.0"
3
+ version = "0.6.0"
4
4
  description = "Add your description here"
5
5
  authors = [
6
6
  { name="Mykyta Kasianenko", email="mykytakasianenko@gmail.com" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes