Add areas
[tickle] / tickle / migrations / 0001_initial.py
1 # Generated by Django 3.1.7 on 2021-02-26 05:37
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='Area',
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                 ('notes', models.TextField(blank=True)),
23                 ('parent', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='tickle.area')),
24             ],
25         ),
26         migrations.CreateModel(
27             name='Boulder',
28             fields=[
29                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
30                 ('name', models.CharField(max_length=64)),
31                 ('difficulty', models.CharField(choices=[('v0', 'v0'), ('v1', 'v1'), ('v2', 'v2'), ('v3', 'v3'), ('v4', 'v4'), ('v5', 'v5'), ('v6', 'v6'), ('v7', 'v7'), ('v8', 'v8'), ('v9', 'v9'), ('v10', 'v10'), ('v11', 'v11'), ('v12', 'v12'), ('v13', 'v13'), ('v14', 'v14'), ('v15', 'v15'), ('v16', 'v16')], max_length=8)),
32                 ('mountainproject', models.URLField(blank=True)),
33                 ('notes', models.TextField(blank=True)),
34                 ('area', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='tickle.area')),
35             ],
36         ),
37         migrations.CreateModel(
38             name='Route',
39             fields=[
40                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
41                 ('name', models.CharField(max_length=64)),
42                 ('protection_style', models.CharField(choices=[('sport', 'Sport'), ('toprope', 'Top Rope'), ('trad', 'Trad')], max_length=8)),
43                 ('mountainproject', models.URLField(blank=True)),
44                 ('notes', models.TextField(blank=True)),
45                 ('area', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='tickle.area')),
46             ],
47         ),
48         migrations.CreateModel(
49             name='Todo',
50             fields=[
51                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
52                 ('notes', models.TextField(blank=True)),
53                 ('protection', models.CharField(choices=[('none', 'None'), ('bolts', 'Bolts'), ('gear', 'Gear'), ('pad', 'Pad'), ('tr', 'Top Rope')], max_length=8)),
54                 ('style', models.CharField(choices=[('onsight', 'On Sight'), ('flash', 'Flash'), ('project', 'Project'), ('other', 'Other')], max_length=8)),
55                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.boulder')),
56                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='todos', to='tickle.route')),
57                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
58             ],
59             options={
60                 'ordering': ('route__name',),
61             },
62         ),
63         migrations.CreateModel(
64             name='Pitch',
65             fields=[
66                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
67                 ('order', models.PositiveSmallIntegerField()),
68                 ('difficulty', models.CharField(choices=[('3', '3'), ('4', '4'), ('5.0', '5.0'), ('5.1', '5.1'), ('5.2', '5.2'), ('5.3', '5.3'), ('5.4', '5.4'), ('5.5', '5.5'), ('5.6', '5.6'), ('5.7', '5.7'), ('5.7+', '5.7+'), ('5.8', '5.8'), ('5.8+', '5.8+'), ('5.9', '5.9'), ('5.9+', '5.9+'), ('5.10a', '5.10a'), ('5.10b', '5.10b'), ('5.10c', '5.10c'), ('5.10d', '5.10d'), ('5.11a', '5.11a'), ('5.11b', '5.11b'), ('5.11c', '5.11c'), ('5.11d', '5.11d'), ('5.12a', '5.12a'), ('5.12b', '5.12b'), ('5.12c', '5.12c'), ('5.12d', '5.12d'), ('5.13a', '5.13a'), ('5.13b', '5.13b'), ('5.13c', '5.13c'), ('5.13d', '5.13d'), ('5.14a', '5.14a'), ('5.14b', '5.14b'), ('5.14c', '5.14c'), ('5.14d', '5.14d'), ('5.15a', '5.15a'), ('5.15b', '5.15b'), ('5.15c', '5.15c'), ('5.15d', '5.15d')], max_length=8)),
69                 ('name', models.CharField(blank=True, max_length=32)),
70                 ('notes', models.TextField(blank=True)),
71                 ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pitches', to='tickle.route')),
72             ],
73             options={
74                 'ordering': ('order',),
75             },
76         ),
77         migrations.CreateModel(
78             name='Attempt',
79             fields=[
80                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
81                 ('date', models.DateField()),
82                 ('notes', models.TextField(blank=True)),
83                 ('result', models.CharField(choices=[('send', 'Sent'), ('fall', 'Fall')], max_length=8)),
84                 ('prior_knowledge', models.BooleanField(default=True)),
85                 ('protection_used', models.CharField(choices=[('none', 'None'), ('bolts', 'Bolts'), ('gear', 'Gear'), ('pad', 'Pad'), ('tr', 'Top Rope')], max_length=8)),
86                 ('boulder', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.boulder')),
87                 ('route', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='attempts', to='tickle.route')),
88                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
89             ],
90             options={
91                 'ordering': ('date',),
92             },
93         ),
94         migrations.AddConstraint(
95             model_name='todo',
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='todo_boulder_xor_route'),
97         ),
98         migrations.AddConstraint(
99             model_name='attempt',
100             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'),
101         ),
102     ]