From acbdb61397c71599f19fc4bc3266f6212713e28a Mon Sep 17 00:00:00 2001 From: David Kerkeslager Date: Fri, 4 Mar 2022 00:32:24 -0500 Subject: [PATCH] Start exposing stuff in admin interface --- src/climbing/admin.py | 31 +++++++++++- ...area_and_more.py => 0002_related_names.py} | 0 .../migrations/0003_notes_not_required.py | 48 +++++++++++++++++++ src/climbing/models.py | 37 +++++++++++--- 4 files changed, 108 insertions(+), 8 deletions(-) rename src/climbing/migrations/{0002_alter_boulder_cluster_alter_cluster_area_and_more.py => 0002_related_names.py} (100%) create mode 100644 src/climbing/migrations/0003_notes_not_required.py 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_related_names.py similarity index 100% rename from src/climbing/migrations/0002_alter_boulder_cluster_alter_cluster_area_and_more.py rename to src/climbing/migrations/0002_related_names.py 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) -- 2.20.1