joeni

0001_initial.py

1
# Generated by Django 2.0b1 on 2017-11-18 22:03
2
3
import agora.models
4
from django.conf import settings
5
from django.db import migrations, models
6
import django.db.models.deletion
7
8
9
class Migration(migrations.Migration):
10
11
    initial = True
12
13
    dependencies = [
14
        ('administration', '0001_initial'),
15
    ]
16
17
    operations = [
18
        migrations.CreateModel(
19
            name='Account',
20
            fields=[
21
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)),
22
                ('alias', models.CharField(max_length=64, unique=True)),
23
            ],
24
        ),
25
        migrations.CreateModel(
26
            name='AccountCollection',
27
            fields=[
28
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29
                ('name', models.CharField(help_text='The name of this collection.', max_length=32)),
30
                ('visible_to_public', models.BooleanField(default=False, help_text='Make this collection visible to everybody.')),
31
                ('visible_to_collection', models.BooleanField(default=True, help_text='Make this collection visible to the accounts in this collection. Other collections are not affected by this.')),
32
                ('account', models.ForeignKey(editable=False, help_text='The account that created this collection.', on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
33
                ('accounts', models.ManyToManyField(help_text='All accounts that are part of this collection.', related_name='in_collection', to='agora.Account')),
34
            ],
35
        ),
36
        migrations.CreateModel(
37
            name='AccountSettings',
38
            fields=[
39
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
40
                ('color', models.CharField(default='E73B2B', help_text='The hexadecimal code of the color for this account.', max_length=6, validators=[agora.models.validate_hex_color])),
41
                ('account_page_banner', models.ImageField(help_text="The banner image to be shown on this account's homepage.", upload_to=agora.models.account_user_directory)),
42
                ('avatar', models.ImageField(help_text='The avatar image of this account.', upload_to=agora.models.account_user_directory)),
43
                ('account', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
44
            ],
45
        ),
46
        migrations.CreateModel(
47
            name='Group',
48
            fields=[
49
                ('name', models.CharField(help_text='The name of your group.', max_length=64, primary_key=True, serialize=False)),
50
                ('color', models.CharField(default='E73B2B', help_text='The hexadecimal code of the color for this group.', max_length=6, validators=[agora.models.validate_hex_color])),
51
                ('invite_only', models.BooleanField(default=True, help_text='Determines if everyone can join this group, or if only members can invite others.')),
52
                ('private', models.BooleanField(default=True, help_text='Determines if this group is visible to non-members.')),
53
                ('members', models.ManyToManyField(help_text='The members of this group.', to='agora.Account')),
54
            ],
55
        ),
56
        migrations.CreateModel(
57
            name='GroupChat',
58
            fields=[
59
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
60
                ('group', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='agora.Group')),
61
            ],
62
            options={
63
                'abstract': False,
64
            },
65
        ),
66
        migrations.CreateModel(
67
            name='GroupInvite',
68
            fields=[
69
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
70
                ('accepted', models.NullBooleanField(default=None, help_text='Indicates if the invitation was accepted, rejected, or pending an answer. if somebody rejects the invitation, that group can no longer send an invitation to the invitee, unless (s)he removes the answer from her history. Also, a person can not reject an invitation, and accept it later. For that, a new invitation must be received.')),
71
                ('group', models.ForeignKey(editable=False, help_text='The group for which this invitation is.', on_delete=django.db.models.deletion.CASCADE, to='agora.Group')),
72
                ('invitee', models.ForeignKey(editable=False, help_text='The account which will receive the invitation.', on_delete=django.db.models.deletion.CASCADE, related_name='invitee', to='agora.Account')),
73
                ('inviter', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
74
            ],
75
        ),
76
        migrations.CreateModel(
77
            name='Message',
78
            fields=[
79
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
80
                ('timestamp', models.DateTimeField(auto_now_add=True)),
81
                ('text', models.TextField()),
82
                ('sender', models.ForeignKey(editable=False, help_text='The account that sent this message.', on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
83
            ],
84
        ),
85
        migrations.CreateModel(
86
            name='Page',
87
            fields=[
88
                ('name', models.CharField(help_text='The name of this page.', max_length=64, primary_key=True, serialize=False)),
89
                ('created', models.DateTimeField(auto_now_add=True)),
90
                ('hidden', models.BooleanField(default=False, help_text='Determines if this page can be found without a direct link.')),
91
                ('main_content', models.TextField(blank=True, help_text='If you want to put some text on this page, you can put it here. You can use Orgmode-syntax to get as much out of your page as possible. While doing so, be aware of the limitations imposed by the code of conduct.')),
92
                ('public_posting', models.BooleanField(default=True, help_text='Determines if everyone can post on this page, or only the people that are linked with it. Know that if a post is made and responding is allowed, everyone can respond to that post.')),
93
            ],
94
        ),
95
        migrations.CreateModel(
96
            name='Post',
97
            fields=[
98
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
99
                ('timestamp', models.DateTimeField(auto_now_add=True)),
100
                ('title', models.CharField(blank=True, help_text='The title for this post.', max_length=64)),
101
                ('text', models.TextField(blank=True, help_text='A text message for this post. May be left blank.')),
102
                ('allow_votes', models.BooleanField(default=True, help_text='Decide whether to allow voting or disable it for this post.')),
103
                ('allow_responses', models.BooleanField(default=True, help_text='Decide if other people can respond to this post or not. This does not influence what people allow on their posts.')),
104
            ],
105
        ),
106
        migrations.CreateModel(
107
            name='PrivateChat',
108
            fields=[
109
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
110
                ('account1', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
111
                ('account2', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='correspondent', to='agora.Account')),
112
                ('messages', models.ManyToManyField(help_text='All messages that were shared in this chat.', to='agora.Message')),
113
            ],
114
            options={
115
                'abstract': False,
116
            },
117
        ),
118
        migrations.CreateModel(
119
            name='SharedFile',
120
            fields=[
121
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
122
                ('timestamp', models.DateTimeField(auto_now_add=True)),
123
                ('file', models.FileField(editable=False, help_text='The file you want to share.', upload_to='agora/chat/%Y/%m/%d/')),
124
                ('uploader', models.ForeignKey(editable=False, help_text='The account that uploaded this file.', on_delete=django.db.models.deletion.CASCADE, to='agora.Account')),
125
            ],
126
        ),
127
        migrations.CreateModel(
128
            name='Vote',
129
            fields=[
130
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
131
            ],
132
        ),
133
        migrations.CreateModel(
134
            name='AccountPage',
135
            fields=[
136
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='agora.Page')),
137
            ],
138
            bases=('agora.page',),
139
        ),
140
        migrations.CreateModel(
141
            name='CoursePage',
142
            fields=[
143
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='agora.Page')),
144
            ],
145
            bases=('agora.page',),
146
        ),
147
        migrations.CreateModel(
148
            name='FilePost',
149
            fields=[
150
                ('post_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='agora.Post')),
151
                ('file', models.FileField(editable=False, help_text='The file you wish to share.', upload_to='agora/posts/%Y/%m/%d/')),
152
                ('file_type', models.CharField(choices=[('image', 'Image'), ('video', 'Video'), ('music', 'Sound'), ('text', 'Text'), ('other', 'Other')], help_text='How this file should be seen as.', max_length=16)),
153
            ],
154
            bases=('agora.post',),
155
        ),
156
        migrations.CreateModel(
157
            name='GroupPage',
158
            fields=[
159
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='agora.Page')),
160
                ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='agora.Group')),
161
            ],
162
            bases=('agora.page',),
163
        ),
164
        migrations.AddField(
165
            model_name='vote',
166
            name='post',
167
            field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='agora.Post'),
168
        ),
169
        migrations.AddField(
170
            model_name='vote',
171
            name='voter',
172
            field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='agora.Account'),
173
        ),
174
        migrations.AddField(
175
            model_name='privatechat',
176
            name='shared_files',
177
            field=models.ManyToManyField(help_text='The files that are shared in this chat.', to='agora.SharedFile'),
178
        ),
179
        migrations.AddField(
180
            model_name='post',
181
            name='author',
182
            field=models.ForeignKey(editable=False, help_text='The authoring account of this post.', on_delete=django.db.models.deletion.CASCADE, to='agora.Account'),
183
        ),
184
        migrations.AddField(
185
            model_name='post',
186
            name='placed_on',
187
            field=models.ForeignKey(editable=False, help_text='The page on which this post was placed.', on_delete=django.db.models.deletion.CASCADE, to='agora.Page'),
188
        ),
189
        migrations.AddField(
190
            model_name='post',
191
            name='response_to',
192
            field=models.ForeignKey(editable=False, help_text='The post to which this was a response, if applicable.', null=True, on_delete=django.db.models.deletion.CASCADE, to='agora.Post'),
193
        ),
194
        migrations.AddField(
195
            model_name='groupchat',
196
            name='messages',
197
            field=models.ManyToManyField(help_text='All messages that were shared in this chat.', to='agora.Message'),
198
        ),
199
        migrations.AddField(
200
            model_name='groupchat',
201
            name='shared_files',
202
            field=models.ManyToManyField(help_text='The files that are shared in this chat.', to='agora.SharedFile'),
203
        ),
204
    ]
205