Start exposing stuff in admin interface
authorDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 05:32:24 +0000 (00:32 -0500)
committerDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 05:32:24 +0000 (00:32 -0500)
src/climbing/admin.py
src/climbing/migrations/0002_alter_boulder_cluster_alter_cluster_area_and_more.py [deleted file]
src/climbing/migrations/0002_related_names.py [new file with mode: 0644]
src/climbing/migrations/0003_notes_not_required.py [new file with mode: 0644]
src/climbing/models.py

index 8c38f3f..570e2ad 100644 (file)
@@ -1,3 +1,32 @@
 from django.contrib import admin
 
 from django.contrib import admin
 
-# Register your models here.
+from . import models
+
+class AreaAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.Area, AreaAdmin)
+
+class CragAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.Crag, CragAdmin)
+
+class PitchInline(admin.StackedInline):
+    model = models.Pitch
+
+class RouteAdmin(admin.ModelAdmin):
+    inlines = (
+        PitchInline,
+    )
+admin.site.register(models.Route, RouteAdmin)
+
+class ClusterAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.Cluster, ClusterAdmin)
+
+class BoulderAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.Boulder, BoulderAdmin)
+
+class ProblemAdmin(admin.ModelAdmin):
+    pass
+admin.site.register(models.Problem, ProblemAdmin)
diff --git a/src/climbing/migrations/0002_alter_boulder_cluster_alter_cluster_area_and_more.py b/src/climbing/migrations/0002_alter_boulder_cluster_alter_cluster_area_and_more.py
deleted file mode 100644 (file)
index bc3d64d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# Generated by Django 4.0.3 on 2022-03-04 04:54
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('climbing', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='boulder',
-            name='cluster',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='boulders', to='climbing.cluster'),
-        ),
-        migrations.AlterField(
-            model_name='cluster',
-            name='area',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='clusters', to='climbing.area'),
-        ),
-        migrations.AlterField(
-            model_name='crag',
-            name='area',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='crags', to='climbing.area'),
-        ),
-        migrations.AlterField(
-            model_name='pitch',
-            name='route',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pitches', to='climbing.route'),
-        ),
-        migrations.AlterField(
-            model_name='problem',
-            name='boulder',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='problems', to='climbing.boulder'),
-        ),
-        migrations.AlterField(
-            model_name='route',
-            name='area',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routes', to='climbing.crag'),
-        ),
-    ]
diff --git a/src/climbing/migrations/0002_related_names.py b/src/climbing/migrations/0002_related_names.py
new file mode 100644 (file)
index 0000000..bc3d64d
--- /dev/null
@@ -0,0 +1,44 @@
+# Generated by Django 4.0.3 on 2022-03-04 04:54
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('climbing', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='boulder',
+            name='cluster',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='boulders', to='climbing.cluster'),
+        ),
+        migrations.AlterField(
+            model_name='cluster',
+            name='area',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='clusters', to='climbing.area'),
+        ),
+        migrations.AlterField(
+            model_name='crag',
+            name='area',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='crags', to='climbing.area'),
+        ),
+        migrations.AlterField(
+            model_name='pitch',
+            name='route',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pitches', to='climbing.route'),
+        ),
+        migrations.AlterField(
+            model_name='problem',
+            name='boulder',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='problems', to='climbing.boulder'),
+        ),
+        migrations.AlterField(
+            model_name='route',
+            name='area',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routes', to='climbing.crag'),
+        ),
+    ]
diff --git a/src/climbing/migrations/0003_notes_not_required.py b/src/climbing/migrations/0003_notes_not_required.py
new file mode 100644 (file)
index 0000000..3516f37
--- /dev/null
@@ -0,0 +1,48 @@
+# Generated by Django 4.0.3 on 2022-03-04 05:21
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('climbing', '0002_related_names'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='area',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='boulder',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='cluster',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='crag',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='pitch',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='problem',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='route',
+            name='notes',
+            field=models.TextField(blank=True, null=True),
+        ),
+    ]
index 1693a05..3473531 100644 (file)
@@ -2,7 +2,10 @@ from django.db import models
 
 class Area(models.Model):
     name = models.CharField(max_length=64)
 
 class Area(models.Model):
     name = models.CharField(max_length=64)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return self.name
 
 class Crag(models.Model):
     area = models.ForeignKey(
 
 class Crag(models.Model):
     area = models.ForeignKey(
@@ -11,7 +14,10 @@ class Crag(models.Model):
         related_name='crags',
     )
     name = models.CharField(max_length=64)
         related_name='crags',
     )
     name = models.CharField(max_length=64)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return self.name
 
 class Route(models.Model):
     area = models.ForeignKey(
 
 class Route(models.Model):
     area = models.ForeignKey(
@@ -20,7 +26,10 @@ class Route(models.Model):
         related_name='routes',
     )
     name = models.CharField(max_length=64)
         related_name='routes',
     )
     name = models.CharField(max_length=64)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return self.name
 
 ROUTE_DIFFICULTY_CHOICES = (
     ('5.0', '5.0'),
 
 ROUTE_DIFFICULTY_CHOICES = (
     ('5.0', '5.0'),
@@ -81,7 +90,12 @@ class Pitch(models.Model):
     name = models.CharField(max_length=64, null=True)
     difficulty = models.CharField(max_length=5, choices=ROUTE_DIFFICULTY_CHOICES)
     safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)
     name = models.CharField(max_length=64, null=True)
     difficulty = models.CharField(max_length=5, choices=ROUTE_DIFFICULTY_CHOICES)
     safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        if self.name:
+            return '{} ({})'.format(self.name, self.difficulty)
+        return 'Pitch ({})'.format(self.difficulty)
 
 class Cluster(models.Model):
     area = models.ForeignKey(
 
 class Cluster(models.Model):
     area = models.ForeignKey(
@@ -90,7 +104,10 @@ class Cluster(models.Model):
         related_name='clusters',
     )
     name = models.CharField(max_length=64)
         related_name='clusters',
     )
     name = models.CharField(max_length=64)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return self.name
 
 class Boulder(models.Model):
     cluster = models.ForeignKey(
 
 class Boulder(models.Model):
     cluster = models.ForeignKey(
@@ -99,7 +116,10 @@ class Boulder(models.Model):
         related_name='boulders',
     )
     name = models.CharField(max_length=64)
         related_name='boulders',
     )
     name = models.CharField(max_length=64)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return self.name
 
 BOULDER_DIFFICULTY_CHOICES = (
     ('V0', 'V0'),
 
 BOULDER_DIFFICULTY_CHOICES = (
     ('V0', 'V0'),
@@ -131,4 +151,7 @@ class Problem(models.Model):
     name = models.CharField(max_length=64)
     difficulty = models.CharField(max_length=3, choices=BOULDER_DIFFICULTY_CHOICES)
     safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)
     name = models.CharField(max_length=64)
     difficulty = models.CharField(max_length=3, choices=BOULDER_DIFFICULTY_CHOICES)
     safety = models.CharField(max_length=4, choices=SAFETY_CHOICES)
-    notes = models.TextField()
+    notes = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return '{} ({})'.format(self.name, self.difficulty)