From d0523ba3a9fb63364cb030175462b6038fc9168a Mon Sep 17 00:00:00 2001 From: ITQ Date: Tue, 2 Apr 2024 21:40:19 +0300 Subject: [PATCH] [fix] --- .../api/events/migrations/0001_initial.py | 11 +++- ...event_end_date_event_is_online_and_more.py | 52 ------------------- backend/project/api/events/models.py | 7 +++ .../api/tree/migrations/0001_initial.py | 21 +++----- .../api/users/migrations/0001_initial.py | 3 +- backend/project/api/users/models.py | 1 + backend/project/api/users/serializers.py | 4 +- backend/project/config/settings.py | 2 +- 8 files changed, 30 insertions(+), 71 deletions(-) delete mode 100644 backend/project/api/events/migrations/0002_event_description_event_end_date_event_is_online_and_more.py diff --git a/backend/project/api/events/migrations/0001_initial.py b/backend/project/api/events/migrations/0001_initial.py index ef9d22c..1b808c9 100644 --- a/backend/project/api/events/migrations/0001_initial.py +++ b/backend/project/api/events/migrations/0001_initial.py @@ -1,6 +1,7 @@ -# Generated by Django 4.2.11 on 2024-04-02 00:08 +# Generated by Django 4.2.11 on 2024-04-02 17:05 from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,6 +10,7 @@ class Migration(migrations.Migration): dependencies = [ ('users', '0001_initial'), + ('tree', '0001_initial'), ] operations = [ @@ -19,6 +21,13 @@ class Migration(migrations.Migration): ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('title', models.CharField(max_length=255)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('description', models.TextField(default='')), + ('is_online', models.BooleanField(default=True, verbose_name='оффлайн или онлайн')), + ('location', models.CharField(default='', max_length=512)), + ('limitation', models.CharField(choices=[('Everyone', 'everyone'), ('School', 'school'), ('Student', 'student'), ('Professional', 'professional')], default='everyone', max_length=64)), + ('tree', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='tree.tree')), ('users', models.ManyToManyField(blank=True, related_name='events', to='users.user')), ], options={ diff --git a/backend/project/api/events/migrations/0002_event_description_event_end_date_event_is_online_and_more.py b/backend/project/api/events/migrations/0002_event_description_event_end_date_event_is_online_and_more.py deleted file mode 100644 index 9992f4b..0000000 --- a/backend/project/api/events/migrations/0002_event_description_event_end_date_event_is_online_and_more.py +++ /dev/null @@ -1,52 +0,0 @@ -# Generated by Django 4.2.11 on 2024-04-02 11:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("events", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="event", - name="description", - field=models.TextField(default=""), - ), - migrations.AddField( - model_name="event", - name="end_date", - field=models.DateField(blank=True, null=True), - ), - migrations.AddField( - model_name="event", - name="is_online", - field=models.BooleanField(default=True, verbose_name="оффлайн или онлайн"), - ), - migrations.AddField( - model_name="event", - name="limitation", - field=models.CharField( - choices=[ - ("Everyone", "everyone"), - ("School", "school"), - ("Student", "student"), - ("Professional", "professional"), - ], - default="everyone", - max_length=64, - ), - ), - migrations.AddField( - model_name="event", - name="location", - field=models.CharField(default="", max_length=512), - ), - migrations.AddField( - model_name="event", - name="start_date", - field=models.DateField(blank=True, null=True), - ), - ] diff --git a/backend/project/api/events/models.py b/backend/project/api/events/models.py index 3684e65..ce340a5 100644 --- a/backend/project/api/events/models.py +++ b/backend/project/api/events/models.py @@ -1,6 +1,7 @@ from django.db import models from api.core.models import BaseModel +from api.tree.models import Tree class Event(BaseModel): @@ -51,5 +52,11 @@ class Event(BaseModel): default="everyone", ) + tree = models.ForeignKey( + Tree, + on_delete=models.CASCADE, + related_name="events", + ) + def __str__(self): return self.title diff --git a/backend/project/api/tree/migrations/0001_initial.py b/backend/project/api/tree/migrations/0001_initial.py index 1aa8a35..afd159b 100644 --- a/backend/project/api/tree/migrations/0001_initial.py +++ b/backend/project/api/tree/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.11 on 2024-04-02 08:25 +# Generated by Django 4.2.11 on 2024-04-02 17:05 from django.db import migrations, models @@ -7,23 +7,16 @@ class Migration(migrations.Migration): initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="Tree", + name='Tree', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255, unique=True)), - ("data", models.JSONField()), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('data', models.JSONField()), ], ), ] diff --git a/backend/project/api/users/migrations/0001_initial.py b/backend/project/api/users/migrations/0001_initial.py index 2e8a491..af2d1d5 100644 --- a/backend/project/api/users/migrations/0001_initial.py +++ b/backend/project/api/users/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.11 on 2024-04-02 00:08 +# Generated by Django 4.2.11 on 2024-04-02 17:05 from django.db import migrations, models @@ -22,6 +22,7 @@ class Migration(migrations.Migration): ('email', models.EmailField(max_length=254)), ('birth_date', models.DateTimeField()), ('bio', models.TextField()), + ('skills', models.JSONField(default=dict)), ], options={ 'abstract': False, diff --git a/backend/project/api/users/models.py b/backend/project/api/users/models.py index fb02494..94ca156 100644 --- a/backend/project/api/users/models.py +++ b/backend/project/api/users/models.py @@ -9,6 +9,7 @@ class User(BaseModel): email = models.EmailField() birth_date = models.DateTimeField() bio = models.TextField() + skills = models.JSONField(default=dict) def __str__(self): return f"{self.first_name} {self.last_name}" diff --git a/backend/project/api/users/serializers.py b/backend/project/api/users/serializers.py index 085b661..8bb9b2a 100644 --- a/backend/project/api/users/serializers.py +++ b/backend/project/api/users/serializers.py @@ -5,7 +5,7 @@ from api.users.models import User class UserSerializer(serializers.ModelSerializer): - event_id = serializers.IntegerField() + event = serializers.IntegerField(write_only=True) class Meta: model = User @@ -13,7 +13,7 @@ class UserSerializer(serializers.ModelSerializer): def create(self, validated_data): try: - event = Event.objects.get(pk=validated_data.pop("event_id")) + event = Event.objects.get(pk=validated_data.pop("event")) except Event.DoesNotExist as e: msg = "Event does not exist" raise serializers.ValidationError(msg) from e diff --git a/backend/project/config/settings.py b/backend/project/config/settings.py index ab0897e..6de71a9 100755 --- a/backend/project/config/settings.py +++ b/backend/project/config/settings.py @@ -12,7 +12,7 @@ DEFAULT_HOSTS = ["127.0.0.1", "localhost"] with env.prefixed("DJANGO_"): SECRET_KEY = env("SECRET_KEY", "change-me") - DEBUG = env.bool("DEBUG", False) + DEBUG = env.bool("DEBUG", True) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", DEFAULT_HOSTS) INTERNAL_IPS = env.list("INTERNAL_IPS", ALLOWED_HOSTS) CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", [])