docbow/docbow_project/docbow/migrations/0001_initial.py

393 lines
18 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.utils.timezone
from django.conf import settings
import docbow_project.docbow.models
import django.core.validators
import picklefield.fields
class Migration(migrations.Migration):
dependencies = [
('auth', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='AttachedFile',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=300, verbose_name='Name')),
('content', models.FileField(upload_to=docbow_project.docbow.models.generate_filename, max_length=300, verbose_name='File')),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='AutomaticForwarding',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
],
options={
'verbose_name': 'Automatic forwarding rule',
'verbose_name_plural': 'Automatic forwarding rules',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Content',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('description', models.CharField(unique=True, max_length=128)),
],
options={
'ordering': ['description'],
'verbose_name': 'Content',
'verbose_name_plural': 'Contents',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Delegation',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('by', models.ForeignKey(related_name='delegations_to', verbose_name='From', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
('to', models.ForeignKey(related_name='delegations_by', verbose_name='To', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
'ordering': ['by'],
'db_table': 'auth_delegation',
'verbose_name': 'Account delegation',
'verbose_name_plural': 'Account delegations',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='DeletedDocument',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
],
options={
'ordering': ('-document',),
'verbose_name': 'deleted document',
'verbose_name_plural': 'deleted documents',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='DeletedMailbox',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('delegate', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='DocbowProfile',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('is_guest', models.BooleanField(default=False, verbose_name='Guest user')),
('mobile_phone', models.CharField(blank=True, max_length=32, verbose_name='Mobile phone', validators=[django.core.validators.RegexValidator('^\\+\\d+$')])),
('personal_email', models.EmailField(help_text='if you provide a personal email address, notifications of new documents will also be sent to this address.', max_length=75, verbose_name='personal email address', blank=True)),
('accept_notifications', models.BooleanField(default=True, help_text='If unchecked you will not received notifications anymore, by email or SMS.', verbose_name='Accept to be notified')),
('user', models.OneToOneField(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Document',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('real_sender', models.CharField(max_length=64, verbose_name='Real sender', blank=True)),
('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name="Date d'envoi")),
('comment', models.TextField(verbose_name='Comments', blank=True)),
('_timestamp', models.TextField(blank=True)),
('private', models.BooleanField(default=False, help_text='delegates cannot see this document', verbose_name='Private')),
],
options={
'base_manager_name': 'objects',
'ordering': ['-date'],
'verbose_name': 'Document',
'verbose_name_plural': 'Documents',
'permissions': (('FORWARD_DOCUMENT', 'Can forward documents'),),
},
bases=(models.Model,),
),
migrations.CreateModel(
name='DocumentForwarded',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('date', models.DateTimeField(auto_now_add=True)),
('automatic', models.BooleanField(default=False)),
('from_document', models.ForeignKey(related_name='document_forwarded_to', to='docbow.Document', on_delete=models.CASCADE)),
('to_document', models.ForeignKey(related_name='document_forwarded_from', to='docbow.Document', on_delete=models.CASCADE)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='FileType',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(unique=True, max_length=128)),
('is_active', models.BooleanField(default=True, verbose_name='is active')),
],
options={
'ordering': ['name'],
'verbose_name': 'File type',
'verbose_name_plural': 'File types',
},
bases=(docbow_project.docbow.models.NameNaturalKey, models.Model),
),
migrations.CreateModel(
name='FileTypeAttachedFileKind',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, verbose_name='name')),
('mime_types', models.TextField(help_text='mime types separated by spaces, wildcards are allowed', verbose_name='mime types', blank=True)),
('cardinality', models.PositiveSmallIntegerField(default=0, help_text='zero is a special value setting no limitation', verbose_name='cardinality')),
('minimum', models.PositiveSmallIntegerField(default=0, verbose_name='minimum number of files')),
('position', models.PositiveSmallIntegerField(verbose_name='position')),
('file_type', models.ForeignKey(verbose_name='document type', to='docbow.FileType', on_delete=models.CASCADE)),
],
options={
'ordering': ('file_type', 'position', 'name'),
'verbose_name': 'file type attached file kind',
'verbose_name_plural': 'file type attached file kinds',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Mailbox',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('outbox', models.BooleanField(default=False, db_index=True, verbose_name='Outbox message')),
('date', models.DateTimeField(auto_now_add=True)),
('document', models.ForeignKey(related_name='mailboxes', verbose_name='Document', to='docbow.Document', on_delete=models.CASCADE)),
('owner', models.ForeignKey(related_name='documents', verbose_name='Mailbox owner', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
'ordering': ['-date'],
'verbose_name': 'Mailbox',
'verbose_name_plural': 'Mailboxes',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='MailingList',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=400, verbose_name='Name')),
('is_active', models.BooleanField(default=True, verbose_name='is active')),
('mailing_list_members', models.ManyToManyField(related_name='members_lists', verbose_name='Mailing lists members', to='docbow.MailingList', blank=True)),
('members', models.ManyToManyField(related_name='mailing_lists', verbose_name='Members', to=settings.AUTH_USER_MODEL, blank=True)),
],
options={
'ordering': ['name'],
'verbose_name': 'Mailing list',
'verbose_name_plural': 'Mailing lists',
},
bases=(docbow_project.docbow.models.NameNaturalKey, models.Model),
),
migrations.CreateModel(
name='Notification',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('create_dt', models.DateTimeField(auto_now_add=True)),
('kind', models.CharField(default='new-document', max_length=32)),
('done', models.BooleanField(default=False)),
('failure', models.TextField(null=True, blank=True)),
('ctx', picklefield.fields.PickledObjectField(null=True, editable=False, blank=True)),
('document', models.ForeignKey(blank=True, to='docbow.Document', null=True, on_delete=models.CASCADE)),
('user', models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)),
],
options={
'ordering': ('-id',),
},
bases=(models.Model,),
),
migrations.CreateModel(
name='NotificationPreference',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('kind', models.CharField(max_length=8, verbose_name='kind')),
('value', models.BooleanField(default=True, verbose_name='value')),
('filetype', models.ForeignKey(verbose_name='file type', to='docbow.FileType', on_delete=models.CASCADE)),
('user', models.ForeignKey(verbose_name='user', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
'ordering': ('user__last_name', 'user__first_name', 'kind'),
'verbose_name': 'notification preference',
'verbose_name_plural': 'notification preferences',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='SeenDocument',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('document', models.ForeignKey(to='docbow.Document', on_delete=models.CASCADE)),
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
options={
'ordering': ('-document',),
'verbose_name': 'seen document',
'verbose_name_plural': 'seen documents',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='SendingLimitation',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('filetypes', models.ManyToManyField(related_name='filetype_limitation', verbose_name='Limitation des types de fichier', to='docbow.FileType', blank=True)),
('lists', models.ManyToManyField(related_name='lists_limitation', verbose_name='Limitation des destinataires', to='docbow.MailingList')),
('mailing_list', models.OneToOneField(verbose_name='Mailing list', to='docbow.MailingList', on_delete=models.CASCADE)),
],
options={
'verbose_name': 'Limitation par liste de destinataires',
'verbose_name_plural': 'Limitation par liste de destinataires',
},
bases=(models.Model,),
),
migrations.AlterUniqueTogether(
name='filetypeattachedfilekind',
unique_together=set([('name', 'file_type')]),
),
migrations.AddField(
model_name='document',
name='filetype',
field=models.ForeignKey(verbose_name='Document type', to='docbow.FileType', on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='document',
name='reply_to',
field=models.ForeignKey(related_name='replies', verbose_name='Reply to', blank=True, to='docbow.Document', null=True, on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='document',
name='sender',
field=models.ForeignKey(related_name='documents_sent', verbose_name='Sender', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='document',
name='to_list',
field=models.ManyToManyField(to='docbow.MailingList', verbose_name='Groups to send to', blank=True),
),
migrations.AddField(
model_name='document',
name='to_user',
field=models.ManyToManyField(related_name='directly_received_documents', verbose_name='Users to send to', to=settings.AUTH_USER_MODEL, blank=True),
),
migrations.AddField(
model_name='deletedmailbox',
name='mailbox',
field=models.ForeignKey(to='docbow.Mailbox', on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='deleteddocument',
name='document',
field=models.ForeignKey(to='docbow.Document', on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='deleteddocument',
name='user',
field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AlterUniqueTogether(
name='delegation',
unique_together=set([('by', 'to')]),
),
migrations.AddField(
model_name='automaticforwarding',
name='filetypes',
field=models.ManyToManyField(related_name='forwarding_rules', verbose_name='filetype', to='docbow.FileType'),
preserve_default=True,
),
migrations.AddField(
model_name='automaticforwarding',
name='forward_to_list',
field=models.ManyToManyField(related_name='as_recipient_forwarding_rules', verbose_name='Groups to forward to', to='docbow.MailingList', blank=True)
),
migrations.AddField(
model_name='automaticforwarding',
name='forward_to_user',
field=models.ManyToManyField(related_name='as_recipient_forwarding_rules', verbose_name='Users to forward to', to=settings.AUTH_USER_MODEL, blank=True),
),
migrations.AddField(
model_name='automaticforwarding',
name='originaly_to_user',
field=models.ManyToManyField(related_name='as_original_recipient_forwarding_rules', to=settings.AUTH_USER_MODEL, blank=True, help_text='At least one recipient must match for the rule to apply.', verbose_name='Original recipients'),
),
migrations.AddField(
model_name='attachedfile',
name='document',
field=models.ForeignKey(related_name='attached_files', verbose_name='Attached to', to='docbow.Document', on_delete=models.CASCADE),
preserve_default=True,
),
migrations.AddField(
model_name='attachedfile',
name='kind',
field=models.ForeignKey(verbose_name='attached file kind', blank=True, to='docbow.FileTypeAttachedFileKind', null=True, on_delete=models.CASCADE),
preserve_default=True,
),
migrations.CreateModel(
name='DocbowGroup',
fields=[
],
options={
'verbose_name': 'Docbow admin group',
'proxy': True,
},
bases=('auth.group',),
),
migrations.CreateModel(
name='DocbowUser',
fields=[
],
options={
'verbose_name': 'Docbow admin user',
'proxy': True,
},
bases=('auth.user',),
),
migrations.CreateModel(
name='Inbox',
fields=[
],
options={
'verbose_name': 'Inbox',
'proxy': True,
'verbose_name_plural': 'Inboxes',
},
bases=('docbow.mailbox',),
),
migrations.CreateModel(
name='Outbox',
fields=[
],
options={
'verbose_name': 'Outbox',
'proxy': True,
'verbose_name_plural': 'Outboxes',
},
bases=('docbow.mailbox',),
),
]