From 48ba45463fa9c187ac9b07ccb6a9d73c205a3744 Mon Sep 17 00:00:00 2001 From: Maximilian Friedersdorff Date: Fri, 28 Jun 2024 17:51:36 +0100 Subject: [PATCH] Set custom user model --- config/settings/base.py | 3 + reinheit/apps/__init__.py | 0 reinheit/apps/brew/migrations/0001_initial.py | 126 ++++++++++++++- .../migrations/0002_brew_priming_sugar.py | 21 --- .../apps/brew/migrations/0003_brew_notes.py | 18 --- ..._gravity_brew_original_gravity_and_more.py | 45 ------ ...ion_maltaddition_yeastaddition_and_more.py | 102 ------------ ...dient_fermentableaddition_brew_and_more.py | 63 -------- .../0007_alter_maltaddition_ingredient.py | 22 --- .../ingredients/migrations/0001_initial.py | 108 ++++++++++++- .../migrations/0002_ingredient_description.py | 19 --- .../0003_alter_ingredient_description.py | 18 --- .../0004_alter_ingredient_description.py | 18 --- .../migrations/0005_alter_ingredient_kind.py | 26 ---- ...ermentable_malt_yeast_delete_ingredient.py | 145 ------------------ .../apps/styles/migrations/0001_initial.py | 2 +- reinheit/apps/user/__init__.py | 0 reinheit/apps/user/admin.py | 7 + reinheit/apps/user/apps.py | 6 + reinheit/apps/user/migrations/0001_initial.py | 132 ++++++++++++++++ reinheit/apps/user/migrations/__init__.py | 0 reinheit/apps/user/models.py | 5 + reinheit/apps/user/tests.py | 3 + reinheit/apps/user/views.py | 3 + 24 files changed, 379 insertions(+), 513 deletions(-) create mode 100644 reinheit/apps/__init__.py delete mode 100644 reinheit/apps/brew/migrations/0002_brew_priming_sugar.py delete mode 100644 reinheit/apps/brew/migrations/0003_brew_notes.py delete mode 100644 reinheit/apps/brew/migrations/0004_brew_final_gravity_brew_original_gravity_and_more.py delete mode 100644 reinheit/apps/brew/migrations/0005_fermentableaddition_maltaddition_yeastaddition_and_more.py delete mode 100644 reinheit/apps/brew/migrations/0006_chemicaladdition_ingredient_fermentableaddition_brew_and_more.py delete mode 100644 reinheit/apps/brew/migrations/0007_alter_maltaddition_ingredient.py delete mode 100644 reinheit/apps/ingredients/migrations/0002_ingredient_description.py delete mode 100644 reinheit/apps/ingredients/migrations/0003_alter_ingredient_description.py delete mode 100644 reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py delete mode 100644 reinheit/apps/ingredients/migrations/0005_alter_ingredient_kind.py delete mode 100644 reinheit/apps/ingredients/migrations/0006_chemical_fermentable_malt_yeast_delete_ingredient.py create mode 100644 reinheit/apps/user/__init__.py create mode 100644 reinheit/apps/user/admin.py create mode 100644 reinheit/apps/user/apps.py create mode 100644 reinheit/apps/user/migrations/0001_initial.py create mode 100644 reinheit/apps/user/migrations/__init__.py create mode 100644 reinheit/apps/user/models.py create mode 100644 reinheit/apps/user/tests.py create mode 100644 reinheit/apps/user/views.py diff --git a/config/settings/base.py b/config/settings/base.py index a802333..1e6490e 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ "reinheit.apps.brew", "reinheit.apps.styles", "reinheit.apps.ingredients", + "reinheit.apps.user", ] MIDDLEWARE = [ @@ -136,3 +137,5 @@ AUTHENTICATION_BACKENDS = [ USE_X_FORWARDED_HOST = True SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https") + +AUTH_USER_MODEL = "user.User" diff --git a/reinheit/apps/__init__.py b/reinheit/apps/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reinheit/apps/brew/migrations/0001_initial.py b/reinheit/apps/brew/migrations/0001_initial.py index cd33970..5f3ab99 100644 --- a/reinheit/apps/brew/migrations/0001_initial.py +++ b/reinheit/apps/brew/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:32 +# Generated by Django 5.0.6 on 2024-06-28 16:48 import django.db.models.deletion from django.db import migrations, models @@ -27,18 +27,27 @@ class Migration(migrations.Migration): ), ), ("name", models.CharField(max_length=255)), + ("notes", models.TextField(blank=True, default="")), ("pitch_date", models.DateField(null=True)), - ("bottling_date", models.DateField(null=True)), ( "fermenter_volume", models.FloatField( help_text="Volume of liquid in fermenter prior to piching yeast" ), ), + ("bottling_date", models.DateField(null=True)), ( "bottled_volume", - models.FloatField(help_text="Volume of liquid bottled"), + models.FloatField(help_text="Volume of liquid bottled", null=True), ), + ( + "priming_sugar", + models.FloatField( + help_text="Mass of priming sugar for the whole batch", null=True + ), + ), + ("original_gravity", models.FloatField(null=True)), + ("final_gravity", models.FloatField(null=True)), ( "style", models.ForeignKey( @@ -48,7 +57,7 @@ class Migration(migrations.Migration): ], ), migrations.CreateModel( - name="Addition", + name="ChemicalAddition", fields=[ ( "id", @@ -59,19 +68,120 @@ class Migration(migrations.Migration): verbose_name="ID", ), ), - ("mass", models.FloatField(help_text="The mass in kg added")), + ("mass", models.FloatField(help_text="The mass of ingredient added")), ("added", models.DateTimeField(null=True)), + ( + "brew", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="brew.brew" + ), + ), ( "ingredient", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, - to="ingredients.ingredient", + to="ingredients.chemical", + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="FermentableAddition", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("mass", models.FloatField(help_text="The mass of ingredient added")), + ("added", models.DateTimeField(null=True)), + ( + "brew", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="brew.brew" ), ), ( - "brew", - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"), + "ingredient", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="ingredients.fermentable", + ), ), ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="MaltAddition", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("mass", models.FloatField(help_text="The mass of ingredient added")), + ("added", models.DateTimeField(null=True)), + ( + "brew", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="brew.brew" + ), + ), + ( + "ingredient", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="ingredients.malt", + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="YeastAddition", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("mass", models.FloatField(help_text="The mass of ingredient added")), + ("added", models.DateTimeField(null=True)), + ( + "brew", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="brew.brew" + ), + ), + ( + "ingredient", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="ingredients.yeast", + ), + ), + ], + options={ + "abstract": False, + }, ), ] diff --git a/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py b/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py deleted file mode 100644 index 2c52628..0000000 --- a/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="brew", - name="priming_sugar", - field=models.FloatField( - default=0, help_text="Mass of priming sugar for the whole batch" - ), - preserve_default=False, - ), - ] diff --git a/reinheit/apps/brew/migrations/0003_brew_notes.py b/reinheit/apps/brew/migrations/0003_brew_notes.py deleted file mode 100644 index 891ceed..0000000 --- a/reinheit/apps/brew/migrations/0003_brew_notes.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0002_brew_priming_sugar"), - ] - - operations = [ - migrations.AddField( - model_name="brew", - name="notes", - field=models.TextField(blank=True, default=""), - ), - ] diff --git a/reinheit/apps/brew/migrations/0004_brew_final_gravity_brew_original_gravity_and_more.py b/reinheit/apps/brew/migrations/0004_brew_final_gravity_brew_original_gravity_and_more.py deleted file mode 100644 index 7df9765..0000000 --- a/reinheit/apps/brew/migrations/0004_brew_final_gravity_brew_original_gravity_and_more.py +++ /dev/null @@ -1,45 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-25 20:50 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0003_brew_notes"), - ] - - operations = [ - migrations.AddField( - model_name="brew", - name="final_gravity", - field=models.FloatField(null=True), - ), - migrations.AddField( - model_name="brew", - name="original_gravity", - field=models.FloatField(null=True), - ), - migrations.AlterField( - model_name="addition", - name="brew", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="additions", - to="brew.brew", - ), - ), - migrations.AlterField( - model_name="brew", - name="bottled_volume", - field=models.FloatField(help_text="Volume of liquid bottled", null=True), - ), - migrations.AlterField( - model_name="brew", - name="priming_sugar", - field=models.FloatField( - help_text="Mass of priming sugar for the whole batch", null=True - ), - ), - ] diff --git a/reinheit/apps/brew/migrations/0005_fermentableaddition_maltaddition_yeastaddition_and_more.py b/reinheit/apps/brew/migrations/0005_fermentableaddition_maltaddition_yeastaddition_and_more.py deleted file mode 100644 index 9180ead..0000000 --- a/reinheit/apps/brew/migrations/0005_fermentableaddition_maltaddition_yeastaddition_and_more.py +++ /dev/null @@ -1,102 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-26 20:49 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0004_brew_final_gravity_brew_original_gravity_and_more"), - ] - - operations = [ - migrations.CreateModel( - name="FermentableAddition", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("mass", models.FloatField(help_text="The mass of ingredient added")), - ("added", models.DateTimeField(null=True)), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="MaltAddition", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("mass", models.FloatField(help_text="The mass of ingredient added")), - ("added", models.DateTimeField(null=True)), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="YeastAddition", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("mass", models.FloatField(help_text="The mass of ingredient added")), - ("added", models.DateTimeField(null=True)), - ], - options={ - "abstract": False, - }, - ), - migrations.RemoveField( - model_name="addition", - name="brew", - ), - migrations.RemoveField( - model_name="addition", - name="ingredient", - ), - migrations.CreateModel( - name="ChemicalAddition", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("mass", models.FloatField(help_text="The mass of ingredient added")), - ("added", models.DateTimeField(null=True)), - ( - "brew", - models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"), - ), - ], - options={ - "abstract": False, - }, - ), - ] diff --git a/reinheit/apps/brew/migrations/0006_chemicaladdition_ingredient_fermentableaddition_brew_and_more.py b/reinheit/apps/brew/migrations/0006_chemicaladdition_ingredient_fermentableaddition_brew_and_more.py deleted file mode 100644 index 66e167a..0000000 --- a/reinheit/apps/brew/migrations/0006_chemicaladdition_ingredient_fermentableaddition_brew_and_more.py +++ /dev/null @@ -1,63 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-26 20:49 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0005_fermentableaddition_maltaddition_yeastaddition_and_more"), - ("ingredients", "0006_chemical_fermentable_malt_yeast_delete_ingredient"), - ] - - operations = [ - migrations.AddField( - model_name="chemicaladdition", - name="ingredient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="ingredients.chemical" - ), - ), - migrations.AddField( - model_name="fermentableaddition", - name="brew", - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"), - ), - migrations.AddField( - model_name="fermentableaddition", - name="ingredient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="ingredients.fermentable", - ), - ), - migrations.AddField( - model_name="maltaddition", - name="brew", - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"), - ), - migrations.AddField( - model_name="maltaddition", - name="ingredient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="ingredients.fermentable", - ), - ), - migrations.AddField( - model_name="yeastaddition", - name="brew", - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"), - ), - migrations.AddField( - model_name="yeastaddition", - name="ingredient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="ingredients.yeast" - ), - ), - migrations.DeleteModel( - name="Addition", - ), - ] diff --git a/reinheit/apps/brew/migrations/0007_alter_maltaddition_ingredient.py b/reinheit/apps/brew/migrations/0007_alter_maltaddition_ingredient.py deleted file mode 100644 index 11f377f..0000000 --- a/reinheit/apps/brew/migrations/0007_alter_maltaddition_ingredient.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-26 20:52 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0006_chemicaladdition_ingredient_fermentableaddition_brew_and_more"), - ("ingredients", "0006_chemical_fermentable_malt_yeast_delete_ingredient"), - ] - - operations = [ - migrations.AlterField( - model_name="maltaddition", - name="ingredient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="ingredients.malt" - ), - ), - ] diff --git a/reinheit/apps/ingredients/migrations/0001_initial.py b/reinheit/apps/ingredients/migrations/0001_initial.py index ed9f82a..943e6b3 100644 --- a/reinheit/apps/ingredients/migrations/0001_initial.py +++ b/reinheit/apps/ingredients/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:32 +# Generated by Django 5.0.6 on 2024-06-28 16:48 import django.db.models.deletion from django.db import migrations, models @@ -27,7 +27,7 @@ class Migration(migrations.Migration): ], ), migrations.CreateModel( - name="Ingredient", + name="Malt", fields=[ ( "id", @@ -38,18 +38,22 @@ class Migration(migrations.Migration): verbose_name="ID", ), ), + ("name", models.CharField(max_length=255)), + ( + "description", + models.CharField(blank=True, default="", max_length=255), + ), ( "kind", models.CharField( choices=[ - ("YEAST", "Yeast"), - ("FERM", "Fermentable"), - ("HOP", "Hop"), + ("DME", "Dry Malt Extract"), + ("LME", "Liquid Malt Extract"), + ("MALT", "Malted Grain"), ], - max_length=5, + max_length=4, ), ), - ("name", models.CharField(max_length=255)), ( "producer", models.ForeignKey( @@ -58,5 +62,95 @@ class Migration(migrations.Migration): ), ), ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="Fermentable", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=255)), + ( + "description", + models.CharField(blank=True, default="", max_length=255), + ), + ( + "producer", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="ingredients.producer", + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="Chemical", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=255)), + ( + "description", + models.CharField(blank=True, default="", max_length=255), + ), + ( + "producer", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="ingredients.producer", + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="Yeast", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=255)), + ( + "description", + models.CharField(blank=True, default="", max_length=255), + ), + ( + "producer", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="ingredients.producer", + ), + ), + ], + options={ + "abstract": False, + }, ), ] diff --git a/reinheit/apps/ingredients/migrations/0002_ingredient_description.py b/reinheit/apps/ingredients/migrations/0002_ingredient_description.py deleted file mode 100644 index 81ed15c..0000000 --- a/reinheit/apps/ingredients/migrations/0002_ingredient_description.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:37 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("ingredients", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="ingredient", - name="description", - field=models.TextField(default=""), - preserve_default=False, - ), - ] diff --git a/reinheit/apps/ingredients/migrations/0003_alter_ingredient_description.py b/reinheit/apps/ingredients/migrations/0003_alter_ingredient_description.py deleted file mode 100644 index 069e656..0000000 --- a/reinheit/apps/ingredients/migrations/0003_alter_ingredient_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:37 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("ingredients", "0002_ingredient_description"), - ] - - operations = [ - migrations.AlterField( - model_name="ingredient", - name="description", - field=models.TextField(blank=True, default=""), - ), - ] diff --git a/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py b/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py deleted file mode 100644 index 70c979e..0000000 --- a/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("ingredients", "0003_alter_ingredient_description"), - ] - - operations = [ - migrations.AlterField( - model_name="ingredient", - name="description", - field=models.CharField(blank=True, default="", max_length=255), - ), - ] diff --git a/reinheit/apps/ingredients/migrations/0005_alter_ingredient_kind.py b/reinheit/apps/ingredients/migrations/0005_alter_ingredient_kind.py deleted file mode 100644 index 543c8fd..0000000 --- a/reinheit/apps/ingredients/migrations/0005_alter_ingredient_kind.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("ingredients", "0004_alter_ingredient_description"), - ] - - operations = [ - migrations.AlterField( - model_name="ingredient", - name="kind", - field=models.CharField( - choices=[ - ("YEAST", "Yeast"), - ("FERM", "Fermentable"), - ("HOP", "Hop"), - ("CHEM", "Chemical"), - ], - max_length=5, - ), - ), - ] diff --git a/reinheit/apps/ingredients/migrations/0006_chemical_fermentable_malt_yeast_delete_ingredient.py b/reinheit/apps/ingredients/migrations/0006_chemical_fermentable_malt_yeast_delete_ingredient.py deleted file mode 100644 index 09d7549..0000000 --- a/reinheit/apps/ingredients/migrations/0006_chemical_fermentable_malt_yeast_delete_ingredient.py +++ /dev/null @@ -1,145 +0,0 @@ -# Generated by Django 5.0.6 on 2024-06-26 20:49 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("brew", "0005_fermentableaddition_maltaddition_yeastaddition_and_more"), - ("ingredients", "0005_alter_ingredient_kind"), - ] - - operations = [ - migrations.CreateModel( - name="Chemical", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255)), - ( - "description", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "producer", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="ingredients.producer", - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="Fermentable", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255)), - ( - "description", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "producer", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="ingredients.producer", - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="Malt", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255)), - ( - "description", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "kind", - models.CharField( - choices=[ - ("DME", "Dry Malt Extract"), - ("LME", "Liquid Malt Extract"), - ("MALT", "Malted Grain"), - ], - max_length=4, - ), - ), - ( - "producer", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="ingredients.producer", - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.CreateModel( - name="Yeast", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(max_length=255)), - ( - "description", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "producer", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="ingredients.producer", - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.DeleteModel( - name="Ingredient", - ), - ] diff --git a/reinheit/apps/styles/migrations/0001_initial.py b/reinheit/apps/styles/migrations/0001_initial.py index 461e05b..ffd87ce 100644 --- a/reinheit/apps/styles/migrations/0001_initial.py +++ b/reinheit/apps/styles/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.6 on 2024-06-24 20:32 +# Generated by Django 5.0.6 on 2024-06-28 16:48 from django.db import migrations, models diff --git a/reinheit/apps/user/__init__.py b/reinheit/apps/user/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reinheit/apps/user/admin.py b/reinheit/apps/user/admin.py new file mode 100644 index 0000000..7dd7477 --- /dev/null +++ b/reinheit/apps/user/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from django.contrib.auth.admin import UserAdmin + +from .models import User + + +admin.site.register(User, UserAdmin) diff --git a/reinheit/apps/user/apps.py b/reinheit/apps/user/apps.py new file mode 100644 index 0000000..6d080f9 --- /dev/null +++ b/reinheit/apps/user/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UserConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "reinheit.apps.user" diff --git a/reinheit/apps/user/migrations/0001_initial.py b/reinheit/apps/user/migrations/0001_initial.py new file mode 100644 index 0000000..dd14a6e --- /dev/null +++ b/reinheit/apps/user/migrations/0001_initial.py @@ -0,0 +1,132 @@ +# Generated by Django 5.0.6 on 2024-06-28 16:49 + +import django.contrib.auth.models +import django.contrib.auth.validators +import django.utils.timezone +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ("auth", "0012_alter_user_first_name_max_length"), + ] + + operations = [ + migrations.CreateModel( + name="User", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("password", models.CharField(max_length=128, verbose_name="password")), + ( + "last_login", + models.DateTimeField( + blank=True, null=True, verbose_name="last login" + ), + ), + ( + "is_superuser", + models.BooleanField( + default=False, + help_text="Designates that this user has all permissions without explicitly assigning them.", + verbose_name="superuser status", + ), + ), + ( + "username", + models.CharField( + error_messages={ + "unique": "A user with that username already exists." + }, + help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", + max_length=150, + unique=True, + validators=[ + django.contrib.auth.validators.UnicodeUsernameValidator() + ], + verbose_name="username", + ), + ), + ( + "first_name", + models.CharField( + blank=True, max_length=150, verbose_name="first name" + ), + ), + ( + "last_name", + models.CharField( + blank=True, max_length=150, verbose_name="last name" + ), + ), + ( + "email", + models.EmailField( + blank=True, max_length=254, verbose_name="email address" + ), + ), + ( + "is_staff", + models.BooleanField( + default=False, + help_text="Designates whether the user can log into this admin site.", + verbose_name="staff status", + ), + ), + ( + "is_active", + models.BooleanField( + default=True, + help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", + verbose_name="active", + ), + ), + ( + "date_joined", + models.DateTimeField( + default=django.utils.timezone.now, verbose_name="date joined" + ), + ), + ( + "groups", + models.ManyToManyField( + blank=True, + help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", + related_name="user_set", + related_query_name="user", + to="auth.group", + verbose_name="groups", + ), + ), + ( + "user_permissions", + models.ManyToManyField( + blank=True, + help_text="Specific permissions for this user.", + related_name="user_set", + related_query_name="user", + to="auth.permission", + verbose_name="user permissions", + ), + ), + ], + options={ + "verbose_name": "user", + "verbose_name_plural": "users", + "abstract": False, + }, + managers=[ + ("objects", django.contrib.auth.models.UserManager()), + ], + ), + ] diff --git a/reinheit/apps/user/migrations/__init__.py b/reinheit/apps/user/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reinheit/apps/user/models.py b/reinheit/apps/user/models.py new file mode 100644 index 0000000..3d30525 --- /dev/null +++ b/reinheit/apps/user/models.py @@ -0,0 +1,5 @@ +from django.contrib.auth.models import AbstractUser + + +class User(AbstractUser): + pass diff --git a/reinheit/apps/user/tests.py b/reinheit/apps/user/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/reinheit/apps/user/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/reinheit/apps/user/views.py b/reinheit/apps/user/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/reinheit/apps/user/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.