From 9587995354b404a92274a117bd6f888a491952d5 Mon Sep 17 00:00:00 2001 From: Matteo Rosati Date: Wed, 11 Feb 2026 21:05:49 +0100 Subject: [PATCH] simplify apps --- api/admin.py | 3 -- api/apps.py | 5 --- api/migrations/0001_initial.py | 22 ---------- api/migrations/0002_playerinfo.py | 38 ---------------- api/models.py | 16 ------- api/urls.py | 5 --- api/views.py | 6 --- db.sqlite3 | Bin 180224 -> 204800 bytes dronewars/settings.py | 3 +- dronewars/urls.py | 3 -- frontend/admin.py | 3 -- frontend/apps.py | 8 ---- frontend/migrations/0001_userprofile.py | 37 ---------------- .../0002_userprofile_display_name_unique.py | 15 ------- frontend/migrations/__init__.py | 0 frontend/urls.py | 1 - frontend/views.py | 2 +- {api => game}/__init__.py | 0 game/apps.py | 5 +++ game/migrations/0001_initial.py | 41 ++++++++++++++++++ {api => game}/migrations/__init__.py | 0 {frontend => game}/models.py | 17 +++++++- {api => game}/tests.py | 0 game/views.py | 3 ++ 24 files changed, 67 insertions(+), 166 deletions(-) delete mode 100644 api/admin.py delete mode 100644 api/apps.py delete mode 100644 api/migrations/0001_initial.py delete mode 100644 api/migrations/0002_playerinfo.py delete mode 100644 api/models.py delete mode 100644 api/urls.py delete mode 100644 api/views.py delete mode 100644 frontend/admin.py delete mode 100644 frontend/apps.py delete mode 100644 frontend/migrations/0001_userprofile.py delete mode 100644 frontend/migrations/0002_userprofile_display_name_unique.py delete mode 100644 frontend/migrations/__init__.py rename {api => game}/__init__.py (100%) create mode 100644 game/apps.py create mode 100644 game/migrations/0001_initial.py rename {api => game}/migrations/__init__.py (100%) rename {frontend => game}/models.py (62%) rename {api => game}/tests.py (100%) create mode 100644 game/views.py diff --git a/api/admin.py b/api/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/api/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/api/apps.py b/api/apps.py deleted file mode 100644 index d87006d..0000000 --- a/api/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class ApiConfig(AppConfig): - name = 'api' diff --git a/api/migrations/0001_initial.py b/api/migrations/0001_initial.py deleted file mode 100644 index 449752e..0000000 --- a/api/migrations/0001_initial.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 6.0.2 on 2026-02-10 18:07 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Building', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('geojson_id', models.IntegerField()), - ('health', models.FloatField()), - ], - ), - ] diff --git a/api/migrations/0002_playerinfo.py b/api/migrations/0002_playerinfo.py deleted file mode 100644 index 2346d21..0000000 --- a/api/migrations/0002_playerinfo.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 6.0.2 on 2026-02-11 00:00 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - dependencies = [ - ("api", "0001_initial"), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name="PlayerInfo", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("energy", models.PositiveIntegerField()), - ( - "user", - models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, - related_name="player_info", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - ), - ] diff --git a/api/models.py b/api/models.py deleted file mode 100644 index 2464d11..0000000 --- a/api/models.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.conf import settings -from django.db import models - - -class Building(models.Model): - geojson_id = models.IntegerField() - health = models.FloatField() - - -class PlayerInfo(models.Model): - user = models.OneToOneField( - settings.AUTH_USER_MODEL, - on_delete=models.CASCADE, - related_name="player_info", - ) - energy = models.PositiveIntegerField() diff --git a/api/urls.py b/api/urls.py deleted file mode 100644 index 7dccde5..0000000 --- a/api/urls.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.urls import path - -from .views import prova - -urlpatterns = [path("prova/", prova)] diff --git a/api/views.py b/api/views.py deleted file mode 100644 index 0bcf0dd..0000000 --- a/api/views.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.http.request import HttpRequest -from django.http.response import JsonResponse - - -def prova(reques: HttpRequest): - return JsonResponse({"message": "OK"}) diff --git a/db.sqlite3 b/db.sqlite3 index 0dddb75b071ad527557e67956256622e2f934d59..88becb5e567e883d278f78f7cca952bea6e5f4d1 100644 GIT binary patch delta 3067 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 diff --git a/dronewars/settings.py b/dronewars/settings.py index 4ffd728..bd52cb5 100644 --- a/dronewars/settings.py +++ b/dronewars/settings.py @@ -40,12 +40,11 @@ ALLOWED_HOSTS = ["127.0.0.1", "localhost"] # Application definition INSTALLED_APPS = [ - "api", + "game", "frontend", "rest_framework", "rest_framework_simplejwt", "rest_framework_simplejwt.token_blacklist", - "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", diff --git a/dronewars/urls.py b/dronewars/urls.py index 4a31971..288b4d1 100644 --- a/dronewars/urls.py +++ b/dronewars/urls.py @@ -15,11 +15,8 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -from django.contrib import admin from django.urls import include, path urlpatterns = [ path("", include("frontend.urls")), - path("admin/", admin.site.urls), - path("api/", include("api.urls")), ] diff --git a/frontend/admin.py b/frontend/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/frontend/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/frontend/apps.py b/frontend/apps.py deleted file mode 100644 index 3035b67..0000000 --- a/frontend/apps.py +++ /dev/null @@ -1,8 +0,0 @@ -from django.apps import AppConfig - - -class FrontendConfig(AppConfig): - name = "frontend" - - def ready(self) -> None: - from . import models # noqa: F401 diff --git a/frontend/migrations/0001_userprofile.py b/frontend/migrations/0001_userprofile.py deleted file mode 100644 index 32726cd..0000000 --- a/frontend/migrations/0001_userprofile.py +++ /dev/null @@ -1,37 +0,0 @@ -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name="UserProfile", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("display_name", models.CharField(max_length=150)), - ( - "user", - models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, - related_name="profile", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - ), - ] diff --git a/frontend/migrations/0002_userprofile_display_name_unique.py b/frontend/migrations/0002_userprofile_display_name_unique.py deleted file mode 100644 index 231d0f1..0000000 --- a/frontend/migrations/0002_userprofile_display_name_unique.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("frontend", "0001_userprofile"), - ] - - operations = [ - migrations.AlterField( - model_name="userprofile", - name="display_name", - field=models.CharField(max_length=150, unique=True), - ), - ] diff --git a/frontend/migrations/__init__.py b/frontend/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/frontend/urls.py b/frontend/urls.py index aab6221..55ec43d 100644 --- a/frontend/urls.py +++ b/frontend/urls.py @@ -2,7 +2,6 @@ from django.urls import path from . import views - urlpatterns = [ path("", views.home, name="home"), path("auth/register/", views.register, name="register"), diff --git a/frontend/views.py b/frontend/views.py index 37d9f89..6bb2849 100644 --- a/frontend/views.py +++ b/frontend/views.py @@ -10,7 +10,7 @@ from django.shortcuts import redirect, render from django.views.decorators.http import require_http_methods from django_ratelimit.decorators import ratelimit -from .models import UserProfile +from game.models import UserProfile def home(request): diff --git a/api/__init__.py b/game/__init__.py similarity index 100% rename from api/__init__.py rename to game/__init__.py diff --git a/game/apps.py b/game/apps.py new file mode 100644 index 0000000..f46c908 --- /dev/null +++ b/game/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class GameConfig(AppConfig): + name = 'game' diff --git a/game/migrations/0001_initial.py b/game/migrations/0001_initial.py new file mode 100644 index 0000000..7e4d605 --- /dev/null +++ b/game/migrations/0001_initial.py @@ -0,0 +1,41 @@ +# Generated by Django 6.0.2 on 2026-02-11 20:00 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Building', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('geojson_id', models.IntegerField()), + ('health', models.FloatField()), + ], + ), + migrations.CreateModel( + name='PlayerInfo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('energy', models.PositiveIntegerField()), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='player_info', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('display_name', models.CharField(max_length=150, unique=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/api/migrations/__init__.py b/game/migrations/__init__.py similarity index 100% rename from api/migrations/__init__.py rename to game/migrations/__init__.py diff --git a/frontend/models.py b/game/models.py similarity index 62% rename from frontend/models.py rename to game/models.py index 3e559e1..1b6104b 100644 --- a/frontend/models.py +++ b/game/models.py @@ -4,6 +4,20 @@ from django.db.models.signals import post_save from django.dispatch import receiver +class Building(models.Model): + geojson_id = models.IntegerField() + health = models.FloatField() + + +class PlayerInfo(models.Model): + user = models.OneToOneField( + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + related_name="player_info", + ) + energy = models.PositiveIntegerField() + + class UserProfile(models.Model): user = models.OneToOneField( settings.AUTH_USER_MODEL, @@ -19,7 +33,8 @@ class UserProfile(models.Model): @receiver(post_save, sender=settings.AUTH_USER_MODEL) def create_profile_for_user(sender, instance, created, **kwargs): if created: - UserProfile.objects.create( # type: ignore[attr-defined] + UserProfile.objects.create( user=instance, display_name=instance.username, ) + PlayerInfo.objects.create(user=instance, energy=10_000) diff --git a/api/tests.py b/game/tests.py similarity index 100% rename from api/tests.py rename to game/tests.py diff --git a/game/views.py b/game/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/game/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.