Set custom user model
This commit is contained in:
parent
382cdc74b5
commit
48ba45463f
24 changed files with 379 additions and 513 deletions
|
|
@ -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"
|
||||
|
|
|
|||
0
reinheit/apps/__init__.py
Normal file
0
reinheit/apps/__init__.py
Normal file
|
|
@ -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,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
]
|
||||
|
|
@ -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=""),
|
||||
),
|
||||
]
|
||||
|
|
@ -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
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
@ -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,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -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",
|
||||
),
|
||||
]
|
||||
|
|
@ -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"
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
@ -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,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
]
|
||||
|
|
@ -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=""),
|
||||
),
|
||||
]
|
||||
|
|
@ -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),
|
||||
),
|
||||
]
|
||||
|
|
@ -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,
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
@ -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",
|
||||
),
|
||||
]
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
0
reinheit/apps/user/__init__.py
Normal file
0
reinheit/apps/user/__init__.py
Normal file
7
reinheit/apps/user/admin.py
Normal file
7
reinheit/apps/user/admin.py
Normal file
|
|
@ -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)
|
||||
6
reinheit/apps/user/apps.py
Normal file
6
reinheit/apps/user/apps.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class UserConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "reinheit.apps.user"
|
||||
132
reinheit/apps/user/migrations/0001_initial.py
Normal file
132
reinheit/apps/user/migrations/0001_initial.py
Normal file
|
|
@ -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()),
|
||||
],
|
||||
),
|
||||
]
|
||||
0
reinheit/apps/user/migrations/__init__.py
Normal file
0
reinheit/apps/user/migrations/__init__.py
Normal file
5
reinheit/apps/user/models.py
Normal file
5
reinheit/apps/user/models.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
from django.contrib.auth.models import AbstractUser
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
pass
|
||||
3
reinheit/apps/user/tests.py
Normal file
3
reinheit/apps/user/tests.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
3
reinheit/apps/user/views.py
Normal file
3
reinheit/apps/user/views.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
||||
Loading…
Add table
Reference in a new issue