コード例 #1
0
ファイル: signal_handlers.py プロジェクト: tnir/wagtail
def unregister_signal_handlers():
    Image = get_image_model()
    Document = get_document_model()

    for model in get_page_models():
        page_published.disconnect(purge_page_from_cache, sender=model)
        page_unpublished.disconnect(purge_page_from_cache, sender=model)

    post_save.disconnect(purge_image_from_cache, sender=Image)
    post_delete.disconnect(purge_image_from_cache, sender=Image)
    post_save.disconnect(purge_document_from_cache, sender=Document)
    post_delete.disconnect(purge_document_from_cache, sender=Document)
コード例 #2
0
ファイル: utils.py プロジェクト: tomkins/wagtail
def get_form_types():
    global _FORM_CONTENT_TYPES
    if _FORM_CONTENT_TYPES is None:
        from wagtail.contrib.forms.models import AbstractForm

        form_models = [
            model for model in get_page_models() if issubclass(model, AbstractForm)
        ]

        _FORM_CONTENT_TYPES = list(
            ContentType.objects.get_for_models(*form_models).values()
        )
    return _FORM_CONTENT_TYPES
コード例 #3
0
ファイル: checks.py プロジェクト: tomkins/wagtail
def inline_panel_model_panels_check(app_configs, **kwargs):
    from wagtail.models import get_page_models

    errors = []
    page_models = get_page_models()

    for cls in page_models:
        errors.extend(check_panels_in_model(cls))

    # filter out duplicate errors found for the same model
    unique_errors = []
    for error in errors:
        if error.msg not in [e.msg for e in unique_errors]:
            unique_errors.append(error)
    return unique_errors
コード例 #4
0
    def _clear_edit_handler_cache(self):
        """
        These tests generate new panel definitions with different settings. The
        cached edit handlers should be cleared before and after each test run
        to ensure that no changes leak through to other tests.
        """
        from wagtail.test.testapp.models import DefaultRichBlockFieldPage

        rich_text_block = (DefaultRichBlockFieldPage.get_edit_handler(
        ).get_form_class().base_fields["body"].block.child_blocks["rich_text"])
        if hasattr(rich_text_block, "field"):
            del rich_text_block.field

        for page_class in get_page_models():
            page_class.get_edit_handler.cache_clear()
コード例 #5
0
ファイル: checks.py プロジェクト: tomkins/wagtail
def base_form_class_check(app_configs, **kwargs):
    from wagtail.admin.forms import WagtailAdminPageForm
    from wagtail.models import get_page_models

    errors = []

    for cls in get_page_models():
        if not issubclass(cls.base_form_class, WagtailAdminPageForm):
            errors.append(
                Error(
                    "{}.base_form_class does not extend WagtailAdminPageForm".
                    format(cls.__name__),
                    hint="Ensure that {}.{} extends WagtailAdminPageForm".
                    format(cls.base_form_class.__module__,
                           cls.base_form_class.__name__),
                    obj=cls,
                    id="wagtailadmin.E001",
                ))

    return errors
コード例 #6
0
ファイル: checks.py プロジェクト: tomkins/wagtail
def get_form_class_check(app_configs, **kwargs):
    from wagtail.admin.forms import WagtailAdminPageForm
    from wagtail.models import get_page_models

    errors = []

    for cls in get_page_models():
        edit_handler = cls.get_edit_handler()
        if not issubclass(edit_handler.get_form_class(), WagtailAdminPageForm):
            errors.append(
                Error(
                    "{cls}.get_edit_handler().get_form_class() does not extend WagtailAdminPageForm"
                    .format(cls=cls.__name__),
                    hint=
                    "Ensure that the panel definition for {cls} creates a subclass of WagtailAdminPageForm"
                    .format(cls=cls.__name__),
                    obj=cls,
                    id="wagtailadmin.E002",
                ))

    return errors
コード例 #7
0
ファイル: aging_pages.py プロジェクト: tnir/wagtail
def get_content_types_for_filter():
    models = [model.__name__.lower() for model in get_page_models()]
    return ContentType.objects.filter(model__in=models).order_by("model")