From 5342d5c5b27df66ed0c2e28cdd1c28f9c0b6b496 Mon Sep 17 00:00:00 2001 From: Gideon Thomas Date: Fri, 1 Sep 2017 14:04:21 -0400 Subject: [PATCH] Fix #657 - Create homepage model (#709) --- .../migrations/0004_highlight_homepage.py | 22 +++++++++++++++++++ .../app/networkapi/highlights/models.py | 8 +++++++ .../app/networkapi/homepage/__init__.py | 0 network-api/app/networkapi/homepage/admin.py | 3 +++ network-api/app/networkapi/homepage/apps.py | 5 +++++ .../homepage/migrations/0001_initial.py | 22 +++++++++++++++++++ .../homepage/migrations/__init__.py | 0 network-api/app/networkapi/homepage/models.py | 10 +++++++++ network-api/app/networkapi/homepage/tests.py | 3 +++ network-api/app/networkapi/homepage/views.py | 3 +++ .../news/migrations/0009_news_homepage.py | 22 +++++++++++++++++++ network-api/app/networkapi/news/models.py | 8 +++++++ .../people/migrations/0024_person_homepage.py | 22 +++++++++++++++++++ network-api/app/networkapi/people/models.py | 8 +++++++ network-api/app/networkapi/settings.py | 1 + 15 files changed, 137 insertions(+) create mode 100644 network-api/app/networkapi/highlights/migrations/0004_highlight_homepage.py create mode 100644 network-api/app/networkapi/homepage/__init__.py create mode 100644 network-api/app/networkapi/homepage/admin.py create mode 100644 network-api/app/networkapi/homepage/apps.py create mode 100644 network-api/app/networkapi/homepage/migrations/0001_initial.py create mode 100644 network-api/app/networkapi/homepage/migrations/__init__.py create mode 100644 network-api/app/networkapi/homepage/models.py create mode 100644 network-api/app/networkapi/homepage/tests.py create mode 100644 network-api/app/networkapi/homepage/views.py create mode 100644 network-api/app/networkapi/news/migrations/0009_news_homepage.py create mode 100644 network-api/app/networkapi/people/migrations/0024_person_homepage.py diff --git a/network-api/app/networkapi/highlights/migrations/0004_highlight_homepage.py b/network-api/app/networkapi/highlights/migrations/0004_highlight_homepage.py new file mode 100644 index 00000000000..d80e700c580 --- /dev/null +++ b/network-api/app/networkapi/highlights/migrations/0004_highlight_homepage.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-08-31 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0001_initial'), + ('highlights', '0003_remove_highlight_featured'), + ] + + operations = [ + migrations.AddField( + model_name='highlight', + name='homepage', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='highlights', to='homepage.Homepage'), + ), + ] diff --git a/network-api/app/networkapi/highlights/models.py b/network-api/app/networkapi/highlights/models.py index ce68e879074..73fd6716742 100644 --- a/network-api/app/networkapi/highlights/models.py +++ b/network-api/app/networkapi/highlights/models.py @@ -4,6 +4,7 @@ from adminsortable.models import SortableMixin from mezzanine.core.fields import RichTextField from networkapi.utility.images import get_image_upload_path +from networkapi.homepage.models import Homepage def get_highlights_image_upload_path(instance, filename): @@ -78,6 +79,13 @@ class Highlight(SortableMixin): editable=False, db_index=True, ) + homepage = models.ForeignKey( + Homepage, + related_name='highlights', + null=True, + blank=True, + on_delete=models.SET_NULL + ) objects = HighlightQuerySet.as_manager() diff --git a/network-api/app/networkapi/homepage/__init__.py b/network-api/app/networkapi/homepage/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/network-api/app/networkapi/homepage/admin.py b/network-api/app/networkapi/homepage/admin.py new file mode 100644 index 00000000000..4185d360e9a --- /dev/null +++ b/network-api/app/networkapi/homepage/admin.py @@ -0,0 +1,3 @@ +# from django.contrib import admin + +# Register your models here. diff --git a/network-api/app/networkapi/homepage/apps.py b/network-api/app/networkapi/homepage/apps.py new file mode 100644 index 00000000000..b7edb279ae5 --- /dev/null +++ b/network-api/app/networkapi/homepage/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class HomepageConfig(AppConfig): + name = 'homepage' diff --git a/network-api/app/networkapi/homepage/migrations/0001_initial.py b/network-api/app/networkapi/homepage/migrations/0001_initial.py new file mode 100644 index 00000000000..d600c491cd6 --- /dev/null +++ b/network-api/app/networkapi/homepage/migrations/0001_initial.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-08-31 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Homepage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + ), + ] diff --git a/network-api/app/networkapi/homepage/migrations/__init__.py b/network-api/app/networkapi/homepage/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/network-api/app/networkapi/homepage/models.py b/network-api/app/networkapi/homepage/models.py new file mode 100644 index 00000000000..e1ba5f3c12e --- /dev/null +++ b/network-api/app/networkapi/homepage/models.py @@ -0,0 +1,10 @@ +from django.db import models + + +# Create your models here. +class Homepage(models.Model): + # All the fields are created as Foreign Keys in the related models so + # that we have a 1:Many relationship between the homepage and related model + # i.e., one (the only) Homepage model has many instances of the related + # model(s). + pass diff --git a/network-api/app/networkapi/homepage/tests.py b/network-api/app/networkapi/homepage/tests.py new file mode 100644 index 00000000000..e55d6890979 --- /dev/null +++ b/network-api/app/networkapi/homepage/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase # noqa: F401 + +# Create your tests here. diff --git a/network-api/app/networkapi/homepage/views.py b/network-api/app/networkapi/homepage/views.py new file mode 100644 index 00000000000..fd0e0449559 --- /dev/null +++ b/network-api/app/networkapi/homepage/views.py @@ -0,0 +1,3 @@ +# from django.shortcuts import render + +# Create your views here. diff --git a/network-api/app/networkapi/news/migrations/0009_news_homepage.py b/network-api/app/networkapi/news/migrations/0009_news_homepage.py new file mode 100644 index 00000000000..ec95f906c52 --- /dev/null +++ b/network-api/app/networkapi/news/migrations/0009_news_homepage.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-08-31 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0001_initial'), + ('news', '0008_auto_20170723_0853'), + ] + + operations = [ + migrations.AddField( + model_name='news', + name='homepage', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='news', to='homepage.Homepage'), + ), + ] diff --git a/network-api/app/networkapi/news/models.py b/network-api/app/networkapi/news/models.py index 1b639731449..0a73f7da908 100644 --- a/network-api/app/networkapi/news/models.py +++ b/network-api/app/networkapi/news/models.py @@ -4,6 +4,7 @@ from networkapi.utility.images import get_image_upload_path from filebrowser_safe.fields import FileBrowseField +from networkapi.homepage.models import Homepage def get_news_glyph_upload_path(instance, filename): @@ -105,6 +106,13 @@ class News(models.Model): null=True, blank=True, ) + homepage = models.ForeignKey( + Homepage, + related_name='news', + null=True, + blank=True, + on_delete=models.SET_NULL + ) objects = NewsQuerySet.as_manager() diff --git a/network-api/app/networkapi/people/migrations/0024_person_homepage.py b/network-api/app/networkapi/people/migrations/0024_person_homepage.py new file mode 100644 index 00000000000..14db87384c4 --- /dev/null +++ b/network-api/app/networkapi/people/migrations/0024_person_homepage.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-08-31 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0001_initial'), + ('people', '0023_auto_20170504_2327'), + ] + + operations = [ + migrations.AddField( + model_name='person', + name='homepage', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='leaders', to='homepage.Homepage'), + ), + ] diff --git a/network-api/app/networkapi/people/models.py b/network-api/app/networkapi/people/models.py index 3659ca87ed5..6da0dfa7b52 100644 --- a/network-api/app/networkapi/people/models.py +++ b/network-api/app/networkapi/people/models.py @@ -4,6 +4,7 @@ from adminsortable.models import SortableMixin from networkapi.utility.images import get_image_upload_path +from networkapi.homepage.models import Homepage def get_people_image_upload_path(instance, filename): @@ -132,6 +133,13 @@ class Person(SortableMixin): editable=False, db_index=True, ) + homepage = models.ForeignKey( + Homepage, + related_name='leaders', + null=True, + blank=True, + on_delete=models.SET_NULL + ) objects = PeopleQuerySet.as_manager() diff --git a/network-api/app/networkapi/settings.py b/network-api/app/networkapi/settings.py index b2eb64ed6ea..51554cfc7f8 100644 --- a/network-api/app/networkapi/settings.py +++ b/network-api/app/networkapi/settings.py @@ -113,6 +113,7 @@ 'adminsortable', # the network site + 'networkapi.homepage', 'networkapi.people', 'networkapi.news', 'networkapi.utility',