Skip to content

Commit

Permalink
Merge pull request #219 from Evanlab02/87-stores-custom-admin-configu…
Browse files Browse the repository at this point in the history
…ration

Stores custom admin configuration
  • Loading branch information
Evanlab02 authored Nov 20, 2024
2 parents 3456748 + 7a40b25 commit d6b8524
Show file tree
Hide file tree
Showing 13 changed files with 154 additions and 105 deletions.
11 changes: 0 additions & 11 deletions .vscode/extensions.json

This file was deleted.

32 changes: 0 additions & 32 deletions .vscode/settings.json

This file was deleted.

1 change: 1 addition & 0 deletions backend/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ gunicorn = "==23.0.0"
uvicorn-worker = "==0.2.0"
psycopg = {extras = ["binary", "pool"], version = "==3.2.3"}
argon2-cffi = "==23.1.0"
docutils = "==0.21.2"

[dev-packages]
black = "==24.10.0"
Expand Down
41 changes: 25 additions & 16 deletions backend/Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions backend/requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ mccabe==0.7.0; python_version >= '3.6'
mypy==1.11.2; python_version >= '3.8'
mypy-extensions==1.0.0; python_version >= '3.5'
outcome==1.3.0.post0; python_version >= '3.7'
packaging==24.1; python_version >= '3.8'
packaging==24.2; python_version >= '3.8'
pathspec==0.12.1; python_version >= '3.8'
platformdirs==4.3.6; python_version >= '3.8'
pluggy==1.5.0; python_version >= '3.8'
Expand All @@ -39,7 +39,7 @@ selenium==4.25.0; python_version >= '3.8'
sniffio==1.3.1; python_version >= '3.7'
snowballstemmer==2.2.0
sortedcontainers==2.4.0
sqlparse==0.5.1; python_version >= '3.8'
sqlparse==0.5.2; python_version >= '3.8'
termcolor==2.5.0; python_version >= '3.9'
trio==0.27.0; python_version >= '3.8'
trio-websocket==0.11.1; python_version >= '3.7'
Expand All @@ -55,10 +55,11 @@ argon2-cffi==23.1.0; python_version >= '3.7'
argon2-cffi-bindings==21.2.0; python_version >= '3.6'
cffi==1.17.1; python_version >= '3.8'
django-ninja==1.3.0; python_version >= '3.7'
docutils==0.21.2; python_version >= '3.9'
gunicorn==23.0.0; python_version >= '3.7'
psycopg[binary,pool]==3.2.3; python_version >= '3.8'
psycopg-binary==3.2.3
psycopg-pool==3.2.3
psycopg-pool==3.2.4
pycparser==2.22; python_version >= '3.8'
pydantic==2.9.2; python_version >= '3.8'
pydantic-core==2.23.4; python_version >= '3.8'
Expand Down
7 changes: 4 additions & 3 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,17 @@ cffi==1.17.1; python_version >= '3.8'
click==8.1.7; python_version >= '3.7'
django==5.1.2; python_version >= '3.10'
django-ninja==1.3.0; python_version >= '3.7'
docutils==0.21.2; python_version >= '3.9'
gunicorn==23.0.0; python_version >= '3.7'
h11==0.14.0; python_version >= '3.7'
packaging==24.1; python_version >= '3.8'
packaging==24.2; python_version >= '3.8'
psycopg[binary,pool]==3.2.3; python_version >= '3.8'
psycopg-binary==3.2.3
psycopg-pool==3.2.3
psycopg-pool==3.2.4
pycparser==2.22; python_version >= '3.8'
pydantic==2.9.2; python_version >= '3.8'
pydantic-core==2.23.4; python_version >= '3.8'
sqlparse==0.5.1; python_version >= '3.8'
sqlparse==0.5.2; python_version >= '3.8'
typing-extensions==4.12.2; python_version < '3.13'
uvicorn==0.31.1; python_version >= '3.8'
uvicorn-worker==0.2.0; python_version >= '3.8'
1 change: 1 addition & 0 deletions backend/shoppingapp/settings/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"items.apps.ItemsConfig",
"stores.apps.StoresConfig",
"dashboard.apps.DashboardConfig",
"django.contrib.admindocs",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
Expand Down
1 change: 1 addition & 0 deletions backend/shoppingapp/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ def item_does_not_exist_handler(request: HttpRequest, exception: ItemDoesNotExis


urlpatterns = [
path("admin/doc/", include("django.contrib.admindocs.urls")),
path("admin/", admin.site.urls),
path("api/v1/", api.urls),
path("", include("authentication.urls")),
Expand Down
17 changes: 17 additions & 0 deletions backend/stores/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,23 @@ class StoreAdmin(ModelAdmin): # type: ignore

list_display = ["name", "store_type", "description", "created_at", "updated_at", "user"]
list_filter = ["store_type", "user", "created_at", "updated_at"]
actions = ["make_online", "make_in_store", "make_online_and_in_store"]
search_fields = ["name", "description"]

@admin.action(description="Mark selected stores as online.")
def make_online(self, request, queryset) -> None: # type: ignore
"""Update all selected stores to be online."""
queryset.update(store_type=1)

@admin.action(description="Mark selected stores as in-store.")
def make_in_store(self, request, queryset) -> None: # type: ignore
"""Update all selected stores to be in-store."""
queryset.update(store_type=2)

@admin.action(description="Mark selected stores as online and in-store.")
def make_online_and_in_store(self, request, queryset) -> None: # type: ignore
"""Update all selected stores as online and in-store."""
queryset.update(store_type=3)


admin.site.register(Store, StoreAdmin)
Expand Down
53 changes: 25 additions & 28 deletions compose.dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,52 +2,53 @@ services:
dev-shopping-app-pgadmin:
container_name: shopping-pgadmin
image: dpage/pgadmin4:8.5
restart: always
env_file:
- .env.dev
environment:
SCRIPT_NAME: /pgadmin
networks:
- dev-postgres-django-network
restart: always
volumes:
- dev-pgadmin-data:/var/lib/pgadmin

dev-shopping-app-db:
container_name: shopping-db
image: postgres:16.2-alpine3.18
restart: always
environment:
POSTGRES_USER: postgres
env_file:
- .env.dev
networks:
- dev-postgres-django-network
volumes:
- dev-postgres-data:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready", "-U", "postgres" ]
interval: 5s
timeout: 5s
retries: 5
networks:
- dev-postgres-django-network
restart: always

dev-shopping-django-administration:
container_name: shopping-django-admin
command: /bin/bash -c "python manage.py migrate && python manage.py runserver"
build:
context: .
dockerfile: docker/admin/Dockerfile
env_file:
- .env.dev
environment:
SHOPPING_DEFAULT_SETTINGS_MODULE: shoppingapp.settings.settings
command: /bin/bash -c "python manage.py migrate && python manage.py runserver"
networks:
- dev-postgres-django-network
depends_on:
dev-shopping-app-db:
condition: service_healthy
networks:
- dev-postgres-django-network

dev-shopping-django-app:
container_name: shopping-django-app
command: "gunicorn -b 0.0.0.0:80 -w 1 --log-config shoppingapp/logging.config --capture-output --log-level info --worker-class uvicorn_worker.UvicornWorker 'shoppingapp.config.asgi:app'"
build:
context: .
dockerfile: docker/server/Dockerfile
Expand All @@ -56,59 +57,56 @@ services:
TESTS_ENVIRONMENT: true
env_file:
- .env.dev
command: "uvicorn shoppingapp.config.asgi:app --host 0.0.0.0 --port 80 --workers 16"
networks:
- dev-postgres-django-network
depends_on:
dev-shopping-app-db:
condition: service_healthy
networks:
- dev-postgres-django-network
restart: always
develop:
watch:
- action: sync+restart
path: ../src/authentication
target: /src/authentication
path: ./backend/authentication
target: /backend/authentication
- action: sync+restart
path: ../src/stores
target: /src/stores
path: ./backend/stores
target: /backend/stores
- action: sync+restart
path: ../src/items
target: /src/items
path: ./backenditems
target: /backend/items
- action: sync+restart
path: ../src/shoppingapp
target: /src/shoppingapp
path: ./backend/shoppingapp
target: /backend/shoppingapp
- action: rebuild
path: ../src/requirements.txt
path: ./backend/requirements.txt

dev-shopping-django-site:
container_name: shopping-django-site
restart: always
build:
context: .
dockerfile: docker/site/Dockerfile
expose:
- "80"
ports:
- "8001:80"
networks:
- dev-postgres-django-network
depends_on:
dev-shopping-app-db:
condition: service_healthy
networks:
- dev-postgres-django-network
restart: always
develop:
watch:
- action: sync+restart
path: ../src/Caddyfile
path: ./site/Caddyfile
target: /etc/caddy/Caddyfile
- action: sync+restart
path: ../src/static
path: ./backend/static
target: /var/www/html/static/
- action: sync+restart
path: ../src/htmlcov
target: /var/www/html/htmlcov/

dev-shopping-load-testing:
container_name: shopping-load-testing
restart: always
build:
context: .
dockerfile: docker/testing/Dockerfile
Expand All @@ -118,7 +116,6 @@ services:
- "8089:8089"
networks:
- dev-postgres-django-network
restart: always

networks:
dev-postgres-django-network:
Expand Down
Loading

0 comments on commit d6b8524

Please sign in to comment.