Exemple #1
0
def get_newsitem_edit_handler(NewsItem):
    if hasattr(NewsItem, 'edit_handler'):
        return NewsItem.edit_handler.bind_to_model(NewsItem)

    panels = extract_panel_definitions_from_model_class(
        NewsItem, exclude=['newsindex'])
    return ObjectList(panels).bind_to_model(NewsItem)
Exemple #2
0
def get_setting_edit_handler(model):
    if hasattr(model, 'edit_handler'):
        edit_handler = model.edit_handler
    else:
        panels = extract_panel_definitions_from_model_class(model, ['site'])
        edit_handler = ObjectList(panels)
    return edit_handler.bind_to(model=model)
def get_edit_handler(model):
    panels = extract_panel_definitions_from_model_class(model, ['site'])

    if utils.is_wagtail_version_more_than_equal_to_2_5():
        return ObjectList(panels).bind_to(model=model)
    else:
        return ObjectList(panels).bind_to_model(model)
Exemple #4
0
 def get_edit_handler(self):
     if hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     else:
         fields_to_exclude = self.model_admin.get_form_fields_exclude(request=self.request)
         panels = extract_panel_definitions_from_model_class(self.model, exclude=fields_to_exclude)
         edit_handler = ObjectList(panels)
     return edit_handler.bind_to_model(self.model)
def get_locale_component_edit_handler(model):
    if hasattr(model, "edit_handler"):
        # use the edit handler specified on the class
        return model.edit_handler
    else:
        panels = extract_panel_definitions_from_model_class(model,
                                                            exclude=["locale"])
        return ObjectList(panels)
Exemple #6
0
 def get_edit_handler(self):
     if hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     else:
         fields_to_exclude = self.model_admin.get_form_fields_exclude(request=self.request)
         panels = extract_panel_definitions_from_model_class(self.model, exclude=fields_to_exclude)
         edit_handler = ObjectList(panels)
     return edit_handler.bind_to(model=self.model)
Exemple #7
0
def get_poll_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        if hasattr(model, 'edit_handler'):
            edit_handler = model.edit_handler
        else:
            panels = extract_panel_definitions_from_model_class(model)
            edit_handler = ObjectList(panels)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to(model=model)
    return SNIPPET_EDIT_HANDLERS[model]
Exemple #8
0
def get_translation_component_edit_handler(model):
    if hasattr(model, "edit_handler"):
        # use the edit handler specified on the class
        return model.edit_handler
    else:
        panels = extract_panel_definitions_from_model_class(model)
        return ObjectList(
            panels,
            base_form_class=getattr(model, "base_form_class",
                                    WagtailAdminModelForm),
        )
Exemple #9
0
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        if hasattr(model, 'edit_handler'):
            # use the edit handler specified on the page class
            edit_handler = model.edit_handler
        else:
            panels = extract_panel_definitions_from_model_class(model)
            edit_handler = ObjectList(panels)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to(model=model)

    return SNIPPET_EDIT_HANDLERS[model]
Exemple #10
0
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        if hasattr(model, 'edit_handler'):
            # use the edit handler specified on the page class
            edit_handler = model.edit_handler
        else:
            panels = extract_panel_definitions_from_model_class(model)
            edit_handler = ObjectList(panels)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to_model(model)

    return SNIPPET_EDIT_HANDLERS[model]
Exemple #11
0
    def test_can_build_panel_list(self):
        # EventPage has no 'panels' definition, so one should be derived from the field list
        panels = extract_panel_definitions_from_model_class(EventPage)

        self.assertTrue(any([
            isinstance(panel, FieldPanel) and panel.field_name == 'date_from'
            for panel in panels
        ]))

        # returned panel types should respect modelfield.get_panel() - used on RichTextField
        self.assertTrue(any([
            isinstance(panel, RichTextFieldPanel) and panel.field_name == 'body'
            for panel in panels
        ]))
    def test_can_build_panel_list(self):
        # EventPage has no 'panels' definition, so one should be derived from the field list
        panels = extract_panel_definitions_from_model_class(EventPage)

        self.assertTrue(any([
            isinstance(panel, FieldPanel) and panel.field_name == 'date_from'
            for panel in panels
        ]))

        # returned panel types should respect modelfield.get_panel() - used on RichTextField
        self.assertTrue(any([
            isinstance(panel, RichTextFieldPanel) and panel.field_name == 'body'
            for panel in panels
        ]))
    def _patch_other_models(self, model):
        if hasattr(model, 'edit_handler'):
            edit_handler = model.edit_handler
            for tab in edit_handler:
                tab.children = self._patch_panels(tab.children)
        elif hasattr(model, 'panels'):
            model.panels = self._patch_panels(model.panels)
        else:
            panels = extract_panel_definitions_from_model_class(model)
            translation_registered_fields = translator.get_options_for_model(model).fields
            panels = filter(lambda field: field.field_name not in translation_registered_fields, panels)
            edit_handler = ObjectList(panels)

            SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to_model(model)
    def _patch_other_models(self, model):
        if hasattr(model, 'edit_handler'):
            edit_handler = model.edit_handler
            for tab in edit_handler.children:
                tab.children = self._patch_panels(tab.children)
        elif hasattr(model, 'panels'):
            model.panels = self._patch_panels(model.panels)
        else:
            panels = extract_panel_definitions_from_model_class(model)
            translation_registered_fields = translator.get_options_for_model(
                model).fields
            panels = filter(
                lambda field: field.field_name not in translation_registered_fields, panels)
            edit_handler = ObjectList(panels)

            SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to(model=model)
