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

614 lines
23 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',),
),
]