7955d21d95a702b469526de7d7331ae5c816c966
[tickle] / tickle / migrations / 0001_initial.py
1 # Generated by Django 3.1.7 on 2021-02-25 19:26
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                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.boulder')),
57                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.route')),
58                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
59             ],
60         ),
61         migrations.CreateModel(
62             name='Pitch',
63             fields=[
64                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
65                 ('difficulty', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='pitches', to='tickle.routedifficulty')),
66                 ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pitches', to='tickle.route')),
67             ],
68         ),
69         migrations.AddField(
70             model_name='boulder',
71             name='difficulty',
72             field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='boulders', to='tickle.boulderdifficulty'),
73         ),
74         migrations.CreateModel(
75             name='Attempt',
76             fields=[
77                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
78                 ('notes', models.TextField()),
79                 ('result', models.CharField(choices=[('send', 'Sent'), ('fall', 'Fall')], max_length=8)),
80                 ('prior_knowledge', models.BooleanField(default=True)),
81                 ('protection_used', models.CharField(choices=[('none', 'None'), ('bolts', 'Bolts'), ('gear', 'Gear'), ('pad', 'Pad'), ('tr', 'Top Rope')], max_length=8)),
82                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.boulder')),
83                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.route')),
84                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
85             ],
86         ),
87         migrations.AddConstraint(
88             model_name='todo',
89             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'),
90         ),
91         migrations.AddConstraint(
92             model_name='attempt',
93             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'),
94         ),
95     ]