コード例 #1
0
ファイル: editor.py プロジェクト: SableWalnut/wagtailnews
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)
コード例 #2
0
ファイル: snippets.py プロジェクト: Marus/wagtail
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        if hasattr(model, 'tabs'):
            tabs = []
            for tabdef in model.tabs:
                panels = None
                name = None
                classes = ''
                if len(tabdef) == 2:
                    name, panels = tabdef
                elif len(tabdef) == 3:
                    name, panels, classes = tabdef
                else:
                    continue
                tabs.append(ObjectList(panels, heading=name,
                                       classname=classes))

            SNIPPET_EDIT_HANDLERS[model] = TabbedInterface(tabs)
        else:
            panels = extract_panel_definitions_from_model_class(model)
            edit_handler = ObjectList(panels)

            SNIPPET_EDIT_HANDLERS[model] = edit_handler

    return SNIPPET_EDIT_HANDLERS[model]
コード例 #3
0
ファイル: crud.py プロジェクト: MariusCC/wagtailplus
    def get_edit_handler_class(self):
        """
        Returns edit handler class for view model.

        :rtype: class.
        """
        # Custom class that skips adding missing fields, as we may want to
        # limit the number of fields presented to the user.
        class BaseChooserObjectList(BaseObjectList):
            def render_missing_fields(self):
                return ''
    
        def ChooserObjectList(children):
            return type('_ChooserObjectList', (BaseChooserObjectList,), {
                'children': children,
            })
    
        if hasattr(self.model, 'get_edit_handler'):
            handler_class = self.model.get_edit_handler()
        else:
            handler_class = ChooserObjectList(
                extract_panel_definitions_from_model_class(self.model)
            )

        # Return the edit handler class.
        return handler_class
コード例 #4
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), 4)
     #print repr(result)
     self.assertTrue(
         any([isinstance(panel, ImageChooserPanel) for panel in result]))
コード例 #5
0
    def get_edit_handler_class(self):
        """
        Returns edit handler class for view model.

        :rtype: class.
        """

        # Custom class that skips adding missing fields, as we may want to
        # limit the number of fields presented to the user.
        class BaseChooserObjectList(BaseObjectList):
            def render_missing_fields(self):
                return ''

        def ChooserObjectList(children):
            return type('_ChooserObjectList', (BaseChooserObjectList, ), {
                'children': children,
            })

        if hasattr(self.model, 'get_edit_handler'):
            handler_class = self.model.get_edit_handler()
        else:
            handler_class = ChooserObjectList(
                extract_panel_definitions_from_model_class(self.model))

        # Return the edit handler class.
        return handler_class
コード例 #6
0
ファイル: edit_handlers.py プロジェクト: taroved/fk
 def get_panel_definitions(cls):
     # Look for a panels definition in the InlinePanel declaration
     if cls.panels is not None:
         return cls.panels
     # Failing that, get it from the model
     else:
         return extract_panel_definitions_from_model_class(cls.related.model, exclude=[cls.related.field.name])
コード例 #7
0
ファイル: views.py プロジェクト: potatolondon/wagtail-gae
 def get_edit_handler_class(self):
     if hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     else:
         panels = extract_panel_definitions_from_model_class(self.model)
         edit_handler = ObjectList(panels)
     return edit_handler.bind_to_model(self.model)
コード例 #8
0
 def get_edit_handler_class(self):
     if hasattr(self.model, 'edit_handler'):
         edit_handler = self.model.edit_handler
     else:
         panels = extract_panel_definitions_from_model_class(self.model)
         edit_handler = ObjectList(panels)
     return edit_handler.bind_to_model(self.model)
コード例 #9
0
def get_category_edit_handler(model):
    if model not in CATEGORY_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model, ['site'])
        edit_handler = ObjectList(panels)

        CATEGORY_EDIT_HANDLERS[model] = edit_handler

    return CATEGORY_EDIT_HANDLERS[model]
コード例 #10
0
ファイル: views.py プロジェクト: click-ripple/revolv
def get_setting_edit_handler(model):
    if model not in SETTING_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model, ['site'])
        edit_handler = ObjectList(panels).bind_to_model(model)

        SETTING_EDIT_HANDLERS[model] = edit_handler

    return SETTING_EDIT_HANDLERS[model]
コード例 #11
0
def get_category_edit_handler(model):
    if model not in CATEGORY_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model, ['site'])
        edit_handler = ObjectList(panels)

        CATEGORY_EDIT_HANDLERS[model] = edit_handler

    return CATEGORY_EDIT_HANDLERS[model]
コード例 #12
0
ファイル: snippets.py プロジェクト: lagelalegal/wagtail
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model)
        edit_handler = ObjectList(panels).bind_to_model(model)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler

    return SNIPPET_EDIT_HANDLERS[model]
コード例 #13
0
def get_setting_edit_handler(model):
    if model not in SETTING_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model, ['site'])
        edit_handler = ObjectList(panels)

        SETTING_EDIT_HANDLERS[model] = edit_handler

    return SETTING_EDIT_HANDLERS[model]
