From 8645fbed873d2579433fc4844bd4a5a244c96f13 Mon Sep 17 00:00:00 2001 From: natcza Date: Thu, 3 Feb 2022 23:41:21 +0100 Subject: [PATCH 01/43] Add DB Models --- eventnj/config/settings.py | 16 +++- eventnj/events/migrations/0001_initial.py | 91 +++++++++++++++++++++++ eventnj/events/models.py | 78 +++++++++++++++++++ 3 files changed, 182 insertions(+), 3 deletions(-) create mode 100644 eventnj/events/migrations/0001_initial.py diff --git a/eventnj/config/settings.py b/eventnj/config/settings.py index e1e0c0d..b7731d5 100644 --- a/eventnj/config/settings.py +++ b/eventnj/config/settings.py @@ -37,6 +37,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'events', ] MIDDLEWARE = [ @@ -73,14 +74,23 @@ # Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.sqlite3', +# 'NAME': BASE_DIR / 'db.sqlite3', +# } +# } + DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'eventnj', + 'USER': 'postgres', + 'PASSWORD': '', + 'HOST': 'localhost' } } - # Password validation # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators diff --git a/eventnj/events/migrations/0001_initial.py b/eventnj/events/migrations/0001_initial.py new file mode 100644 index 0000000..c5ad0a0 --- /dev/null +++ b/eventnj/events/migrations/0001_initial.py @@ -0,0 +1,91 @@ +# Generated by Django 3.2.8 on 2022-02-03 22:36 + +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Event', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=255)), + ('description', models.CharField(max_length=2000)), + ('limit_participant_reserve', models.IntegerField()), + ('limit_participant', models.IntegerField()), + ('start', models.DateTimeField()), + ('end', models.DateTimeField()), + ('start_registration', models.DateTimeField()), + ('end_registration', models.DateTimeField()), + ('status', models.IntegerField(choices=[(1, 'Pending'), (2, 'Published'), (3, 'Archive')])), + ('country', models.CharField(max_length=64)), + ('city', models.CharField(max_length=64)), + ('street', models.CharField(max_length=64)), + ('postcode', models.CharField(max_length=12)), + ('room', models.CharField(max_length=64)), + ('price', models.DecimalField(decimal_places=2, max_digits=6)), + ('is_online', models.BooleanField()), + ('online_link', models.CharField(max_length=500)), + ('date', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='Organizer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('description', models.CharField(max_length=2000)), + ('mail', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='Status_Participant', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.IntegerField(choices=[(1, 'Is_New'), (2, 'Is_Active_Mail'), (3, 'Is_Deactivate_Mail'), (4, 'Is_Active_Event'), (5, 'Is_Deactivate_Event')])), + ('date', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='Photo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('date', models.DateTimeField(auto_now_add=True)), + ('event_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photo', to='events.event')), + ], + ), + migrations.CreateModel( + name='Participant', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('mail', models.CharField(max_length=255)), + ('is_reserved', models.BooleanField(default=False)), + ('authentication_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('non_confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('identification_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('date', models.DateTimeField(auto_now_add=True)), + ('status_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.status_participant')), + ], + ), + migrations.AddField( + model_name='event', + name='organizer_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='organizer', to='events.organizer'), + ), + migrations.AddField( + model_name='event', + name='participant_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.participant'), + ), + ] diff --git a/eventnj/events/models.py b/eventnj/events/models.py index 71a8362..877efcf 100644 --- a/eventnj/events/models.py +++ b/eventnj/events/models.py @@ -1,3 +1,81 @@ from django.db import models +import uuid + +STATUS_EVENT = ( + (1, "Pending"), + (2, "Published"), + (3, "Archive") +) + +STATUS_PARTICIPANT = ( + (1, "Is_New"), + (2, "Is_Active_Mail"), + (3, "Is_Deactivate_Mail"), + (4, "Is_Active_Event"), + (5, "Is_Deactivate_Event"), +) # Create your models here. + +class Participant(models.Model): + name = models.CharField(max_length=255) + mail = models.CharField(max_length=255) + status_id = models.ForeignKey("Status_participant", related_name="participant", on_delete=models.CASCADE) + is_reserved = models.BooleanField(default=False) + # authentication_code = models.UUIDField(default=uuid.uuid4, editable=False) + authentication_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) + confirmation_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) + non_confirmation_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) + identification_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) + date = models.DateTimeField(auto_now_add=True) + +class Event(models.Model): + title = models.CharField(max_length=255) + description = models.CharField(max_length=2000) + organizer_id = models.ForeignKey("Organizer", related_name="organizer", on_delete=models.CASCADE) + limit_participant_reserve = models.IntegerField() + limit_participant = models.IntegerField() + participant_id = models.ForeignKey("Participant", related_name="participant", on_delete=models.CASCADE) + start = models.DateTimeField() + end = models.DateTimeField() + start_registration = models.DateTimeField() + end_registration = models.DateTimeField() + status = models.IntegerField(choices=STATUS_EVENT) + country = models.CharField(max_length=64) + city = models.CharField(max_length=64) + street = models.CharField(max_length=64) + postcode = models.CharField(max_length=12) + room = models.CharField(max_length=64) + price = models.DecimalField(max_digits=6, decimal_places=2) + is_online = models.BooleanField() + online_link = models.CharField(max_length=500) + date = models.DateTimeField(auto_now_add=True) + +class Organizer(models.Model): + name = models.CharField(max_length=255) + description = models.CharField(max_length=2000) + mail = models.CharField(max_length=255) +# TODO: widget do pola mail + +class Status_Participant(models.Model): + status = models.IntegerField(choices=STATUS_PARTICIPANT) + date = models.DateTimeField(auto_now_add=True) + +class Photo(models.Model): + event_id = models.ForeignKey("Event", related_name="photo", on_delete=models.CASCADE) + name = models.CharField(max_length=255) + # image = models.ImageField() + date = models.DateTimeField(auto_now_add=True) + + + + + + + + + + + + + From 6e5939f4eb51788b6b6006903a395b057a42209f Mon Sep 17 00:00:00 2001 From: natcza Date: Thu, 3 Feb 2022 23:52:18 +0100 Subject: [PATCH 02/43] add missing files --- .gitignore | 2 ++ poetry.lock | 44 +++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 1 + 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d7a9f45..9aba3c7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ __pycache__/ *.py[cod] *$py.class +../.DS_Store +.DS_Store # C extensions *.so diff --git a/poetry.lock b/poetry.lock index b466805..ce438c5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -38,6 +38,14 @@ python-versions = ">=3.6" python-dateutil = ">=2.4" text-unidecode = "1.3" +[[package]] +name = "pillow" +version = "9.0.1" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "python-dateutil" version = "2.8.2" @@ -84,7 +92,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "3.9" -content-hash = "980fb7ff89fcfdfbb6abd81b16c0766e9cc3818ae7d74067ee77d5db2c4fb172" +content-hash = "36ee5a5e6906db5637b38dd9f5a604f0058badb1485435e4ab16bae6cf27a2ee" [metadata.files] asgiref = [ @@ -99,6 +107,40 @@ faker = [ {file = "Faker-11.3.0-py3-none-any.whl", hash = "sha256:61f97034cea252b8426d81810afab2f3c27b584f2b4313400a0cc83a9b013ded"}, {file = "Faker-11.3.0.tar.gz", hash = "sha256:adbe567e64da6a1097feacab699000e1ad16e17a6592a8f0ae1ee0b7fbf19887"}, ] +pillow = [ + {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"}, + {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a"}, + {file = "Pillow-9.0.1-cp310-cp310-win32.whl", hash = "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e"}, + {file = "Pillow-9.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b"}, + {file = "Pillow-9.0.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030"}, + {file = "Pillow-9.0.1-cp37-cp37m-win32.whl", hash = "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669"}, + {file = "Pillow-9.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092"}, + {file = "Pillow-9.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204"}, + {file = "Pillow-9.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae"}, + {file = "Pillow-9.0.1-cp38-cp38-win32.whl", hash = "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c"}, + {file = "Pillow-9.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00"}, + {file = "Pillow-9.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838"}, + {file = "Pillow-9.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7"}, + {file = "Pillow-9.0.1-cp39-cp39-win32.whl", hash = "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7"}, + {file = "Pillow-9.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e"}, + {file = "Pillow-9.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70"}, + {file = "Pillow-9.0.1.tar.gz", hash = "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa"}, +] python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, diff --git a/pyproject.toml b/pyproject.toml index 041c126..e35fcbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,6 +7,7 @@ authors = ["Your Name "] [tool.poetry.dependencies] python = "3.9" Django = "3.2.8" +Pillow = "^9.0.1" [tool.poetry.dev-dependencies] Faker = "^11.3.0" From c2e48718baf621b52c12069dcfa1bb7b5eddf24f Mon Sep 17 00:00:00 2001 From: natcza Date: Mon, 7 Feb 2022 22:34:39 +0100 Subject: [PATCH 03/43] Update of db-still not working --- db_input.txt | 10 +++++ eventnj/config/settings.py | 24 ++++++------ eventnj/config/urls.py | 4 ++ .../events/management/commands/create_db.py | 31 +++++++++++++++ eventnj/events/management/commands/fill_db.py | 14 +++++++ eventnj/events/migrations/0001_initial.py | 39 ++++++++----------- .../migrations/0002_auto_20220207_2130.py | 21 ++++++++++ .../migrations/0003_remove_photo_event_id.py | 17 ++++++++ eventnj/events/models.py | 24 ++++++------ eventnj/events/templates/dashboard.html | 10 +++++ eventnj/events/views.py | 13 +++++++ 11 files changed, 161 insertions(+), 46 deletions(-) create mode 100644 db_input.txt create mode 100644 eventnj/events/management/commands/create_db.py create mode 100644 eventnj/events/management/commands/fill_db.py create mode 100644 eventnj/events/migrations/0002_auto_20220207_2130.py create mode 100644 eventnj/events/migrations/0003_remove_photo_event_id.py create mode 100644 eventnj/events/templates/dashboard.html diff --git a/db_input.txt b/db_input.txt new file mode 100644 index 0000000..5be5fde --- /dev/null +++ b/db_input.txt @@ -0,0 +1,10 @@ + +python3 manage.py shell +from events.models import Participant, Event, Organizer, Status_Participant, Photo + +o1 = Organizer.objects.create(name="organizer1", description="description_organizer_1", mail="organizer1@.o2.pl") +o1.save() --> save +o2 = Organizer.objects.create(name="organizer2", description="description_organizer_2", mail="organizer2@.o2.pl") +o3 = Organizer.objects.create(name="organizer3", description="description_organizer_3", mail="organizer3@.o2.pl") +o4 = Organizer.objects.create(name="organizer4", description="description_organizer_4", mail="organizer4@.o2.pl") + diff --git a/eventnj/config/settings.py b/eventnj/config/settings.py index b7731d5..59800cd 100644 --- a/eventnj/config/settings.py +++ b/eventnj/config/settings.py @@ -74,23 +74,23 @@ # Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.sqlite3', -# 'NAME': BASE_DIR / 'db.sqlite3', -# } -# } - DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': 'eventnj', - 'USER': 'postgres', - 'PASSWORD': '', - 'HOST': 'localhost' + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', } } +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.postgresql', +# 'NAME': 'eventnj', +# 'USER': 'postgres', +# 'PASSWORD': '', +# 'HOST': 'localhost' +# } +# } + # Password validation # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators diff --git a/eventnj/config/urls.py b/eventnj/config/urls.py index 5ed47e1..f09e622 100644 --- a/eventnj/config/urls.py +++ b/eventnj/config/urls.py @@ -16,6 +16,10 @@ from django.contrib import admin from django.urls import path +# from events.views import DashboardView +# +# urlpatterns = [ path('admin/', admin.site.urls), +# path('/', DashboardView.as_view(), name="dashboard"), ] diff --git a/eventnj/events/management/commands/create_db.py b/eventnj/events/management/commands/create_db.py new file mode 100644 index 0000000..ef865a5 --- /dev/null +++ b/eventnj/events/management/commands/create_db.py @@ -0,0 +1,31 @@ +from sys import stdout +from events.models import Organizer, Participant, Event + +def create_organizer(): + Organizer.objects.create(name="organizer1", description="description_organizer_1", mail="organizer1@.o2.pl") + Organizer.objects.create(name="organizer2", description="description_organizer_2", mail="organizer2@.o2.pl") + Organizer.objects.create(name="organizer3", description="description_organizer_3", mail="organizer3@.o2.pl") + Organizer.objects.create(name="organizer4", description="description_organizer_4", mail="organizer4@.o2.pl") + +# STATUS_PARTICIPANT = ( +# (1, "Is_New"), +# (2, "Is_Active_Mail"), +# (3, "Is_Deactivate_Mail"), +# (4, "Is_Active_Event"), +# (5, "Is_Deactivate_Event"), +# ) + +# def create_participant(): +# Participant.objects.create(name="Participant1", mail="participant1@o2.pl") +# Participant.objects.create(name="Participant2", mail="participant2@o2.pl") +# Participant.objects.create(name="Participant3", mail="participant3@o2.pl") +# Participant.objects.create(name="Participant4", mail="participant4@o2.pl") +# Participant.objects.create(name="Participant5", mail="participant5@o2.pl") +# +# def create_event(): +# Event.objects.create(title="Event1", description="Description1", organizer=1, limit_participant_reserve=0, +# limit_participant=10, start="2022-03-17 18:00:00", end="2022-03-17 22:00:00", +# start_registration="2022-03-10 18:00:00", end_registration="2022-03-22 18:00:00", +# country="Country1", city="City1", street="Street1", Postcode="Postcode1", price=10.00) + + diff --git a/eventnj/events/management/commands/fill_db.py b/eventnj/events/management/commands/fill_db.py new file mode 100644 index 0000000..e41e446 --- /dev/null +++ b/eventnj/events/management/commands/fill_db.py @@ -0,0 +1,14 @@ +from django.core.management.base import BaseCommand +from events.management.commands.create_db import create_organizer +# create_participant, create_event + +class Command(BaseCommand): + help = 'wypełnij bazę danymi' + + def handle(self, *args, **options): + create_organizer() + # create_participant() + # create_event() + self.stdout.write(self.style.SUCCESS("dopisane")) + + diff --git a/eventnj/events/migrations/0001_initial.py b/eventnj/events/migrations/0001_initial.py index c5ad0a0..213c4ad 100644 --- a/eventnj/events/migrations/0001_initial.py +++ b/eventnj/events/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.8 on 2022-02-03 22:36 +# Generated by Django 3.2.8 on 2022-02-07 21:03 from django.db import migrations, models import django.db.models.deletion @@ -25,15 +25,15 @@ class Migration(migrations.Migration): ('end', models.DateTimeField()), ('start_registration', models.DateTimeField()), ('end_registration', models.DateTimeField()), - ('status', models.IntegerField(choices=[(1, 'Pending'), (2, 'Published'), (3, 'Archive')])), + ('status', models.IntegerField(choices=[(1, 'Pending'), (2, 'Published'), (3, 'Archive')], default=1)), ('country', models.CharField(max_length=64)), ('city', models.CharField(max_length=64)), ('street', models.CharField(max_length=64)), ('postcode', models.CharField(max_length=12)), - ('room', models.CharField(max_length=64)), + ('room', models.CharField(blank=True, max_length=64, null=True)), ('price', models.DecimalField(decimal_places=2, max_digits=6)), - ('is_online', models.BooleanField()), - ('online_link', models.CharField(max_length=500)), + ('is_online', models.BooleanField(default=False)), + ('online_link', models.CharField(default=False, max_length=500)), ('date', models.DateTimeField(auto_now_add=True)), ], ), @@ -47,10 +47,18 @@ class Migration(migrations.Migration): ], ), migrations.CreateModel( - name='Status_Participant', + name='Participant', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('status', models.IntegerField(choices=[(1, 'Is_New'), (2, 'Is_Active_Mail'), (3, 'Is_Deactivate_Mail'), (4, 'Is_Active_Event'), (5, 'Is_Deactivate_Event')])), + ('name', models.CharField(max_length=255)), + ('mail', models.CharField(max_length=255)), + ('status_id', models.IntegerField(choices=[(1, 'Is_New'), (2, 'Is_Active_Mail'), (3, 'Is_Deactivate_Mail'), (4, 'Is_Active_Event'), (5, 'Is_Deactivate_Event')], default=1)), + ('date_change_status', models.DateTimeField(blank=True)), + ('is_reserved', models.BooleanField(default=False)), + ('authentication_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('non_confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('identification_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('date', models.DateTimeField(auto_now_add=True)), ], ), @@ -63,21 +71,6 @@ class Migration(migrations.Migration): ('event_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photo', to='events.event')), ], ), - migrations.CreateModel( - name='Participant', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('mail', models.CharField(max_length=255)), - ('is_reserved', models.BooleanField(default=False)), - ('authentication_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('non_confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('identification_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('date', models.DateTimeField(auto_now_add=True)), - ('status_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.status_participant')), - ], - ), migrations.AddField( model_name='event', name='organizer_id', @@ -86,6 +79,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='event', name='participant_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.participant'), + field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.participant'), ), ] diff --git a/eventnj/events/migrations/0002_auto_20220207_2130.py b/eventnj/events/migrations/0002_auto_20220207_2130.py new file mode 100644 index 0000000..faf7178 --- /dev/null +++ b/eventnj/events/migrations/0002_auto_20220207_2130.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.8 on 2022-02-07 21:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('events', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='event', + name='organizer_id', + ), + migrations.RemoveField( + model_name='event', + name='participant_id', + ), + ] diff --git a/eventnj/events/migrations/0003_remove_photo_event_id.py b/eventnj/events/migrations/0003_remove_photo_event_id.py new file mode 100644 index 0000000..4cf6d1f --- /dev/null +++ b/eventnj/events/migrations/0003_remove_photo_event_id.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.8 on 2022-02-07 21:31 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('events', '0002_auto_20220207_2130'), + ] + + operations = [ + migrations.RemoveField( + model_name='photo', + name='event_id', + ), + ] diff --git a/eventnj/events/models.py b/eventnj/events/models.py index 877efcf..cb1ef15 100644 --- a/eventnj/events/models.py +++ b/eventnj/events/models.py @@ -20,7 +20,9 @@ class Participant(models.Model): name = models.CharField(max_length=255) mail = models.CharField(max_length=255) - status_id = models.ForeignKey("Status_participant", related_name="participant", on_delete=models.CASCADE) + # status_id = models.ForeignKey("Status_participant", related_name="participant", on_delete=models.CASCADE) + status_id = models.IntegerField(choices=STATUS_PARTICIPANT, default=1) + date_change_status = models.DateTimeField(editable=True, blank=True) is_reserved = models.BooleanField(default=False) # authentication_code = models.UUIDField(default=uuid.uuid4, editable=False) authentication_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) @@ -32,23 +34,23 @@ class Participant(models.Model): class Event(models.Model): title = models.CharField(max_length=255) description = models.CharField(max_length=2000) - organizer_id = models.ForeignKey("Organizer", related_name="organizer", on_delete=models.CASCADE) + # organizer_id = models.ForeignKey("Organizer", related_name="organizer", on_delete=models.CASCADE) limit_participant_reserve = models.IntegerField() limit_participant = models.IntegerField() - participant_id = models.ForeignKey("Participant", related_name="participant", on_delete=models.CASCADE) + # participant_id = models.ForeignKey("Participant", related_name="participant", on_delete=models.CASCADE, blank=True) start = models.DateTimeField() end = models.DateTimeField() start_registration = models.DateTimeField() end_registration = models.DateTimeField() - status = models.IntegerField(choices=STATUS_EVENT) + status = models.IntegerField(choices=STATUS_EVENT, default=1) country = models.CharField(max_length=64) city = models.CharField(max_length=64) street = models.CharField(max_length=64) postcode = models.CharField(max_length=12) - room = models.CharField(max_length=64) + room = models.CharField(max_length=64, blank=True, null=True) price = models.DecimalField(max_digits=6, decimal_places=2) - is_online = models.BooleanField() - online_link = models.CharField(max_length=500) + is_online = models.BooleanField(default=False) + online_link = models.CharField(max_length=500, default=False) date = models.DateTimeField(auto_now_add=True) class Organizer(models.Model): @@ -57,12 +59,12 @@ class Organizer(models.Model): mail = models.CharField(max_length=255) # TODO: widget do pola mail -class Status_Participant(models.Model): - status = models.IntegerField(choices=STATUS_PARTICIPANT) - date = models.DateTimeField(auto_now_add=True) +# class Status_Participant(models.Model): +# status = models.IntegerField(choices=STATUS_PARTICIPANT) +# date = models.DateTimeField(auto_now_add=True) class Photo(models.Model): - event_id = models.ForeignKey("Event", related_name="photo", on_delete=models.CASCADE) + # event_id = models.ForeignKey("Event", related_name="photo", on_delete=models.CASCADE) name = models.CharField(max_length=255) # image = models.ImageField() date = models.DateTimeField(auto_now_add=True) diff --git a/eventnj/events/templates/dashboard.html b/eventnj/events/templates/dashboard.html new file mode 100644 index 0000000..44b3b4a --- /dev/null +++ b/eventnj/events/templates/dashboard.html @@ -0,0 +1,10 @@ + + + + + Hello World + + + + + \ No newline at end of file diff --git a/eventnj/events/views.py b/eventnj/events/views.py index 91ea44a..c0b7aa2 100644 --- a/eventnj/events/views.py +++ b/eventnj/events/views.py @@ -1,3 +1,16 @@ from django.shortcuts import render +from django.views import View +from .models import Event + # Create your views here. + +# class DashboardView(View): +# template_name = "events/dashboard.html" +# +# def get(self, request, *args, **kwargs): +# events = Event.objects.all().order_by("start") +# ctx = { +# "events": events, +# } +# return render(request, self.template_name, ctx) From 35881a4dcb4d97cfd346aa931b5ac430985d1669 Mon Sep 17 00:00:00 2001 From: natcza Date: Thu, 10 Feb 2022 21:09:25 +0100 Subject: [PATCH 04/43] Update DB_Models --- eventnj/config/settings.py | 3 ++ eventnj/events/migrations/0001_initial.py | 49 +++++++++---------- .../migrations/0002_auto_20220207_2130.py | 21 -------- .../migrations/0003_remove_photo_event_id.py | 17 ------- eventnj/events/models.py | 37 ++++++++------ 5 files changed, 47 insertions(+), 80 deletions(-) delete mode 100644 eventnj/events/migrations/0002_auto_20220207_2130.py delete mode 100644 eventnj/events/migrations/0003_remove_photo_event_id.py diff --git a/eventnj/config/settings.py b/eventnj/config/settings.py index 59800cd..515f077 100644 --- a/eventnj/config/settings.py +++ b/eventnj/config/settings.py @@ -133,3 +133,6 @@ # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +MEDIA_URL='/media/' +MEDIA_ROOT = BASE_DIR / "media" \ No newline at end of file diff --git a/eventnj/events/migrations/0001_initial.py b/eventnj/events/migrations/0001_initial.py index 213c4ad..5620c12 100644 --- a/eventnj/events/migrations/0001_initial.py +++ b/eventnj/events/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.8 on 2022-02-07 21:03 +# Generated by Django 3.2.8 on 2022-02-09 20:28 from django.db import migrations, models import django.db.models.deletion @@ -18,7 +18,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=255)), - ('description', models.CharField(max_length=2000)), + ('description', models.TextField()), ('limit_participant_reserve', models.IntegerField()), ('limit_participant', models.IntegerField()), ('start', models.DateTimeField()), @@ -30,11 +30,11 @@ class Migration(migrations.Migration): ('city', models.CharField(max_length=64)), ('street', models.CharField(max_length=64)), ('postcode', models.CharField(max_length=12)), - ('room', models.CharField(blank=True, max_length=64, null=True)), + ('room', models.CharField(blank=True, max_length=64)), ('price', models.DecimalField(decimal_places=2, max_digits=6)), ('is_online', models.BooleanField(default=False)), - ('online_link', models.CharField(default=False, max_length=500)), - ('date', models.DateTimeField(auto_now_add=True)), + ('online_link', models.URLField(blank=True)), + ('created', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( @@ -42,43 +42,40 @@ class Migration(migrations.Migration): fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), - ('description', models.CharField(max_length=2000)), - ('mail', models.CharField(max_length=255)), + ('description', models.CharField(blank=True, max_length=2000)), + ('mail', models.EmailField(max_length=255)), ], ), migrations.CreateModel( - name='Participant', + name='Photo', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), - ('mail', models.CharField(max_length=255)), - ('status_id', models.IntegerField(choices=[(1, 'Is_New'), (2, 'Is_Active_Mail'), (3, 'Is_Deactivate_Mail'), (4, 'Is_Active_Event'), (5, 'Is_Deactivate_Event')], default=1)), - ('date_change_status', models.DateTimeField(blank=True)), - ('is_reserved', models.BooleanField(default=False)), - ('authentication_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('non_confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), - ('identification_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('image', models.ImageField(upload_to='photos')), ('date', models.DateTimeField(auto_now_add=True)), + ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='events.event')), ], ), migrations.CreateModel( - name='Photo', + name='Participant', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), - ('date', models.DateTimeField(auto_now_add=True)), - ('event_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photo', to='events.event')), + ('mail', models.CharField(max_length=255)), + ('status', models.IntegerField(choices=[(1, 'Is_New'), (2, 'Is_Active_Mail'), (3, 'Is_Deactivate_Mail'), (4, 'Is_Active_Event'), (5, 'Is_Deactivate_Event')], default=1)), + ('date_change_status', models.DateTimeField(blank=True, null=True)), + ('is_reserved', models.BooleanField(default=False)), + ('authentication_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('non_confirmation_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('identification_code', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), + ('created', models.DateTimeField(auto_now_add=True)), + ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participants', to='events.event')), ], ), migrations.AddField( model_name='event', - name='organizer_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='organizer', to='events.organizer'), - ), - migrations.AddField( - model_name='event', - name='participant_id', - field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='participant', to='events.participant'), + name='organizers', + field=models.ManyToManyField(related_name='events', to='events.Organizer'), ), ] diff --git a/eventnj/events/migrations/0002_auto_20220207_2130.py b/eventnj/events/migrations/0002_auto_20220207_2130.py deleted file mode 100644 index faf7178..0000000 --- a/eventnj/events/migrations/0002_auto_20220207_2130.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.8 on 2022-02-07 21:30 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='event', - name='organizer_id', - ), - migrations.RemoveField( - model_name='event', - name='participant_id', - ), - ] diff --git a/eventnj/events/migrations/0003_remove_photo_event_id.py b/eventnj/events/migrations/0003_remove_photo_event_id.py deleted file mode 100644 index 4cf6d1f..0000000 --- a/eventnj/events/migrations/0003_remove_photo_event_id.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.8 on 2022-02-07 21:31 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0002_auto_20220207_2130'), - ] - - operations = [ - migrations.RemoveField( - model_name='photo', - name='event_id', - ), - ] diff --git a/eventnj/events/models.py b/eventnj/events/models.py index cb1ef15..0dd78f7 100644 --- a/eventnj/events/models.py +++ b/eventnj/events/models.py @@ -1,14 +1,18 @@ from django.db import models import uuid +PENDING = 1 + STATUS_EVENT = ( - (1, "Pending"), + (PENDING, "Pending"), (2, "Published"), (3, "Archive") ) +IS_NEW = 1 + STATUS_PARTICIPANT = ( - (1, "Is_New"), + (IS_NEW, "Is_New"), (2, "Is_Active_Mail"), (3, "Is_Deactivate_Mail"), (4, "Is_Active_Event"), @@ -21,42 +25,42 @@ class Participant(models.Model): name = models.CharField(max_length=255) mail = models.CharField(max_length=255) # status_id = models.ForeignKey("Status_participant", related_name="participant", on_delete=models.CASCADE) - status_id = models.IntegerField(choices=STATUS_PARTICIPANT, default=1) - date_change_status = models.DateTimeField(editable=True, blank=True) + status = models.IntegerField(choices=STATUS_PARTICIPANT, default=IS_NEW) + date_change_status = models.DateTimeField(null=True, blank=True) is_reserved = models.BooleanField(default=False) # authentication_code = models.UUIDField(default=uuid.uuid4, editable=False) authentication_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) confirmation_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) non_confirmation_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) identification_code = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) - date = models.DateTimeField(auto_now_add=True) + created = models.DateTimeField(auto_now_add=True) + event = models.ForeignKey("Event", related_name="participants", on_delete=models.CASCADE) class Event(models.Model): title = models.CharField(max_length=255) - description = models.CharField(max_length=2000) - # organizer_id = models.ForeignKey("Organizer", related_name="organizer", on_delete=models.CASCADE) + description = models.TextField() + organizers = models.ManyToManyField("Organizer", related_name="events") limit_participant_reserve = models.IntegerField() limit_participant = models.IntegerField() - # participant_id = models.ForeignKey("Participant", related_name="participant", on_delete=models.CASCADE, blank=True) start = models.DateTimeField() end = models.DateTimeField() start_registration = models.DateTimeField() end_registration = models.DateTimeField() - status = models.IntegerField(choices=STATUS_EVENT, default=1) + status = models.IntegerField(choices=STATUS_EVENT, default=PENDING) country = models.CharField(max_length=64) city = models.CharField(max_length=64) street = models.CharField(max_length=64) postcode = models.CharField(max_length=12) - room = models.CharField(max_length=64, blank=True, null=True) + room = models.CharField(max_length=64, blank=True) price = models.DecimalField(max_digits=6, decimal_places=2) is_online = models.BooleanField(default=False) - online_link = models.CharField(max_length=500, default=False) - date = models.DateTimeField(auto_now_add=True) + online_link = models.URLField(max_length=200, blank=True) + created = models.DateTimeField(auto_now_add=True) class Organizer(models.Model): name = models.CharField(max_length=255) - description = models.CharField(max_length=2000) - mail = models.CharField(max_length=255) + description = models.CharField(max_length=2000, blank=True) + mail = models.EmailField(max_length=255) # TODO: widget do pola mail # class Status_Participant(models.Model): @@ -64,9 +68,10 @@ class Organizer(models.Model): # date = models.DateTimeField(auto_now_add=True) class Photo(models.Model): - # event_id = models.ForeignKey("Event", related_name="photo", on_delete=models.CASCADE) + event = models.ForeignKey("Event", related_name="photos", on_delete=models.CASCADE) name = models.CharField(max_length=255) - # image = models.ImageField() + image = models.ImageField(upload_to="photos") + # TODO podaj sciezke date = models.DateTimeField(auto_now_add=True) From 4d0c2c2f82d4b49c1b4702cfb25e2e48eb480488 Mon Sep 17 00:00:00 2001 From: jz-cl Date: Fri, 11 Feb 2022 23:21:54 +0100 Subject: [PATCH 05/43] add view and url dashboard --- eventnj/config/urls.py | 4 ++-- eventnj/events/views.py | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eventnj/config/urls.py b/eventnj/config/urls.py index f09e622..3625cc2 100644 --- a/eventnj/config/urls.py +++ b/eventnj/config/urls.py @@ -16,10 +16,10 @@ from django.contrib import admin from django.urls import path -# from events.views import DashboardView +from events.views import DashboardView # # urlpatterns = [ path('admin/', admin.site.urls), -# path('/', DashboardView.as_view(), name="dashboard"), + path('', DashboardView.as_view(), name="dashboard"), ] diff --git a/eventnj/events/views.py b/eventnj/events/views.py index c0b7aa2..9d1349d 100644 --- a/eventnj/events/views.py +++ b/eventnj/events/views.py @@ -5,12 +5,12 @@ # Create your views here. -# class DashboardView(View): -# template_name = "events/dashboard.html" -# -# def get(self, request, *args, **kwargs): -# events = Event.objects.all().order_by("start") -# ctx = { -# "events": events, -# } -# return render(request, self.template_name, ctx) +class DashboardView(View): + template_name = "events/dashboard.html" + + def get(self, request, *args, **kwargs): + events = Event.objects.all().order_by("start") + ctx = { + "events": events, + } + return render(request, self.template_name, ctx) From 374da8b8bdc2d1ae8123068afd15cd84090333f3 Mon Sep 17 00:00:00 2001 From: jz-cl Date: Fri, 11 Feb 2022 23:35:38 +0100 Subject: [PATCH 06/43] update model STATUS_EVENT, STATUS_PARTICIPANT --- eventnj/events/models.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/eventnj/events/models.py b/eventnj/events/models.py index 0dd78f7..192cf6b 100644 --- a/eventnj/events/models.py +++ b/eventnj/events/models.py @@ -1,22 +1,28 @@ from django.db import models import uuid -PENDING = 1 +SE_PENDING = 1 +SE_PUBLISHED = 2 +SE_ARCHIVE = 3 STATUS_EVENT = ( - (PENDING, "Pending"), - (2, "Published"), - (3, "Archive") + (SE_PENDING, "Pending"), + (SE_PUBLISHED, "Published"), + (SE_ARCHIVE, "Archive") ) -IS_NEW = 1 +SP_IS_NEW = 1 +SP_IS_ACTIVE_MAIL = 2 +SP_IS_DEACTIVATE_MAIL = 3 +SP_IS_ACTIVE_EVENT = 4 +SP_IS_DEACTIVATE_EVENT = 5 STATUS_PARTICIPANT = ( - (IS_NEW, "Is_New"), - (2, "Is_Active_Mail"), - (3, "Is_Deactivate_Mail"), - (4, "Is_Active_Event"), - (5, "Is_Deactivate_Event"), + (SP_IS_NEW, "Is_New"), + (SP_IS_ACTIVE_MAIL, "Is_Active_Mail"), + (SP_IS_DEACTIVATE_MAIL, "Is_Deactivate_Mail"), + (SP_IS_ACTIVE_EVENT, "Is_Active_Event"), + (SP_IS_DEACTIVATE_EVENT, "Is_Deactivate_Event"), ) # Create your models here. @@ -25,7 +31,7 @@ class Participant(models.Model): name = models.CharField(max_length=255) mail = models.CharField(max_length=255) # status_id = models.ForeignKey("Status_participant", related_name="participant", on_delete=models.CASCADE) - status = models.IntegerField(choices=STATUS_PARTICIPANT, default=IS_NEW) + status = models.IntegerField(choices=STATUS_PARTICIPANT, default=SP_IS_NEW) date_change_status = models.DateTimeField(null=True, blank=True) is_reserved = models.BooleanField(default=False) # authentication_code = models.UUIDField(default=uuid.uuid4, editable=False) @@ -46,7 +52,7 @@ class Event(models.Model): end = models.DateTimeField() start_registration = models.DateTimeField() end_registration = models.DateTimeField() - status = models.IntegerField(choices=STATUS_EVENT, default=PENDING) + status = models.IntegerField(choices=STATUS_EVENT, default=SE_PENDING) country = models.CharField(max_length=64) city = models.CharField(max_length=64) street = models.CharField(max_length=64) From dec3d34d4149dc96cc08f492eb7e656d04f32b30 Mon Sep 17 00:00:00 2001 From: jz-cl Date: Mon, 14 Feb 2022 01:32:09 +0100 Subject: [PATCH 07/43] add managment commands:: create_event, create_organizer --- .../management/commands/create_event.py | 63 +++++++++++++++++++ .../management/commands/create_organizer.py | 36 +++++++++++ 2 files changed, 99 insertions(+) create mode 100644 eventnj/events/management/commands/create_event.py create mode 100644 eventnj/events/management/commands/create_organizer.py diff --git a/eventnj/events/management/commands/create_event.py b/eventnj/events/management/commands/create_event.py new file mode 100644 index 0000000..d9539e1 --- /dev/null +++ b/eventnj/events/management/commands/create_event.py @@ -0,0 +1,63 @@ +from django.core.management.base import BaseCommand +from django.utils import timezone + +from events.models import Event, Organizer +from datetime import datetime +from random import choice, randint + + +# from django.conf import settings +# from django.utils.timezone import make_aware + + +class Command(BaseCommand): + help = "wypełnij organizer danymi -- python manage.py create_event 1" + + def add_arguments(self, parser): + parser.add_argument('total', type=int, help='Indicates the number of organizers to be created') + + def handle(self, *args, **options): + total = options['total'] + + # len_events = len(Event.objects.all()) + + # sprawdzaj jaki postfix ma ostatni rekord + # ostatni = Event.objects.all()[len_events - 1:len_events].get().id + ostatni = Event.objects.last().id + + # postfix kolejnej wartości + # https://docs.python.org/3.9/library/string.html + # postfix = "{:0>5}".format(str(ostatni + 1)) + + formatedDate = datetime.now(tz=timezone.utc) + + # myDate = datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC) + + # formatedDate = myDate #.strftime("%Y-%m-%d %H:%M:%S") + CONST_RANDINT_RESERVE = 25 + CONST_RANDINT = 50 + CONST_PRICE = 25 + + for i in range(total): + postfix = str("{:0>5}".format(str(ostatni + 1 + i))) + # print(postfix) + Event.objects.create( + title="event_" + postfix, + description="description_" + postfix, + limit_participant_reserve=CONST_RANDINT_RESERVE + randint(1, 3) * 10, + limit_participant=CONST_RANDINT + randint(1, 6) * 10, + start=formatedDate, + end=formatedDate, + start_registration=formatedDate, + end_registration=formatedDate, + country="country_" + postfix, + city="city_" + postfix, + street="street_" + postfix, + postcode=postfix, + room="room_" + postfix, + price=CONST_PRICE + randint(1, 10) * 5, + is_online=False, + online_link="link_" + postfix, + ) + + self.stdout.write(self.style.SUCCESS(f"dopisane {total} rekordów")) diff --git a/eventnj/events/management/commands/create_organizer.py b/eventnj/events/management/commands/create_organizer.py new file mode 100644 index 0000000..0b49535 --- /dev/null +++ b/eventnj/events/management/commands/create_organizer.py @@ -0,0 +1,36 @@ +from django.core.management.base import BaseCommand +# from events.management.commands.create_db import create_organizer + +from events.models import Organizer + + +class Command(BaseCommand): + + help = "wypełnij organizer danymi -- python manage.py create_organizer 5" + + def add_arguments(self, parser): + parser.add_argument('total', type=int, help='Indicates the number of organizers to be created') + + def handle(self, *args, **options): + total = options['total'] + + # len_organizers = len(Organizer.objects.all()) + + # sprawdzaj jaki postfix ma ostatni rekord + # ostatni = Organizer.objects.all()[len_organizers - 1:len_organizers].get().id + ostatni = Organizer.objects.last().id + + # postfix kolejnej wartości + # https://docs.python.org/3.9/library/string.html + # postfix = "{:0>5}".format(str(ostatni + 1)) + + for i in range(total): + postfix = str("{:0>5}".format(str(ostatni + 1 + i))) + # print(postfix) + Organizer.objects.create( + name="organizer_" + postfix, + description="description_" + postfix, + mail="o_" + postfix + "@o.pl" + ) + + self.stdout.write(self.style.SUCCESS(f"dopisane {total} rekordów")) From 648c7fc6d2c3bad61236d76ffe0ea18a2ae2db6b Mon Sep 17 00:00:00 2001 From: jz-cl Date: Wed, 16 Feb 2022 01:21:08 +0100 Subject: [PATCH 08/43] add managment commands:: create_event, create_organizer, create_participant, create_reo add script: script_eventnj --- .../management/commands/create_organizer.py | 8 +- .../management/commands/create_participant.py | 41 ++++++ .../events/management/commands/create_reo.py | 133 ++++++++++++++++++ eventnj/script_eventnj.sh | 5 + 4 files changed, 184 insertions(+), 3 deletions(-) create mode 100644 eventnj/events/management/commands/create_participant.py create mode 100644 eventnj/events/management/commands/create_reo.py create mode 100644 eventnj/script_eventnj.sh diff --git a/eventnj/events/management/commands/create_organizer.py b/eventnj/events/management/commands/create_organizer.py index 0b49535..fd41c65 100644 --- a/eventnj/events/management/commands/create_organizer.py +++ b/eventnj/events/management/commands/create_organizer.py @@ -5,7 +5,6 @@ class Command(BaseCommand): - help = "wypełnij organizer danymi -- python manage.py create_organizer 5" def add_arguments(self, parser): @@ -14,11 +13,14 @@ def add_arguments(self, parser): def handle(self, *args, **options): total = options['total'] - # len_organizers = len(Organizer.objects.all()) + len_organizers = len(Organizer.objects.all()) # sprawdzaj jaki postfix ma ostatni rekord # ostatni = Organizer.objects.all()[len_organizers - 1:len_organizers].get().id - ostatni = Organizer.objects.last().id + if len_organizers != 0: + ostatni = Organizer.objects.last().id + else: + ostatni = 0 # postfix kolejnej wartości # https://docs.python.org/3.9/library/string.html diff --git a/eventnj/events/management/commands/create_participant.py b/eventnj/events/management/commands/create_participant.py new file mode 100644 index 0000000..032ebee --- /dev/null +++ b/eventnj/events/management/commands/create_participant.py @@ -0,0 +1,41 @@ +from django.core.management.base import BaseCommand +from django.utils import timezone +from datetime import datetime +from events.models import Participant, Event + + +class Command(BaseCommand): + help = "wypełnij participant danymi -- python manage.py create_participant 5" + + def add_arguments(self, parser): + parser.add_argument('total', type=int, help='Indicates the number of participants to be created') + + def handle(self, *args, **options): + total = options['total'] + + len_participants = len(Participant.objects.all()) + # print(len_participants) + + # sprawdzaj jaki postfix ma ostatni rekord + if len_participants != 0: + ostatni = Participant.objects.last().id + else: + ostatni = 0 + + # postfix kolejnej wartości + # https://docs.python.org/3.9/library/string.html + # postfix = "{:0>5}".format(str(ostatni + 1)) + EVENT_ID = 3 + formatedDate = datetime.now(tz=timezone.utc) + for i in range(total): + postfix = str("{:0>5}".format(str(ostatni + 1 + i))) + # print(i + 1) + Participant.objects.create( + name="participant_" + postfix, + mail="p_" + postfix + "@p.pl", + date_change_status=formatedDate, + created=formatedDate, + event=Event.objects.get(pk=EVENT_ID) + ) + + self.stdout.write(self.style.SUCCESS(f"dopisane {total} rekordów")) diff --git a/eventnj/events/management/commands/create_reo.py b/eventnj/events/management/commands/create_reo.py new file mode 100644 index 0000000..aaffb59 --- /dev/null +++ b/eventnj/events/management/commands/create_reo.py @@ -0,0 +1,133 @@ +# Create Relation Event Organizer + + +from django.core.management.base import BaseCommand +from django.utils import timezone + +from events.models import Event, Organizer + +from datetime import datetime +from random import choice, randint + + +# from django.conf import settings +# from django.utils.timezone import make_aware + + +class Command(BaseCommand): + help = "wypełnij organizer danymi -- python manage.py create_reo 1" + + def add_arguments(self, parser): + + parser.add_argument('choice', choices=['e', 'o']) + parser.add_argument('total', action="extend", nargs=2, type=int, help="total") + + def handle(self, *args, **options): + opt_total = options['total'] + + opt_choice = options['choice'] + + print(f'options: {options}') + + if opt_choice == 'e': + print('event') + elif opt_choice == 'o': + print('organizer') + + + + # var_flag = options['flag'] + # + # var_e = var_event[0] + # var_o = var_event[1] + + # return + # print(f'var_flag: {var_flag}') + # print(f'options: {options}') + len_events = len(Event.objects.all()) + len_organizers = len(Organizer.objects.all()) + m = 0 + n = 0 + + if opt_choice == 'e': + # dla losowych eventów m wybierz losowo n organizatorów + # e m n + m = opt_total[0] + n = opt_total[1] + result = set_change(opt_total, len_events, len_organizers) + + if result[0] == False: + self.stdout.write(self.style.ERROR(result[1])) + else: + self.stdout.write(self.style.SUCCESS(result[1])) + + elif opt_choice == 'o': + # dla losowych organizatorów n wybierz m losowych eventów + # o n m + m = opt_total[1] + n = opt_total[0] + + result = set_change(opt_total, len_organizers, len_events) + + if result[0] == False: + self.stdout.write(self.style.ERROR(result[1])) + else: + self.stdout.write(self.style.SUCCESS(result[1])) + + print(n, m) + counter = 0 + # return + + for i_e in range(1, m + 1): + # print(i_e) + events = Event.objects.get(pk=i_e) + # jeśli nie ma pk to powinno się go pominąć + for i_o in range(1, n + 1): + # events.models.Organizer.DoesNotExist: Organizer matching query does not exist. + # https://stackoverflow.com/questions/17813919/django-error-matching-query-does-not-exist + try: + organizer = Organizer.objects.get(pk=i_o) + counter += 1 + except Organizer.DoesNotExist: + organizer = None + + events.organizers.add(organizer) + + + # print(i_o) + + # return + # https://docs.djangoproject.com/en/4.0/topics/db/examples/many_to_many/ + + + + # dla listy eventów wybierz listę organizatorów + # -e [e] [o] + + # dla listy organozatorów wybierz listę eventów + # -o [o] [e] + + # dla wybranego eventu wybierz organizatora + # -E id id + # dla wybranego organizatora wybierz event + # -O id id + + # sprawdzaj jaki postfix ma ostatni rekord + # ostatni = Event.objects.last().id + + self.stdout.write(self.style.SUCCESS(f"dopisane {counter} rekordów")) + + +def set_change(var_flag, len_m, len_n): + # sprawdzaj czy liczba argumentów się zgadza + + m = int(var_flag[0]) + n = int(var_flag[1]) + + if m > len_m: + return [False, f"wartość event jest zbyt duża nie powinna przekraczać {len_m} rekordów"] + + if n > len_n: + return [False, f"wartość organizer jest zbyt duża nie powinna przekraczać {len_n} rekordów"] + + return [True, f"OK"] diff --git a/eventnj/script_eventnj.sh b/eventnj/script_eventnj.sh new file mode 100644 index 0000000..478804e --- /dev/null +++ b/eventnj/script_eventnj.sh @@ -0,0 +1,5 @@ + +python manage.py create_event 5 +python manage.py create_organizer 19 +python manage.py create_reo e 5 15 +python manage.py create_participant 3 From dfda26d8426329cd871396eaad400ce9da72d84a Mon Sep 17 00:00:00 2001 From: jz-cl Date: Wed, 16 Feb 2022 01:24:23 +0100 Subject: [PATCH 09/43] delete create_db.py, fill_db.py --- .../events/management/commands/create_db.py | 31 ------------------- eventnj/events/management/commands/fill_db.py | 14 --------- 2 files changed, 45 deletions(-) delete mode 100644 eventnj/events/management/commands/create_db.py delete mode 100644 eventnj/events/management/commands/fill_db.py diff --git a/eventnj/events/management/commands/create_db.py b/eventnj/events/management/commands/create_db.py deleted file mode 100644 index ef865a5..0000000 --- a/eventnj/events/management/commands/create_db.py +++ /dev/null @@ -1,31 +0,0 @@ -from sys import stdout -from events.models import Organizer, Participant, Event - -def create_organizer(): - Organizer.objects.create(name="organizer1", description="description_organizer_1", mail="organizer1@.o2.pl") - Organizer.objects.create(name="organizer2", description="description_organizer_2", mail="organizer2@.o2.pl") - Organizer.objects.create(name="organizer3", description="description_organizer_3", mail="organizer3@.o2.pl") - Organizer.objects.create(name="organizer4", description="description_organizer_4", mail="organizer4@.o2.pl") - -# STATUS_PARTICIPANT = ( -# (1, "Is_New"), -# (2, "Is_Active_Mail"), -# (3, "Is_Deactivate_Mail"), -# (4, "Is_Active_Event"), -# (5, "Is_Deactivate_Event"), -# ) - -# def create_participant(): -# Participant.objects.create(name="Participant1", mail="participant1@o2.pl") -# Participant.objects.create(name="Participant2", mail="participant2@o2.pl") -# Participant.objects.create(name="Participant3", mail="participant3@o2.pl") -# Participant.objects.create(name="Participant4", mail="participant4@o2.pl") -# Participant.objects.create(name="Participant5", mail="participant5@o2.pl") -# -# def create_event(): -# Event.objects.create(title="Event1", description="Description1", organizer=1, limit_participant_reserve=0, -# limit_participant=10, start="2022-03-17 18:00:00", end="2022-03-17 22:00:00", -# start_registration="2022-03-10 18:00:00", end_registration="2022-03-22 18:00:00", -# country="Country1", city="City1", street="Street1", Postcode="Postcode1", price=10.00) - - diff --git a/eventnj/events/management/commands/fill_db.py b/eventnj/events/management/commands/fill_db.py deleted file mode 100644 index e41e446..0000000 --- a/eventnj/events/management/commands/fill_db.py +++ /dev/null @@ -1,14 +0,0 @@ -from django.core.management.base import BaseCommand -from events.management.commands.create_db import create_organizer -# create_participant, create_event - -class Command(BaseCommand): - help = 'wypełnij bazę danymi' - - def handle(self, *args, **options): - create_organizer() - # create_participant() - # create_event() - self.stdout.write(self.style.SUCCESS("dopisane")) - - From 959792a013a3b54abc160829b0f3c3e4be86bd4c Mon Sep 17 00:00:00 2001 From: jz-cl Date: Thu, 17 Feb 2022 20:19:00 +0100 Subject: [PATCH 10/43] managment/command add create_photo.py --- .../management/commands/create_photo.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 eventnj/events/management/commands/create_photo.py diff --git a/eventnj/events/management/commands/create_photo.py b/eventnj/events/management/commands/create_photo.py new file mode 100644 index 0000000..f8d731e --- /dev/null +++ b/eventnj/events/management/commands/create_photo.py @@ -0,0 +1,46 @@ +from django.core.management.base import BaseCommand +# from events.management.commands.create_db import create_organizer + +from events.models import Photo, Event + + +class Command(BaseCommand): + help = "wypełnij organizer danymi -- python manage.py create_photo n photos, id event" + + def add_arguments(self, parser): + + # parser.add_argument('total', type=int , help='Indicates the number of photos to be created') + parser.add_argument('total', action="extend", nargs=2, type=int, help="number of photos, event id") + + + def handle(self, *args, **options): + total = options['total'] + + + len_photos = len(Photo.objects.all()) + + # sprawdzaj jaki postfix ma ostatni rekord + + if len_photos != 0: + ostatni = Photo.objects.last().id + else: + ostatni = 0 + + # postfix kolejnej wartości + # https://docs.python.org/3.9/library/string.html + # postfix = "{:0>5}".format(str(ostatni + 1)) + # print(f"total: {total}") + + + for i in range(total[0]): + postfix = str("{:0>5}".format(str(ostatni + 1 + i))) + # print(postfix) + + Photo.objects.create( + name="name_" + postfix, + image="image_" + postfix, + event=Event.objects.get(pk=total[1]) + ) + + self.stdout.write(self.style.SUCCESS(f"dopisane {total[0]} rekordy")) + self.stdout.write(self.style.SUCCESS(f"event {total[1]}")) \ No newline at end of file From d4bc84394f625761e3cdeda389b6fffee1d868d2 Mon Sep 17 00:00:00 2001 From: jz-cl Date: Thu, 17 Feb 2022 23:37:52 +0100 Subject: [PATCH 11/43] add base.html add event_details_view.html --- eventnj/events/templates/base.html | 18 ++++++++++++++++++ .../events/templates/event_details_view.html | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 eventnj/events/templates/base.html create mode 100644 eventnj/events/templates/event_details_view.html diff --git a/eventnj/events/templates/base.html b/eventnj/events/templates/base.html new file mode 100644 index 0000000..50b5451 --- /dev/null +++ b/eventnj/events/templates/base.html @@ -0,0 +1,18 @@ + + + + + Title + + + {% block content %} + Hi! + {% endblock %} + + +
+ {% block footer %} + {% endblock %} +
+ + \ No newline at end of file diff --git a/eventnj/events/templates/event_details_view.html b/eventnj/events/templates/event_details_view.html new file mode 100644 index 0000000..3ee548a --- /dev/null +++ b/eventnj/events/templates/event_details_view.html @@ -0,0 +1,16 @@ +{% extends 'events/base.html' %} +{% block content %} + {% if message %} +

{{ message }}

+ {% endif %} + +

Event


+ nazwa: {{ event.name }}
+ cena: {{ event.price }} zł
+ opis: {{ event.description }}
+ +
+
+ + +{% endblock %} \ No newline at end of file From 8876a495285c852d5be8c93f87ac3da0899a1965 Mon Sep 17 00:00:00 2001 From: jz-cl Date: Fri, 18 Feb 2022 00:44:12 +0100 Subject: [PATCH 12/43] update managment/commands create_event.py create_organizer.py create_participant.py create_photo.py create_reo update script script_eventnj.sh --- .../management/commands/create_event.py | 10 ++++- .../management/commands/create_organizer.py | 1 + .../management/commands/create_participant.py | 18 +++++--- .../management/commands/create_photo.py | 4 +- .../events/management/commands/create_reo.py | 43 ++++++++++++++----- eventnj/script_eventnj.sh | 35 +++++++++++++-- 6 files changed, 88 insertions(+), 23 deletions(-) mode change 100644 => 100755 eventnj/script_eventnj.sh diff --git a/eventnj/events/management/commands/create_event.py b/eventnj/events/management/commands/create_event.py index d9539e1..9ca41e6 100644 --- a/eventnj/events/management/commands/create_event.py +++ b/eventnj/events/management/commands/create_event.py @@ -19,11 +19,15 @@ def add_arguments(self, parser): def handle(self, *args, **options): total = options['total'] - # len_events = len(Event.objects.all()) + len_events = len(Event.objects.all()) # sprawdzaj jaki postfix ma ostatni rekord # ostatni = Event.objects.all()[len_events - 1:len_events].get().id - ostatni = Event.objects.last().id + + if len_events != 0: + ostatni = Event.objects.last().id + else: + ostatni = 0 # postfix kolejnej wartości # https://docs.python.org/3.9/library/string.html @@ -38,6 +42,8 @@ def handle(self, *args, **options): CONST_RANDINT = 50 CONST_PRICE = 25 + print("create_event") + for i in range(total): postfix = str("{:0>5}".format(str(ostatni + 1 + i))) # print(postfix) diff --git a/eventnj/events/management/commands/create_organizer.py b/eventnj/events/management/commands/create_organizer.py index fd41c65..5d65126 100644 --- a/eventnj/events/management/commands/create_organizer.py +++ b/eventnj/events/management/commands/create_organizer.py @@ -26,6 +26,7 @@ def handle(self, *args, **options): # https://docs.python.org/3.9/library/string.html # postfix = "{:0>5}".format(str(ostatni + 1)) + print("create_organizer") for i in range(total): postfix = str("{:0>5}".format(str(ostatni + 1 + i))) # print(postfix) diff --git a/eventnj/events/management/commands/create_participant.py b/eventnj/events/management/commands/create_participant.py index 032ebee..3029ad8 100644 --- a/eventnj/events/management/commands/create_participant.py +++ b/eventnj/events/management/commands/create_participant.py @@ -5,10 +5,13 @@ class Command(BaseCommand): - help = "wypełnij participant danymi -- python manage.py create_participant 5" + help = "wypełnij participant danymi 5 uczestników przypisz do eventu o pk=3 " \ + "-- python manage.py create_participant 5 3" + def add_arguments(self, parser): - parser.add_argument('total', type=int, help='Indicates the number of participants to be created') + # parser.add_argument('total', type=int, help='Indicates the number of participants to be created') + parser.add_argument('total', action="extend", nargs=2, type=int, help="Indicates the number of participants to be created for id event") def handle(self, *args, **options): total = options['total'] @@ -25,9 +28,12 @@ def handle(self, *args, **options): # postfix kolejnej wartości # https://docs.python.org/3.9/library/string.html # postfix = "{:0>5}".format(str(ostatni + 1)) - EVENT_ID = 3 + formatedDate = datetime.now(tz=timezone.utc) - for i in range(total): + + print("create_participant") + + for i in range(total[0]): postfix = str("{:0>5}".format(str(ostatni + 1 + i))) # print(i + 1) Participant.objects.create( @@ -35,7 +41,7 @@ def handle(self, *args, **options): mail="p_" + postfix + "@p.pl", date_change_status=formatedDate, created=formatedDate, - event=Event.objects.get(pk=EVENT_ID) + event=Event.objects.get(pk=total[1]) ) - self.stdout.write(self.style.SUCCESS(f"dopisane {total} rekordów")) + self.stdout.write(self.style.SUCCESS(f"dopisane {total[0]} rekordów")) diff --git a/eventnj/events/management/commands/create_photo.py b/eventnj/events/management/commands/create_photo.py index f8d731e..97371df 100644 --- a/eventnj/events/management/commands/create_photo.py +++ b/eventnj/events/management/commands/create_photo.py @@ -31,6 +31,7 @@ def handle(self, *args, **options): # postfix = "{:0>5}".format(str(ostatni + 1)) # print(f"total: {total}") + print("create_photo") for i in range(total[0]): postfix = str("{:0>5}".format(str(ostatni + 1 + i))) @@ -42,5 +43,4 @@ def handle(self, *args, **options): event=Event.objects.get(pk=total[1]) ) - self.stdout.write(self.style.SUCCESS(f"dopisane {total[0]} rekordy")) - self.stdout.write(self.style.SUCCESS(f"event {total[1]}")) \ No newline at end of file + self.stdout.write(self.style.SUCCESS(f"dopisane {total[0]} rekordy, event {total[1]}")) diff --git a/eventnj/events/management/commands/create_reo.py b/eventnj/events/management/commands/create_reo.py index aaffb59..fd93d0d 100644 --- a/eventnj/events/management/commands/create_reo.py +++ b/eventnj/events/management/commands/create_reo.py @@ -15,11 +15,11 @@ class Command(BaseCommand): - help = "wypełnij organizer danymi -- python manage.py create_reo 1" + help = "wypełnij organizer danymi -- python manage.py create_reo [e | o | e1] 1 1" def add_arguments(self, parser): - parser.add_argument('choice', choices=['e', 'o']) + parser.add_argument('choice', choices=['e', 'o', 'e1']) parser.add_argument('total', action="extend", nargs=2, type=int, help="total") def handle(self, *args, **options): @@ -27,12 +27,12 @@ def handle(self, *args, **options): opt_choice = options['choice'] - print(f'options: {options}') + # print(f'options: {options}') - if opt_choice == 'e': - print('event') - elif opt_choice == 'o': - print('organizer') + # if opt_choice == 'e': + # print('event') + # elif opt_choice == 'o': + # print('organizer') @@ -48,6 +48,7 @@ def handle(self, *args, **options): len_organizers = len(Organizer.objects.all()) m = 0 n = 0 + print("create_reo") if opt_choice == 'e': # dla losowych eventów m wybierz losowo n organizatorów @@ -59,7 +60,8 @@ def handle(self, *args, **options): if result[0] == False: self.stdout.write(self.style.ERROR(result[1])) else: - self.stdout.write(self.style.SUCCESS(result[1])) + pass + # self.stdout.write(self.style.SUCCESS(result[1])) elif opt_choice == 'o': # dla losowych organizatorów n wybierz m losowych eventów @@ -72,9 +74,30 @@ def handle(self, *args, **options): if result[0] == False: self.stdout.write(self.style.ERROR(result[1])) else: - self.stdout.write(self.style.SUCCESS(result[1])) + pass + # self.stdout.write(self.style.SUCCESS(result[1])) + + elif opt_choice == 'e1': + # dla eventu m wybierz organizatora n + # e1 m n + m = opt_total[0] + n = opt_total[1] + result = set_change(opt_total, len_events, len_organizers) + + if result[0] == False: + self.stdout.write(self.style.ERROR(result[1])) + else: + pass + # self.stdout.write(self.style.SUCCESS(result[1])) + + events = Event.objects.get(pk=m) + organizer = Organizer.objects.get(pk=n) + events.organizers.add(organizer) + + self.stdout.write(self.style.SUCCESS(f"dopisane {1} rekordów")) - print(n, m) + return + # print(n, m) counter = 0 # return diff --git a/eventnj/script_eventnj.sh b/eventnj/script_eventnj.sh old mode 100644 new mode 100755 index 478804e..e7d2650 --- a/eventnj/script_eventnj.sh +++ b/eventnj/script_eventnj.sh @@ -1,5 +1,34 @@ +# aby plik był wykonywalny +# chmod +x script_eventnj.sh +# uruchamianie skryptu +#./script_eventnj.sh +# ----------------------------------------------- + + +#migracja +python manage.py migrate + + +# utwórz 5 eventów python manage.py create_event 5 -python manage.py create_organizer 19 -python manage.py create_reo e 5 15 -python manage.py create_participant 3 + +# utwórz 2 eventy +python manage.py create_event 2 + +# utwórz 5 organizatorów +python manage.py create_organizer 5 + +# utwórz relację między 5 kolejnymi eventami i 5 kolejnymi organizatorami +# tworzy hurtowo - jest to nieracjonalne +python manage.py create_reo e 5 5 + +# tworzy relację między eventem o pk=6 i organizatorem o pk=2 +# tworzy pojedynczo - jest większa kotrola +python manage.py create_reo e1 6 2 + +# utwórz 1 uczestnika i przypisz do eventu o pk=5 +python manage.py create_participant 1 5 + +# utwórz 3 zdjęcia i przypisz do eventu o pk=2 +python manage.py create_photo 3 2 From 2a5a0e56818aa1d9b1847dadd6acad9ad0fc030f Mon Sep 17 00:00:00 2001 From: jz-cl Date: Sun, 20 Feb 2022 19:03:44 +0100 Subject: [PATCH 13/43] update settings, views --- eventnj/config/settings.py | 2 +- eventnj/events/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eventnj/config/settings.py b/eventnj/config/settings.py index 515f077..906f4ba 100644 --- a/eventnj/config/settings.py +++ b/eventnj/config/settings.py @@ -55,7 +55,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ diff --git a/eventnj/events/views.py b/eventnj/events/views.py index 9d1349d..50640ac 100644 --- a/eventnj/events/views.py +++ b/eventnj/events/views.py @@ -6,7 +6,7 @@ # Create your views here. class DashboardView(View): - template_name = "events/dashboard.html" + template_name = "dashboard.html" def get(self, request, *args, **kwargs): events = Event.objects.all().order_by("start") From 9a74101d739adf8cd56a7eac92852a2a2e285e48 Mon Sep 17 00:00:00 2001 From: natcza Date: Sun, 20 Feb 2022 19:40:51 +0100 Subject: [PATCH 14/43] Update of db-still not working --- eventnj/events/templates/base.html | 3 +-- eventnj/events/templates/dashboard.html | 27 ++++++++++++++++--------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/eventnj/events/templates/base.html b/eventnj/events/templates/base.html index 50b5451..2265efd 100644 --- a/eventnj/events/templates/base.html +++ b/eventnj/events/templates/base.html @@ -8,8 +8,7 @@ {% block content %} Hi! {% endblock %} - - +