kopia lustrzana https://github.com/wagtail/wagtail
rodzic
46570c9884
commit
bfa0341e05
|
@ -1,3 +1,5 @@
|
|||
{% for button in buttons %}
|
||||
{% if button.show %}
|
||||
<li>{{ button|safe }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
|
|
@ -10,6 +10,7 @@ from django.forms.utils import flatatt
|
|||
from django.template.loader import render_to_string
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.formats import get_format
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from taggit.forms import TagWidget
|
||||
|
@ -191,6 +192,8 @@ class AdminPageChooser(AdminChooser):
|
|||
@python_2_unicode_compatible
|
||||
@total_ordering
|
||||
class Button(object):
|
||||
show = True
|
||||
|
||||
def __init__(self, label, url, classes=set(), attrs={}, priority=1000):
|
||||
self.label = label
|
||||
self.url = url
|
||||
|
@ -234,12 +237,13 @@ class BaseDropdownMenuButton(Button):
|
|||
def __init__(self, *args, **kwargs):
|
||||
super(BaseDropdownMenuButton, self).__init__(*args, url=None, **kwargs)
|
||||
|
||||
def get_buttons_in_dropdown(self):
|
||||
@cached_property
|
||||
def dropdown_buttons(self):
|
||||
raise NotImplementedError
|
||||
|
||||
def render(self):
|
||||
return render_to_string(self.template_name, {
|
||||
'buttons': self.get_buttons_in_dropdown(),
|
||||
'buttons': self.dropdown_buttons,
|
||||
'label': self.label,
|
||||
'title': self.attrs.get('title'),
|
||||
'is_parent': self.is_parent})
|
||||
|
@ -256,7 +260,12 @@ class ButtonWithDropdownFromHook(BaseDropdownMenuButton):
|
|||
|
||||
super(ButtonWithDropdownFromHook, self).__init__(label, **kwargs)
|
||||
|
||||
def get_buttons_in_dropdown(self):
|
||||
@property
|
||||
def show(self):
|
||||
return bool(self.dropdown_buttons)
|
||||
|
||||
@cached_property
|
||||
def dropdown_buttons(self):
|
||||
button_hooks = hooks.get_hooks(self.hook_name)
|
||||
return sorted(itertools.chain.from_iterable(
|
||||
hook(self.page, self.page_perms, self.is_parent)
|
||||
|
|
Ładowanie…
Reference in New Issue