The Toolbar¶
All methods taking a side argument expect either
cms.constants.LEFT or cms.constants.RIGHT for that
argument.
Methods accepting the position argument can insert items at a specific
position. This can be either None to insert at the end, an integer
index at which to insert the item, a cms.toolbar.items.ItemSearchResult to insert
it before that search result or a cms.toolbar.items.BaseItem instance to insert
it before that item.
cms.toolbar.toolbar¶
-
class
cms.toolbar.toolbar.CMSToolbar¶ The toolbar class providing a Python API to manipulate the toolbar. Note that some internal attributes are not documented here.
All methods taking a
positionargument expect eithercms.constants.LEFTorcms.constants.RIGHTfor that argument.This class inherits
cms.toolbar.items.ToolbarMixin, so please check that reference as well.-
is_staff¶ Whether the current user is a staff user or not.
-
edit_mode_active¶ Whether the toolbar is in edit mode.
-
build_mode¶ Whether the toolbar is in build mode.
-
show_toolbar¶ Whether the toolbar should be shown or not.
-
csrf_token¶ The CSRF token of this request
-
toolbar_language¶ Language used by the toolbar.
-
watch_models¶ A list of models this toolbar works on; used for redirection after editing (Detecting URL changes).
-
add_item(item, position=None)¶ Low level API to add items.
Adds an item, which must be an instance of
cms.toolbar.items.BaseItem, to the toolbar.This method should only be used for custom item classes, as all built-in item classes have higher level APIs.
Read above for information on
position.
If a menu with
keyalready exists, this method will return that menu. Otherwise it will create a menu for thatkeywith the givenverbose_nameonsideatpositionand return it.
If a menu with
keyalready exists, this method will return that menu.
Adds a button to the toolbar.
extra_wrapper_classeswill be applied to the wrappingdivwhileextra_classesare applied to the<a>.
Adds an (empty) button list to the toolbar and returns it. See
cms.toolbar.items.ButtonListfor further information.
-
cms.toolbar.items¶
Important
Overlay and sideframe
Then django CMS sideframe has been replaced with an overlay mechanism. The API still refers
to the sideframe, because it is invoked in the same way, and what has changed is merely the
behaviour in the user’s browser.
In other words, sideframe and the overlay refer to different versions of the same thing.
-
class
cms.toolbar.items.ItemSearchResult¶ Used for the find APIs in
ToolbarMixin. Supports addition and subtraction of numbers. Can be cast to an integer.-
item¶ The item found.
-
index¶ The index of the item.
-
-
class
cms.toolbar.items.ToolbarMixin¶ Provides APIs shared between
cms.toolbar.toolbar.CMSToolbarandMenu.The
activeanddisabledflags taken by all methods of this class specify the state of the item added.extra_classesshould be eitherNoneor a list of class names as strings.-
REFRESH_PAGE¶ Constant to be used with
on_closeto refresh the current page when the frame is closed.
-
LEFT¶ Constant to be used with
side.
-
RIGHT¶ Constant to be used with
side.
-
get_item_count()¶ Returns the number of items in the toolbar or menu.
-
get_alphabetical_insert_position(self, new_menu_name, item_type, default=0)¶
-
add_item(item, position=None)¶ Low level API to add items, adds the
itemto the toolbar or menu and makes it searchable.itemmust be an instance ofBaseItem. Read above for information about thepositionargument.
-
remove_item(item)¶ Removes
itemfrom the toolbar or menu. If the item can’t be found, aKeyErroris raised.
-
find_items(item_type, **attributes)¶ Returns a list of
ItemSearchResultobjects matching all items ofitem_type, which must be a sub-class ofBaseItem, where all attributes inattributesmatch.
-
find_first(item_type, **attributes)¶ Returns the first
ItemSearchResultthat matches the search orNone. The search strategy is the same as infind_items(). Since positional insertion allowsNone, it’s safe to use the return value of this method as the position argument to insertion APIs.
-
add_sideframe_item(name, url, active=False, disabled=False, extra_classes=None, on_close=None, side=LEFT, position=None)¶ Adds an item which opens
urlin the sideframe and returns it.on_closecan be set toNoneto do nothing when the sideframe closes,REFRESH_PAGEto refresh the page when it closes or a URL to open once it closes.
-
add_modal_item(name, url, active=False, disabled=False, extra_classes=None, on_close=REFRESH_PAGE, side=LEFT, position=None)¶ The same as
add_sideframe_item(), but opens theurlin a modal dialog instead of the sideframe.on_closecan be set toNoneto do nothing when the side modal closes,REFRESH_PAGEto refresh the page when it closes or a URL to open once it closes.Note: The default value for
on_closeis different inadd_sideframe_item()then inadd_modal_item()
-
add_link_item(name, url, active=False, disabled=False, extra_classes=None, side=LEFT, position=None)¶ Adds an item that simply opens
urland returns it.
-
add_ajax_item(name, action, active=False, disabled=False, extra_classes=None, data=None, question=None, side=LEFT, position=None)¶ Adds an item which sends a POST request to
actionwithdata.datashould beNoneor a dictionary, the CSRF token will automatically be added to it.If
questionis set to a string, it will be asked before the request is sent to confirm the user wants to complete this action.
-
-
class
cms.toolbar.items.BaseItem(position)¶ Base item class.
-
template¶ Must be set by sub-classes and point to a Django template
-
side¶ Must be either
cms.constants.LEFTorcms.constants.RIGHT.
-
render()¶ Renders the item and returns it as a string. By default calls
get_context()and renderstemplatewith the context returned.
-
get_context()¶ Returns the context (as dictionary) for this item.
-
-
class
cms.toolbar.items.Menu(name, csrf_token, side=LEFT, position=None)¶ The menu item class. Inherits
ToolbarMixinand provides the APIs documented on it.The
csrf_tokenmust be set as this class provides high level APIs to add items to it.The same as
cms.toolbar.toolbar.CMSToolbar.get_or_create_menu()but adds the menu as a sub menu and returns aSubMenu.
-
add_break(identifier=None, position=None)¶ Adds a visual break in the menu, useful for grouping items, and returns it.
identifiermay be used to make this item searchable.
-
class
cms.toolbar.items.SubMenu(name, csrf_token, side=LEFT, position=None)¶ Same as
Menubut without theMenu.get_or_create_menu()method.
-
class
cms.toolbar.items.LinkItem(name, url, active=False, disabled=False, extra_classes=None, side=LEFT)¶ Simple link item.
-
class
cms.toolbar.items.SideframeItem(name, url, active=False, disabled=False, extra_classes=None, on_close=None, side=LEFT)¶ Item that opens
urlin sideframe.
-
class
cms.toolbar.items.AjaxItem(name, action, csrf_token, data=None, active=False, disabled=False, extra_classes=None, question=None, side=LEFT)¶ An item which posts
datatoaction.
-
class
cms.toolbar.items.ModalItem(name, url, active=False, disabled=False, extra_classes=None, on_close=None, side=LEFT)¶ Item that opens
urlin the modal.
-
class
cms.toolbar.items.Break(identifier=None)¶ A visual break for menus.
identifiermay be provided to make this item searchable. Since breaks can only be within menus, they have nosideattribute.
-
class
cms.toolbar.items.ButtonList(identifier=None, extra_classes=None, side=LEFT)¶ A list of one or more buttons.
The
identifiermay be provided to make this item searchable.Adds a
Buttonto the list of buttons and returns it.
-
class
cms.toolbar.items.Button(name, url, active=False, disabled=False, extra_classes=None)¶ A button to be used with
ButtonList. Opensurlwhen selected.