diff --git a/.gitignore b/.gitignore index 4e0bbdf..eceaa75 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ venv/ .idea/ +**/__pycache__/** +*.sqlite3 +*.pyc diff --git a/KeRS/settings.py b/KeRS/settings.py index b222dd7..dd4bf9f 100644 --- a/KeRS/settings.py +++ b/KeRS/settings.py @@ -30,6 +30,11 @@ ALLOWED_HOSTS = [] # Application definition +OWN_APPS = [ + 'events', + 'users' +] + INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', @@ -37,7 +42,9 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', -] +] + OWN_APPS + + MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', @@ -76,8 +83,12 @@ WSGI_APPLICATION = 'KeRS.wsgi.application' DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'kers', + 'USER': 'kers', + 'PASSWORD': 'kers', + 'HOST': '127.0.0.1', + 'PORT': '3306', } } diff --git a/KeRS/urls.py b/KeRS/urls.py index 5113f70..0d67372 100644 --- a/KeRS/urls.py +++ b/KeRS/urls.py @@ -14,8 +14,9 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ + path('events/', include('events.urls')), path('admin/', admin.site.urls), ] diff --git a/events/admin.py b/events/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/events/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/events/apps.py b/events/apps.py new file mode 100644 index 0000000..3854644 --- /dev/null +++ b/events/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class EventsConfig(AppConfig): + name = 'events' diff --git a/events/migrations/0001_initial.py b/events/migrations/0001_initial.py new file mode 100644 index 0000000..caeecc0 --- /dev/null +++ b/events/migrations/0001_initial.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0.8 on 2020-07-21 20:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('users', '__first__'), + ] + + operations = [ + migrations.CreateModel( + name='Event', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateTimeField()), + ('capacity', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='EventRegistration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('shirt_size', models.CharField(choices=[('I', 'Interested'), ('A', 'Admitted'), ('D', 'Denied')], max_length=1)), + ('event_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Event')), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.User')), + ], + ), + ] diff --git a/events/migrations/__init__.py b/events/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/events/models.py b/events/models.py index e69de29..6023ca4 100644 --- a/events/models.py +++ b/events/models.py @@ -0,0 +1,19 @@ +from django.db import models + +from users.models import User + + +class Event(models.Model): + date = models.DateTimeField() + capacity = models.IntegerField() + + +class EventRegistration(models.Model): + REGISTRATION_STATE = ( + ('I', 'Interested'), + ('A', 'Admitted'), + ('D', 'Denied'), + ) + event_id = models.ForeignKey(Event, on_delete=models.CASCADE) + user_id = models.ForeignKey(User, on_delete=models.CASCADE) + shirt_size = models.CharField(max_length=1, choices=REGISTRATION_STATE) diff --git a/events/tests.py b/events/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/events/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/events/urls.py b/events/urls.py new file mode 100644 index 0000000..88a9cac --- /dev/null +++ b/events/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/events/views.py b/events/views.py new file mode 100644 index 0000000..769a8a0 --- /dev/null +++ b/events/views.py @@ -0,0 +1,8 @@ +from django.shortcuts import render + +# Create your views here. +from django.http import HttpResponse + + +def index(request): + return HttpResponse("Hello, world. You're at the polls index.") diff --git a/users/migrations/0001_initial.py b/users/migrations/0001_initial.py new file mode 100644 index 0000000..463055b --- /dev/null +++ b/users/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 3.0.8 on 2020-07-21 20:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('zeus_id', models.IntegerField()), + ('username', models.CharField(max_length=255)), + ('student_number', models.CharField(max_length=255)), + ('real_name', models.CharField(max_length=255)), + ], + ), + ] diff --git a/users/migrations/__init__.py b/users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/users/models.py b/users/models.py index e69de29..ea16066 100644 --- a/users/models.py +++ b/users/models.py @@ -0,0 +1,8 @@ +from django.db import models + + +class User(models.Model): + zeus_id = models.IntegerField() + username = models.CharField(max_length=255) # zeus username + student_number = models.CharField(max_length=255) + real_name = models.CharField(max_length=255)