From: David Kerkeslager Date: Fri, 4 Mar 2022 05:32:24 +0000 (-0500) Subject: Start exposing stuff in admin interface X-Git-Url: https://code.kerkeslager.com/?p=climbing.kerkeslager.com;a=commitdiff_plain;h=acbdb61397c71599f19fc4bc3266f6212713e28a;ds=sidebyside Start exposing stuff in admin interface --- diff --git a/src/climbing/admin.py b/src/climbing/admin.py index 8c38f3f..570e2ad 100644 --- a/src/climbing/admin.py +++ b/src/climbing/admin.py @@ -1,3 +1,32 @@ 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 index bc3d64d..0000000 --- a/src/climbing/migrations/0002_alter_boulder_cluster_alter_cluster_area_and_more.py +++ /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 index 0000000..bc3d64d --- /dev/null +++ b/src/climbing/migrations/0002_related_names.py @@ -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 index 0000000..3516f37 --- /dev/null +++ b/src/climbing/migrations/0003_notes_not_required.py @@ -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), + ), + ] diff --git a/src/climbing/models.py b/src/climbing/models.py index 1693a05..3473531 100644 --- a/src/climbing/models.py +++ b/src/climbing/models.py @@ -2,7 +2,10 @@ from django.db import models 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( @@ -11,7 +14,10 @@ class Crag(models.Model): 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( @@ -20,7 +26,10 @@ class Route(models.Model): 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'), @@ -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) - 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( @@ -90,7 +104,10 @@ class Cluster(models.Model): 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( @@ -99,7 +116,10 @@ class Boulder(models.Model): 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'), @@ -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) - notes = models.TextField() + notes = models.TextField(blank=True, null=True) + + def __str__(self): + return '{} ({})'.format(self.name, self.difficulty)