From 8c10760a0077d8fb0c6d867d0aa70089768a82f9 Mon Sep 17 00:00:00 2001 From: Liam Brenner Date: Mon, 7 Nov 2016 12:20:03 +1100 Subject: [PATCH] Stopped using ContentType with edit handlers, fixes #2 --- wagtailpolls/edit_handlers.py | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/wagtailpolls/edit_handlers.py b/wagtailpolls/edit_handlers.py index 24bf19b..9cc5952 100644 --- a/wagtailpolls/edit_handlers.py +++ b/wagtailpolls/edit_handlers.py @@ -1,11 +1,8 @@ from django.template.loader import render_to_string -from django.contrib.contenttypes.models import ContentType -from django.utils.safestring import mark_safe from django.utils.encoding import force_text -from django.core.exceptions import ImproperlyConfigured - +from django.utils.safestring import mark_safe from wagtail.wagtailadmin.edit_handlers import BaseChooserPanel -from wagtail.wagtailcore.utils import resolve_model_string + from .widgets import AdminPollChooser @@ -13,36 +10,18 @@ class BasePollChooserPanel(BaseChooserPanel): object_type_name = 'item' _target_model = None - _target_content_type = None @classmethod def widget_overrides(cls): - return {cls.field_name: AdminPollChooser( - content_type=cls.target_content_type(), snippet_type_name=cls.get_snippet_type_name())} + return {cls.field_name: AdminPollChooser(model=cls.target_model())} @classmethod def target_model(cls): if cls._target_model is None: - if cls.snippet_type: - try: - cls._target_model = resolve_model_string(cls.snippet_type) - except LookupError: - raise ImproperlyConfigured("{0}.snippet_type must be of the form 'app_label.model_name', given {1!r}".format( - cls.__name__, cls.snippet_type)) - except ValueError: - raise ImproperlyConfigured("{0}.snippet_type refers to model {1!r} that has not been installed".format( - cls.__name__, cls.snippet_type)) - else: - cls._target_model = cls.model._meta.get_field(cls.field_name).rel.to + cls._target_model = cls.model._meta.get_field(cls.field_name).rel.model return cls._target_model - @classmethod - def target_content_type(cls): - if cls._target_content_type is None: - cls._target_content_type = ContentType.objects.get_for_model(cls.target_model()) - return cls._target_content_type - def render_as_field(self): instance_obj = self.get_chosen_item() return mark_safe(render_to_string(self.field_template, {