コード例 #14
0
ファイル: edit_handlers.py プロジェクト: taroved/fk
 def get_panel_definitions(cls, lang=None):
     # Look for a panels definition in the InlinePanel declaration
     panels = getattr(cls, 'panels' if not lang else 'panels_' + lang)
     if panels is not None:
         return panels
     # Failing that, get it from the model
     else:
         return extract_panel_definitions_from_model_class(cls.related.model, exclude=[cls.related.field.name])
コード例 #15
0
ファイル: snippets.py プロジェクト: niceguydave/wagtail
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        panels = extract_panel_definitions_from_model_class(model)
        edit_handler = ObjectList(panels).bind_to_model(model)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler

    return SNIPPET_EDIT_HANDLERS[model]
コード例 #16
0
ファイル: views.py プロジェクト: kapito/wagtail
 def get_edit_handler_class(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)
コード例 #17
0
ファイル: views.py プロジェクト: trumpet2012/wagtail
 def get_edit_handler_class(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)
コード例 #18
0
ファイル: snippets.py プロジェクト: vlprans/wagtail
def get_snippet_edit_handler(model):
    if model not in SNIPPET_EDIT_HANDLERS:
        edit_handler = None
        try:
            edit_handler = model.get_edit_handler()
        except AttributeError:
            panels = extract_panel_definitions_from_model_class(model)
            edit_handler = ObjectList(panels)

        SNIPPET_EDIT_HANDLERS[model] = edit_handler

    return SNIPPET_EDIT_HANDLERS[model]
コード例 #19
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]
コード例 #20
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
        ]))
コード例 #21
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
        ]))
コード例 #22
0
def get_edit_handler(model):
    panels = extract_panel_definitions_from_model_class(model, ['site'])
    return ObjectList(panels).bind_to_model(model)
コード例 #23
0
ファイル: editor.py プロジェクト: reshimahendra/wagtailpolls
def get_poll_edit_handler(Poll):
    panels = extract_panel_definitions_from_model_class(Poll)
    EditHandler = ObjectList(panels).bind_to_model(Poll)
    return EditHandler
コード例 #24
0
def panel_perms(Job, request):
    panels = extract_panel_definitions_from_model_class(
        Job, exclude=['jobindex'])
    EditHandler = ObjectList(panels).bind_to_model(Job)
    return EditHandler
コード例 #25
0
ファイル: editor.py プロジェクト: huxley/wagtailinvoices
def get_invoice_edit_handler(Invoice):
    panels = extract_panel_definitions_from_model_class(
        Invoice, exclude=['invoiceindex'])
    EditHandler = ObjectList(panels).bind_to_model(Invoice)
    return EditHandler
コード例 #26
0
ファイル: views.py プロジェクト: springload/wagtailmodeladmin
 def get_edit_handler_class(self):
     panels = extract_panel_definitions_from_model_class(self.model)
     return ObjectList(panels).bind_to_model(self.model)
コード例 #27
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), 4)
     self.assertTrue(any([isinstance(panel, ImageChooserPanel) for panel in result]))
コード例 #28
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')
コード例 #29
0
ファイル: test_edit_handlers.py プロジェクト: 0b3r/wagtail
 def test_extracted_objects_are_panels(self):
     panels = extract_panel_definitions_from_model_class(self.FakePage)
     for panel in panels:
         self.assertTrue(issubclass(panel, BaseFieldPanel))
コード例 #30
0
ファイル: test_edit_handlers.py プロジェクト: 0b3r/wagtail
 def test_can_extract_panels(self):
     mock = MagicMock()
     mock.panels = 'foo'
     result = extract_panel_definitions_from_model_class(mock)
     self.assertEqual(result, 'foo')
コード例 #31
0
 def test_extracted_objects_are_panels(self):
     panels = extract_panel_definitions_from_model_class(Page)
     for panel in panels:
         self.assertTrue(issubclass(panel, BaseFieldPanel))
コード例 #32
0
ファイル: editor.py プロジェクト: huxley/wagtailinvoices
def get_invoice_edit_handler(Invoice):
    panels = extract_panel_definitions_from_model_class(
        Invoice, exclude=['invoiceindex'])
    EditHandler = ObjectList(panels).bind_to_model(Invoice)
    return EditHandler
コード例 #33
0
ファイル: editor.py プロジェクト: takeflight/wagtailpolls
def get_poll_edit_handler(Poll):
    panels = extract_panel_definitions_from_model_class(Poll)
    EditHandler = ObjectList(panels).bind_to_model(Poll)
    return EditHandler
コード例 #34
0
ファイル: views.py プロジェクト: tomdyson/wagtailmodeladmin
 def get_edit_handler_class(self):
     panels = extract_panel_definitions_from_model_class(self.model)
     return ObjectList(panels).bind_to_model(self.model)
コード例 #35
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')
コード例 #36
0
 def test_can_extract_panels(self):
     mock = MagicMock()
     mock.panels = 'foo'
     result = extract_panel_definitions_from_model_class(mock)
     self.assertEqual(result, 'foo')
コード例 #37
0
ファイル: views.py プロジェクト: emg36/wagtail
def get_setting_edit_handler(model):
    panels = extract_panel_definitions_from_model_class(model, ['site'])
    return ObjectList(panels).bind_to_model(model)
コード例 #38
0
ファイル: views.py プロジェクト: chrxr/wagtail
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)