Add weight record modeling
authorDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 15:40:27 +0000 (10:40 -0500)
committerDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 15:43:35 +0000 (10:43 -0500)
requirements.txt
src/climbing/models.py
src/nutrition/admin.py
src/nutrition/migrations/0003_weightrecord.py [new file with mode: 0644]
src/nutrition/models.py

index 35bd088..dcd82d1 100644 (file)
@@ -1 +1,2 @@
 Django==3.2.12
+djangorestframework==3.13.1
index 8be6ee9..14c728e 100644 (file)
@@ -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)
index 3ce2535..9a2a760 100644 (file)
@@ -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 (file)
index 0000000..2087d78
--- /dev/null
@@ -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)),
+            ],
+        ),
+    ]
index 67ccd61..03840fb 100644 (file)
@@ -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,
+        )