Exemple #15
0
 def get_edit_handler(self, instance, request):
     """
     Returns the appropriate edit_handler for this modeladmin class.
     edit_handlers can be defined either on the model itself or on the
     modeladmin (as property edit_handler or panels). Falls back to
     extracting panel / edit handler definitions from the model class.
     """
     if hasattr(self, 'edit_handler'):
         edit_handler = self.edit_handler
     elif hasattr(self, 'panels'):
         panels = self.panels
         edit_handler = ObjectList(panels)
     elif hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     elif hasattr(self.model, 'panels'):
         panels = self.model.panels
         edit_handler = ObjectList(panels)
     else:
         fields_to_exclude = self.get_form_fields_exclude(request=request)
         panels = extract_panel_definitions_from_model_class(self.model, exclude=fields_to_exclude)
         edit_handler = ObjectList(panels)
     return edit_handler
Exemple #16
0
 def get_edit_handler(self, instance, request):
     """
     Returns the appropriate edit_handler for this modeladmin class.
     edit_handlers can be defined either on the model itself or on the
     modeladmin (as property edit_handler or panels). Falls back to
     extracting panel / edit handler definitions from the model class.
     """
     if hasattr(self, 'edit_handler'):
         edit_handler = self.edit_handler
     elif hasattr(self, 'panels'):
         panels = self.panels
         edit_handler = ObjectList(panels)
     elif hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     elif hasattr(self.model, 'panels'):
         panels = self.model.panels
         edit_handler = ObjectList(panels)
     else:
         fields_to_exclude = self.get_form_fields_exclude(request=request)
         panels = extract_panel_definitions_from_model_class(self.model, exclude=fields_to_exclude)
         edit_handler = ObjectList(panels)
     return edit_handler
Exemple #17
0
 def test_exclude(self):
     panels = extract_panel_definitions_from_model_class(Site, exclude=['hostname'])
     for panel in panels:
         self.assertNotEqual(panel.field_name, 'hostname')
Exemple #18
0
 def test_can_extract_panel_property(self):
     # A class with a 'panels' property defined should return that list
     result = extract_panel_definitions_from_model_class(EventPageSpeaker)
     self.assertEqual(len(result), 5)
     self.assertTrue(any([isinstance(panel, ImageChooserPanel) for panel in result]))
def get_edit_handler(model):
    panels = extract_panel_definitions_from_model_class(model, ['site'])
    return ObjectList(panels).bind_to_model(model)
 def test_exclude_with_defined_panels(self):
     Site.panels = [FieldPanel('hostname')]
     panels = extract_panel_definitions_from_model_class(Site, exclude=['hostname'])
     self.assertEqual([], panels)
Exemple #21
0
def get_setting_edit_handler(model):
    if hasattr(model, 'edit_handler'):
        return model.edit_handler.bind_to_model(model)
    panels = extract_panel_definitions_from_model_class(model, ['site'])
    return ObjectList(panels).bind_to_model(model)
 def test_exclude_with_defined_panels(self):
     Site.panels = [FieldPanel('hostname')]
     panels = extract_panel_definitions_from_model_class(Site, exclude=['hostname'])
     self.assertEquals([], panels)
 def test_exclude(self):
     panels = extract_panel_definitions_from_model_class(Site, exclude=['hostname'])
     for panel in panels:
         self.assertNotEqual(panel.field_name, 'hostname')
Exemple #24
0
def get_poll_edit_handler(Poll):
    panels = extract_panel_definitions_from_model_class(Poll)
    EditHandler = ObjectList(panels).bind_to_model(Poll)
    return EditHandler
 def test_can_extract_panel_property(self):
     # A class with a 'panels' property defined should return that list
     result = extract_panel_definitions_from_model_class(EventPageSpeaker)
     self.assertEqual(len(result), 4)
     self.assertTrue(any([isinstance(panel, ImageChooserPanel) for panel in result]))
Exemple #26
0
def get_setting_edit_handler(model):
    if hasattr(model, 'edit_handler'):
        return model.edit_handler.bind_to_model(model)
    panels = extract_panel_definitions_from_model_class(model, ['site'])
    return ObjectList(panels).bind_to_model(model)