Convert front page button selection to be dynamic
This commit is contained in:
@@ -9,6 +9,7 @@ from common.classes import ModelAttribute
|
||||
from common.utils import encapsulate, validate_path
|
||||
from dynamic_search.classes import SearchModel
|
||||
from events.permissions import PERMISSION_EVENTS_VIEW
|
||||
from main import FrontPageButton
|
||||
from main.api import register_maintenance_links
|
||||
from navigation.api import register_links, register_model_list_columns
|
||||
from navigation.links import link_spacer
|
||||
@@ -134,3 +135,6 @@ namespace.add_statistic(DocumentUsageStatistics(name='document_usage', label=_('
|
||||
APIEndPoint('documents')
|
||||
|
||||
ModelAttribute(Document, label=_('Label'), name='label', type_name='field')
|
||||
|
||||
FrontPageButton(link=document_list_recent)
|
||||
FrontPageButton(link=document_list)
|
||||
|
||||
@@ -37,8 +37,8 @@ def is_current_version(context):
|
||||
return context['object'].document.latest_version.timestamp == context['object'].timestamp
|
||||
|
||||
|
||||
document_list = {'text': _('All documents'), 'view': 'documents:document_list', 'famfam': 'page'}
|
||||
document_list_recent = {'text': _('Recent documents'), 'view': 'documents:document_list_recent', 'famfam': 'page'}
|
||||
document_list = {'text': _('All documents'), 'view': 'documents:document_list', 'famfam': 'page', 'icon': 'main/icons/page.png'}
|
||||
document_list_recent = {'text': _('Recent documents'), 'view': 'documents:document_list_recent', 'famfam': 'page', 'icon': 'main/icons/page.png'}
|
||||
document_preview = {'text': _('Preview'), 'view': 'documents:document_preview', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_content = {'text': _('Content'), 'view': 'documents:document_content', 'args': 'object.id', 'famfam': 'page_white_text', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_properties = {'text': _('Properties'), 'view': 'documents:document_properties', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
|
||||
@@ -7,6 +7,7 @@ from project_setup.api import register_setup
|
||||
from project_tools.api import register_tool
|
||||
|
||||
from .links import admin_site, maintenance_menu
|
||||
from .classes import FrontPageButton # NOQA
|
||||
|
||||
register_top_menu('home', link={'text': _('Home'), 'view': 'main:home', 'famfam': 'house'}, position=0)
|
||||
register_setup(admin_site)
|
||||
|
||||
10
mayan/apps/main/classes.py
Normal file
10
mayan/apps/main/classes.py
Normal file
@@ -0,0 +1,10 @@
|
||||
class FrontPageButton(object):
|
||||
_registry = []
|
||||
|
||||
@classmethod
|
||||
def get_all(cls):
|
||||
return cls._registry
|
||||
|
||||
def __init__(self, link):
|
||||
self.link = link
|
||||
self.__class__._registry.append(link)
|
||||
@@ -10,32 +10,11 @@
|
||||
|
||||
{% block content %}
|
||||
<div class="pure-g tc">
|
||||
<div class="pure-u-1-3">
|
||||
<a class="pure-button mayan-button-big" href="{% url 'sources:document_create_multiple' %}">
|
||||
<p>
|
||||
<img src="{% static 'main/icons/page_add.png' %}"><br>
|
||||
{% trans 'Upload documents' %}
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-3">
|
||||
<a class="pure-button mayan-button-big" href="{% url 'documents:document_list_recent' %}">
|
||||
<p>
|
||||
<img src="{% static 'main/icons/page.png' %}"><br>
|
||||
{% trans 'Recent Documents' %}
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-3">
|
||||
<a class="pure-button mayan-button-big" href="{% url 'documents:document_list' %}">
|
||||
<p>
|
||||
<img src="{% static 'main/icons/page.png' %}"><br>
|
||||
{% trans 'All Documents' %}
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
{% with 'navigation/large_button_link.html' as link_template %}
|
||||
{% with 8 as button_link_columns %}
|
||||
{% include 'generic_navigation.html' %}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
|
||||
<div class="pure-u-24-24">
|
||||
<form class="pure-form" id="home-form-search" method="get" action="{% url 'main:home' %}">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% load static %}
|
||||
|
||||
<div class="pure-u-4-24">
|
||||
<div class="pure-u-{{ button_link_columns|default:4 }}-24">
|
||||
<a class="pure-button mayan-button-big" href="{% url link.view %}">
|
||||
<p>
|
||||
<img src="{% static link.icon %}"><br>
|
||||
|
||||
@@ -11,12 +11,14 @@ from dynamic_search.classes import SearchModel
|
||||
from permissions.models import Permission
|
||||
|
||||
from .api import diagnostics, tools
|
||||
from .classes import FrontPageButton
|
||||
|
||||
|
||||
def home(request):
|
||||
document_search = SearchModel.get('documents.Document')
|
||||
|
||||
context = {
|
||||
'object_navigation_links': FrontPageButton.get_all(),
|
||||
'query_string': request.GET,
|
||||
'hide_links': True,
|
||||
'search_results_limit': 100,
|
||||
|
||||
@@ -5,6 +5,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from common.utils import encapsulate
|
||||
from documents.links import document_list_recent, document_list
|
||||
from documents.models import Document
|
||||
from main import FrontPageButton
|
||||
from navigation.api import register_links, register_model_list_columns
|
||||
from project_setup.api import register_setup
|
||||
from rest_api.classes import APIEndPoint
|
||||
@@ -42,3 +43,5 @@ register_links(['sources:document_create', 'sources:document_create_multiple', '
|
||||
register_setup(setup_sources)
|
||||
|
||||
APIEndPoint('sources')
|
||||
|
||||
FrontPageButton(link=document_create_multiple)
|
||||
|
||||
@@ -15,7 +15,7 @@ from .permissions import (
|
||||
PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_VIEW
|
||||
)
|
||||
|
||||
document_create_multiple = {'text': _('Upload new documents'), 'view': 'sources:document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
|
||||
document_create_multiple = {'text': _('Upload new documents'), 'view': 'sources:document_create_multiple', 'icon': 'main/icons/page_add.png', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
|
||||
document_create_siblings = {'text': _('Clone'), 'view': 'sources:document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
|
||||
|
||||
staging_file_delete = {'text': _('Delete'), 'view': 'sources:staging_file_delete', 'args': ['source.pk', 'object.encoded_filename'], 'famfam': 'delete', 'keep_query': True, 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]}
|
||||
|
||||
Reference in New Issue
Block a user