From f0cd05386bcd291b60f4f9fcfcb2416e96dcf452 Mon Sep 17 00:00:00 2001 From: Martin Burchell <martinb@aptivate.org> Date: Wed, 5 Aug 2015 15:26:13 +0100 Subject: [PATCH] Renamed Tab model class to be consistent As Dashboard has WidgetInstance objects, TabbedPage has TabInstance --- django/website/tabbed_page/admin.py | 4 +- .../migrations/0002_auto_20150805_1521.py | 43 +++++++++++++++++++ django/website/tabbed_page/models.py | 4 +- django/website/tabbed_page/tests/factories.py | 6 +-- .../website/tabbed_page/tests/view_tests.py | 8 ++-- django/website/tabbed_page/views.py | 2 +- 6 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 django/website/tabbed_page/migrations/0002_auto_20150805_1521.py diff --git a/django/website/tabbed_page/admin.py b/django/website/tabbed_page/admin.py index 7c897219..050fc71c 100644 --- a/django/website/tabbed_page/admin.py +++ b/django/website/tabbed_page/admin.py @@ -1,9 +1,9 @@ from django.contrib import admin -from .models import TabbedPage, Tab +from .models import TabbedPage, TabInstance class TabInline(admin.StackedInline): - model = Tab + model = TabInstance extra = 0 diff --git a/django/website/tabbed_page/migrations/0002_auto_20150805_1521.py b/django/website/tabbed_page/migrations/0002_auto_20150805_1521.py new file mode 100644 index 00000000..c0ed816a --- /dev/null +++ b/django/website/tabbed_page/migrations/0002_auto_20150805_1521.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import jsonfield.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('tabbed_page', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='TabInstance', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('settings', jsonfield.fields.JSONField(blank=True)), + ('view_name', models.CharField(max_length=128)), + ('name', models.CharField(max_length=128)), + ('default', models.BooleanField(default=False)), + ('position', models.PositiveIntegerField(default=0)), + ('label', models.CharField(max_length=128)), + ('page', models.ForeignKey(to='tabbed_page.TabbedPage')), + ], + ), + migrations.AlterUniqueTogether( + name='tab', + unique_together=set([]), + ), + migrations.RemoveField( + model_name='tab', + name='page', + ), + migrations.DeleteModel( + name='Tab', + ), + migrations.AlterUniqueTogether( + name='tabinstance', + unique_together=set([('name', 'page')]), + ), + ] diff --git a/django/website/tabbed_page/models.py b/django/website/tabbed_page/models.py index a5f6ff02..01aadfce 100644 --- a/django/website/tabbed_page/models.py +++ b/django/website/tabbed_page/models.py @@ -12,10 +12,10 @@ class TabbedPage(models.Model): return self.name -class Tab(models.Model): +class TabInstance(models.Model): settings = JSONField(blank=True) view_name = models.CharField(max_length=128) - page = models.ForeignKey(TabbedPage) + page = models.ForeignKey(TabbedPage, related_name='tabs') name = models.CharField(max_length=128) default = models.BooleanField(default=False) position = models.PositiveIntegerField(default=0) diff --git a/django/website/tabbed_page/tests/factories.py b/django/website/tabbed_page/tests/factories.py index 4ae233e4..8c63caac 100644 --- a/django/website/tabbed_page/tests/factories.py +++ b/django/website/tabbed_page/tests/factories.py @@ -1,7 +1,7 @@ from factory.django import DjangoModelFactory from factory import fuzzy -from ..models import TabbedPage, Tab +from ..models import TabbedPage, TabInstance class TabbedPageFactory(DjangoModelFactory): @@ -11,9 +11,9 @@ class TabbedPageFactory(DjangoModelFactory): name = fuzzy.FuzzyText() -class TabFactory(DjangoModelFactory): +class TabInstanceFactory(DjangoModelFactory): class Meta: - model = Tab + model = TabInstance name = fuzzy.FuzzyText() label = fuzzy.FuzzyText() diff --git a/django/website/tabbed_page/tests/view_tests.py b/django/website/tabbed_page/tests/view_tests.py index 6adbd833..29017fc4 100644 --- a/django/website/tabbed_page/tests/view_tests.py +++ b/django/website/tabbed_page/tests/view_tests.py @@ -3,7 +3,7 @@ import pytest from ..views import TabbedPageView -from .factories import TabbedPageFactory, TabFactory +from .factories import TabbedPageFactory, TabInstanceFactory @pytest.mark.django_db @@ -42,9 +42,9 @@ def test_name_defaults_to_main_when_empty(): @pytest.mark.django_db def test_widgets_stored_on_view_in_position_order(): page = TabbedPageFactory() - tab3 = TabFactory(page=page, position=3) - tab1 = TabFactory(page=page, position=1) - tab2 = TabFactory(page=page, position=2) + tab3 = TabInstanceFactory(page=page, position=3) + tab1 = TabInstanceFactory(page=page, position=1) + tab2 = TabInstanceFactory(page=page, position=2) view = TabbedPageView() view.kwargs = {'name': page.name} diff --git a/django/website/tabbed_page/views.py b/django/website/tabbed_page/views.py index 59206fc9..ffb1e346 100644 --- a/django/website/tabbed_page/views.py +++ b/django/website/tabbed_page/views.py @@ -9,7 +9,7 @@ class TabbedPageView(TemplateView): @property def tabs(self): - return self.page.tab_set.all().order_by('position') + return self.page.tabs.all().order_by('position') @property def page(self): -- GitLab