From af1a3a283688e74a6e7868395cf2a507dcd2e0f4 Mon Sep 17 00:00:00 2001 From: David Kerkeslager Date: Fri, 4 Mar 2022 10:40:27 -0500 Subject: [PATCH] Add weight record modeling --- requirements.txt | 1 + src/climbing/models.py | 2 +- src/nutrition/admin.py | 4 +++ src/nutrition/migrations/0003_weightrecord.py | 25 +++++++++++++++++++ src/nutrition/models.py | 18 +++++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/nutrition/migrations/0003_weightrecord.py diff --git a/requirements.txt b/requirements.txt index 35bd088..dcd82d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ Django==3.2.12 +djangorestframework==3.13.1 diff --git a/src/climbing/models.py b/src/climbing/models.py index 8be6ee9..14c728e 100644 --- a/src/climbing/models.py +++ b/src/climbing/models.py @@ -1,5 +1,5 @@ -from django.db import models from django.contrib.auth.models import User +from django.db import models class Area(models.Model): name = models.CharField(max_length=64) diff --git a/src/nutrition/admin.py b/src/nutrition/admin.py index 3ce2535..9a2a760 100644 --- a/src/nutrition/admin.py +++ b/src/nutrition/admin.py @@ -5,3 +5,7 @@ from . import models class FoodAdmin(admin.ModelAdmin): pass admin.site.register(models.Food, FoodAdmin) + +class WeightRecordAdmin(admin.ModelAdmin): + pass +admin.site.register(models.WeightRecord, WeightRecordAdmin) diff --git a/src/nutrition/migrations/0003_weightrecord.py b/src/nutrition/migrations/0003_weightrecord.py new file mode 100644 index 0000000..2087d78 --- /dev/null +++ b/src/nutrition/migrations/0003_weightrecord.py @@ -0,0 +1,25 @@ +# Generated by Django 4.0.3 on 2022-03-04 15:43 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('nutrition', '0002_name_and_brand_as_char_fields'), + ] + + operations = [ + migrations.CreateModel( + name='WeightRecord', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('weight', models.PositiveIntegerField()), + ('units', models.CharField(choices=[('kgs', 'kgs'), ('lbs', 'lbs')], max_length=3)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/src/nutrition/models.py b/src/nutrition/models.py index 67ccd61..03840fb 100644 --- a/src/nutrition/models.py +++ b/src/nutrition/models.py @@ -1,3 +1,4 @@ +from django.contrib.auth.models import User from django.db import models class Food(models.Model): @@ -7,3 +8,20 @@ class Food(models.Model): def __str__(self): return '{} ({})'.format(self.name, self.brand) + +WEIGHT_UNITS_CHOICES = ( + ('kgs', 'kgs'), + ('lbs', 'lbs'), +) + +class WeightRecord(models.Model): + user = models.ForeignKey(User, on_delete=models.CASCADE) + weight = models.PositiveIntegerField() + units = models.CharField(max_length=3, choices=WEIGHT_UNITS_CHOICES) + + def __str__(self): + return '{}: {}{}'.format( + self.user.username, + self.weight, + self.units, + ) -- 2.20.1