Skip to content
This repository has been archived by the owner on Jun 13, 2022. It is now read-only.

Commit

Permalink
Merge branch 'remove-swappable'
Browse files Browse the repository at this point in the history
  • Loading branch information
tomkins committed Nov 2, 2015
2 parents f8a594c + bf1d8d0 commit 2fa780c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 34 deletions.
14 changes: 0 additions & 14 deletions blanc_basic_pages/__init__.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,2 @@
from django.apps import apps as django_apps
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured


default_app_config = 'blanc_basic_pages.apps.BlancBasicPagesConfig'


def get_page_model():
try:
conf_model = getattr(settings, 'PAGE_MODEL', 'pages.Page')
return django_apps.get_model(conf_model)
except ValueError:
raise ImproperlyConfigured("PAGE_MODEL must be of the form 'app_label.model_name'")
except LookupError:
raise ImproperlyConfigured("PAGE_MODEL refers to model '%s' that has not been installed" % conf_model)
6 changes: 3 additions & 3 deletions blanc_basic_pages/context_processors.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.conf import settings
from django.utils.functional import SimpleLazyObject

from . import get_page_model
from .models import Page


def page(request):
Expand All @@ -16,8 +16,8 @@ def get_page():
url = '/' + url

try:
return get_page_model().objects.get(url=url)
except get_page_model().DoesNotExist:
return Page.objects.get(url=url)
except Page.DoesNotExist:
return ''

return {
Expand Down
10 changes: 1 addition & 9 deletions blanc_basic_pages/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def slash_validator(url):


@python_2_unicode_compatible
class AbstractPage(MPTTModel):
class Page(MPTTModel):
TEMPLATE_CHOICES = getattr(settings, 'PAGE_TEMPLATES', (
('', 'Default'),
))
Expand All @@ -46,17 +46,9 @@ class AbstractPage(MPTTModel):

objects = TreeManager()

class Meta:
abstract = True

def __str__(self):
return '%s -- %s' % (self.url, self.title)

def get_absolute_url(self):
# Handle script prefix manually because we bypass reverse()
return iri_to_uri(get_script_prefix().rstrip('/') + self.url)


class Page(AbstractPage):
class Meta(AbstractPage.Meta):
swappable = 'PAGE_MODEL'
16 changes: 8 additions & 8 deletions blanc_basic_pages/templatetags/page_tags.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
from django import template
from django.shortcuts import resolve_url

from .. import get_page_model
from ..models import Page

register = template.Library()


@register.assignment_tag
def get_root_pages(current_page=None):
if current_page and not isinstance(current_page, get_page_model()):
if current_page and not isinstance(current_page, Page):
try:
current_page = get_page_model().objects.get(url=resolve_url(current_page))
except get_page_model().DoesNotExist:
current_page = Page.objects.get(url=resolve_url(current_page))
except Page.DoesNotExist:
current_page = None

page_list = []
Expand All @@ -22,18 +22,18 @@ def get_root_pages(current_page=None):
else:
root_page = None

for i in get_page_model().objects.root_nodes().filter(show_in_navigation=True, published=True):
for i in Page.objects.root_nodes().filter(show_in_navigation=True, published=True):
page_list.append((i, i == root_page))

return page_list


@register.assignment_tag
def get_pages_at_level(current_page, level=1):
if current_page and not isinstance(current_page, get_page_model()):
if current_page and not isinstance(current_page, Page):
try:
current_page = get_page_model().objects.get(url=resolve_url(current_page))
except get_page_model().DoesNotExist:
current_page = Page.objects.get(url=resolve_url(current_page))
except Page.DoesNotExist:
current_page = None

if not current_page:
Expand Down

0 comments on commit 2fa780c

Please sign in to comment.