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)
--- /dev/null
+# 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)),
+ ],
+ ),
+ ]
from django.db import models
+from django.contrib.auth.models import User
class Area(models.Model):
name = models.CharField(max_length=64)
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)