From 26b823b14d5c68e7233d3737e64806fa5712c17a Mon Sep 17 00:00:00 2001 From: Fred Date: Thu, 21 Sep 2017 20:42:28 +0200 Subject: [PATCH] defines reviewers, authors and validators --- db.sqlite3 | Bin 360448 -> 380928 bytes evolus/migrations/0003_auto_20170921_1839.py | 62 +++++++++++++++++++ evolus/models.py | 9 ++- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 evolus/migrations/0003_auto_20170921_1839.py diff --git a/db.sqlite3 b/db.sqlite3 index cbae0a09001f6327e5d9022cc9bd9cd53f130ff8..09a3feea7f4dfa9fcbdd16d36f65c780b67b46cb 100644 GIT binary patch delta 2744 zcmaJ@dr%w48Na=~(@98oE7@Ryg@Ynvr!uzCog|R3u@DbqV;;slY_N$ekPM0eDLnm% z0|&G-b^Xey&bE_u%4Axn%|E80;auA-nKbQmT+i5Tu@l@FKmJIklcsK`oyKXCx+_4C zV49n`@9w_+zWx37d+hDt;Htq<<5`noh@z+_a_=WMO;N!1(nbe6MA_KFp9D{!v`V7h zDBFlkl~)qEDxD`XLwzB}>GNszh4E^ASiN;i21})F_J#T)?Y-T0yWQar^!7yjl3mQT zdnC~>x*eYQ$0oaHlO&o&cb>zO=WyAi9MNsh8UHvnne(DdDxELUpg#*I(Rnl}Tt>yH zo|n;Sq!%6w9}2GtSJC@Ii4YMs@(=kbeu94)Jtqjleq`la_>ys-ndP^nmq4#(j)uQ4 z)YTo1bo%=O?crdcC(_lOUJUcWlF_bEUpUlHOzD`s=`<*a>1`FDF!rpi$ZA?C!mNaS zpf?x}b+&|9Ya>c&s>ky=8?LW+ldh zk(S<$P-hSNJ|&Qt&R?;U+1()HO*=EDW%#=ksukW7ns~(!g*W(t7Z{$BpP|$|&#N`Q zHPPln!Gn^&yDcEOaxxt`B=VW9Jb+$`c zb%l|t!wtQS#WmZj`<)$y<&m!DhSvNq=f^3M6xk%VJy*)DZ3{OCdfR&r55O*mvr@qecM`}FRkeg)`mL*Ek_PJ z+v*yggqI|nlq-r(aa*`0a*U264?W`KEc4}O*=V*b)O!45 zu`Mi3$B#E@m*ii{vy=SW-6R29R%WmM7KxLO@l`& z9fNLC=mGi&-9(>|nEwh{bZ`wwtbG8ZZqCh!I68C#K;W0AKqfRFt!C(rFAzx<#QxQnNyE6#aDYClm9ymyoYB7-$kn*u4ot!3JCMUa{s5kW1@byvc@wV3 zV^i=I<+oR8*UE`e$mkX39{um@%6}&z)GOcs^Gien4VG_%41D!2y*i8GH76(ot)tX! z+*V`~^7xl^_f(kul%=#@#sHg=zMfR7xj^f5yOa$#-~*r?s*o!hkts7Cj2hZ$++@1RL2TzjKO05nk5{xSV>8B1Udt)A^dj@ zYs8~HK!-=K&<0?|ZXNrUQmSJA1eAZM*%F{^eGit?jP@F}E>^978vm1FzXLbRK0K*q z({Y-PHRDq(dkMFy*^>;3(+IH|)XF-!k~3Ch0eKUCX^O<@EMlXIJBe)s%3pNsufh3y z(Ee?Pd7T+0QDMx?XWsK;P(N{l{vlHNNHPGm5TZPV8Du^m$fn<-c<|7F+U#+=Pt){VOLl}b3xxY%Tk|U znb3bF$*tBQom|HmJsvRZSPpf5TUvrSuWgt`6cUJY+ONbjSmk`VmNT|`fgA{T21AFj zI0IL&oGZyLe>muO<=Q2&Srp>~X`mF3AvOiOXW+_Zjr>z^ZTh0O#VR}H8qOFX^VcoR zzX5B=T=>BZwBnsJ&R{aqSe8w8Ig3*KGNG zqXXZ+MCXF-v#Z9o%k&VwcA5VCnT3{$^S7A8ojsw}P?x!~uDskTr^r>Dv4(VmXSN&G zE^_rtZYd|n>2}TsH*wG?j5B!Zi>pl-;u*xI=@)0PSjk~oF0J3ZGhmbA7_iw=r{2F9^w3QzR(Z?ARcJ@DB#84VQjt=B> zi5^kt5!r?RiZ~TeQ5uSR{jrzP1A1Z?^C{vO1`t~fF?fh#2lS~dAWr)fU6gr*6lM&5 GhW-chQ!Hcv delta 1110 zcmYjPZA_I_96zu3dAZMX&clmbBo)%YuJ>|z2?IsEk${a!j>VL$0Zy*7mU1UzA9Be9 zX3G(%w>nlIy0fLrFJ8Hgr<9U4{1DYpQW64kZr0i&KGcSxWCw`qob&&ko!|NY|L6a5 zTBDxU)|BH9B^&|()Jl0u3IYJSPxv3Bhd}o1{tJ!A_|iN{`|VW{Q|%;)Da%ZWE7Zw| zVwJ>8b3az&lc~wdI(88(HEosu!aDdFewn|@%lJ0a=8y1BZm|dKCw7_*@SCihH8DS9 z=9GEe>@nYA&r2Vh&4``d2@4}upbBn?)CD#LJV|-j2SW#&UTSHs-`UdmLTKNv5amTc zE=vaR??}tX>!7eFa7yG(AefQp$3E>Jv&N=fEqg=z4)7O&v8W#@%gI{FKLE*##Nuw~ zI9=P>a$rw=OLJ&{q$8&puISDsF&E@DfY-zm8Y+3bW-1mV9{w^AEDD!9*-@C!BMnwY zBzJ;{SI)yXu!naFB?fb(el2%8FT;Zt_GpGsu1c;ncUX0d5qQ@ny-ou@Ewv`OGd%^( zzAOWE0XAr!GY0fwy+YffrqFgWNjBmR)HOHZ*H8g<@oFoCoUU$^Mu=?I-bl5z0ZG@@ zmJd29pQ1kGZV%h3iYFL^N1FuGX(0><_&Hi4p3`ZYIL+xYF|N~D=c`^+nA8&{A8{8b z1supCj>2>?aG0!j$SpK8DE|5pxf~M3v*})U0Wk46qLt(*9%rwcgXUVJ&Hau3zIIIA zqil3B7eg~>8;m+@uHxG;-e6sW#Ll#{M4d(}#T}J;#WjuQ3s*0?BA#(jzwWp56pzmb zk8t4`!mHrsxhR*5Cq}R$>W6UqLa4WgaEVj$J+4AdP7Ixcgg*;T$)w*BBNvb(YA&I; z_^b!LhYRdS#jrxR!V+!$jta z@8_I_QEJVfGRXa4Pap2*=zkSSGi9;o2bB1vW5noP?vPe8d)P<(AQ3~r!{)cfuljF# zk#<7;U0JK{c2yWfw8K3^{=m@POCD!8WtVOsciU=vlj8Au;So*rGx{*xzR;h0jMj@U zW2j8*;Iy23)d0{J9<|ro-c9#+$TYiOr$^rf52}#f8N05 z(782+cR<3r!5Vp!r4-v`F3(o4uYV 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)