Трясогузка: Возможен ли кастомный wagtailadmin / home. html? - PullRequest
1 голос
/ 28 мая 2020

У меня есть мини-приложение, в котором пользователи одного типа имеют доступ / права только на просмотр в интерфейсе администратора трясогузки. Эти пользователи могут проверять модели, которые я зарегистрировал с modeladmin. Прямо сейчас, если такой пользователь входит в систему, он видит пустую страницу (кроме меню), то есть никаких последних действий или чего-то подобного для них. Имеет смысл, поскольку у них нет прав администратора. Но я бы хотел избежать пустой страницы и отображать для них некоторые настраиваемые html.

Я знаю о регистрации настраиваемого шаблона просмотра / просмотра индекса в wagtail_hooks.py, установив атрибут [inspect | index]_template_name, но это на уровне модели.

Можно ли использовать собственный шаблон вместо wagtailadmin/home.html?

РЕДАКТИРОВАТЬ

docs показывают способы редактирования некоторых частей области администрирования, таких как брендинг или приветственное сообщение. Но не для основного контента.

РЕДАКТИРОВАТЬ 2

Чтобы опираться на ответ @gasmans. Если вам нужен объект запроса, вы можете создать такую ​​панель

# wagtail_hooks.py
class WelcomePanel:
    order = 50

    def __init__(self, request):
        self.request = request
        self.logged_in_user = request.user.username

    def render(self):
        return render_to_string('wagtailadmin/home/my_message.html', {
            'logged_in_user': self.logged_in_user,
        }, request=self.request)

# simply pass the 'request' to the panel
@hooks.register('construct_homepage_panels')
def add_another_welcome_panel(request, panels):
    panels.append(WelcomePanel(request))

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Стандартный способ добавления новых элементов на главную страницу администратора Wagtail - это construct_homepage_panels hook: https://docs.wagtail.io/en/stable/reference/hooks.html#construct -homepage-panel

Переопределение шаблона домашней страницы также является вариантом, но он менее стабилен - макет или содержимое домашней страницы (и, следовательно, переданные ей переменные) могут измениться в будущих выпусках Wagtail.

1 голос
/ 28 мая 2020

Я понял.

Создайте файл шаблона dashboard/templates/wagtailadmin/home.html и скопируйте все html из исходного шаблона Wagtails. Затем добавьте свой собственный контент.

{% extends "wagtailadmin/home.html" %}
{% load wagtailadmin_tags i18n %}
{% block titletag %}{% trans "Dashboard" %}{% endblock %}
{% block bodyclass %}homepage{% endblock %}

{% block content %}
<header class="merged nice-padding">
    <div class="row row-flush">
        <div class="col1">
            <div class="avatar"><img src="{% avatar_url user %}" alt="" /></div>
        </div>
        <div class="col9">
            <h1>{% block branding_welcome %}{% blocktrans %}Welcome to the {{ site_name }} Wagtail CMS{% endblocktrans %}{% endblock %}</h1>
            <div class="user-name">{{ user.get_full_name|default:user.get_username }}</div>
        </div>
    </div>
</header>

{% if panels %}
    {% for panel in panels %}
        {{ panel.render }}
    {% endfor %}
{% else %}
    <p>{% trans "This is your dashboard on which helpful information about content you've created will be displayed." %}</p>
{% endif %}

<!-- Here comes the custom code  -->
<h1>Custom content</h1>

{% endblock %}
...