diff --git a/config/settings/base.py b/config/settings/base.py index 4c096ef..47631c6 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -37,6 +37,7 @@ INSTALLED_APPS = [ "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", + "django_bootstrap5", "reinheit.apps.brew", "reinheit.apps.styles", "reinheit.apps.ingredients", diff --git a/reinheit/apps/brew/admin.py b/reinheit/apps/brew/admin.py index 05ee877..775a611 100644 --- a/reinheit/apps/brew/admin.py +++ b/reinheit/apps/brew/admin.py @@ -12,3 +12,6 @@ class AdditionInline(admin.TabularInline): @admin.register(Brew) class BrewAdmin(admin.ModelAdmin): inlines = [AdditionInline] + + list_display = ["name", "style", "pitch_date"] + date_hierarchy = "pitch_date" diff --git a/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py b/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py new file mode 100644 index 0000000..2c52628 --- /dev/null +++ b/reinheit/apps/brew/migrations/0002_brew_priming_sugar.py @@ -0,0 +1,21 @@ +# 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 new file mode 100644 index 0000000..891ceed --- /dev/null +++ b/reinheit/apps/brew/migrations/0003_brew_notes.py @@ -0,0 +1,18 @@ +# 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/models.py b/reinheit/apps/brew/models.py index b2fa8f3..f1c74ac 100644 --- a/reinheit/apps/brew/models.py +++ b/reinheit/apps/brew/models.py @@ -17,6 +17,10 @@ class Brew(models.Model): ) bottled_volume = models.FloatField(help_text="Volume of liquid bottled") + priming_sugar = models.FloatField(help_text="Mass of priming sugar for the whole batch") + + notes = models.TextField(default="", blank=True) + def __str__(self): return f"{self.style}: {self.name}" diff --git a/reinheit/apps/ingredients/admin.py b/reinheit/apps/ingredients/admin.py index a1c9ee2..9717638 100644 --- a/reinheit/apps/ingredients/admin.py +++ b/reinheit/apps/ingredients/admin.py @@ -4,5 +4,21 @@ from .models import Ingredient, Producer # Register your models here. -admin.site.register(Ingredient) -admin.site.register(Producer) + +@admin.register(Ingredient) +class IngredientAdmin(admin.ModelAdmin): + list_display = ["name", "kind", "producer"] + list_filter = ["kind", "producer"] + + search_fields = ["name", "kind", "producer__name"] + + +class IngredientInline(admin.TabularInline): + model = Ingredient + extra = 1 + + +@admin.register(Producer) +class ProducerAdmin(admin.ModelAdmin): + list_display = ["name"] + inlines = [IngredientInline] diff --git a/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py b/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py new file mode 100644 index 0000000..70c979e --- /dev/null +++ b/reinheit/apps/ingredients/migrations/0004_alter_ingredient_description.py @@ -0,0 +1,18 @@ +# 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 new file mode 100644 index 0000000..543c8fd --- /dev/null +++ b/reinheit/apps/ingredients/migrations/0005_alter_ingredient_kind.py @@ -0,0 +1,26 @@ +# 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/models.py b/reinheit/apps/ingredients/models.py index 214dad2..1ae0d98 100644 --- a/reinheit/apps/ingredients/models.py +++ b/reinheit/apps/ingredients/models.py @@ -9,11 +9,12 @@ class Ingredient(models.Model): YEAST = "YEAST", "Yeast" FERMENTABLE = "FERM", "Fermentable" HOP = "HOP", "Hop" + CHEMICAL = "CHEM", "Chemical" kind = models.CharField(max_length=5, choices=Type) name = models.CharField(max_length=255) - description = models.TextField(blank=True, default="") + description = models.CharField(max_length=255, blank=True, default="") producer = models.ForeignKey("Producer", on_delete=models.CASCADE) def __str__(self): diff --git a/reinheit/apps/styles/models.py b/reinheit/apps/styles/models.py index ec3eb17..f616d85 100644 --- a/reinheit/apps/styles/models.py +++ b/reinheit/apps/styles/models.py @@ -5,3 +5,6 @@ from django.db import models class Style(models.Model): name = models.CharField(max_length=255) + + def __str__(self): + return self.name diff --git a/requirements/base.in b/requirements/base.in new file mode 100644 index 0000000..37d30e1 --- /dev/null +++ b/requirements/base.in @@ -0,0 +1,2 @@ +django +django-bootstrap5 diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 0000000..f86b21e --- /dev/null +++ b/requirements/base.txt @@ -0,0 +1,12 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile requirements/base.in +asgiref==3.8.1 + # via django +django==5.0.6 + # via + # -r requirements/base.in + # django-bootstrap5 +django-bootstrap5==24.2 + # via -r requirements/base.in +sqlparse==0.5.0 + # via django