openadmin-dev 0.7.10__tar.gz → 0.7.12__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.7.10 → openadmin_dev-0.7.12}/.github/actions/format/action.yml +3 -0
  2. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/lint/action.yml +3 -0
  3. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/workflows/publish.yml +3 -0
  4. openadmin_dev-0.7.12/.gitignore +15 -0
  5. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/Makefile +6 -0
  6. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/PKG-INFO +2 -1
  7. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/REUSE.toml +1 -0
  8. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/authors.py +2 -1
  9. openadmin_dev-0.7.12/openadmin/__client__/assets/index-Cmhau8Lc.js +64 -0
  10. openadmin_dev-0.7.12/openadmin/__client__/assets/index-DfxwI1Du.css +1 -0
  11. openadmin_dev-0.7.12/openadmin/__client__/favicon.svg +1 -0
  12. openadmin_dev-0.7.12/openadmin/__client__/icons.svg +24 -0
  13. openadmin_dev-0.7.12/openadmin/__client__/index.html +14 -0
  14. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/admin_page.py +2 -0
  15. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/admin_panel.py +7 -1
  16. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/__init__.py +2 -1
  17. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/table.py +24 -4
  18. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/pyproject.toml +9 -2
  19. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/uv.lock +6 -2
  20. openadmin_dev-0.7.10/.gitignore +0 -12
  21. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  22. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/ISSUE_TEMPLATE/chore.md +0 -0
  23. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  24. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/branch-name/action.yml +0 -0
  25. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/dependency-cves/action.yml +0 -0
  26. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/license/action.yml +0 -0
  27. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/security/action.yml +0 -0
  28. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/spell-check/action.yml +0 -0
  29. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/test/action.yml +0 -0
  30. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/typecheck/action.yml +0 -0
  31. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/actions/unused-code/action.yml +0 -0
  32. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.github/workflows/ci.yml +0 -0
  33. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/.python-version +0 -0
  34. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/LICENSE +0 -0
  35. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/LICENSES/AGPL-3.0-or-later.txt +0 -0
  36. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/README.md +0 -0
  37. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/docs/assets/logo.png +0 -0
  38. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/__init__.py +0 -0
  39. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/__init__.py +0 -0
  40. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/analytics.py +0 -0
  41. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/books.py +0 -0
  42. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/control_panel.py +0 -0
  43. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/docs.py +0 -0
  44. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/genres.py +0 -0
  45. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/health.py +0 -0
  46. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/overview.py +0 -0
  47. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/publishers.py +0 -0
  48. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/reports.py +0 -0
  49. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/tags.py +0 -0
  50. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/admin/weekdays.py +0 -0
  51. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/lib/__init__.py +0 -0
  52. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/lib/database.py +0 -0
  53. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/lib/lifespan.py +0 -0
  54. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/lib/models.py +0 -0
  55. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/lib/seed.py +0 -0
  56. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/examples/main.py +0 -0
  57. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/__init__.py +0 -0
  58. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/counter.py +0 -0
  59. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/deps.py +0 -0
  60. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/exc_handler.py +0 -0
  61. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/field_config.py +0 -0
  62. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/req.py +0 -0
  63. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/fastapi/utils.py +0 -0
  64. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/action.py +0 -0
  65. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/area_chart.py +0 -0
  66. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/bar_chart.py +0 -0
  67. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/colors.py +0 -0
  68. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/component.py +0 -0
  69. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/error.py +0 -0
  70. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/form.py +0 -0
  71. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/http_methods.py +0 -0
  72. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/icons.py +0 -0
  73. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/json_schema.py +0 -0
  74. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/line_chart.py +0 -0
  75. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/markdown.py +0 -0
  76. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/page.py +0 -0
  77. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/pie_chart.py +0 -0
  78. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/section.py +0 -0
  79. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/spec.py +0 -0
  80. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/openadmin/spec/stat.py +0 -0
  81. {openadmin_dev-0.7.10 → openadmin_dev-0.7.12}/tests/test_hello.py +0 -0
@@ -6,5 +6,8 @@ runs:
6
6
  - uses: astral-sh/setup-uv@v4
7
7
  with:
8
8
  enable-cache: true
9
+ - uses: oven-sh/setup-bun@v2
10
+ - shell: bash
11
+ run: cd client && bun install --frozen-lockfile
9
12
  - shell: bash
10
13
  run: make check/format
@@ -6,5 +6,8 @@ runs:
6
6
  - uses: astral-sh/setup-uv@v4
7
7
  with:
8
8
  enable-cache: true
