Skip to content
Snippets Groups Projects
Verified Commit c2f8007d authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch 'master' into add-docs

parents 760de652 54dfff3a
No related branches found
No related tags found
1 merge request!34Add docs
Pipeline #49594 passed
......@@ -14,6 +14,13 @@ Added
* Open poster group menu entries in new tab.
Fixed
~~~~~
* Live documents table showed two "Actions" columns.
* Menu was not correctly re-generated after creating or editing poster groups
* Button for creation of live documents was there even if there weren't any live document types registered.
`2.0`_ - 2021-12-27
-------------------
......
......@@ -2,7 +2,6 @@ from typing import Any, Dict, List
from django.apps import apps
from django.urls import reverse
from django.utils.functional import lazy
from django.utils.translation import ugettext_lazy as _
......@@ -30,57 +29,59 @@ def _get_menu_entries() -> List[Dict[str, Any]]:
]
get_menu_entries_lazy = lazy(_get_menu_entries, list)
MENUS = {
"NAV_MENU_CORE": [
{
"name": _("Documents"),
"url": "#",
"icon": "open_in_browser",
"root": True,
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_poster_menu",
),
],
"submenu": [
{
"name": _("Manage posters"),
"url": "poster_index",
"icon": "file_upload",
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_posters_rule",
),
],
},
class MENUS:
def get(menu_name, default=None):
menus = {
"NAV_MENU_CORE": [
{
"name": _("Poster groups"),
"url": "poster_group_list",
"icon": "topic",
"name": _("Documents"),
"url": "#",
"icon": "open_in_browser",
"root": True,
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_postergroups_rule",
"resint.view_poster_menu",
),
],
},
{
"name": _("Live documents"),
"url": "live_documents",
"icon": "update",
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_livedocuments_rule",
),
"submenu": [
{
"name": _("Manage posters"),
"url": "poster_index",
"icon": "file_upload",
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_posters_rule",
),
],
},
{
"name": _("Poster groups"),
"url": "poster_group_list",
"icon": "topic",
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_postergroups_rule",
),
],
},
{
"name": _("Live documents"),
"url": "live_documents",
"icon": "update",
"validators": [
(
"aleksis.core.util.predicates.permission_validator",
"resint.view_livedocuments_rule",
),
],
},
],
},
],
}
]
+ _get_menu_entries(),
}
]
+ get_menu_entries_lazy(),
}
return menus.get(menu_name, default)
......@@ -19,14 +19,14 @@ class LiveDocumentTable(Table):
args=[A("id")],
text=_("Edit"),
attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}},
verbose_name=_("Actions"),
verbose_name=_("Edit"),
)
delete = LinkColumn(
"delete_live_document",
args=[A("id")],
text=_("Delete"),
attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}},
verbose_name=_("Actions"),
verbose_name=_("Delete"),
)
def render_document_name(self, value, record):
......
......@@ -9,21 +9,28 @@
{% block page_title %}{% blocktrans %}Live documents{% endblocktrans %}{% endblock %}
{% block content %}
<a class="btn green waves-effect waves-light dropdown-trigger" href="#" data-target="widget-dropdown">
<i class="material-icons left">add</i>
{% trans "Create live document" %}
</a>
{% if document_types %}
<a class="btn green waves-effect waves-light dropdown-trigger" href="#" data-target="widget-dropdown">
<i class="material-icons left">add</i>
{% trans "Create live document" %}
</a>
<ul id="widget-dropdown" class="dropdown-content">
{% for ct, model in widget_types %}
<li>
<a href="{% url 'create_live_document' ct.app_label ct.model %}">
{% verbose_name_object model as widget_name %}
{% blocktrans with name=widget_name %}Create {{ name }}{% endblocktrans %}
</a>
</li>
{% endfor %}
</ul>
<ul id="widget-dropdown" class="dropdown-content">
{% for ct, model in document_types %}
<li>
<a href="{% url 'create_live_document' ct.app_label ct.model %}">
{% verbose_name_object model as document_name %}
{% blocktrans with name=document_name %}Create {{ name }}{% endblocktrans %}
</a>
</li>
{% endfor %}
</ul>
{% else %}
<figure class="alert primary">
<i class="material-icons left">info</i>
{% trans "There is no app installed which registers any live document types." %}
</figure>
{% endif %}
{% render_table table %}
{% endblock %}
......@@ -160,7 +160,7 @@ class LiveDocumentListView(PermissionRequiredMixin, SingleTableView):
def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
context = super().get_context_data(**kwargs)
context["widget_types"] = [
context["document_types"] = [
(ContentType.objects.get_for_model(m, False), m) for m in LiveDocument.__subclasses__()
]
return context
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment