|
|
|
@@ -0,0 +1,428 @@
|
|
|
|
|
# Generated by Django 3.2.2 on 2023-09-16 19:39
|
|
|
|
|
|
|
|
|
|
import closedverse_main.models
|
|
|
|
|
from django.conf import settings
|
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
import django.db.models.deletion
|
|
|
|
|
import uuid
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
|
|
|
|
|
|
initial = True
|
|
|
|
|
|
|
|
|
|
dependencies = [
|
|
|
|
|
('auth', '0012_alter_user_first_name_max_length'),
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
operations = [
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='User',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('username', models.CharField(max_length=32, unique=True)),
|
|
|
|
|
('nickname', models.CharField(max_length=64, null=True)),
|
|
|
|
|
('password', models.CharField(max_length=128)),
|
|
|
|
|
('email', models.EmailField(blank=True, default='', max_length=254, null=True)),
|
|
|
|
|
('has_mh', models.BooleanField(default=False, help_text="Don't touch this. This is if the user's avatar is set to a Mii.")),
|
|
|
|
|
('avatar', models.CharField(blank=True, default='', max_length=1200)),
|
|
|
|
|
('theme', closedverse_main.models.ColorField(blank=True, max_length=18, null=True)),
|
|
|
|
|
('level', models.SmallIntegerField(default=0, help_text='This is the level of authority. People with a lower level cannot edit those with a higher level. This also grants additional permissions outside of the Django Admin Panel.')),
|
|
|
|
|
('addr', models.CharField(blank=True, max_length=64, null=True)),
|
|
|
|
|
('signup_addr', models.CharField(blank=True, max_length=64, null=True)),
|
|
|
|
|
('c_tokens', models.IntegerField(default=1, help_text='How many communities should this user be allowed to make?')),
|
|
|
|
|
('hide_online', models.BooleanField(default=False, help_text='If this is ticked, the user has opted to hide their online status.')),
|
|
|
|
|
('color', closedverse_main.models.ColorField(blank=True, default='', max_length=18, null=True)),
|
|
|
|
|
('is_staff', models.BooleanField(default=False, help_text="Allow this user to access the admin panel you're using right now?")),
|
|
|
|
|
('is_active', models.BooleanField(default=True, help_text="If this is off, the user is basically banned and can't do shit here")),
|
|
|
|
|
('is_superuser', models.BooleanField(default=False, help_text="Overrides django groups. This also allows you to change people's perms.")),
|
|
|
|
|
('can_invite', models.BooleanField(default=True, help_text='Can this user invite new users? This does not matter unless the invite system is turned on.')),
|
|
|
|
|
('bg_url', models.CharField(blank=True, max_length=300, null=True)),
|
|
|
|
|
('last_login', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
|
|
|
|
|
],
|
|
|
|
|
options={
|
|
|
|
|
'permissions': [('Can_alter_level_and_Perms', 'Allow this user to change Level, Groups and Permissions?')],
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Ads',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('url', models.CharField(max_length=256)),
|
|
|
|
|
('imageurl', models.ImageField(upload_to='ad/%y/%m/%d/')),
|
|
|
|
|
],
|
|
|
|
|
options={
|
|
|
|
|
'verbose_name_plural': 'ads',
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Comment',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('feeling', models.SmallIntegerField(choices=[(0, 'normal'), (1, 'happy'), (2, 'wink'), (3, 'surprised'), (4, 'frustrated'), (5, 'confused'), (38, 'japan'), (39, 'lol i lied'), (69, 'adam is gay'), (70, 'I am a faggot!'), (71, 'Juice'), (72, 'Commit Suicide'), (73, 'Fresh!')], default=0)),
|
|
|
|
|
('body', models.TextField(null=True)),
|
|
|
|
|
('screenshot', models.CharField(blank=True, default='', max_length=1200, null=True)),
|
|
|
|
|
('drawing', models.CharField(blank=True, max_length=200, null=True)),
|
|
|
|
|
('spoils', models.BooleanField(default=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('edited', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('befores', models.TextField(blank=True, null=True)),
|
|
|
|
|
('has_edit', models.BooleanField(default=False)),
|
|
|
|
|
('is_rm', models.BooleanField(default=False, help_text='Tick this to hide this comment')),
|
|
|
|
|
('status', models.SmallIntegerField(choices=[(0, 'ok'), (1, 'delete by user'), (2, 'delete by authority'), (3, 'delete by mod'), (4, 'delete by admin'), (5, 'account pruge')], default=0, help_text='Used to distinguish how a comment was removed. Our purging feature uses this to determine what comments to restore and what not to.')),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Community',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('name', models.CharField(max_length=255)),
|
|
|
|
|
('description', models.TextField(blank=True)),
|
|
|
|
|
('ico', models.ImageField(blank=True, null=True, upload_to='')),
|
|
|
|
|
('banner', models.ImageField(blank=True, null=True, upload_to='')),
|
|
|
|
|
('type', models.SmallIntegerField(choices=[(0, 'General'), (1, 'Game'), (2, 'Special'), (3, 'User Community'), (4, 'Hide')], default=0, help_text='The category the community belongs in, setting this to None will remove the community.')),
|
|
|
|
|
('platform', models.SmallIntegerField(choices=[(0, 'None'), (1, '3DS'), (2, 'Wii U'), (3, 'Switch'), (4, '3DS and Wii U'), (5, 'PC'), (6, 'Xbox'), (7, 'Playstation')], default=0)),
|
|
|
|
|
('tags', models.CharField(blank=True, choices=[('announcements', 'main announcement community'), ('changelog', 'main changelog'), ('activity', 'Activity Feed posting community'), ('general', 'General Discussion Community')], help_text='Provides special functionality for specific communities.', max_length=255, null=True)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('updated', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('is_rm', models.BooleanField(default=False, help_text='Tick this on to remove the community.')),
|
|
|
|
|
('is_feature', models.BooleanField(default=False, help_text='Feature this community on the front page where everyone can see it.')),
|
|
|
|
|
('require_auth', models.BooleanField(default=False, help_text='Force your users to sign in to view this community.')),
|
|
|
|
|
('rank_needed_to_post', models.IntegerField(default=0, help_text='Make admin only communities.')),
|
|
|
|
|
('creator', models.ForeignKey(blank=True, help_text="Who owns this community? It's highly recommended to not fill this on for general communities. Keep in mind that owners can block others from using communities they own.", null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
options={
|
|
|
|
|
'verbose_name_plural': 'communities',
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Conversation',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='conv_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='conv_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Poll',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('able_vote', models.BooleanField(default=True)),
|
|
|
|
|
('choices', models.TextField(default='[]')),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Post',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('feeling', models.SmallIntegerField(choices=[(0, 'normal'), (1, 'happy'), (2, 'wink'), (3, 'surprised'), (4, 'frustrated'), (5, 'confused'), (38, 'japan'), (39, 'lol i lied'), (69, 'adam is gay'), (70, 'I am a faggot!'), (71, 'Juice'), (72, 'Commit Suicide'), (73, 'Fresh!')], default=0)),
|
|
|
|
|
('body', models.TextField(null=True)),
|
|
|
|
|
('drawing', models.CharField(blank=True, max_length=200, null=True)),
|
|
|
|
|
('screenshot', models.CharField(blank=True, default='', max_length=1200, null=True)),
|
|
|
|
|
('video', models.CharField(blank=True, default='', max_length=256, null=True)),
|
|
|
|
|
('url', models.URLField(blank=True, default='', max_length=1200, null=True)),
|
|
|
|
|
('spoils', models.BooleanField(default=False)),
|
|
|
|
|
('disable_yeah', models.BooleanField(default=False)),
|
|
|
|
|
('lock_comments', models.SmallIntegerField(choices=[(0, 'Not locked'), (1, 'Locked by user'), (2, 'Locked by mod')], default=0, help_text='People will not be able to comment on posts that are locked.')),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('edited', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('befores', models.TextField(blank=True, help_text='If this post gets edited, the old body will be here.', null=True)),
|
|
|
|
|
('has_edit', models.BooleanField(default=False)),
|
|
|
|
|
('is_rm', models.BooleanField(default=False, help_text='Tick this to hide this post')),
|
|
|
|
|
('status', models.SmallIntegerField(choices=[(0, 'ok'), (1, 'delete by user'), (2, 'delete by authority'), (3, 'delete by mod'), (4, 'delete by admin'), (5, 'account pruge')], default=0, help_text='Used to distinguish how a post was removed. Our purging feature uses this to determine what posts to restore and what not to.')),
|
|
|
|
|
('community', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.community')),
|
|
|
|
|
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('poll', models.ForeignKey(blank=True, help_text='A busted ass poll feature that does not work.', null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.poll')),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Role',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('is_static', models.BooleanField(default=False)),
|
|
|
|
|
('image', models.ImageField(help_text="Upload an icon that will show on the top left of one's profile. A 22x22 image works best!", upload_to='roles/')),
|
|
|
|
|
('organization', models.CharField(blank=True, help_text="Text that shows above one's username", max_length=255, null=True)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='UserRequest',
|
|
|
|
|
fields=[
|
|
|
|
|
('user_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='closedverse_main.user')),
|
|
|
|
|
('ua', models.TextField(blank=True, default='', null=True)),
|
|
|
|
|
('latest', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('status', models.SmallIntegerField(choices=[(0, 'submitted'), (1, 'viewed'), (2, 'accepted'), (3, 'decline'), (4, 'ignore')], default=0)),
|
|
|
|
|
],
|
|
|
|
|
options={
|
|
|
|
|
'abstract': False,
|
|
|
|
|
},
|
|
|
|
|
bases=('closedverse_main.user',),
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Yeah',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
|
|
|
|
('type', models.SmallIntegerField(choices=[(0, 'post'), (1, 'comment')], default=0)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('comment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.comment')),
|
|
|
|
|
('post', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.post')),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Warning',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('reason', models.TextField(blank=True, null=True)),
|
|
|
|
|
('by', models.ForeignKey(help_text='This is not shown to the recipient', on_delete=django.db.models.deletion.CASCADE, related_name='Warned_by', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='Warned_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='UserBlock',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='block_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='block_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='ProfileHistory',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('old_nickname', models.CharField(blank=True, max_length=64, null=True)),
|
|
|
|
|
('new_nickname', models.CharField(blank=True, max_length=64, null=True)),
|
|
|
|
|
('old_comment', models.TextField(blank=True, null=True)),
|
|
|
|
|
('new_comment', models.TextField(blank=True)),
|
|
|
|
|
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
options={
|
|
|
|
|
'verbose_name_plural': 'profile histories',
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Profile',
|
|
|
|
|
fields=[
|
|
|
|
|
('is_new', models.BooleanField(default=True)),
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('origin_id', models.CharField(blank=True, max_length=16, null=True)),
|
|
|
|
|
('origin_info', models.CharField(blank=True, max_length=255, null=True)),
|
|
|
|
|
('comment', models.TextField(blank=True, default='')),
|
|
|
|
|
('country', models.CharField(blank=True, default='', max_length=120)),
|
|
|
|
|
('whatareyou', models.CharField(blank=True, default='', max_length=120)),
|
|
|
|
|
('id_visibility', models.SmallIntegerField(choices=[(0, 'show'), (1, 'friends only'), (2, 'hide')], default=0)),
|
|
|
|
|
('pronoun_is', models.IntegerField(choices=[(0, 'Not specified'), (1, 'He/him'), (2, 'She/her'), (3, 'He/she'), (4, 'It'), (5, 'They/Them')], default=0, help_text='haha attack helicopter.')),
|
|
|
|
|
('let_friendrequest', models.SmallIntegerField(choices=[(0, 'show'), (1, 'friends only'), (2, 'hide')], default=0)),
|
|
|
|
|
('yeahs_visibility', models.SmallIntegerField(choices=[(0, 'show'), (1, 'friends only'), (2, 'hide')], default=0)),
|
|
|
|
|
('comments_visibility', models.SmallIntegerField(choices=[(0, 'show'), (1, 'friends only'), (2, 'hide')], default=2)),
|
|
|
|
|
('weblink', models.CharField(blank=True, default='', max_length=1200)),
|
|
|
|
|
('external', models.CharField(blank=True, default='', max_length=255)),
|
|
|
|
|
('let_yeahnotifs', models.BooleanField(default=True)),
|
|
|
|
|
('let_freedom', models.BooleanField(default=True, help_text='Restrict this user from posting images, videos, URLs, and even making new accounts.')),
|
|
|
|
|
('limit_post', models.SmallIntegerField(default=0, help_text='Great for spammers, set to "0" to remove the restriction.')),
|
|
|
|
|
('cannot_edit', models.BooleanField(default=False, help_text='Make it so this user cannot change settings.')),
|
|
|
|
|
('email_login', models.SmallIntegerField(choices=[(0, 'Do not allow'), (1, 'Okay'), (2, 'Only allow')], default=1)),
|
|
|
|
|
('favorite', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='closedverse_main.post')),
|
|
|
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='PollVote',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('done', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('choice', models.SmallIntegerField(default=0)),
|
|
|
|
|
('by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('poll', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.poll')),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Notification',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
|
|
('unique_id', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)),
|
|
|
|
|
('read', models.BooleanField(default=False)),
|
|
|
|
|
('type', models.SmallIntegerField(choices=[(0, 'Yeah on post'), (1, 'Yeah on comment'), (2, 'Comment on my post'), (3, "Comment on others' post"), (4, 'Follow to me'), (5, 'Warning received')])),
|
|
|
|
|
('merges', models.TextField(blank=True, default='')),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('latest', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('context_comment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.comment')),
|
|
|
|
|
('context_post', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.post')),
|
|
|
|
|
('context_warning', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.warning')),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_sender', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_to', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='MetaViews',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('from_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='from_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='target_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Message',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('feeling', models.SmallIntegerField(choices=[(0, 'normal'), (1, 'happy'), (2, 'wink'), (3, 'surprised'), (4, 'frustrated'), (5, 'confused'), (38, 'japan'), (39, 'lol i lied'), (69, 'adam is gay'), (70, 'I am a faggot!'), (71, 'Juice'), (72, 'Commit Suicide'), (73, 'Fresh!')], default=0)),
|
|
|
|
|
('body', models.TextField(null=True)),
|
|
|
|
|
('drawing', models.CharField(blank=True, max_length=200, null=True)),
|
|
|
|
|
('screenshot', models.CharField(blank=True, default='', max_length=1200, null=True)),
|
|
|
|
|
('url', models.URLField(blank=True, default='', max_length=1200, null=True)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('read', models.BooleanField(default=False)),
|
|
|
|
|
('is_rm', models.BooleanField(default=False)),
|
|
|
|
|
('conversation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.conversation')),
|
|
|
|
|
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='LoginAttempt',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('success', models.BooleanField(default=False)),
|
|
|
|
|
('addr', models.CharField(blank=True, max_length=64, null=True)),
|
|
|
|
|
('user_agent', models.TextField(blank=True, null=True)),
|
|
|
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Invites',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('code', models.CharField(default=uuid.uuid4, max_length=36)),
|
|
|
|
|
('used', models.BooleanField(default=False)),
|
|
|
|
|
('void', models.BooleanField(default=False)),
|
|
|
|
|
('creator', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='invite_creator', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('used_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='invited_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Friendship',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('latest', models.DateTimeField(auto_now=True)),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='friend_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='friend_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='FriendRequest',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('body', models.TextField(blank=True, default='', null=True)),
|
|
|
|
|
('read', models.BooleanField(default=False)),
|
|
|
|
|
('finished', models.BooleanField(default=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fr_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fr_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Follow',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='follow_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='follow_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='ConversationInvite',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('body', models.TextField(blank=True, default='', null=True)),
|
|
|
|
|
('read', models.BooleanField(default=False)),
|
|
|
|
|
('finished', models.BooleanField(default=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('conversation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.conversation')),
|
|
|
|
|
('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='convinvite_source', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('target', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='convinvite_target', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Complaint',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('type', models.SmallIntegerField(choices=[(0, 'Bug report'), (1, 'Suggestion'), (2, 'Want')])),
|
|
|
|
|
('body', models.TextField(blank=True, default='')),
|
|
|
|
|
('sex', models.SmallIntegerField(choices=[(0, 'girl'), (1, 'privileged one'), (2, '(none)')], null=True)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='CommunityFavorite',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('community', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.community')),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.AddField(
|
|
|
|
|
model_name='comment',
|
|
|
|
|
name='community',
|
|
|
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.community'),
|
|
|
|
|
),
|
|
|
|
|
migrations.AddField(
|
|
|
|
|
model_name='comment',
|
|
|
|
|
name='creator',
|
|
|
|
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
|
|
|
|
),
|
|
|
|
|
migrations.AddField(
|
|
|
|
|
model_name='comment',
|
|
|
|
|
name='original_post',
|
|
|
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='closedverse_main.post'),
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='Ban',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('reason', models.TextField(blank=True, null=True)),
|
|
|
|
|
('expiry_date', models.DateTimeField(help_text='The date and time on which this ban will expire, Set this way off into the future if this ban should be permanent')),
|
|
|
|
|
('active', models.BooleanField(default=True, help_text='Untick this to disable this ban')),
|
|
|
|
|
('ip_address', models.CharField(blank=True, help_text='Put an IP address in here to make this an IP ban. When using the ban function outside of the Django admin panel, this is filled in automatically.', max_length=256, null=True)),
|
|
|
|
|
('by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='banned_by', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='banned_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.CreateModel(
|
|
|
|
|
name='AuditLog',
|
|
|
|
|
fields=[
|
|
|
|
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
|
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
|
|
|
('type', models.SmallIntegerField(choices=[(0, 'Post delete'), (1, 'Comment delete'), (2, 'User edit'), (3, 'Disable comments'), (4, 'Community edit'), (5, 'Ban user'), (6, 'Edit ban for user')])),
|
|
|
|
|
('reasoning', models.TextField(blank=True, default='', null=True)),
|
|
|
|
|
('by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='audit_by', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('comment', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audit_comment', to='closedverse_main.comment')),
|
|
|
|
|
('community', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audit_community', to='closedverse_main.community')),
|
|
|
|
|
('post', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audit_post', to='closedverse_main.post')),
|
|
|
|
|
('reversed_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audit_reverse_by', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audit_user', to=settings.AUTH_USER_MODEL)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
migrations.AddField(
|
|
|
|
|
model_name='user',
|
|
|
|
|
name='role',
|
|
|
|
|
field=models.ForeignKey(blank=True, help_text="This will show a funny badge and text on this user's profile. This does not grant the user any additional power and is only visual.", null=True, on_delete=django.db.models.deletion.SET_NULL, to='closedverse_main.role'),
|
|
|
|
|
),
|
|
|
|
|
migrations.AddField(
|
|
|
|
|
model_name='user',
|
|
|
|
|
name='user_permissions',
|
|
|
|
|
field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
|
|
|
|
|
),
|
|
|
|
|
]
|