@@ -18,13 +18,20 @@ from ml_model.serializers import ( class NeuronModelResource(ModelResource): category = ie_fields.Field( - column_name='category', + column_name='Категория', attribute='category', + readonly=True, widget=ForeignKeyWidget(ModelCategory, 'slug'), ) - versions = ie_fields.Field() - inputs = ie_fields.Field() - parameters = ie_fields.Field() + versions = ie_fields.Field( + column_name='Версии', + ) + inputs = ie_fields.Field( + column_name='Входящие потоки', + ) + parameters = ie_fields.Field( + column_name='Параметры', + ) def dehydrate_versions(self, obj: NeuronModel): return ModelVersionSerializer(obj.versions, many=True).data @@ -236,7 +236,9 @@ class AccruedTokensFilter(admin.SimpleListFilter): ] def queryset(self, request, queryset): - queryset = queryset.annotate(total_bonuses=Sum('account_referral_accruals')) + queryset = queryset.annotate( + total_bonuses=Sum('account_referral_accruals__amount') + ) match self.value(): case 'more-zero': return queryset.filter(total_bonuses__gt=0) @@ -271,4 +273,4 @@ class ReferralAccountAdmin(admin.ModelAdmin): @admin.display(description='Получено бонусов') def _accrued_bonuses(self, obj: ReferralAccount): - return f'{obj.accrued_bonuses.aggregate(total=Coalesce(Sum('amount'), Decimal(0), output_field=models.DecimalField()))['total']} токенов' + return f'{obj.accrued_bonuses.aggregate(total=Coalesce(Sum("amount"), Decimal(0), output_field=models.DecimalField()))["total"]} токенов' @@ -1,26 +1,26 @@ .DEFAULT_GOAL=start start: - cp --update=none .env.dist .env + cp -n .env.dist .env docker compose -f docker-compose.debug.yml --project-name air up .PHONY=start rebuild: - cp --update=none .env.dist .env + cp -n .env.dist .env docker compose -f docker-compose.debug.yml --project-name air up --build .PHONY=rebuild stop: - cp --update=none .env.dist .env + cp -n .env.dist .env docker compose -f docker-compose.debug.yml --project-name air down --remove-orphans .PHONY=stop cleanup: - cp --update=none .env.dist .env + cp -n .env.dist .env docker compose -f docker-compose.debug.yml --project-name air down --remove-orphans -v .PHONY=cleanup full-cleanup: - cp --update=none .env.dist .env + cp -n .env.dist .env docker compose -f docker-compose.debug.yml --project-name air down --remove-orphans -v --rmi local .PHONY=full-cleanup \ No newline at end of file @@ -10,6 +10,7 @@ services: - /bin/sh - -c - python manage.py initialize_buckets && + python manage.py migrate && python manage.py collectstatic --no-input && (python manage.py createsuperuser --no-input || true) && python -m uvicorn --host 0.0.0.0 --workers 1 --timeout-keep-alive 300 --ws wsproto --loop uvloop --http httptools --lifespan off backend.asgi:application --log-level debug --reload @@ -20,8 +21,6 @@ services: env_file: - .env depends_on: - migrator: - condition: service_completed_successfully cache-mdb: condition: service_started s3: @@ -29,22 +28,6 @@ services: db: condition: service_started - migrator: - restart: on-failure:1 - container_name: migrator - build: - context: . - dockerfile: Dockerfile.dev - volumes: - - .:/code - command: - - /bin/sh - - -c - - | - python manage.py migrate - env_file: - - .env - cache-mdb: container_name: cache-mdb image: redis:alpine @@ -43,9 +43,24 @@ services: env_file: - $ENV depends_on: - - cache-mdb - - celery-mdb + migrator: + condition: service_completed_successfully + cache-mdb: + condition: service_started + migrator: + restart: on-failure:1 + image: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + build: + context: . + dockerfile: Dockerfile + command: + - /bin/sh + - -c + - python manage.py migrate + env_file: + - $ENV + celery: image: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA build: