Do some more shit

This commit is contained in:
Maximilian Friedersdorff 2024-06-25 22:08:42 +01:00
parent a4e58a5fa4
commit 1952d7f3d4
5 changed files with 114 additions and 23 deletions

View file

@ -0,0 +1,45 @@
# 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
),
),
]

View file

@ -6,20 +6,33 @@ from django.db import models
class Brew(models.Model):
name = models.CharField(max_length=255)
style = models.ForeignKey("styles.Style", on_delete=models.PROTECT)
notes = models.TextField(default="", blank=True)
pitch_date = models.DateField(null=True)
bottling_date = models.DateField(null=True)
style = models.ForeignKey("styles.Style", on_delete=models.PROTECT)
fermenter_volume = models.FloatField(
help_text="Volume of liquid in fermenter prior to piching yeast"
)
bottled_volume = models.FloatField(help_text="Volume of liquid bottled")
priming_sugar = models.FloatField(help_text="Mass of priming sugar for the whole batch")
bottling_date = models.DateField(null=True)
bottled_volume = models.FloatField(null=True, help_text="Volume of liquid bottled")
priming_sugar = models.FloatField(
null=True, help_text="Mass of priming sugar for the whole batch"
)
notes = models.TextField(default="", blank=True)
original_gravity = models.FloatField(null=True)
final_gravity = models.FloatField(null=True)
@property
def abv(self):
og = self.original_gravity
fg = self.final_gravity
if og is None or fg is None:
return None
delta = self.original_gravity - self.final_gravity
return (76.08 * delta / (1.775 - og)) * (fg / 0.794)
def __str__(self):
return f"{self.style}: {self.name}"

View file

@ -1,5 +1,6 @@
from django.views.generic import ListView, DetailView
from ..ingredients.models import Ingredient
from .models import Brew
# Create your views here.
@ -13,4 +14,11 @@ class BrewView(DetailView):
model = Brew
def get_context_data(self, **kwargs):
return super().get_context_data(ingredients=self.object.additions.all(), **kwargs)
context = super().get_context_data(**kwargs)
for value, label in Ingredient.Type.choices:
print(label, value)
context[label] = self.object.additions.filter(ingredient__kind=value)
context["ingredient_types"] = Ingredient.Type.names
return context

View file

@ -29,12 +29,8 @@
{% endblock %}
{% block bootstrap5_content %}
<div class="container">
<div class="row">
<div class="col-md-6">
{% block content %}
{% endblock content %}
</div>
</div>
{% block content %}
{% endblock content %}
</div>
{% endblock bootstrap5_content %}
{% block bootstrap5_after_content %}

View file

@ -1,12 +1,41 @@
{% extends "base.html" %}
{% block content %}
<h2>{{ object.name }}</h2>
<h4>{{ object.style }}</h4>
<p>{{ object.notes }}</p>
<h3>Ingredients</h3>
<ul>
{% for ingredient in ingredients %}
<li>{{ ingredient.humanised_mass }}{{ ingredient.unit }} of {{ ingredient.ingredient.name }}</li>
{% endfor %}
</ul>
<div class="row">
<div class="col-md-6">
<h2>{{ object.name }}</h2>
<h4>{{ object.style }}</h4>
<p>{{ object.notes }}</p>
<h3>Fermentables</h3>
<ul>
{% for add in Fermentable %}
<li>{{ add.humanised_mass }}{{ add.unit }} - {{ add.ingredient.producer }} {{ add.ingredient.name }}</li>
{% endfor %}
</ul>
<h3>Yeast</h3>
<ul>
{% for add in Yeast %}
<li>{{ add.humanised_mass }}{{ add.unit }} - {{ add.ingredient.producer }} {{ add.ingredient.name }}</li>
{% endfor %}
</ul>
<h3>Chemical</h3>
<ul>
{% for add in Chemical %}
<li>{{ add.humanised_mass }}{{ add.unit }} - {{ add.ingredient.producer }} {{ add.ingredient.name }}</li>
{% endfor %}
</ul>
<h3>Bottling ({{ object.bottling_date }})</h3>
{{ object.priming_sugar }}g of priming suger for {{ object.bottled_volume }}L of bottled liquid.
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
OG: {{ object.original_gravity }}
FG: {{ object.final_gravity }}
{% if object.abv %}
ABV: {{ object.abv|floatformat:1 }}%
{% endif %}
</div>
</div>
</div>
</div>
{% endblock content %}