def _patch_other_models(self, model): translation_registered_fields = translator.get_options_for_model( model).fields 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) panels = filter( lambda field: field.field_name not in translation_registered_fields, panels) edit_handler = ObjectList(panels) if VERSION < (2, 5): SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to_model( model) else: SNIPPET_EDIT_HANDLERS[model] = edit_handler.bind_to( model=model) # OVERRIDE FIELDS model_fields = model._meta.get_fields() for field in model_fields: if isinstance(field, StreamField ) and field.name in translation_registered_fields: descriptor = getattr(model, field.name) _patch_stream_field_meaningful_value(descriptor)
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_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]
def get_edit_handler(self): if hasattr(self.model, 'edit_handler'): edit_handler = self.model.edit_handler elif hasattr(self.model, 'panels'): edit_handler = ObjectList(self.model.panels) else: edit_handler = TabbedInterface([ ObjectList(self.model.content_panels, heading=_("Content")), ObjectList(self.model.settings_panels, heading=_("Settings"), classname="settings"), ]) return edit_handler.bind_to_model(self.model)
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: 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 get_edit_handler_class(self): from .models import AbstractMainMenu, AbstractFlatMenu if hasattr(self.model, 'edit_handler'): edit_handler = self.model.edit_handler elif (( issubclass(self.model, AbstractMainMenu) and self.model.panels is not AbstractMainMenu.panels ) or ( issubclass(self.model, AbstractFlatMenu) and self.model.panels is not AbstractFlatMenu.panels )): edit_handler = ObjectList(self.model.panels) else: edit_handler = TabbedInterface([ ObjectList(self.model.content_panels, heading=_("Content")), ObjectList(self.model.settings_panels, heading=_("Settings"), classname="settings"), ]) return edit_handler.bind_to_model(self.model)