From af20a61b6b6f673bf05dfcfd9f9feda9147dcddd Mon Sep 17 00:00:00 2001 From: Dave Cranwell Date: Thu, 8 May 2014 12:31:49 +0100 Subject: [PATCH 01/26] reducing shadow on menu. looked amateurish --- .../wagtailadmin/static/wagtailadmin/scss/core.scss | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss index 8ffaa450a..2c1232091 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss +++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss @@ -115,7 +115,7 @@ img{ } .nav-wrapper{ - @include box-shadow(inset -2px 0px 10px 0px rgba(0, 0, 0, 0.5)); + @include box-shadow(inset -5px 0px 5px -3px rgba(0, 0, 0, 0.3)); position:relative; background: $color-grey-1; margin-left: -100%; @@ -404,7 +404,7 @@ header{ width:1em; display:none; margin-right:0.4em; - font-size:1.5em; + font-size:1.3em; } } @@ -904,13 +904,8 @@ footer, .logo{ .wrapper{ max-width:$breakpoint-desktop-larger; } - .nav-wrapper{ - @include box-shadow(inset -6px 0px 4px 0px rgba(0, 0, 0, 0.2)); - - .inner{ - background:$color-grey-1; - @include box-shadow(inset -6px 0px 4px 0px rgba(0, 0, 0, 0.2)); - } + .nav-wrapper .inner{ + background:$color-grey-1; } footer{ From 4786e34a46bb60ca0fc0075311671b0a94c4ed1e Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Sat, 10 May 2014 13:21:21 +0100 Subject: [PATCH 02/26] Import unittest2 from Django --- tox.ini | 1 - wagtail/tests/utils.py | 13 ++++++++++++- wagtail/wagtailadmin/tests.py | 3 +-- wagtail/wagtailimages/tests.py | 4 +--- wagtail/wagtailsearch/tests/test_backends.py | 2 +- wagtail/wagtailsearch/tests/test_queries.py | 3 +-- wagtail/wagtailsnippets/tests.py | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/tox.ini b/tox.ini index 329c1c407..11b8bb3a2 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,6 @@ dj16= Django>=1.6,<1.7 pyelasticsearch==0.6.1 elasticutils==0.8.2 - unittest2 [tox] envlist = diff --git a/wagtail/tests/utils.py b/wagtail/tests/utils.py index 11cdb369d..7b6557a78 100644 --- a/wagtail/tests/utils.py +++ b/wagtail/tests/utils.py @@ -1,9 +1,20 @@ from django.contrib.auth.models import User +# We need to make sure that we're using the same unittest library that Django uses internally +# Otherwise, we get issues with the "SkipTest" and "ExpectedFailure" exceptions being recognised as errors +try: + # Firstly, try to import unittest from Django + from django.utils import unittest +except ImportError: + # Django doesn't include unittest + # We must be running on Django 1.7+ which doesn't support Python 2.6 so + # the standard unittest library should be unittest2 + import unittest + def login(client): # Create a user User.objects.create_superuser(username='test', email='test@email.com', password='password') # Login - client.login(username='test', password='password') \ No newline at end of file + client.login(username='test', password='password') diff --git a/wagtail/wagtailadmin/tests.py b/wagtail/wagtailadmin/tests.py index 435f29a9c..8d72ef3ad 100644 --- a/wagtail/wagtailadmin/tests.py +++ b/wagtail/wagtailadmin/tests.py @@ -1,7 +1,6 @@ from django.test import TestCase -import unittest2 as unittest from wagtail.tests.models import SimplePage, EventPage -from wagtail.tests.utils import login +from wagtail.tests.utils import login, unittest from wagtail.wagtailcore.models import Page from django.core.urlresolvers import reverse diff --git a/wagtail/wagtailimages/tests.py b/wagtail/wagtailimages/tests.py index 9c4ce6ea9..00d1245e6 100644 --- a/wagtail/wagtailimages/tests.py +++ b/wagtail/wagtailimages/tests.py @@ -4,9 +4,7 @@ from django.contrib.auth.models import User, Group, Permission from django.core.urlresolvers import reverse from django.core.files.uploadedfile import SimpleUploadedFile -import unittest2 as unittest - -from wagtail.tests.utils import login +from wagtail.tests.utils import login, unittest from wagtail.wagtailimages.models import get_image_model from wagtail.wagtailimages.templatetags import image_tags diff --git a/wagtail/wagtailsearch/tests/test_backends.py b/wagtail/wagtailsearch/tests/test_backends.py index b8b6ee3b1..bd4a64926 100644 --- a/wagtail/wagtailsearch/tests/test_backends.py +++ b/wagtail/wagtailsearch/tests/test_backends.py @@ -2,7 +2,7 @@ from django.test import TestCase from django.test.utils import override_settings from django.conf import settings from django.core import management -import unittest2 as unittest +from wagtail.tests.utils import unittest from wagtail.wagtailsearch import models, get_search_backend from wagtail.wagtailsearch.backends.db import DBSearch from wagtail.wagtailsearch.backends import InvalidSearchBackendError diff --git a/wagtail/wagtailsearch/tests/test_queries.py b/wagtail/wagtailsearch/tests/test_queries.py index 2ff2945de..7086d46f4 100644 --- a/wagtail/wagtailsearch/tests/test_queries.py +++ b/wagtail/wagtailsearch/tests/test_queries.py @@ -1,9 +1,8 @@ from django.test import TestCase from django.core import management from wagtail.wagtailsearch import models -from wagtail.tests.utils import login +from wagtail.tests.utils import login, unittest from StringIO import StringIO -import unittest2 as unittest class TestHitCounter(TestCase): diff --git a/wagtail/wagtailsnippets/tests.py b/wagtail/wagtailsnippets/tests.py index 0ba40fac9..782fe9087 100644 --- a/wagtail/wagtailsnippets/tests.py +++ b/wagtail/wagtailsnippets/tests.py @@ -5,7 +5,7 @@ when you run "manage.py test". Replace this with more appropriate tests for your application. """ -import unittest2 as unittest +from wagtail.tests.utils import unittest from django.test import TestCase From 09f185b3aa39f3fcef27e6d5b1fd345ea99a201a Mon Sep 17 00:00:00 2001 From: Ben Margolis Date: Thu, 15 May 2014 15:29:23 -0700 Subject: [PATCH 03/26] Remove all (3) raw SQL statements. This will allow Django to generate the statements, so there aren't any backend issues --- wagtail/wagtailadmin/views/pages.py | 4 +--- wagtail/wagtailcore/models.py | 12 ++---------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 6be731c3b..673f75ece 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -43,9 +43,7 @@ def index(request, parent_page_id=None): @permission_required('wagtailadmin.access_admin') def select_type(request): # Get the list of page types that can be created within the pages that currently exist - existing_page_types = ContentType.objects.raw(""" - SELECT DISTINCT content_type_id AS id FROM wagtailcore_page - """) + existing_page_types = get_page_types() all_page_types = sorted(get_page_types(), key=lambda pagetype: pagetype.name.lower()) page_types = set() diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index 441c74a28..462206e21 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -638,17 +638,9 @@ def get_navigation_menu_items(): # or are at the top-level (this rule required so that an empty site out-of-the-box has a working menu) navigable_content_type_ids = get_navigable_page_content_type_ids() if navigable_content_type_ids: - pages = Page.objects.raw(""" - SELECT * FROM wagtailcore_page - WHERE numchild > 0 OR content_type_id IN %s OR depth = 2 - ORDER BY path - """, [tuple(navigable_content_type_ids)]) + pages = Page.objects.filter(Q(content_type__in=navigable_content_type_ids)|Q(depth=2)|Q(numchild__gt=0)).order_by('path') else: - pages = Page.objects.raw(""" - SELECT * FROM wagtailcore_page - WHERE numchild > 0 OR depth = 2 - ORDER BY path - """) + pages = Page.objects.filter(Q(depth=2)|Q(numchild__gt=0)).order_by('path') # Turn this into a tree structure: # tree_node = (page, children) From 6092791b864c736a4c443b47780414ee5951fcf2 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Fri, 16 May 2014 12:17:07 +0100 Subject: [PATCH 04/26] Added get_medusa_paths method to Page This is used to find a list of URLs for the entire site to feed into django-medusa If your page requires extra views, you can override this like so: def get_medusa_paths(self): yield '/myextraview/' super(MyPageType, self).get_medusa_paths() --- wagtail/wagtailcore/models.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index 441c74a28..ac22ebc92 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -622,6 +622,19 @@ class Page(MP_Node, ClusterableModel, Indexed): """ return self.serve(self.dummy_request()) + def get_medusa_paths(self): + """ + This is a generator of URL paths to feed into django-medusa + Override this if you would like to create static versions of subpages + """ + # Yield paths for this page + yield '/' + + # Yield paths for child pages + for child in self.get_children().live(): + for path in child.get_medusa_paths(): + yield '/' + child.slug + path + def get_ancestors(self, inclusive=False): return Page.objects.ancestor_of(self, inclusive) From d180ad8f089911b3791048ea5f5586880ead5fd3 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Fri, 16 May 2014 12:27:05 +0100 Subject: [PATCH 05/26] Added medusa renderer for pages --- wagtail/wagtailcore/renderers.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 wagtail/wagtailcore/renderers.py diff --git a/wagtail/wagtailcore/renderers.py b/wagtail/wagtailcore/renderers.py new file mode 100644 index 000000000..33339581a --- /dev/null +++ b/wagtail/wagtailcore/renderers.py @@ -0,0 +1,17 @@ +from django_medusa.renderers import StaticSiteRenderer +from .models import Site + + +class PageRenderer(StaticSiteRenderer): + def get_paths(self): + # Get site + # TODO: Find way to get this to work with other sites + site = Site.objects.filter(is_default_site=True).first() + if site is None: + return [] + + # Return list of paths + return site.root_page.get_medusa_paths() + + +renderers = [PageRenderer] From ed36f25bffd6715bba8ca5a902e51e7757ecb615 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Sat, 17 May 2014 15:12:18 +0200 Subject: [PATCH 06/26] Add Ben Margolis to contributors --- CHANGELOG.txt | 1 + CONTRIBUTORS.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a0024b6a0..f9f60449c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -24,6 +24,7 @@ Changelog * Fix: Page slugs are now validated on page edit * Fix: Filter objects are cached to avoid a database hit every time an {% image %} tag is compiled * Fix: Moving or changing a site root page no longer causes URLs for subpages to change to 'None' + * Fix: Eliminated raw SQL queries from wagtailcore / wagtailadmin, to ensure cross-database compatibility 0.2 (11.03.2014) ~~~~~~~~~~~~~~~~ diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 38e89a8e1..3549e8407 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -25,6 +25,7 @@ Contributors * Miguel Vieira * Ben Emery * David Smith +* Ben Margolis Translators =========== From 7a9e214fb5501828d7f60bd2ce93c3061aa178cd Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Sat, 17 May 2014 16:00:19 +0200 Subject: [PATCH 07/26] Remove dead code for creating pages by type and then location; it's been unused since wagtail 0.1, hasn't been updated for the page permission model, and needs further spec / discussion (including a working subpage_types implementation) before it can return --- .../wagtailadmin/pages/select_location.html | 13 ----- .../wagtailadmin/pages/select_type.html | 20 ------- .../wagtailadmin/shared/main_nav.html | 4 -- wagtail/wagtailadmin/tests.py | 26 ---------- wagtail/wagtailadmin/urls.py | 2 - wagtail/wagtailadmin/views/pages.py | 52 ------------------- 6 files changed, 117 deletions(-) delete mode 100644 wagtail/wagtailadmin/templates/wagtailadmin/pages/select_location.html delete mode 100644 wagtail/wagtailadmin/templates/wagtailadmin/pages/select_type.html diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_location.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_location.html deleted file mode 100644 index f5470158a..000000000 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_location.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends "wagtailadmin/base.html" %} -{% load i18n %} -{% block titletag %}{% blocktrans with page_type=content_type.model_class.get_verbose_name %}Where do you want to create a {{ page_type }}{% endblocktrans %}{% endblock %} -{% block content %} - {% trans "Where do you want to create this" as where_str %} - {% include "wagtailadmin/shared/header.html" with title=where_str subtitle=content_type.model_class.get_verbose_name icon="doc-empty-inverse" %} - - -{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_type.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_type.html deleted file mode 100644 index ada1e5027..000000000 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/select_type.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "wagtailadmin/base.html" %} -{% load i18n %} -{% block titletag %}{% trans "Create a new page" %}{% endblock %} -{% block bodyclass %}menu-explorer{% endblock %} -{% block content %} - {% trans "Create a new page" as create_str %} - {% include "wagtailadmin/shared/header.html" with title=create_str icon="doc-empty-inverse" %} - -
-

{% trans "Your new page will be saved in the top level of your website. You can move it after saving." %}

- - {% if all_page_types %} - - {% endif %} -
-{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/main_nav.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/main_nav.html index b282afe3c..f7eb6528a 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/main_nav.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/main_nav.html @@ -6,10 +6,6 @@ {{ menu_item.render_html }} {% endfor %} - {% comment %} - {# TODO: make this work #} -
  • {% trans 'New page' %}
  • - {% endcomment %}