Add todos and ticks
authorDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 05:43:21 +0000 (00:43 -0500)
committerDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 05:43:21 +0000 (00:43 -0500)
src/climbing/admin.py
src/climbing/migrations/0004_add_todos_and_ticks.py [new file with mode: 0644]
src/climbing/models.py

index 570e2ad..15f19b5 100644 (file)
@@ -30,3 +30,19 @@ admin.site.register(models.Boulder, BoulderAdmin)
 class ProblemAdmin(admin.ModelAdmin):
     pass
 admin.site.register(models.Problem, ProblemAdmin)
+
+class RouteTodoAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.RouteTodo, RouteTodoAdmin)
+
+class ProblemTodoAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.ProblemTodo, ProblemTodoAdmin)
+
+class RouteTickAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.RouteTick, RouteTickAdmin)
+
+class ProblemTickAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.ProblemTick, ProblemTickAdmin)
diff --git a/src/climbing/migrations/0004_add_todos_and_ticks.py b/src/climbing/migrations/0004_add_todos_and_ticks.py
new file mode 100644 (file)
index 0000000..28972f2
--- /dev/null
@@ -0,0 +1,52 @@
+# Generated by Django 4.0.3 on 2022-03-04 05:42
+
+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),
+        ('climbing', '0003_notes_not_required'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='RouteTodo',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='climbing.route')),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='RouteTick',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('timestamp', models.DateTimeField()),
+                ('notes', models.TextField(blank=True, null=True)),
+                ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='climbing.route')),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='ProblemTodo',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='climbing.problem')),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='ProblemTick',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('timestamp', models.DateTimeField()),
+                ('notes', models.TextField(blank=True, null=True)),
+                ('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='climbing.problem')),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+    ]
index 3473531..62507ad 100644 (file)
@@ -1,4 +1,5 @@
 from django.db import models
+from django.contrib.auth.models import User
 
 class Area(models.Model):
     name = models.CharField(max_length=64)
@@ -155,3 +156,23 @@ class Problem(models.Model):
 
     def __str__(self):
         return '{} ({})'.format(self.name, self.difficulty)
+
+class RouteTodo(models.Model):
+    user = models.ForeignKey(User, on_delete=models.CASCADE)
+    route = models.ForeignKey(Route, on_delete=models.CASCADE)
+
+class ProblemTodo(models.Model):
+    user = models.ForeignKey(User, on_delete=models.CASCADE)
+    problem = models.ForeignKey(Problem, on_delete=models.CASCADE)
+
+class RouteTick(models.Model):
+    user = models.ForeignKey(User, on_delete=models.CASCADE)
+    route = models.ForeignKey(Route, on_delete=models.CASCADE)
+    timestamp = models.DateTimeField()
+    notes = models.TextField(blank=True, null=True)
+
+class ProblemTick(models.Model):
+    user = models.ForeignKey(User, on_delete=models.CASCADE)
+    problem = models.ForeignKey(Problem, on_delete=models.CASCADE)
+    timestamp = models.DateTimeField()
+    notes = models.TextField(blank=True, null=True)