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)
+++ /dev/null
-# 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'),
- ),
- ]
--- /dev/null
+# 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'),
+ ),
+ ]
--- /dev/null
+# 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),
+ ),
+ ]
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(
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(
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'),
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(
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(
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'),
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)