From 6b6f260d50d41253bd01f99bec0fd49b6f971924 Mon Sep 17 00:00:00 2001 From: David Kerkeslager Date: Fri, 4 Mar 2022 00:43:21 -0500 Subject: [PATCH] Add todos and ticks --- src/climbing/admin.py | 16 ++++++ .../migrations/0004_add_todos_and_ticks.py | 52 +++++++++++++++++++ src/climbing/models.py | 21 ++++++++ 3 files changed, 89 insertions(+) create mode 100644 src/climbing/migrations/0004_add_todos_and_ticks.py diff --git a/src/climbing/admin.py b/src/climbing/admin.py index 570e2ad..15f19b5 100644 --- a/src/climbing/admin.py +++ b/src/climbing/admin.py @@ -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 index 0000000..28972f2 --- /dev/null +++ b/src/climbing/migrations/0004_add_todos_and_ticks.py @@ -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)), + ], + ), + ] diff --git a/src/climbing/models.py b/src/climbing/models.py index 3473531..62507ad 100644 --- a/src/climbing/models.py +++ b/src/climbing/models.py @@ -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) -- 2.20.1