diff --git a/db.sqlite3 b/db.sqlite3 index cbae0a0..09a3fee 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/evolus/migrations/0003_auto_20170921_1839.py b/evolus/migrations/0003_auto_20170921_1839.py new file mode 100644 index 0000000..1373440 --- /dev/null +++ b/evolus/migrations/0003_auto_20170921_1839.py @@ -0,0 +1,62 @@ +# -*- 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'), + ), + ] diff --git a/evolus/models.py b/evolus/models.py index 2b5f7b7..6f4a394 100644 --- a/evolus/models.py +++ b/evolus/models.py @@ -5,6 +5,7 @@ This module defines the structure and properties of documents. from django.db import models from closuretree.models import ClosureModel from simple_history.models import HistoricalRecords +from django.contrib.auth.models import User from jci.models import Standard @@ -60,7 +61,7 @@ class Document(models.Model): overview = models.TextField(blank=True, null=True) type = models.ForeignKey(DocumentType, null=True) created_at = models.DateTimeField(auto_now_add=True) - revised_at = models.DateTimeField(null=True, blank=True) + manager = models.ForeignKey(User) history = HistoricalRecords() @property @@ -93,6 +94,10 @@ class Version(models.Model): document = models.ForeignKey(Document, related_name='versions') major = models.PositiveIntegerField() published = models.OneToOneField('Revision', related_name='published_version+', null=True, blank=True) + revised_at = models.DateTimeField(null=True, blank=True) + authors = models.ManyToManyField(User, related_name='authors') + reviewers = models.ManyToManyField(User, related_name='reviewers') + validators = models.ManyToManyField(User, related_name='validators') class Meta: unique_together = ('document', 'major') @@ -118,4 +123,4 @@ class Revision(models.Model): ordering = ('-minor',) def __str__(self): - return '{} rev {}'.format(self.version, self.minor) \ No newline at end of file + return '{} rev {}'.format(self.version, self.minor)