From 4db260022160b568ba19bc4289c8c23b10984095 Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Mon, 18 Sep 2017 13:12:13 +0200 Subject: [PATCH] fix pluralized m2m fields --- db.sqlite3 | Bin 307200 -> 323584 bytes evolus/admin.py | 9 +++++-- evolus/filters.py | 2 +- evolus/migrations/0005_auto_20170918_1251.py | 27 +++++++++++++++++++ evolus/migrations/0006_auto_20170918_1254.py | 25 +++++++++++++++++ evolus/migrations/0007_document_overview.py | 20 ++++++++++++++ evolus/migrations/0008_auto_20170918_1305.py | 25 +++++++++++++++++ evolus/models.py | 21 ++++++++++++--- 8 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 evolus/migrations/0005_auto_20170918_1251.py create mode 100644 evolus/migrations/0006_auto_20170918_1254.py create mode 100644 evolus/migrations/0007_document_overview.py create mode 100644 evolus/migrations/0008_auto_20170918_1305.py diff --git a/db.sqlite3 b/db.sqlite3 index 08493af0a543aa51d0eefb742e16051e442e33f4..c9c273cfcbdf7da14f9050f3e87901a9beff53a9 100644 GIT binary patch delta 4656 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 bKlDD}bh@VX)im!+m>38E!RjYIL1_OEquE<_ diff --git a/evolus/admin.py b/evolus/admin.py index 785c0ba..718b9bc 100644 --- a/evolus/admin.py +++ b/evolus/admin.py @@ -1,8 +1,13 @@ from django.contrib import admin -from .models import Audience, Document, Structure +from .models import Audience, Document, Site, Structure + + +class DocumentAdmin(admin.ModelAdmin): + list_filter = ('audiences', 'sites', 'structures') admin.site.register(Audience) +admin.site.register(Site) admin.site.register(Structure) -admin.site.register(Document) \ No newline at end of file +admin.site.register(Document, DocumentAdmin) \ No newline at end of file diff --git a/evolus/filters.py b/evolus/filters.py index 45065df..454c973 100644 --- a/evolus/filters.py +++ b/evolus/filters.py @@ -6,4 +6,4 @@ from evolus.models import Document class DocumentFilter(django_filters.FilterSet): class Meta: model = Document - fields = ('audience', 'structure', 'standards') + fields = ('audiences', 'sites', 'structures', 'standards') diff --git a/evolus/migrations/0005_auto_20170918_1251.py b/evolus/migrations/0005_auto_20170918_1251.py new file mode 100644 index 0000000..7cbad96 --- /dev/null +++ b/evolus/migrations/0005_auto_20170918_1251.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 10:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0004_auto_20170915_0954'), + ] + + operations = [ + migrations.CreateModel( + name='Site', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50)), + ], + ), + migrations.AddField( + model_name='document', + name='sites', + field=models.ManyToManyField(to='evolus.Site'), + ), + ] diff --git a/evolus/migrations/0006_auto_20170918_1254.py b/evolus/migrations/0006_auto_20170918_1254.py new file mode 100644 index 0000000..fc8d336 --- /dev/null +++ b/evolus/migrations/0006_auto_20170918_1254.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 10:54 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0005_auto_20170918_1251'), + ] + + operations = [ + migrations.AlterModelOptions( + name='site', + options={'ordering': ['name']}, + ), + migrations.AddField( + model_name='document', + name='title', + field=models.CharField(default='', max_length=255), + preserve_default=False, + ), + ] diff --git a/evolus/migrations/0007_document_overview.py b/evolus/migrations/0007_document_overview.py new file mode 100644 index 0000000..eed4bbb --- /dev/null +++ b/evolus/migrations/0007_document_overview.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 10:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0006_auto_20170918_1254'), + ] + + operations = [ + migrations.AddField( + model_name='document', + name='overview', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/evolus/migrations/0008_auto_20170918_1305.py b/evolus/migrations/0008_auto_20170918_1305.py new file mode 100644 index 0000000..81d3fcc --- /dev/null +++ b/evolus/migrations/0008_auto_20170918_1305.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-18 11:05 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('evolus', '0007_document_overview'), + ] + + operations = [ + migrations.RenameField( + model_name='document', + old_name='audience', + new_name='audiences', + ), + migrations.RenameField( + model_name='document', + old_name='structure', + new_name='structures', + ), + ] diff --git a/evolus/models.py b/evolus/models.py index ae9ac60..aa9d639 100644 --- a/evolus/models.py +++ b/evolus/models.py @@ -15,6 +15,17 @@ class Audience(ClosureModel): def __str__(self): return self.name + +class Site(models.Model): + name = models.CharField(max_length=50) + + def __str__(self): + return self.name + + class Meta: + ordering = ['name'] + + class Structure(ClosureModel): name = models.CharField(max_length=50) parent = models.ForeignKey('self', related_name='children', null=True, blank=True) @@ -22,10 +33,14 @@ class Structure(ClosureModel): def __str__(self): return self.name + class Document(models.Model): - audience = models.ManyToManyField(Audience) + audiences = models.ManyToManyField(Audience) + sites = models.ManyToManyField(Site) standards = models.ManyToManyField(Standard) - structure = models.ManyToManyField(Structure) + structures = models.ManyToManyField(Structure) + title = models.CharField(max_length=255) + overview = models.TextField(blank=True, null=True) def __str__(self): - return '{} {}'.format(self.audience, self.structure) \ No newline at end of file + return self.title \ No newline at end of file