Add admin interface and fix some model issues
[tickle] / tickle / migrations / 0001_initial.py
1 # Generated by Django 3.1.7 on 2021-02-25 19:46
2
3 from django.conf import settings
4 from django.db import migrations, models
5 import django.db.models.deletion
6
7
8 class Migration(migrations.Migration):
9
10     initial = True
11
12     dependencies = [
13         migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14     ]
15
16     operations = [
17         migrations.CreateModel(
18             name='Boulder',
19             fields=[
20                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21                 ('name', models.CharField(max_length=64)),
22                 ('mountainproject', models.URLField(null=True)),
23             ],
24         ),
25         migrations.CreateModel(
26             name='BoulderDifficulty',
27             fields=[
28                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29                 ('order', models.PositiveSmallIntegerField()),
30                 ('name', models.CharField(max_length=8)),
31             ],
32         ),
33         migrations.CreateModel(
34             name='Route',
35             fields=[
36                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
37                 ('name', models.CharField(max_length=64)),
38                 ('protection_style', models.CharField(choices=[('sport', 'Sport'), ('toprope', 'Top Rope'), ('trad', 'Trad')], max_length=8)),
39                 ('mountainproject', models.URLField(null=True)),
40             ],
41         ),
42         migrations.CreateModel(
43             name='RouteDifficulty',
44             fields=[
45                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
46                 ('order', models.PositiveSmallIntegerField()),
47                 ('name', models.CharField(max_length=8)),
48             ],
49         ),
50         migrations.CreateModel(
51             name='Todo',
52             fields=[
53                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
54                 ('notes', models.TextField()),
55                 ('protection', models.CharField(choices=[('none', 'None'), ('bolts', 'Bolts'), ('gear', 'Gear'), ('pad', 'Pad'), ('tr', 'Top Rope')], max_length=8)),
56                 ('style', models.CharField(choices=[('onsight', 'On Sight'), ('flash', 'Flash'), ('project', 'Project'), ('other', 'Other')], max_length=8)),
57                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.boulder')),
58                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.route')),
59                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
60             ],
61         ),
62         migrations.CreateModel(
63             name='Pitch',
64             fields=[
65                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
66                 ('order', models.PositiveSmallIntegerField()),
67                 ('difficulty', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='pitches', to='tickle.routedifficulty')),
68                 ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pitches', to='tickle.route')),
69             ],
70         ),
71         migrations.AddField(
72             model_name='boulder',
73             name='difficulty',
74             field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='boulders', to='tickle.boulderdifficulty'),
75         ),
76         migrations.CreateModel(
77             name='Attempt',
78             fields=[
79                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
80                 ('date', models.DateField()),
81                 ('notes', models.TextField()),
82                 ('result', models.CharField(choices=[('send', 'Sent'), ('fall', 'Fall')], max_length=8)),
83                 ('prior_knowledge', models.BooleanField(default=True)),
84                 ('protection_used', models.CharField(choices=[('none', 'None'), ('bolts', 'Bolts'), ('gear', 'Gear'), ('pad', 'Pad'), ('tr', 'Top Rope')], max_length=8)),
85                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.boulder')),
86                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.route')),
87                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
88             ],
89         ),
90         migrations.AddConstraint(
91             model_name='todo',
92             constraint=models.CheckConstraint(check=models.Q(models.Q(('boulder__isnull', True), models.Q(_negated=True, route__isnull=True)), models.Q(models.Q(_negated=True, boulder__isnull=True), ('route__isnull', True)), _connector='OR'), name='todo_boulder_xor_route'),
93         ),
94         migrations.AddConstraint(
95             model_name='attempt',
96             constraint=models.CheckConstraint(check=models.Q(models.Q(('boulder__isnull', True), models.Q(_negated=True, route__isnull=True)), models.Q(models.Q(_negated=True, boulder__isnull=True), ('route__isnull', True)), _connector='OR'), name='attempt_boulder_xor_route'),
97         ),
98     ]