update db
This commit is contained in:
parent
61e887f71f
commit
5bb26bf415
|
@ -37,10 +37,11 @@ INSTALLED_APPS = [
|
||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'evolus',
|
'dms',
|
||||||
'jci',
|
'jci',
|
||||||
'reversion',
|
'reversion',
|
||||||
'process',
|
'process',
|
||||||
|
'mptt',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|
|
@ -19,7 +19,7 @@ from django.contrib import admin
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^admin/', admin.site.urls),
|
url(r'^admin/', admin.site.urls),
|
||||||
url(r'^docs/', include('evolus.urls')),
|
url(r'^docs/', include('dms.urls')),
|
||||||
url(r'^jci/', include('jci.urls')),
|
url(r'^jci/', include('jci.urls')),
|
||||||
url(r'^p/', include('process.urls')),
|
url(r'^p/', include('process.urls')),
|
||||||
]
|
]
|
||||||
|
|
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
|
@ -18,5 +18,5 @@ admin.site.register(Site)
|
||||||
admin.site.register(Node)
|
admin.site.register(Node)
|
||||||
admin.site.register(Document, DocumentAdmin)
|
admin.site.register(Document, DocumentAdmin)
|
||||||
admin.site.register(DocumentType, DocumentTypeAdmin)
|
admin.site.register(DocumentType, DocumentTypeAdmin)
|
||||||
admin.site.register(Version, VersionAdmin)
|
admin.site.register(Version)
|
||||||
admin.site.register(Keyword)
|
admin.site.register(Keyword)
|
|
@ -2,4 +2,4 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class EvolusConfig(AppConfig):
|
class EvolusConfig(AppConfig):
|
||||||
name = 'evolus'
|
name = 'dms'
|
|
@ -1,7 +1,7 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
import django_filters
|
import django_filters
|
||||||
|
|
||||||
from evolus.models import Audience, Version, Site, Node
|
from dms.models import Audience, Version, Site, Node
|
||||||
|
|
||||||
|
|
||||||
class VersionFilter(django_filters.FilterSet):
|
class VersionFilter(django_filters.FilterSet):
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Generated by Django 1.11.5 on 2017-09-20 18:56
|
# Generated by Django 1.11.5 on 2017-11-16 20:47
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -12,8 +12,8 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
('auth', '0008_alter_user_username_max_length'),
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
('jci', '0014_auto_20170920_1436'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
@ -22,7 +22,8 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('name', models.CharField(max_length=50)),
|
('name', models.CharField(max_length=50)),
|
||||||
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='evolus.Audience')),
|
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.Group')),
|
||||||
|
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='dms.Audience')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'ordering': ('name',),
|
'ordering': ('name',),
|
||||||
|
@ -33,11 +34,11 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('depth', models.IntegerField()),
|
('depth', models.IntegerField()),
|
||||||
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='audienceclosure_parents', to='evolus.Audience')),
|
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='audienceclosure_parents', to='dms.Audience')),
|
||||||
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='audienceclosure_children', to='evolus.Audience')),
|
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='audienceclosure_children', to='dms.Audience')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'db_table': 'evolus_audienceclosure',
|
'db_table': 'dms_audienceclosure',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -47,8 +48,7 @@ class Migration(migrations.Migration):
|
||||||
('title', models.CharField(max_length=255)),
|
('title', models.CharField(max_length=255)),
|
||||||
('overview', models.TextField(blank=True, null=True)),
|
('overview', models.TextField(blank=True, null=True)),
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
('revised_at', models.DateTimeField(blank=True, null=True)),
|
('manager', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
('audiences', models.ManyToManyField(to='evolus.Audience')),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -58,42 +58,60 @@ class Migration(migrations.Migration):
|
||||||
('name', models.CharField(max_length=50)),
|
('name', models.CharField(max_length=50)),
|
||||||
('level', models.IntegerField()),
|
('level', models.IntegerField()),
|
||||||
('template', models.FileField(blank=True, null=True, upload_to='documents_templates/')),
|
('template', models.FileField(blank=True, null=True, upload_to='documents_templates/')),
|
||||||
|
('description', models.TextField(blank=True, max_length=255)),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'ordering': ['level'],
|
'ordering': ['level'],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='HistoricalDocument',
|
name='Keyword',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('title', models.CharField(max_length=255)),
|
('name', models.CharField(max_length=255)),
|
||||||
('overview', models.TextField(blank=True, null=True)),
|
('selectable', models.BooleanField(default=True)),
|
||||||
('created_at', models.DateTimeField(blank=True, editable=False)),
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
('revised_at', models.DateTimeField(blank=True, null=True)),
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
('history_id', models.AutoField(primary_key=True, serialize=False)),
|
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='dms.Keyword')),
|
||||||
('history_date', models.DateTimeField()),
|
|
||||||
('history_change_reason', models.CharField(max_length=100, null=True)),
|
|
||||||
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
|
|
||||||
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
|
|
||||||
('type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='evolus.DocumentType')),
|
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'ordering': ('-history_date', '-history_id'),
|
'abstract': False,
|
||||||
'get_latest_by': 'history_date',
|
|
||||||
'verbose_name': 'historical document',
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Revision',
|
name='KeywordClosure',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('revision', models.FileField(upload_to='revisions/')),
|
('depth', models.IntegerField()),
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='keywordclosure_parents', to='dms.Keyword')),
|
||||||
('minor', models.PositiveIntegerField()),
|
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='keywordclosure_children', to='dms.Keyword')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'ordering': ('-minor',),
|
'db_table': 'dms_keywordclosure',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Node',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=50)),
|
||||||
|
('acronym', models.CharField(blank=True, max_length=20, null=True)),
|
||||||
|
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='dms.Node')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='NodeClosure',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('depth', models.IntegerField()),
|
||||||
|
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='nodeclosure_parents', to='dms.Node')),
|
||||||
|
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='nodeclosure_children', to='dms.Node')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'db_table': 'dms_nodeclosure',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -106,70 +124,41 @@ class Migration(migrations.Migration):
|
||||||
'ordering': ['name'],
|
'ordering': ['name'],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
|
||||||
name='Structure',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=50)),
|
|
||||||
('acronym', models.CharField(blank=True, max_length=20, null=True)),
|
|
||||||
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='evolus.Structure')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='StructureClosure',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('depth', models.IntegerField()),
|
|
||||||
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='structureclosure_parents', to='evolus.Structure')),
|
|
||||||
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='structureclosure_children', to='evolus.Structure')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'db_table': 'evolus_structureclosure',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Version',
|
name='Version',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('file', models.FileField(upload_to='revisions/')),
|
||||||
('major', models.PositiveIntegerField()),
|
('major', models.PositiveIntegerField()),
|
||||||
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='evolus.Document')),
|
('revision', models.PositiveIntegerField()),
|
||||||
('published', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='published_version+', to='evolus.Revision')),
|
('is_published', models.BooleanField(default=False)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('restricted', models.BooleanField(default=False)),
|
||||||
|
('audiences', models.ManyToManyField(blank=True, related_name='versions', to='dms.Audience')),
|
||||||
|
('authors', models.ManyToManyField(related_name='versions_as_author', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='versions', to='dms.Document')),
|
||||||
|
('keywords', models.ManyToManyField(blank=True, related_name='versions', to='dms.Keyword')),
|
||||||
|
('nodes', models.ManyToManyField(blank=True, to='dms.Node')),
|
||||||
|
('reviewers', models.ManyToManyField(related_name='versions_as_reviewer', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('sites', models.ManyToManyField(blank=True, to='dms.Site')),
|
||||||
|
('validators', models.ManyToManyField(related_name='versions_as_validator', to=settings.AUTH_USER_MODEL)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
|
||||||
model_name='revision',
|
|
||||||
name='version',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='revisions', to='evolus.Version'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='document',
|
|
||||||
name='sites',
|
|
||||||
field=models.ManyToManyField(to='evolus.Site'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='document',
|
|
||||||
name='standards',
|
|
||||||
field=models.ManyToManyField(related_name='documents', to='jci.Standard'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='document',
|
|
||||||
name='structures',
|
|
||||||
field=models.ManyToManyField(to='evolus.Structure'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='document',
|
model_name='document',
|
||||||
name='type',
|
name='type',
|
||||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='evolus.DocumentType'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dms.DocumentType'),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
||||||
name='version',
|
name='version',
|
||||||
unique_together=set([('document', 'major')]),
|
unique_together=set([('document', 'major')]),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
||||||
name='structureclosure',
|
name='nodeclosure',
|
||||||
|
unique_together=set([('parent', 'child')]),
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='keywordclosure',
|
||||||
unique_together=set([('parent', 'child')]),
|
unique_together=set([('parent', 'child')]),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
|
@ -135,6 +135,7 @@ class Document(models.Model):
|
||||||
|
|
||||||
@reversion.create_revision()
|
@reversion.create_revision()
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
# todo : should create a default version based on the document type template.
|
||||||
super().save()
|
super().save()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -236,4 +237,4 @@ class Version(models.Model):
|
||||||
return 'Published' if self.is_published else 'Draft'
|
return 'Published' if self.is_published else 'Draft'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return 'v{}.{} ({})'.format(self.major, self.revision, self.status)
|
return '{} v{}.{} ({})'.format(self.document, self.major, self.revision, self.status)
|
|
@ -1,6 +1,6 @@
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
|
|
||||||
from evolus.views import document_details, filter_documents
|
from dms.views import document_details, filter_documents
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
|
@ -0,0 +1 @@
|
||||||
|
Fred Pauchet,fred,quistis,16.11.2017 22:06,file:///home/fred/.config/libreoffice/4;
|
|
@ -1,21 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-09-20 19:00
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='published',
|
|
||||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='published_version+', to='evolus.Revision'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,62 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-09-21 18:39
|
|
||||||
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):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
('evolus', '0002_auto_20170920_1900'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='document',
|
|
||||||
name='revised_at',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='historicaldocument',
|
|
||||||
name='revised_at',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='document',
|
|
||||||
name='manager',
|
|
||||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='historicaldocument',
|
|
||||||
name='manager',
|
|
||||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='authors',
|
|
||||||
field=models.ManyToManyField(related_name='authors', to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='reviewers',
|
|
||||||
field=models.ManyToManyField(related_name='reviewers', to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='revised_at',
|
|
||||||
field=models.DateTimeField(blank=True, null=True),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='validators',
|
|
||||||
field=models.ManyToManyField(related_name='validators', to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='document',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='versions', to='evolus.Document'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,20 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-24 09:02
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0003_auto_20170921_1839'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='documenttype',
|
|
||||||
name='description',
|
|
||||||
field=models.CharField(blank=True, max_length=255),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,20 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-24 09:05
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0004_documenttype_description'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='documenttype',
|
|
||||||
name='description',
|
|
||||||
field=models.TextField(blank=True, max_length=255),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,48 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-25 07:58
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0005_auto_20171024_1105'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Keyword',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=255)),
|
|
||||||
('selectable', models.BooleanField(default=True)),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='KeywordClosure',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('depth', models.IntegerField()),
|
|
||||||
('child', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='keywordclosure_parents', to='evolus.Keyword')),
|
|
||||||
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='keywordclosure_children', to='evolus.Keyword')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'db_table': 'evolus_keywordclosure',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='keywords',
|
|
||||||
field=models.ManyToManyField(related_name='document_versions', to='evolus.Keyword'),
|
|
||||||
),
|
|
||||||
migrations.AlterUniqueTogether(
|
|
||||||
name='keywordclosure',
|
|
||||||
unique_together=set([('parent', 'child')]),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,21 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-26 08:36
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0006_auto_20171025_0958'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='keyword',
|
|
||||||
name='parent',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='evolus.Keyword'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,27 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-26 13:55
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.utils.timezone
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0007_keyword_parent'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='keyword',
|
|
||||||
name='created_at',
|
|
||||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='keyword',
|
|
||||||
name='updated_at',
|
|
||||||
field=models.DateTimeField(auto_now=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,63 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 11:46
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
import django.utils.timezone
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
('evolus', '0008_auto_20171026_1555'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='HistoricalVersion',
|
|
||||||
fields=[
|
|
||||||
('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
|
|
||||||
('document', models.TextField(max_length=100)),
|
|
||||||
('major', models.PositiveIntegerField()),
|
|
||||||
('published', models.BooleanField(default=False)),
|
|
||||||
('revised_at', models.DateTimeField(blank=True, null=True)),
|
|
||||||
('created_at', models.DateTimeField(blank=True, editable=False)),
|
|
||||||
('history_id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('history_date', models.DateTimeField()),
|
|
||||||
('history_change_reason', models.CharField(max_length=100, null=True)),
|
|
||||||
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
|
|
||||||
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'historical version',
|
|
||||||
'ordering': ('-history_date', '-history_id'),
|
|
||||||
'get_latest_by': 'history_date',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='revision',
|
|
||||||
name='version',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='created_at',
|
|
||||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='document',
|
|
||||||
field=models.FileField(upload_to='revisions/'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='published',
|
|
||||||
field=models.BooleanField(default=False),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='Revision',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,32 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 11:51
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0009_auto_20171027_1346'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='historicalversion',
|
|
||||||
name='revision',
|
|
||||||
field=models.PositiveIntegerField(default=1),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='revision',
|
|
||||||
field=models.PositiveIntegerField(default=1),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='keywords',
|
|
||||||
field=models.ManyToManyField(blank=True, related_name='document_versions', to='evolus.Keyword'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,34 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 13:12
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0010_auto_20171027_1351'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='historicalversion',
|
|
||||||
name='history_user',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='file',
|
|
||||||
field=models.FileField(default=1, upload_to='revisions/'),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='document',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='evolus.Document'),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='HistoricalVersion',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,23 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 19:13
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('auth', '0008_alter_user_username_max_length'),
|
|
||||||
('evolus', '0011_auto_20171027_1512'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='audience',
|
|
||||||
name='group',
|
|
||||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='auth.Group'),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,47 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 20:32
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0012_audience_group'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='historicaldocument',
|
|
||||||
name='history_user',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='historicaldocument',
|
|
||||||
name='manager',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='historicaldocument',
|
|
||||||
name='type',
|
|
||||||
),
|
|
||||||
migrations.RenameField(
|
|
||||||
model_name='version',
|
|
||||||
old_name='published',
|
|
||||||
new_name='is_published',
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='document',
|
|
||||||
name='type',
|
|
||||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='evolus.DocumentType'),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='version',
|
|
||||||
name='document',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='versions', to='evolus.Document'),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='HistoricalDocument',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,31 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 20:55
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0013_auto_20171027_2032'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='document',
|
|
||||||
name='audiences',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='document',
|
|
||||||
name='sites',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='document',
|
|
||||||
name='standards',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='document',
|
|
||||||
name='structures',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,20 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-30 13:56
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0014_auto_20171027_2055'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='restricted',
|
|
||||||
field=models.BooleanField(default=False),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,74 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-30 14:28
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('evolus', '0015_version_restricted'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='NodeClosure',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('depth', models.IntegerField()),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'db_table': 'evolus_nodeclosure',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.RenameModel(
|
|
||||||
old_name='Structure',
|
|
||||||
new_name='Node',
|
|
||||||
),
|
|
||||||
migrations.AlterUniqueTogether(
|
|
||||||
name='structureclosure',
|
|
||||||
unique_together=set([]),
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='structureclosure',
|
|
||||||
name='child',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='structureclosure',
|
|
||||||
name='parent',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='audiences',
|
|
||||||
field=models.ManyToManyField(blank=True, to='evolus.Audience'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='nodes',
|
|
||||||
field=models.ManyToManyField(blank=True, to='evolus.Node'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='version',
|
|
||||||
name='sites',
|
|
||||||
field=models.ManyToManyField(blank=True, to='evolus.Site'),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='StructureClosure',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='nodeclosure',
|
|
||||||
name='child',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='nodeclosure_parents', to='evolus.Node'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='nodeclosure',
|
|
||||||
name='parent',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='nodeclosure_children', to='evolus.Node'),
|
|
||||||
),
|
|
||||||
migrations.AlterUniqueTogether(
|
|
||||||
name='nodeclosure',
|
|
||||||
unique_together=set([('parent', 'child')]),
|
|
||||||
),
|
|
||||||
]
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
from process.models import Approval, Review, GatherComments, Knowledge, Task
|
from process.models import Approval, Review, GatherComments, Task
|
||||||
|
|
||||||
|
|
||||||
class ProcessAdmin(admin.ModelAdmin):
|
class ProcessAdmin(admin.ModelAdmin):
|
||||||
|
@ -14,5 +14,4 @@ class TaskAdmin(admin.ModelAdmin):
|
||||||
admin.site.register(Approval, ProcessAdmin)
|
admin.site.register(Approval, ProcessAdmin)
|
||||||
admin.site.register(Review, ProcessAdmin)
|
admin.site.register(Review, ProcessAdmin)
|
||||||
admin.site.register(GatherComments, ProcessAdmin)
|
admin.site.register(GatherComments, ProcessAdmin)
|
||||||
admin.site.register(Knowledge, ProcessAdmin)
|
|
||||||
admin.site.register(Task, TaskAdmin)
|
admin.site.register(Task, TaskAdmin)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Generated by Django 1.11.5 on 2017-09-20 18:56
|
# Generated by Django 1.11.5 on 2017-11-16 20:47
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import process.models
|
import process.models
|
||||||
|
@ -12,7 +13,8 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('evolus', '0001_initial'),
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('dms', '0001_initial'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
@ -20,15 +22,15 @@ class Migration(migrations.Migration):
|
||||||
name='Process',
|
name='Process',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('process_type', models.CharField(max_length=50)),
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Task',
|
name='Task',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('assigned_to', models.EmailField(max_length=254)),
|
|
||||||
('status', models.IntegerField(choices=[(1, 'Created'), (3, 'Completed')])),
|
('status', models.IntegerField(choices=[(1, 'Created'), (3, 'Completed')])),
|
||||||
|
('assigned_to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -45,13 +47,6 @@ class Migration(migrations.Migration):
|
||||||
],
|
],
|
||||||
bases=('process.process', process.models.DraftProcessMixin),
|
bases=('process.process', process.models.DraftProcessMixin),
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
|
||||||
name='Knowledge',
|
|
||||||
fields=[
|
|
||||||
('process_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='process.Process')),
|
|
||||||
],
|
|
||||||
bases=('process.process', process.models.PublishedProcessMixin),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Review',
|
name='Review',
|
||||||
fields=[
|
fields=[
|
||||||
|
@ -62,11 +57,15 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='task',
|
model_name='task',
|
||||||
name='process',
|
name='process',
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='process.Process'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='process.Process'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='process',
|
model_name='process',
|
||||||
name='document_version',
|
name='document_version',
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='evolus.Version'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='processes', to='dms.Version'),
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='task',
|
||||||
|
unique_together=set([('assigned_to', 'process', 'status')]),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-09-21 18:47
|
|
||||||
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):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('process', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='task',
|
|
||||||
name='assigned_to',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,27 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-09-21 18:55
|
|
||||||
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):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
('process', '0002_auto_20170921_1847'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='task',
|
|
||||||
name='process',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='process.Process'),
|
|
||||||
),
|
|
||||||
migrations.AlterUniqueTogether(
|
|
||||||
name='task',
|
|
||||||
unique_together=set([('assigned_to', 'process', 'status')]),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,19 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-27 20:55
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('process', '0003_auto_20170921_1855'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='process',
|
|
||||||
name='process_type',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,22 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.11.5 on 2017-10-31 09:14
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.utils.timezone
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('process', '0004_remove_process_process_type'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='process',
|
|
||||||
name='created_at',
|
|
||||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -4,16 +4,31 @@ from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
class Process(models.Model):
|
class Process(models.Model):
|
||||||
document_version = models.ForeignKey('evolus.Version', related_name='processes')
|
"""A process is a group of tasks that needs to be completed by several users.
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
document_version
|
||||||
|
created_at (datetime - auto)
|
||||||
|
"""
|
||||||
|
document_version = models.ForeignKey('dms.Version', related_name='processes')
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
def percentage_of_completion(self):
|
def percentage_of_completion(self):
|
||||||
|
"""Defines how much the current has progressed.
|
||||||
|
|
||||||
|
At 100%, the process is considered finished.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The number of status where status = 3 'Completed', divided by the total number of tasks, times 100.
|
||||||
|
If there are no tasks associated to the current process, we simply return 'NaN'
|
||||||
|
"""
|
||||||
total = self.tasks.count()
|
total = self.tasks.count()
|
||||||
if total:
|
if total:
|
||||||
return self.tasks.filter(status=3).count() / self.tasks.count() * 100
|
return self.tasks.filter(status=3).count() / self.tasks.count() * 100
|
||||||
return 'NaN'
|
return 'NaN'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
"""Returns the current document version on which the process applies."""
|
||||||
return 'Process on {}'.format(self.document_version)
|
return 'Process on {}'.format(self.document_version)
|
||||||
|
|
||||||
def create_task(self, assigned_to):
|
def create_task(self, assigned_to):
|
||||||
|
@ -66,6 +81,7 @@ class Task(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class PublishedProcessMixin(object):
|
class PublishedProcessMixin(object):
|
||||||
|
"""Defines a specific mixin that only applies on published version"""
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.document_version.status == 'Draft':
|
if self.document_version.status == 'Draft':
|
||||||
raise TypeError('Review flow cant apply to draft documents')
|
raise TypeError('Review flow cant apply to draft documents')
|
||||||
|
@ -73,6 +89,7 @@ class PublishedProcessMixin(object):
|
||||||
|
|
||||||
|
|
||||||
class DraftProcessMixin(object):
|
class DraftProcessMixin(object):
|
||||||
|
"""Defines a specific mixin that only applies on draft version."""
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.document_version.status == 'Published':
|
if self.document_version.status == 'Published':
|
||||||
raise TypeError('Review flow cant apply to published documents')
|
raise TypeError('Review flow cant apply to published documents')
|
||||||
|
@ -80,6 +97,7 @@ class DraftProcessMixin(object):
|
||||||
|
|
||||||
|
|
||||||
class Review(Process, PublishedProcessMixin):
|
class Review(Process, PublishedProcessMixin):
|
||||||
|
"""A review process is a process that will apply when a document has been published."""
|
||||||
PROCESS_TYPE = 'Review'
|
PROCESS_TYPE = 'Review'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -87,6 +105,7 @@ class Review(Process, PublishedProcessMixin):
|
||||||
|
|
||||||
|
|
||||||
class Approval(Process, DraftProcessMixin):
|
class Approval(Process, DraftProcessMixin):
|
||||||
|
"""Approval process, to published a draft version and make it accessible to other people."""
|
||||||
PROCESS_TYPE = 'Approval'
|
PROCESS_TYPE = 'Approval'
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
@ -109,10 +128,3 @@ class GatherComments(Process, DraftProcessMixin):
|
||||||
super().save()
|
super().save()
|
||||||
for reviewer in self.document_version.reviewers.all():
|
for reviewer in self.document_version.reviewers.all():
|
||||||
self.create_task(reviewer)
|
self.create_task(reviewer)
|
||||||
|
|
||||||
|
|
||||||
class Knowledge(Process, PublishedProcessMixin):
|
|
||||||
PROCESS_TYPE = 'Knowledge'
|
|
||||||
|
|
||||||
def allow_tasks_delegation(self):
|
|
||||||
return False
|
|
||||||
|
|
|
@ -3,5 +3,6 @@ django-closuretree<1.2
|
||||||
django-filter==1.0.4
|
django-filter==1.0.4
|
||||||
django-simple-history==1.9.0
|
django-simple-history==1.9.0
|
||||||
django-simple-history==1.9.0
|
django-simple-history==1.9.0
|
||||||
|
django-mptt==0.8.7
|
||||||
pylint
|
pylint
|
||||||
markdown
|
markdown
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Thermomètre de frigo
|
||||||
|
Rétroviseur vélo
|
||||||
|
Mysterium (jeu de plateau ou le bidule sur l'ordi?)
|
Loading…
Reference in New Issue