crudadmin 0.3.2__tar.gz → 0.3.3__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.
- {crudadmin-0.3.2 → crudadmin-0.3.3}/.gitignore +8 -2
- {crudadmin-0.3.2 → crudadmin-0.3.3}/PKG-INFO +18 -3
- {crudadmin-0.3.2 → crudadmin-0.3.3}/README.md +17 -2
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/admin_site.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/crud_admin.py +9 -2
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_user/models.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/schemas/timestamp.py +6 -4
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/decorators.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/models.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/service.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/database.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/memory.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/manager.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/models.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/schemas.py +3 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/pyproject.toml +1 -1
- {crudadmin-0.3.2 → crudadmin-0.3.3}/LICENSE +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/auth.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/helper.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/middleware/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/middleware/auth.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/middleware/https.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/middleware/ip_restriction.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/model_view.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_interface/typing.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_user/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_user/schemas.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/admin_user/service.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/auth.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/db.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/exceptions.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/rate_limiter.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/core/schemas/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/integration.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/event/schemas.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/py.typed +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/__init__.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/hybrid.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/memcached.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/backends/redis.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/storage.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/session/user_agents_types.py +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/static/favicon.png +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/static/htmx.min.js +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/dashboard/dashboard.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/dashboard/dashboard_content.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/events.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/events_content.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/health.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/health_content.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/list_content.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/pagination.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/table_content.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/create.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/list.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/update.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/auth/login.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/base/base.html +0 -0
- {crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/shared/utils/refresh.html +0 -0
|
@@ -61,6 +61,12 @@ local_settings.py
|
|
|
61
61
|
db.sqlite3
|
|
62
62
|
db.sqlite3-journal
|
|
63
63
|
|
|
64
|
+
# SQLite databases
|
|
65
|
+
*.db
|
|
66
|
+
*.db-journal*
|
|
67
|
+
*.sqlite
|
|
68
|
+
*.sqlite3
|
|
69
|
+
|
|
64
70
|
# Flask stuff:
|
|
65
71
|
instance/
|
|
66
72
|
.webassets-cache
|
|
@@ -167,6 +173,6 @@ cython_debug/
|
|
|
167
173
|
.ruff_cache
|
|
168
174
|
|
|
169
175
|
uv.lock
|
|
170
|
-
.python-version
|
|
171
176
|
|
|
172
|
-
local_test
|
|
177
|
+
local_test
|
|
178
|
+
crudadmin_data/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crudadmin
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: FastAPI-based admin interface with authentication, event logging and CRUD operations
|
|
5
5
|
Project-URL: Homepage, https://github.com/benavlabs/crudadmin
|
|
6
6
|
Project-URL: Documentation, https://benavlabs.github.io/crudadmin
|
|
@@ -115,8 +115,8 @@ Description-Content-Type: text/markdown
|
|
|
115
115
|
|
|
116
116
|
**Documentation**: [https://benavlabs.github.io/crudadmin/](https://benavlabs.github.io/crudadmin/)
|
|
117
117
|
|
|
118
|
-
> [!WARNING]
|
|
119
|
-
> CRUDAdmin is still experimental. While actively developed and tested, APIs may change between versions. Upgrade with caution in production environments, always
|
|
118
|
+
> \[!WARNING\]
|
|
119
|
+
> CRUDAdmin is still experimental. While actively developed and tested, APIs may change between versions. Upgrade with caution in production environments, always carefully reading the changelog.
|
|
120
120
|
|
|
121
121
|
## Features
|
|
122
122
|
|
|
@@ -218,6 +218,21 @@ Navigate to `/admin` to access your admin interface with:
|
|
|
218
218
|
- Responsive UI with dark/light themes
|
|
219
219
|
- Built-in security features
|
|
220
220
|
|
|
221
|
+
> \[!WARNING\]
|
|
222
|
+
> **Important for SQLite users:** If you're using SQLite databases (which is the default for CRUDAdmin), make sure to add database files to your `.gitignore` to avoid committing sensitive data like admin credentials and session tokens.
|
|
223
|
+
>
|
|
224
|
+
> ```gitignore
|
|
225
|
+
> # SQLite databases - NEVER commit these to version control
|
|
226
|
+
> *.db
|
|
227
|
+
> *.sqlite
|
|
228
|
+
> *.sqlite3
|
|
229
|
+
> crudadmin_data/
|
|
230
|
+
>
|
|
231
|
+
> # Also exclude database journals
|
|
232
|
+
> *.db-journal
|
|
233
|
+
> *.sqlite3-journal
|
|
234
|
+
> ```
|
|
235
|
+
|
|
221
236
|
## Session Backends
|
|
222
237
|
|
|
223
238
|
### Development (Default)
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
|
|
29
29
|
**Documentation**: [https://benavlabs.github.io/crudadmin/](https://benavlabs.github.io/crudadmin/)
|
|
30
30
|
|
|
31
|
-
> [!WARNING]
|
|
32
|
-
> CRUDAdmin is still experimental. While actively developed and tested, APIs may change between versions. Upgrade with caution in production environments, always
|
|
31
|
+
> \[!WARNING\]
|
|
32
|
+
> CRUDAdmin is still experimental. While actively developed and tested, APIs may change between versions. Upgrade with caution in production environments, always carefully reading the changelog.
|
|
33
33
|
|
|
34
34
|
## Features
|
|
35
35
|
|
|
@@ -131,6 +131,21 @@ Navigate to `/admin` to access your admin interface with:
|
|
|
131
131
|
- Responsive UI with dark/light themes
|
|
132
132
|
- Built-in security features
|
|
133
133
|
|
|
134
|
+
> \[!WARNING\]
|
|
135
|
+
> **Important for SQLite users:** If you're using SQLite databases (which is the default for CRUDAdmin), make sure to add database files to your `.gitignore` to avoid committing sensitive data like admin credentials and session tokens.
|
|
136
|
+
>
|
|
137
|
+
> ```gitignore
|
|
138
|
+
> # SQLite databases - NEVER commit these to version control
|
|
139
|
+
> *.db
|
|
140
|
+
> *.sqlite
|
|
141
|
+
> *.sqlite3
|
|
142
|
+
> crudadmin_data/
|
|
143
|
+
>
|
|
144
|
+
> # Also exclude database journals
|
|
145
|
+
> *.db-journal
|
|
146
|
+
> *.sqlite3-journal
|
|
147
|
+
> ```
|
|
148
|
+
|
|
134
149
|
## Session Backends
|
|
135
150
|
|
|
136
151
|
### Development (Default)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from collections.abc import AsyncGenerator, Callable
|
|
3
|
-
from datetime import
|
|
3
|
+
from datetime import datetime, timezone
|
|
4
4
|
from typing import Any, Dict, Optional, cast
|
|
5
5
|
|
|
6
6
|
from fastapi import APIRouter, Cookie, Depends, Request, Response
|
|
@@ -19,6 +19,8 @@ from ..session.storage import AbstractSessionStorage, get_session_storage
|
|
|
19
19
|
from .auth import AdminAuthentication
|
|
20
20
|
from .typing import RouteResponse
|
|
21
21
|
|
|
22
|
+
UTC = timezone.utc
|
|
23
|
+
|
|
22
24
|
logger = logging.getLogger(__name__)
|
|
23
25
|
|
|
24
26
|
EndpointCallable = Callable[..., Any]
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
+
import sys
|
|
3
4
|
import time
|
|
4
5
|
from collections.abc import Awaitable, Callable
|
|
5
|
-
from datetime import
|
|
6
|
+
from datetime import datetime, timedelta, timezone
|
|
6
7
|
from typing import (
|
|
7
8
|
Any,
|
|
8
9
|
AsyncGenerator,
|
|
@@ -10,13 +11,17 @@ from typing import (
|
|
|
10
11
|
List,
|
|
11
12
|
Optional,
|
|
12
13
|
Type,
|
|
13
|
-
TypeAlias,
|
|
14
14
|
TypedDict,
|
|
15
15
|
TypeVar,
|
|
16
16
|
Union,
|
|
17
17
|
cast,
|
|
18
18
|
)
|
|
19
19
|
|
|
20
|
+
if sys.version_info >= (3, 10):
|
|
21
|
+
from typing import TypeAlias
|
|
22
|
+
else:
|
|
23
|
+
from typing_extensions import TypeAlias
|
|
24
|
+
|
|
20
25
|
from fastapi import APIRouter, Depends, FastAPI, Request
|
|
21
26
|
from fastapi.security import OAuth2PasswordBearer
|
|
22
27
|
from fastapi.staticfiles import StaticFiles
|
|
@@ -43,6 +48,8 @@ from .admin_site import AdminSite
|
|
|
43
48
|
from .model_view import ModelView
|
|
44
49
|
from .typing import RouteResponse
|
|
45
50
|
|
|
51
|
+
UTC = timezone.utc
|
|
52
|
+
|
|
46
53
|
logger = logging.getLogger("crudadmin")
|
|
47
54
|
|
|
48
55
|
ModelType = TypeVar("ModelType", bound=DeclarativeBase)
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
from datetime import
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
from typing import Optional, Type
|
|
3
3
|
|
|
4
4
|
from sqlalchemy import Boolean, DateTime, String
|
|
5
5
|
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
6
6
|
|
|
7
|
+
UTC = timezone.utc
|
|
8
|
+
|
|
7
9
|
|
|
8
10
|
def create_admin_user(base: Type[DeclarativeBase]) -> Type[DeclarativeBase]:
|
|
9
11
|
class AdminUser(base): # type: ignore
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
from datetime import
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
from typing import Any, Optional
|
|
3
3
|
|
|
4
4
|
from pydantic import BaseModel, Field, field_serializer
|
|
5
5
|
|
|
6
|
+
UTC = timezone.utc
|
|
7
|
+
|
|
6
8
|
|
|
7
9
|
class TimestampSchema(BaseModel):
|
|
8
10
|
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
|
9
11
|
updated_at: Optional[datetime] = Field(default=None)
|
|
10
12
|
|
|
11
13
|
@field_serializer("created_at")
|
|
12
|
-
def serialize_dt(self, created_at: datetime
|
|
14
|
+
def serialize_dt(self, created_at: Optional[datetime], _info: Any) -> Optional[str]:
|
|
13
15
|
if created_at is not None:
|
|
14
16
|
return created_at.isoformat()
|
|
15
17
|
return None
|
|
16
18
|
|
|
17
19
|
@field_serializer("updated_at")
|
|
18
20
|
def serialize_updated_at(
|
|
19
|
-
self, updated_at: datetime
|
|
20
|
-
) -> str
|
|
21
|
+
self, updated_at: Optional[datetime], _info: Any
|
|
22
|
+
) -> Optional[str]:
|
|
21
23
|
if updated_at is not None:
|
|
22
24
|
return updated_at.isoformat()
|
|
23
25
|
return None
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import logging
|
|
3
3
|
from collections.abc import Callable
|
|
4
|
-
from datetime import
|
|
4
|
+
from datetime import datetime, timezone
|
|
5
5
|
from typing import Any, Dict, Optional, Type
|
|
6
6
|
|
|
7
7
|
from fastapi import Request
|
|
@@ -11,6 +11,8 @@ from sqlalchemy.orm import DeclarativeBase
|
|
|
11
11
|
|
|
12
12
|
from .models import EventType
|
|
13
13
|
|
|
14
|
+
UTC = timezone.utc
|
|
15
|
+
|
|
14
16
|
logger = logging.getLogger(__name__)
|
|
15
17
|
|
|
16
18
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from datetime import
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
from typing import Any, Optional, cast
|
|
3
3
|
|
|
4
4
|
from sqlalchemy import JSON, DateTime, String
|
|
@@ -7,6 +7,8 @@ from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
|
7
7
|
|
|
8
8
|
from .schemas import EventStatus, EventType
|
|
9
9
|
|
|
10
|
+
UTC = timezone.utc
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
def create_admin_event_log(base: type[DeclarativeBase]) -> type[DeclarativeBase]:
|
|
12
14
|
tablename = "admin_event_log"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
-
from datetime import
|
|
3
|
+
from datetime import datetime, timedelta, timezone
|
|
4
4
|
from decimal import Decimal
|
|
5
5
|
from enum import Enum
|
|
6
6
|
from typing import Any, Optional, cast
|
|
@@ -19,6 +19,8 @@ from .schemas import (
|
|
|
19
19
|
EventType,
|
|
20
20
|
)
|
|
21
21
|
|
|
22
|
+
UTC = timezone.utc
|
|
23
|
+
|
|
22
24
|
logger = logging.getLogger(__name__)
|
|
23
25
|
|
|
24
26
|
|
|
@@ -6,7 +6,7 @@ dashboard for session management and monitoring.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import logging
|
|
9
|
-
from datetime import
|
|
9
|
+
from datetime import datetime, timezone
|
|
10
10
|
from typing import Any, Optional, TypeVar
|
|
11
11
|
|
|
12
12
|
from pydantic import BaseModel
|
|
@@ -16,6 +16,8 @@ from ...core.db import DatabaseConfig
|
|
|
16
16
|
from ..schemas import AdminSessionCreate, AdminSessionUpdate
|
|
17
17
|
from ..storage import AbstractSessionStorage
|
|
18
18
|
|
|
19
|
+
UTC = timezone.utc
|
|
20
|
+
|
|
19
21
|
T = TypeVar("T", bound=BaseModel)
|
|
20
22
|
logger = logging.getLogger(__name__)
|
|
21
23
|
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
import re
|
|
4
|
-
from datetime import
|
|
4
|
+
from datetime import datetime, timedelta, timezone
|
|
5
5
|
from typing import Optional, Pattern, TypeVar
|
|
6
6
|
|
|
7
7
|
from pydantic import BaseModel
|
|
8
8
|
|
|
9
9
|
from ..storage import AbstractSessionStorage
|
|
10
10
|
|
|
11
|
+
UTC = timezone.utc
|
|
12
|
+
|
|
11
13
|
T = TypeVar("T", bound=BaseModel)
|
|
12
14
|
logger = logging.getLogger(__name__)
|
|
13
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import secrets
|
|
3
|
-
from datetime import
|
|
3
|
+
from datetime import datetime, timedelta, timezone
|
|
4
4
|
from typing import Any, Literal, Optional
|
|
5
5
|
|
|
6
6
|
from fastapi import Request, Response
|
|
@@ -10,6 +10,8 @@ from .schemas import CSRFToken, SessionCreate, SessionData, UserAgentInfo
|
|
|
10
10
|
from .storage import AbstractSessionStorage, get_session_storage
|
|
11
11
|
from .user_agents_types import parse
|
|
12
12
|
|
|
13
|
+
UTC = timezone.utc
|
|
14
|
+
|
|
13
15
|
logger = logging.getLogger(__name__)
|
|
14
16
|
|
|
15
17
|
SamesiteType = Literal["lax", "strict", "none"]
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
from datetime import
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
from typing import Any
|
|
3
3
|
|
|
4
4
|
from sqlalchemy import JSON, Boolean, DateTime, String
|
|
5
5
|
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
6
6
|
|
|
7
|
+
UTC = timezone.utc
|
|
8
|
+
|
|
7
9
|
|
|
8
10
|
def create_admin_session_model(base: type[DeclarativeBase]) -> type[DeclarativeBase]:
|
|
9
11
|
class AdminSession(base): # type: ignore
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from datetime import
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
from enum import Enum
|
|
3
3
|
from typing import Any, Optional
|
|
4
4
|
from uuid import uuid4
|
|
@@ -7,6 +7,8 @@ from pydantic import BaseModel, Field, field_validator
|
|
|
7
7
|
|
|
8
8
|
from ..core.schemas.timestamp import TimestampSchema
|
|
9
9
|
|
|
10
|
+
UTC = timezone.utc
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
class DeviceType(str, Enum):
|
|
12
14
|
"""Device type enumeration"""
|
|
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
|
|
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
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/dashboard/dashboard_content.html
RENAMED
|
File without changes
|
|
File without changes
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/events_content.html
RENAMED
|
File without changes
|
|
File without changes
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/management/health_content.html
RENAMED
|
File without changes
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/list_content.html
RENAMED
|
File without changes
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/pagination.html
RENAMED
|
File without changes
|
{crudadmin-0.3.2 → crudadmin-0.3.3}/crudadmin/templates/admin/model/components/table_content.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|