9
+ - uses: oven-sh/setup-bun@v2
10
+ - shell: bash
11
+ run: cd client && bun install --frozen-lockfile
9
12
  - shell: bash
10
13
  run: make check/lint
@@ -25,6 +25,9 @@ jobs:
25
25
  - uses: astral-sh/setup-uv@v4
26
26
  with:
27
27
  enable-cache: true
28
+ - uses: oven-sh/setup-bun@v2
29
+ - name: Build frontend
30
+ run: cd client && bun install --frozen-lockfile && bun run build
28
31
  - name: Override package name for dev
29
32
  if: github.ref_name == 'dev'
30
33
  run: sed -i 's/^name = "openadmin"$/name = "openadmin-dev"/' pyproject.toml
@@ -0,0 +1,15 @@
1
+ # IDE
2
+ .vscode
3
+
4
+ # Python
5
+ .pytest_cache
6
+ .ruff_cache
7
+ .venv
8
+ **/__pycache__
9
+
10
+ # DB
11
+ *.db
12
+ *.sqlite
13
+
14
+ # Built frontend (bundled into the package at build time, see [tool.hatch.build] in pyproject.toml)
15
+ openadmin/__client__
@@ -3,19 +3,24 @@ fix/license:
3
3
  @ uv run reuse annotate --license AGPL-3.0-or-later --copyright "OpenAdmin" --recursive --skip-unrecognised openadmin/
4
4
  @ uv run reuse annotate --license AGPL-3.0-or-later --copyright "OpenAdmin" --recursive --skip-unrecognised tests/
5
5
  @ uv run reuse annotate --license AGPL-3.0-or-later --copyright "OpenAdmin" --recursive --skip-unrecognised examples/
6
+ @ uv run reuse annotate --license AGPL-3.0-or-later --copyright "OpenAdmin" --recursive --skip-unrecognised $$(find client/src -mindepth 1 -maxdepth 1 ! -name assets)
6
7
 
7
8
  fix/format:
9
+ @ cd client && bun run fix:format
8
10
  @ uv run ruff format .
9
11
 
10
12
  fix/lint:
13
+ @ cd client && bun run fix:lint
11
14
  @ uv run ruff check --fix .
12
15
 
13
16
  fix: fix/license fix/format fix/lint
14
17
 
15
18
  check/format:
19
+ @ cd client && bun run check:format
16
20
  @ uv run ruff format --check .
17
21
 
18
22
  check/lint:
23
+ @ cd client && bun run check:lint
19
24
  @ uv run ruff check .
20
25
 
21
26
  check/typing:
@@ -42,4 +47,5 @@ check/test:
42
47
  check: check/format check/lint check/typing check/cves check/security check/unused check/spell check/license check/test
43
48
 
44
49
  dev/run:
50
+ @ cd client && bun run build
45
51
  @ PYTHONPATH=. uv run fastapi dev examples/main.py --host 0.0.0.0 --port $${PORT:-8000} --reload
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openadmin-dev
3
- Version: 0.7.10
3
+ Version: 0.7.12
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
@@ -11,6 +11,7 @@ Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=3.14
13
13
  Requires-Dist: fastapi[standard]>=0.136.3
14
+ Requires-Dist: typing-extensions>=4.12.0
14
15
  Description-Content-Type: text/markdown
15
16
 
16
17
  <!-- <div align="center">
@@ -12,6 +12,7 @@ path = [
12
12
  "LICENSE",
13
13
  "**/__pycache__",
14
14
  "docs/**",
15
+ "client/**",
15
16
  ]
16
17
  SPDX-FileCopyrightText = "OpenAdmin"
17
18
  SPDX-License-Identifier = "AGPL-3.0-or-later"
@@ -62,7 +62,7 @@ async def get_avg_books_per_author(session: AsyncSessionDep) -> float:
62
62
  )
63
63
  async def get_all_authors(
64
64
  session: AsyncSessionDep, pagination: PageDep, search: SearchQueryDep
65
- ):
65
+ ) -> spec.Table:
66
66
  stmt = (
67
67
  select(models.Author, func.count(models.Book.id).label("book_count"))
68
68
  .outerjoin(models.Book, models.Book.author_id == models.Author.id)
@@ -82,6 +82,7 @@ async def get_all_authors(
82
82
  if author.bio and len(author.bio) > 80
83
83
  else author.bio,
84
84
  "book_count": count,
85
+ "__view__": f"{author.first_name} {author.last_name}",
85
86
  }
86
87
  for author, count in result.all()
87
88
  ]