]> git.ozlabs.org Git - patchwork/blob - patchwork/migrations/0001_initial.py
patchwork: Add initial migrations
[patchwork] / patchwork / migrations / 0001_initial.py
1 # -*- coding: utf-8 -*-
2 from __future__ import unicode_literals
3
4 from django.db import models, migrations
5 from django.core.management import call_command
6 import datetime
7 import patchwork.models
8 import django.db.models.deletion
9 from django.conf import settings
10
11 class Migration(migrations.Migration):
12
13     dependencies = [
14         migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15     ]
16
17     operations = [
18         migrations.CreateModel(
19             name='Bundle',
20             fields=[
21                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
22                 ('name', models.CharField(max_length=50)),
23                 ('public', models.BooleanField(default=False)),
24                 ('owner', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
25             ],
26         ),
27         migrations.CreateModel(
28             name='BundlePatch',
29             fields=[
30                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
31                 ('order', models.IntegerField()),
32                 ('bundle', models.ForeignKey(to='patchwork.Bundle')),
33             ],
34             options={
35                 'ordering': ['order'],
36             },
37         ),
38         migrations.CreateModel(
39             name='Comment',
40             fields=[
41                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
42                 ('msgid', models.CharField(max_length=255)),
43                 ('date', models.DateTimeField(default=datetime.datetime.now)),
44                 ('headers', models.TextField(blank=True)),
45                 ('content', models.TextField()),
46             ],
47             options={
48                 'ordering': ['date'],
49             },
50         ),
51         migrations.CreateModel(
52             name='EmailConfirmation',
53             fields=[
54                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
55                 ('type', models.CharField(max_length=20, choices=[(b'userperson', b'User-Person association'), (b'registration', b'Registration'), (b'optout', b'Email opt-out')])),
56                 ('email', models.CharField(max_length=200)),
57                 ('key', patchwork.models.HashField(max_length=40)),
58                 ('date', models.DateTimeField(default=datetime.datetime.now)),
59                 ('active', models.BooleanField(default=True)),
60                 ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, null=True)),
61             ],
62         ),
63         migrations.CreateModel(
64             name='EmailOptout',
65             fields=[
66                 ('email', models.CharField(max_length=200, serialize=False, primary_key=True)),
67             ],
68         ),
69         migrations.CreateModel(
70             name='Patch',
71             fields=[
72                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
73                 ('msgid', models.CharField(max_length=255)),
74                 ('name', models.CharField(max_length=255)),
75                 ('date', models.DateTimeField(default=datetime.datetime.now)),
76                 ('archived', models.BooleanField(default=False)),
77                 ('headers', models.TextField(blank=True)),
78                 ('content', models.TextField(null=True, blank=True)),
79                 ('pull_url', models.CharField(max_length=255, null=True, blank=True)),
80                 ('commit_ref', models.CharField(max_length=255, null=True, blank=True)),
81                 ('hash', patchwork.models.HashField(max_length=40, null=True, blank=True)),
82             ],
83             options={
84                 'ordering': ['date'],
85                 'verbose_name_plural': 'Patches',
86             },
87         ),
88         migrations.CreateModel(
89             name='PatchTag',
90             fields=[
91                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
92                 ('count', models.IntegerField(default=1)),
93             ],
94         ),
95         migrations.CreateModel(
96             name='Person',
97             fields=[
98                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
99                 ('email', models.CharField(unique=True, max_length=255)),
100                 ('name', models.CharField(max_length=255, null=True, blank=True)),
101                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
102             ],
103             options={
104                 'verbose_name_plural': 'People',
105             },
106         ),
107         migrations.CreateModel(
108             name='Project',
109             fields=[
110                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
111                 ('linkname', models.CharField(unique=True, max_length=255)),
112                 ('name', models.CharField(unique=True, max_length=255)),
113                 ('listid', models.CharField(unique=True, max_length=255)),
114                 ('listemail', models.CharField(max_length=200)),
115                 ('web_url', models.CharField(max_length=2000, blank=True)),
116                 ('scm_url', models.CharField(max_length=2000, blank=True)),
117                 ('webscm_url', models.CharField(max_length=2000, blank=True)),
118                 ('send_notifications', models.BooleanField(default=False)),
119                 ('use_tags', models.BooleanField(default=True)),
120             ],
121             options={
122                 'ordering': ['linkname'],
123             },
124         ),
125         migrations.CreateModel(
126             name='State',
127             fields=[
128                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
129                 ('name', models.CharField(max_length=100)),
130                 ('ordering', models.IntegerField(unique=True)),
131                 ('action_required', models.BooleanField(default=True)),
132             ],
133             options={
134                 'ordering': ['ordering'],
135             },
136         ),
137         migrations.CreateModel(
138             name='Tag',
139             fields=[
140                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
141                 ('name', models.CharField(max_length=20)),
142                 ('pattern', models.CharField(help_text=b'A simple regex to match the tag in the content of a message. Will be used with MULTILINE and IGNORECASE flags. eg. ^Acked-by:', max_length=50)),
143                 ('abbrev', models.CharField(help_text=b'Short (one-or-two letter) abbreviation for the tag, used in table column headers', unique=True, max_length=2)),
144             ],
145             options={
146                 'ordering': ['abbrev'],
147             },
148         ),
149         migrations.CreateModel(
150             name='UserProfile',
151             fields=[
152                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
153                 ('send_email', models.BooleanField(default=False, help_text=b'Selecting this option allows patchwork to send email on your behalf')),
154                 ('patches_per_page', models.PositiveIntegerField(default=100, help_text=b'Number of patches to display per page')),
155                 ('maintainer_projects', models.ManyToManyField(related_name='maintainer_project', to='patchwork.Project')),
156                 ('primary_project', models.ForeignKey(blank=True, to='patchwork.Project', null=True)),
157                 ('user', models.OneToOneField(related_name='profile', to=settings.AUTH_USER_MODEL)),
158             ],
159         ),
160         migrations.CreateModel(
161             name='PatchChangeNotification',
162             fields=[
163                 ('patch', models.OneToOneField(primary_key=True, serialize=False, to='patchwork.Patch')),
164                 ('last_modified', models.DateTimeField(default=datetime.datetime.now)),
165                 ('orig_state', models.ForeignKey(to='patchwork.State')),
166             ],
167         ),
168         migrations.AddField(
169             model_name='patchtag',
170             name='patch',
171             field=models.ForeignKey(to='patchwork.Patch'),
172         ),
173         migrations.AddField(
174             model_name='patchtag',
175             name='tag',
176             field=models.ForeignKey(to='patchwork.Tag'),
177         ),
178         migrations.AddField(
179             model_name='patch',
180             name='delegate',
181             field=models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True),
182         ),
183         migrations.AddField(
184             model_name='patch',
185             name='project',
186             field=models.ForeignKey(to='patchwork.Project'),
187         ),
188         migrations.AddField(
189             model_name='patch',
190             name='state',
191             field=models.ForeignKey(to='patchwork.State'),
192         ),
193         migrations.AddField(
194             model_name='patch',
195             name='submitter',
196             field=models.ForeignKey(to='patchwork.Person'),
197         ),
198         migrations.AddField(
199             model_name='patch',
200             name='tags',
201             field=models.ManyToManyField(to='patchwork.Tag', through='patchwork.PatchTag'),
202         ),
203         migrations.AddField(
204             model_name='comment',
205             name='patch',
206             field=models.ForeignKey(to='patchwork.Patch'),
207         ),
208         migrations.AddField(
209             model_name='comment',
210             name='submitter',
211             field=models.ForeignKey(to='patchwork.Person'),
212         ),
213         migrations.AddField(
214             model_name='bundlepatch',
215             name='patch',
216             field=models.ForeignKey(to='patchwork.Patch'),
217         ),
218         migrations.AddField(
219             model_name='bundle',
220             name='patches',
221             field=models.ManyToManyField(to='patchwork.Patch', through='patchwork.BundlePatch'),
222         ),
223         migrations.AddField(
224             model_name='bundle',
225             name='project',
226             field=models.ForeignKey(to='patchwork.Project'),
227         ),
228         migrations.AlterUniqueTogether(
229             name='patchtag',
230             unique_together=set([('patch', 'tag')]),
231         ),
232         migrations.AlterUniqueTogether(
233             name='patch',
234             unique_together=set([('msgid', 'project')]),
235         ),
236         migrations.AlterUniqueTogether(
237             name='comment',
238             unique_together=set([('msgid', 'patch')]),
239         ),
240         migrations.AlterUniqueTogether(
241             name='bundlepatch',
242             unique_together=set([('bundle', 'patch')]),
243         ),
244         migrations.AlterUniqueTogether(
245             name='bundle',
246             unique_together=set([('owner', 'name')]),
247         ),
248     ]