diff --git a/db.sqlite3 b/db.sqlite3 index c9c273c..827cbf9 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/evolus/admin.py b/evolus/admin.py index 718b9bc..4fb37a5 100644 --- a/evolus/admin.py +++ b/evolus/admin.py @@ -1,13 +1,18 @@ from django.contrib import admin -from .models import Audience, Document, Site, Structure +from .models import Audience, Document, DocumentType, Site, Structure class DocumentAdmin(admin.ModelAdmin): - list_filter = ('audiences', 'sites', 'structures') + list_filter = ('type', 'audiences', 'sites', 'structures') + + +class DocumentTypeAdmin(admin.ModelAdmin): + list_display = ('__str__', 'level') admin.site.register(Audience) admin.site.register(Site) admin.site.register(Structure) -admin.site.register(Document, DocumentAdmin) \ No newline at end of file +admin.site.register(Document, DocumentAdmin) +admin.site.register(DocumentType, DocumentTypeAdmin) diff --git a/evolus/migrations/0009_auto_20170918_1514.py b/evolus/migrations/0009_auto_20170918_1514.py new file mode 100644 index 0000000..726f2eb --- /dev/null +++ b/evolus/migrations/0009_auto_20170918_1514.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 13:14 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0008_auto_20170918_1305'), + ] + + operations = [ + migrations.CreateModel( + name='DocumentType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50)), + ('template', models.FileField(blank=True, null=True, upload_to='documents_templates/')), + ], + ), + migrations.AddField( + model_name='document', + name='type', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='evolus.DocumentType'), + ), + ] diff --git a/evolus/migrations/0010_documenttype_level.py b/evolus/migrations/0010_documenttype_level.py new file mode 100644 index 0000000..0c994d8 --- /dev/null +++ b/evolus/migrations/0010_documenttype_level.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 13:18 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0009_auto_20170918_1514'), + ] + + operations = [ + migrations.AddField( + model_name='documenttype', + name='level', + field=models.IntegerField(default=1), + preserve_default=False, + ), + ] diff --git a/evolus/migrations/0011_auto_20170918_1544.py b/evolus/migrations/0011_auto_20170918_1544.py new file mode 100644 index 0000000..e062ddb --- /dev/null +++ b/evolus/migrations/0011_auto_20170918_1544.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 13:44 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0010_documenttype_level'), + ] + + operations = [ + migrations.AlterModelOptions( + name='documenttype', + options={'ordering': ['level']}, + ), + migrations.AddField( + model_name='structure', + name='acronym', + field=models.CharField(blank=True, max_length=20, null=True), + ), + ] diff --git a/evolus/models.py b/evolus/models.py index aa9d639..6fc7f7e 100644 --- a/evolus/models.py +++ b/evolus/models.py @@ -28,12 +28,25 @@ class Site(models.Model): class Structure(ClosureModel): name = models.CharField(max_length=50) + acronym = models.CharField(max_length=20, null=True, blank=True) parent = models.ForeignKey('self', related_name='children', null=True, blank=True) def __str__(self): return self.name +class DocumentType(models.Model): + name = models.CharField(max_length=50) + level = models.IntegerField() + template = models.FileField(upload_to='documents_templates/', null=True, blank=True) + + def __str__(self): + return self.name + + class Meta: + ordering = ['level'] + + class Document(models.Model): audiences = models.ManyToManyField(Audience) sites = models.ManyToManyField(Site) @@ -41,6 +54,7 @@ class Document(models.Model): structures = models.ManyToManyField(Structure) title = models.CharField(max_length=255) overview = models.TextField(blank=True, null=True) + type = models.ForeignKey(DocumentType, null=True) def __str__(self): - return self.title \ No newline at end of file + return self.title