2016-07-01 3 views
2

Я ищу способ автоматически не показывать панель инструментов CMS (версия 3.3.0), когда «персонал-пользователь» журналы в.Джанго CMS не показывать панель инструментов на входе

Панель должна только активироваться, когда ?edit находится в URL-адресе.
documentation упоминает опцию CMS_TOOLBAR_HIDE, но я не вижу никаких эффектов при включении. Также описание:

«Если True, панель инструментов скрыта на страницах из django CMS».

кажется не совсем ясно мне ...

Любые идеи?

+0

В нашем случае, при входе в систему с пользователем персонала панель инструментов скрыта, за исключением кнопки переключения в верхнем правом углу. Вы также хотите скрыть эту кнопку переключения или ваша проблема в том, что панель инструментов действительно полностью видна, а кнопка переключения в порядке? – Risadinha

ответ

2

Если вы добавите ?toolbar_off в URL-адрес, панель инструментов полностью исчезнет (кнопка переключения). ?edit снова включается.

Чтобы автоматически отключить его:

(A) Вы бы могли бы добавить что-то вроде промежуточного слоя или повесьте в цепи входа и добавьте параметр там.

(B) Вы можете подкласс/продлить CMSToolbar переопределять следующее поведение по умолчанию:

def init_toolbar(self, request): 
    self.request = request 
    self.is_staff = self.request.user.is_staff 
    self.edit_mode = self.is_staff and self.request.session.get('cms_edit', False) 
    self.show_toolbar = self.is_staff or self.request.session.get('cms_edit', False) 
    if self.request.session.get('cms_toolbar_disabled', False): 
     self.show_toolbar = False 

Особенно последние строки будут должны быть изменены, чтобы использовать значение по умолчанию True:

if self.request.session.get('cms_toolbar_disabled', True): 
     self.show_toolbar = False 

 Смежные вопросы

  • Нет связанных вопросов^_^