You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
4.9 KiB
103 lines
4.9 KiB
# -*- coding: utf-8 -*-
|
|
# Generated by Django 1.9 on 2017-10-04 17:44
|
|
from __future__ import unicode_literals
|
|
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Conversation',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('title', models.CharField(max_length=32)),
|
|
('date_create', models.DateTimeField(auto_now_add=True)),
|
|
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Conversation',
|
|
'verbose_name_plural': 'Conversations',
|
|
'db_table': 'conversations',
|
|
'permissions': (('can_view_conversation', 'Can view conversation'),),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ConversationMembership',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('status', models.CharField(choices=[('adm', 'Admin'), ('gst', 'Guest'), ('ban', 'Banned user'), ('inv', 'Inviter')], default='gst', max_length=3)),
|
|
('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='memberships', to=settings.AUTH_USER_MODEL)),
|
|
('conversation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='msg_app.Conversation')),
|
|
('who_invite_that_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='self_conversations', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Conversation membership',
|
|
'verbose_name_plural': 'Conversation memberships',
|
|
'db_table': 'conversation_memberships',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Message',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('text', models.TextField(verbose_name='Body')),
|
|
('sent_at', models.DateTimeField(auto_now_add=True, verbose_name='sent at')),
|
|
('attachment', models.FileField(blank=True, null=True, upload_to='messages_attachments/%Y_%m_%d')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Message',
|
|
'verbose_name_plural': 'Messages',
|
|
'db_table': 'messages',
|
|
'ordering': ['-sent_at'],
|
|
'permissions': (('can_view_messages', 'Can view messages'),),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='MessageStatus',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('state', models.CharField(choices=[('new', 'New'), ('old', 'Seen'), ('del', 'Deleted')], default='new', max_length=3)),
|
|
('msg', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='msg_statuses', to='msg_app.Message')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='usr_msg_status', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Message status',
|
|
'verbose_name_plural': 'Messages statuses',
|
|
'db_table': 'message_status',
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='message',
|
|
name='account_status',
|
|
field=models.ManyToManyField(through='msg_app.MessageStatus', to=settings.AUTH_USER_MODEL),
|
|
),
|
|
migrations.AddField(
|
|
model_name='message',
|
|
name='author',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to=settings.AUTH_USER_MODEL),
|
|
),
|
|
migrations.AddField(
|
|
model_name='message',
|
|
name='conversation',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='msg_app.Conversation', verbose_name='Conversation'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='conversation',
|
|
name='participants',
|
|
field=models.ManyToManyField(related_name='conversations', through='msg_app.ConversationMembership', to=settings.AUTH_USER_MODEL),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='messagestatus',
|
|
unique_together=set([('msg', 'user', 'state')]),
|
|
),
|
|
]
|