Convert front page button selection to be dynamic

This commit is contained in:
Roberto Rosario
2015-01-26 18:22:55 -04:00
parent 1494390f0b
commit 73f0a4082a
9 changed files with 29 additions and 30 deletions

View File

@@ -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)

View File

@@ -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]}

View File

@@ -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)

View 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)

View File

@@ -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' %}">

View File

@@ -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>

View File

@@ -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,

View File

@@ -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)

View File

@@ -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]}