def get_menu_item_choices(page): if hasattr(page, 'get_index_url'): url = page.get_index_url() root = MenuItem.objects.get(parent=None) menu_items = MenuItem.objects.filter(url=url).order_by('level') # Return choices for the outermost menu item (menu item with the # lowest level - closest to root) if menu_items.count() > 0: return get_flat_tuples(menu_items[0], page.menu_item) # Return all menu items menu = Menu.objects.get(name=getattr(settings, 'MAIN_MENU_NAME', 'Main')) return get_parent_choices(menu)
def get_form(self, request, obj=None, **kwargs): Form = super(MenuItemAdmin, self).get_form(request, obj, **kwargs) class MyMenuItemForm(Form): def clean_named_url(self): data = self.cleaned_data.get('named_url') try: if data: urlresolvers.reverse(data) except urlresolvers.NoReverseMatch: raise forms.ValidationError(u'This is not a valid URL.') else: return data Form = MyMenuItemForm choices = get_parent_choices(self._menu, obj) Form.base_fields['parent'] = MenuItemChoiceField(choices=choices) return Form
def get_form(self, request, obj=None, **kwargs): form = super(MenuItemAdmin, self).get_form(request, obj, **kwargs) choices = get_parent_choices(self._menu, obj) form.base_fields['parent'] = MenuItemChoiceField(choices=choices) return form
def get_form(self, request, obj=None, **kwargs): form = super(MenuItemAdmin, self).get_form(request, obj, **kwargs) choices = get_parent_choices(self._menu, obj) form.base_fields['parent'] = MenuItemChoiceField(choices=choices) form.base_fields['group'].widget = TreeMenuRelatedFieldWidgetWrapper(form.base_fields['group'].widget, form.base_fields['group'].widget.rel, form.base_fields['group'].widget.admin_site) return form