Added new app 'project_setup' to display a setup dashboard style view instead of a secondary action list

This commit is contained in:
Roberto Rosario
2011-08-18 02:37:32 -04:00
parent aff42d4182
commit 36c199f8a9
29 changed files with 359 additions and 32 deletions

View File

@@ -0,0 +1,28 @@
{% extends "base.html" %}
{% load i18n %}
{% load navigation_tags %}
{% load subtemplates_tags %}
{% block title %} :: {% blocktrans with title|striptags as stripped_title %}List of {{ stripped_title }}{% endblocktrans %}{% endblock %}
{#{% block secondary_links %}{{ secondary_links|safe }}{% endblock %}#}
{% block sidebar %}
{% for subtemplate in sidebar_subtemplates_list %}
{% if subtemplate.form %}
{% render_subtemplate subtemplate.name subtemplate.context as rendered_subtemplate %}
<div class="generic_subform">
{{ rendered_subtemplate }}
</div>
{% else %}
{% render_subtemplate subtemplate.name subtemplate.context as rendered_subtemplate %}
{{ rendered_subtemplate }}
{% endif %}
{% endfor %}
{% endblock %}
{% block content %}
{% include "generic_list_horizontal_subtemplate.html" %}
{% endblock %}

View File

@@ -0,0 +1,191 @@
{% load i18n %}
{% load attribute_tags %}
{% load pagination_tags %}
{% load navigation_tags %}
{% load non_breakable %}
{% load variable_tags %}
{% load main_settings_tags %}
{% get_main_setting "DISABLE_ICONS" as disable_icons %}
{% if side_bar %}
<div class="block">
<h3>
{{ title|capfirst }}
</h3>
<div class="content">
<p>
{% else %}
{% autopaginate object_list %}
<div class="content">
<h2 class="title">
{% ifnotequal page_obj.paginator.num_pages 1 %}
{% blocktrans with page_obj.start_index as start and page_obj.end_index as end and page_obj.paginator.object_list|length as total and page_obj.number as page_number and page_obj.paginator.num_pages as total_pages %}List of {{ title }} ({{ start }} - {{ end }} out of {{ total }}) (Page {{ page_number }} of {{ total_pages }}){% endblocktrans %}
{% else %}
{% blocktrans with page_obj.paginator.object_list|length as total %}List of {{ title }} ({{ total }}){% endblocktrans %}
{% endifnotequal %}
</h2>
<div class="inner">
{% endif %}
<form action="{% url multi_object_action_view %}" class="form" method="get">
{% if object_list %}
{% if multi_select or multi_select_as_buttons %}
{% if multi_select_as_buttons %}
{% get_multi_item_links as multi_item_links %}
<div class="group navform wat-cf">
{% for link in multi_item_links %}
<button class="button" type="submit" name="action" value="{{ link.url }}">
{% if link.famfam and not disable_icons %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}
</button>
{% endfor %}
</div>
{% else %}
{% with "true" as form_hide_required_text %}
{% get_multi_item_links_form %}
{% endwith %}
<div class="group navform wat-cf">
<button class="button" type="submit" name="{{ form.prefix }}-submit">
<img src="{{ STATIC_URL }}web_theme_media/images/icons/tick.png" alt="{% if object %}{% trans 'Save' %}{% else %}{% trans 'Submit' %}{% endif %}" /> {% if object %}{% trans "Save" %}{% else %}{% trans "Submit" %}{% endif %}
</button>
</div>
{% endif %}
{% endif %}
{% endif %}
{% if scrollable_content %}
<div style="border: 1px solid; height: {{ scrollable_content_height }}; overflow: auto;">
{% endif %}
{% comment %}
<table class="table">
<tbody>
{% if not hide_header %}
<tr>
{% if multi_select or multi_select_as_buttons %}
<th class="first"><input type="checkbox" class="checkbox toggle" /></th>
{% endif %}
{% if not hide_object %}
<th>{% trans "Identifier" %}</th>
{% endif %}
{% for column in extra_columns_preffixed %}
<th>{{ column.name|capfirst }}</th>
{% endfor %}
{% for column in object_list.0|get_model_list_columns %}
<th>{{ column.name|capfirst }}</th>
{% endfor %}
{% for column in extra_columns %}
<th>{{ column.name|capfirst }}</th>
{% endfor %}
{% if not hide_links %}
<th class="">&nbsp;</th>
{% endif %}
</tr>
{% endif %}
{% for object in object_list %}
<tr class="{% cycle 'odd' 'even2' %}">
{% if multi_select or multi_select_as_buttons %}
<td><input type="checkbox" class="checkbox" name="pk_{{ object.pk }}" value="" /></td>
{% endif %}
{% if not hide_object %}
{% if main_object %}
{% with object|object_property:main_object as object %}
<td>{% if not hide_link %}<a href="{{ object.get_absolute_url }}">{{ object }}</a>{% else %}{{ object }}{% endif %}</td>
{% endwith %}
{% else %}
<td>{% if not hide_link %}<a href="{{ object.get_absolute_url }}">{{ object }}</a>{% else %}{{ object }}{% endif %}</td>
{% endif %}
{% endif %}
{% for column in extra_columns_preffixed %}
{% if column.keep_together %}
<td>
{{ object|object_property:column.attribute|make_non_breakable }}
</td>
{% else %}
<td>{{ object|object_property:column.attribute }}</td>
{% endif %}
{% endfor %}
{% if not hide_columns %}
{% for column in object|get_model_list_columns %}
<td>{{ object|object_property:column.attribute }}</td>
{% endfor %}
{% endif %}
{% for column in extra_columns %}
{% if column.keep_together %}
<td>
{{ object|object_property:column.attribute|make_non_breakable }}
</td>
{% else %}
<td>{{ object|object_property:column.attribute }}</td>
{% endif %}
{% endfor %}
{% if not hide_links %}
{% if list_object_variable_name %}
{% copy_variable object as list_object_variable_name %}
{% copy_variable list_object_variable_name as "navigation_object_name" %}
{% endif %}
<td class="last">
{% if navigation_object_links %}
{% with navigation_object_links as overrided_object_links %}
{% object_navigation_template %}
{% endwith %}
{% else %}
{% object_navigation_template %}
{% endif %}
</td>
{% endif %}
</tr>
{% empty %}
<tr><td colspan=99 class="tc">{% blocktrans with title|striptags as stripped_title %}There are no {{ stripped_title }}{% endblocktrans %}</td></tr>
{% endfor %}
</tbody>
</table>
{% endcomment %}
<div class="group navform wat-cf">
{% for object in object_list %}
{{ object }}
{% endfor %}
</div>
{% if scrollable_content %}
</div>
{% endif %}
{% if object_list %}
{% if multi_select or multi_select_as_buttons %}
{% if multi_select_as_buttons %}
{% get_multi_item_links as multi_item_links %}
<div class="group navform wat-cf">
{% for link in multi_item_links %}
<button class="button" type="submit" name="action" value="{{ link.url }}">
{% if link.famfam and not disable_icons %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}
</button>
{% endfor %}
</div>
{% else %}
{% with "true" as form_hide_required_text %}
{% get_multi_item_links_form %}
{% endwith %}
<div class="group navform wat-cf">
<button class="button" type="submit" name="{{ form.prefix }}-submit">
<img src="{{ STATIC_URL }}web_theme_media/images/icons/tick.png" alt="{% if object %}{% trans 'Save' %}{% else %}{% trans 'Submit' %}{% endif %}" /> {% if object %}{% trans "Save" %}{% else %}{% trans "Submit" %}{% endif %}
</button>
</div>
{% endif %}
{% endif %}
{% endif %}
</form>
{% paginate %}
{% if side_bar %}
</p>
{% endif %}
</div>
</div>

View File

@@ -11,6 +11,7 @@ from permissions.api import register_permission, set_namespace_title
from tags.widgets import get_tags_inline_widget_simple from tags.widgets import get_tags_inline_widget_simple
from history.api import register_history_type from history.api import register_history_type
from metadata.api import get_metadata_string from metadata.api import get_metadata_string
from project_setup.api import register_setup
from documents.models import Document, DocumentPage, \ from documents.models import Document, DocumentPage, \
DocumentPageTransformation, DocumentType, DocumentTypeFilename DocumentPageTransformation, DocumentType, DocumentTypeFilename
@@ -107,6 +108,7 @@ document_missing_list = {'text': _(u'Find missing document files'), 'view': 'doc
# Document type related links # Document type related links
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_type_setup = {'text': _(u'document types'), 'view': 'document_type_list', 'famfam': 'layout', 'icon': 'layout.png', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_type_document_list = {'text': _(u'documents of this type'), 'view': 'document_type_document_list', 'args': 'document_type.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_type_document_list = {'text': _(u'documents of this type'), 'view': 'document_type_document_list', 'args': 'document_type.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_type_edit = {'text': _(u'edit'), 'view': 'document_type_edit', 'args': 'document_type.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_edit = {'text': _(u'edit'), 'view': 'document_type_edit', 'args': 'document_type.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
document_type_delete = {'text': _(u'delete'), 'view': 'document_type_delete', 'args': 'document_type.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]} document_type_delete = {'text': _(u'delete'), 'view': 'document_type_delete', 'args': 'document_type.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]}
@@ -123,7 +125,7 @@ document_type_views = ['setup_document_type_metadata', 'document_type_list', 'do
register_links(DocumentType, [document_type_document_list, document_type_filename_list, document_type_edit, document_type_delete]) register_links(DocumentType, [document_type_document_list, document_type_filename_list, document_type_edit, document_type_delete])
register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete]) register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete])
register_links(['setup_document_type_metadata', 'document_type_filename_delete', 'document_type_create', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_list', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_create], menu_name='sidebar') register_links(['setup_document_type_metadata', 'document_type_filename_delete', 'document_type_create', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_list', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='sidebar')
register_links(['document_type_filename_create', 'document_type_filename_list', 'document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_create], menu_name='sidebar') register_links(['document_type_filename_create', 'document_type_filename_list', 'document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_create], menu_name='sidebar')
# Register document links # Register document links
@@ -199,3 +201,5 @@ register_links(Document, [document_history_view], menu_name='form_header')
if (validate_path(document_settings.CACHE_PATH) == False) or (not document_settings.CACHE_PATH): if (validate_path(document_settings.CACHE_PATH) == False) or (not document_settings.CACHE_PATH):
setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp()) setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp())
register_setup(document_type_setup)

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 B

View File

@@ -1,15 +1,10 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_top_menu from navigation.api import register_top_menu
from permissions import role_list, permission_views
from user_management import user_list, group_list, user_management_views
from navigation.api import register_links from navigation.api import register_links
from history import history_list from history import history_list
from converter import formats_list from converter import formats_list
from documents import document_type_views from project_setup.api import register_setup
from metadata import setup_metadata_type_list, metadata_type_setup_views
from metadata import setup_metadata_set_list, metadata_set_setup_views
from sources import source_list, source_views
from main.conf.settings import SIDE_BAR_SEARCH from main.conf.settings import SIDE_BAR_SEARCH
from main.conf.settings import DISABLE_HOME_VIEW from main.conf.settings import DISABLE_HOME_VIEW
@@ -22,7 +17,7 @@ check_settings = {'text': _(u'settings'), 'view': 'setting_list', 'famfam': 'cog
statistics = {'text': _(u'statistics'), 'view': 'statistics', 'famfam': 'table'} statistics = {'text': _(u'statistics'), 'view': 'statistics', 'famfam': 'table'}
diagnostics = {'text': _(u'diagnostics'), 'view': 'diagnostics', 'famfam': 'pill'} diagnostics = {'text': _(u'diagnostics'), 'view': 'diagnostics', 'famfam': 'pill'}
tools_menu = {'text': _(u'tools'), 'view': 'tools_menu', 'famfam': 'wrench'} tools_menu = {'text': _(u'tools'), 'view': 'tools_menu', 'famfam': 'wrench'}
admin_site = {'text': _(u'admin site'), 'url': '/admin', 'famfam': 'keyboard', 'condition': is_superuser} admin_site = {'text': _(u'admin site'), 'url': '/admin', 'famfam': 'keyboard', 'icon': 'keyboard.png', 'condition': is_superuser}
sentry = {'text': _(u'sentry'), 'url': '/sentry', 'famfam': 'bug', 'condition': is_superuser} sentry = {'text': _(u'sentry'), 'url': '/sentry', 'famfam': 'bug', 'condition': is_superuser}
document_types = {'text': _(u'document types'), 'view': 'document_type_list', 'famfam': 'layout', 'children_view_regex': ['document_type', 'setup_document_type']} document_types = {'text': _(u'document types'), 'view': 'document_type_list', 'famfam': 'layout', 'children_view_regex': ['document_type', 'setup_document_type']}
@@ -45,20 +40,8 @@ if not SIDE_BAR_SEARCH:
register_top_menu('search', link={'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'}, children_path_regex=[r'^search/']) register_top_menu('search', link={'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'}, children_path_regex=[r'^search/'])
register_top_menu('tools', link=tools_menu, children_views=['statistics', 'history_list', 'formats_list'], position=-3) register_top_menu('tools', link=tools_menu, children_views=['statistics', 'history_list', 'formats_list'], position=-3)
#register_top_menu('setup_menu', link={'text': _(u'setup'), 'view': 'setting_list', 'famfam': 'cog'}, children=setup_views)
register_top_menu('setup_menu', link={'text': _(u'setup'), 'view': 'setting_list', 'famfam': 'cog'}, children_path_regex=[r'^settings/', r'^user_management/', r'^permissions', r'^documents/type', r'^metadata/setup', r'sources/setup'], position=-2)
register_links(['tools_menu', 'statistics', 'history_list', 'history_view', 'formats_list'], [tools_menu, statistics, history_list, formats_list, sentry], menu_name='secondary_menu') register_links(['tools_menu', 'statistics', 'history_list', 'history_view', 'formats_list'], [tools_menu, statistics, history_list, formats_list, sentry], menu_name='secondary_menu')
setup_links = [check_settings, role_list, user_list, group_list, document_types, setup_metadata_type_list, setup_metadata_set_list, source_list, admin_site]
register_links(['setting_list'], setup_links, menu_name='secondary_menu')
register_links(permission_views, setup_links, menu_name='secondary_menu')
register_links(user_management_views, setup_links, menu_name='secondary_menu')
register_links(document_type_views, setup_links, menu_name='secondary_menu')
register_links(metadata_type_setup_views, setup_links, menu_name='secondary_menu')
register_links(metadata_set_setup_views, setup_links, menu_name='secondary_menu')
register_links(source_views, setup_links, menu_name='secondary_menu')
def get_version(): def get_version():
""" """
@@ -73,3 +56,5 @@ def get_version():
return ''.join(vers) return ''.join(vers)
__version__ = get_version() __version__ = get_version()
register_setup(admin_site)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -5,6 +5,8 @@ from navigation.api import register_links, register_multi_item_links, \
from permissions.api import register_permission, set_namespace_title from permissions.api import register_permission, set_namespace_title
from documents.models import Document, DocumentType from documents.models import Document, DocumentType
from documents.literals import PERMISSION_DOCUMENT_TYPE_EDIT from documents.literals import PERMISSION_DOCUMENT_TYPE_EDIT
from project_setup.api import register_setup
from metadata.models import MetadataType, MetadataSet from metadata.models import MetadataType, MetadataSet
PERMISSION_METADATA_DOCUMENT_EDIT = {'namespace': 'metadata', 'name': u'metadata_document_edit', 'label': _(u'Edit a document\'s metadata')} PERMISSION_METADATA_DOCUMENT_EDIT = {'namespace': 'metadata', 'name': u'metadata_document_edit', 'label': _(u'Edit a document\'s metadata')}
@@ -47,12 +49,12 @@ metadata_multiple_add = {'text': _(u'add metadata'), 'view': 'metadata_multiple_
metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
metadata_multiple_remove = {'text': _(u'remove metadata'), 'view': 'metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_multiple_remove = {'text': _(u'remove metadata'), 'view': 'metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
setup_metadata_type_list = {'text': _(u'metadata types'), 'view': 'setup_metadata_type_list', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_TYPE_VIEW], 'children_view_regex': ['setup_metadata_type']} setup_metadata_type_list = {'text': _(u'metadata types'), 'view': 'setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW], 'children_view_regex': ['setup_metadata_type']}
setup_metadata_type_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]} setup_metadata_type_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]}
setup_metadata_type_delete = {'text': _(u'delete'), 'view': 'setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]} setup_metadata_type_delete = {'text': _(u'delete'), 'view': 'setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]}
setup_metadata_type_create = {'text': _(u'create new'), 'view': 'setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]} setup_metadata_type_create = {'text': _(u'create new'), 'view': 'setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]}
setup_metadata_set_list = {'text': _(u'metadata sets'), 'view': 'setup_metadata_set_list', 'famfam': 'table', 'permissions': [PERMISSION_METADATA_SET_VIEW], 'children_view_regex': ['setup_metadata_set']} setup_metadata_set_list = {'text': _(u'metadata sets'), 'view': 'setup_metadata_set_list', 'famfam': 'table', 'icon': 'table.png', 'permissions': [PERMISSION_METADATA_SET_VIEW], 'children_view_regex': ['setup_metadata_set']}
setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'table_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]} setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'table_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]}
setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'table_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]} setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'table_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]}
setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': 'table_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]} setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': 'table_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]}
@@ -65,10 +67,10 @@ register_links(Document, [metadata_view], menu_name='form_header') #, metadata_
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove])
register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete]) register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete])
register_links(['setup_metadata_type_delete', 'setup_metadata_type_edit', 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_create], menu_name='sidebar') register_links(['setup_metadata_type_delete', 'setup_metadata_type_edit', 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='sidebar')
register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_delete]) register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_delete])
register_links(['setup_metadata_set_delete', 'setup_metadata_set_edit', 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_create], menu_name='sidebar') register_links(['setup_metadata_set_delete', 'setup_metadata_set_edit', 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='sidebar')
register_links(DocumentType, [setup_document_type_metadata]) register_links(DocumentType, [setup_document_type_metadata])
@@ -77,3 +79,7 @@ metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit'
register_sidebar_template(['setup_metadata_type_list'], 'metadata_type_help.html') register_sidebar_template(['setup_metadata_type_list'], 'metadata_type_help.html')
register_sidebar_template(['setup_metadata_set_list'], 'metadata_set_help.html') register_sidebar_template(['setup_metadata_set_list'], 'metadata_set_help.html')
register_setup(setup_metadata_type_list)
register_setup(setup_metadata_set_list)

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -4,6 +4,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links from navigation.api import register_links
from project_setup.api import register_setup
from permissions.conf.settings import DEFAULT_ROLES from permissions.conf.settings import DEFAULT_ROLES
from permissions.models import Role from permissions.models import Role
@@ -16,7 +17,7 @@ PERMISSION_PERMISSION_GRANT = {'namespace': 'permissions', 'name': 'permission_g
PERMISSION_PERMISSION_REVOKE = {'namespace': 'permissions', 'name': 'permission_revoke', 'label': _(u'Revoke permissions')} PERMISSION_PERMISSION_REVOKE = {'namespace': 'permissions', 'name': 'permission_revoke', 'label': _(u'Revoke permissions')}
role_list = {'text': _(u'roles'), 'view': 'role_list', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_VIEW], 'children_view_regex': ['role']} role_list = {'text': _(u'roles'), 'view': 'role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_1.png', 'permissions': [PERMISSION_ROLE_VIEW]}
role_create = {'text': _(u'create new role'), 'view': 'role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]} role_create = {'text': _(u'create new role'), 'view': 'role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]}
role_edit = {'text': _(u'edit'), 'view': 'role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]} role_edit = {'text': _(u'edit'), 'view': 'role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]}
role_members = {'text': _(u'members'), 'view': 'role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]} role_members = {'text': _(u'members'), 'view': 'role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]}
@@ -24,7 +25,7 @@ role_permissions = {'text': _(u'role permissions'), 'view': 'role_permissions',
role_delete = {'text': _(u'delete'), 'view': 'role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]} role_delete = {'text': _(u'delete'), 'view': 'role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]}
register_links(Role, [role_edit, role_delete, role_permissions, role_members]) register_links(Role, [role_edit, role_delete, role_permissions, role_members])
register_links(['role_members', 'role_list', 'role_view', 'role_create', 'role_edit', 'role_permissions', 'role_delete'], [role_create], menu_name='sidebar') register_links(['role_members', 'role_list', 'role_view', 'role_create', 'role_edit', 'role_permissions', 'role_delete'], [role_list, role_create], menu_name='sidebar')
permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete'] permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete']
@@ -44,3 +45,5 @@ def user_post_save(sender, instance, **kwargs):
pass pass
post_save.connect(user_post_save, sender=User) post_save.connect(user_post_save, sender=User)
register_setup(role_list)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,6 @@
from django.utils.translation import ugettext_lazy as _
from navigation.api import register_top_menu
#TODO: FIXME dynamic children_path_regext on api register_setup
register_top_menu('setup_menu', link={'text': _(u'setup'), 'view': 'setup_list', 'famfam': 'cog'}, children_path_regex=[r'^settings/', r'^user_management/', r'^permissions', r'^documents/type', r'^metadata/setup', r'sources/setup'], position=-2)

View File

@@ -0,0 +1,5 @@
setup_items = []
def register_setup(link):
setup_items.append(link)

View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,23 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
>>> 1 + 1 == 2
True
"""}

View File

@@ -0,0 +1,5 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('project_setup.views',
url(r'^list/$', 'setup_list', (), 'setup_list'),
)

View File

@@ -0,0 +1,16 @@
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from project_setup.api import setup_items
from project_setup.widgets import setup_button_widget
def setup_list(request):
context = {
'object_list': [setup_button_widget(request, item) for item in setup_items],
'title': _(u'setup items'),
}
return render_to_response('generic_list_horizontal.html', context,
context_instance=RequestContext(request))

View File

@@ -0,0 +1,29 @@
from django.utils.safestring import mark_safe
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse
from django.template.defaultfilters import capfirst
from django.core.exceptions import PermissionDenied
from permissions.api import check_permissions
def setup_button_widget(request, setup_link):
if 'permissions' in setup_link:
try:
check_permissions(request.user, setup_link['permissions'])
return render_widget(setup_link)
except PermissionDenied:
return u''
else:
return render_widget(setup_link)
def render_widget(setup_link):
return mark_safe(u'<a style="margin-right: 10px;" href="%(url)s"><button style="vertical-align: top; padding: 1px; width: 110px; height: 100px; margin: 10px;"><img src="%(static_url)simages/icons/%(icon)s" alt="%(image_alt)s" /><p style="margin: 0px 0px 0px 0px;">%(string)s</p></button></a>' % {
'url': reverse(setup_link['view']) if 'view' in setup_link else setup_link['url'],
'icon': setup_link.get('icon', 'link_button.png'),
'static_url': settings.STATIC_URL,
'string': capfirst(setup_link['text']),
'image_alt': _(u'icon'),
})

View File

@@ -0,0 +1,10 @@
from django.utils.translation import ugettext_lazy as _
from project_setup.api import register_setup
def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
check_settings = {'text': _(u'settings'), 'view': 'setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser}
register_setup(check_settings)

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -4,6 +4,7 @@ from navigation.api import register_links, \
register_model_list_columns register_model_list_columns
from permissions.api import register_permission, set_namespace_title from permissions.api import register_permission, set_namespace_title
from common.utils import encapsulate from common.utils import encapsulate
from project_setup.api import register_setup
from sources.staging import StagingFile from sources.staging import StagingFile
from sources.models import WebForm, StagingFolder, SourceTransformation, \ from sources.models import WebForm, StagingFolder, SourceTransformation, \
@@ -24,7 +25,8 @@ register_permission(PERMISSION_SOURCES_SETUP_CREATE)
staging_file_preview = {'text': _(u'preview'), 'class': 'fancybox-noscaling', 'view': 'staging_file_preview', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'zoom'} staging_file_preview = {'text': _(u'preview'), 'class': 'fancybox-noscaling', 'view': 'staging_file_preview', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'zoom'}
staging_file_delete = {'text': _(u'delete'), 'view': 'staging_file_delete', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'delete', 'keep_query': True} staging_file_delete = {'text': _(u'delete'), 'view': 'staging_file_delete', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'delete', 'keep_query': True}
setup_web_form_list = {'text': _(u'web forms'), 'view': 'setup_web_form_list', 'famfam': 'application_form', 'children_classes': [WebForm]} setup_sources = {'text': _(u'sources'), 'view': 'setup_web_form_list', 'famfam': 'application_form', 'icon': 'application_form.png', 'children_classes': [WebForm]}
setup_web_form_list = {'text': _(u'web forms'), 'view': 'setup_web_form_list', 'famfam': 'application_form', 'icon': 'application_form.png', 'children_classes': [WebForm]}
setup_staging_folder_list = {'text': _(u'staging folders'), 'view': 'setup_staging_folder_list', 'famfam': 'folder_camera', 'children_classes': [StagingFolder]} setup_staging_folder_list = {'text': _(u'staging folders'), 'view': 'setup_staging_folder_list', 'famfam': 'folder_camera', 'children_classes': [StagingFolder]}
setup_watch_folder_list = {'text': _(u'watch folders'), 'view': 'setup_watch_folder_list', 'famfam': 'folder_magnify', 'children_classes': [WatchFolder]} setup_watch_folder_list = {'text': _(u'watch folders'), 'view': 'setup_watch_folder_list', 'famfam': 'folder_magnify', 'children_classes': [WatchFolder]}
@@ -50,7 +52,7 @@ register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch
register_links(WebForm, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header') register_links(WebForm, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header')
register_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) register_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create'], [setup_source_create], menu_name='sidebar') register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create'], [setup_sources, setup_source_create], menu_name='sidebar')
#register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list], menu_name='form_header') #register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list], menu_name='form_header')
register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header') register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header')
@@ -68,3 +70,6 @@ register_model_list_columns(StagingFile, [
encapsulate(lambda x: staging_file_thumbnail(x)) encapsulate(lambda x: staging_file_thumbnail(x))
}, },
]) ])
register_setup(setup_sources)

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

View File

@@ -3,6 +3,7 @@ from django.contrib.auth.models import User, Group
from navigation.api import register_links, register_multi_item_links from navigation.api import register_links, register_multi_item_links
from permissions.api import register_permission, set_namespace_title from permissions.api import register_permission, set_namespace_title
from project_setup.api import register_setup
PERMISSION_USER_CREATE = {'namespace': 'user_management', 'name': 'user_create', 'label': _(u'Create new users')} PERMISSION_USER_CREATE = {'namespace': 'user_management', 'name': 'user_create', 'label': _(u'Create new users')}
PERMISSION_USER_EDIT = {'namespace': 'user_management', 'name': 'user_edit', 'label': _(u'Edit existing users')} PERMISSION_USER_EDIT = {'namespace': 'user_management', 'name': 'user_edit', 'label': _(u'Edit existing users')}
@@ -24,7 +25,8 @@ register_permission(PERMISSION_GROUP_EDIT)
register_permission(PERMISSION_GROUP_VIEW) register_permission(PERMISSION_GROUP_VIEW)
register_permission(PERMISSION_GROUP_DELETE) register_permission(PERMISSION_GROUP_DELETE)
user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW], 'children_view_regex': ['user']} user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]}
user_setup = {'text': _(u'users'), 'view': 'user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW]}
user_edit = {'text': _(u'edit'), 'view': 'user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]} user_edit = {'text': _(u'edit'), 'view': 'user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]}
user_add = {'text': _(u'create new user'), 'view': 'user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]} user_add = {'text': _(u'create new user'), 'view': 'user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]}
user_delete = {u'text': _('delete'), 'view': 'user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} user_delete = {u'text': _('delete'), 'view': 'user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]}
@@ -32,7 +34,8 @@ user_multiple_delete = {u'text': _('delete'), 'view': 'user_multiple_delete', 'f
user_set_password = {u'text': _('reset password'), 'view': 'user_set_password', 'args': 'object.id', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} user_set_password = {u'text': _('reset password'), 'view': 'user_set_password', 'args': 'object.id', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]}
user_multiple_set_password = {u'text': _('reset password'), 'view': 'user_multiple_set_password', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} user_multiple_set_password = {u'text': _('reset password'), 'view': 'user_multiple_set_password', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]}
group_list = {'text': _(u'group list'), 'view': 'group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW], 'children_view_regex': ['group']} group_list = {'text': _(u'group list'), 'view': 'group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]}
group_setup = {'text': _(u'groups'), 'view': 'group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW]}
group_edit = {'text': _(u'edit'), 'view': 'group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]} group_edit = {'text': _(u'edit'), 'view': 'group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]}
group_add = {'text': _(u'create new group'), 'view': 'group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]} group_add = {'text': _(u'create new group'), 'view': 'group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]}
group_delete = {u'text': _('delete'), 'view': 'group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} group_delete = {u'text': _('delete'), 'view': 'group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]}
@@ -40,11 +43,11 @@ group_multiple_delete = {u'text': _('delete'), 'view': 'group_multiple_delete',
group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]} group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]}
register_links(User, [user_edit, user_set_password, user_delete]) register_links(User, [user_edit, user_set_password, user_delete])
register_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', 'user_list', 'user_add'], [user_add], menu_name=u'sidebar') register_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', 'user_list', 'user_add'], [user_list, user_add], menu_name=u'sidebar')
register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete]) register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete])
register_links(Group, [group_edit, group_members, group_delete]) register_links(Group, [group_edit, group_members, group_delete])
register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_add], menu_name=u'sidebar') register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_list, group_add], menu_name=u'sidebar')
register_multi_item_links(['group_list'], [group_multiple_delete]) register_multi_item_links(['group_list'], [group_multiple_delete])
user_management_views = [ user_management_views = [
@@ -53,3 +56,6 @@ user_management_views = [
'user_multiple_set_password', 'group_list', 'group_edit', 'group_add', 'user_multiple_set_password', 'group_list', 'group_edit', 'group_add',
'group_delete', 'group_multiple_delete', 'group_members' 'group_delete', 'group_multiple_delete', 'group_members'
] ]
register_setup(user_setup)
register_setup(group_setup)

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -125,6 +125,7 @@ INSTALLED_APPS = (
'django.contrib.admindocs', 'django.contrib.admindocs',
'django.contrib.comments', 'django.contrib.comments',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'project_setup',
'smart_settings', 'smart_settings',
'navigation', 'navigation',
'web_theme', 'web_theme',

View File

@@ -26,6 +26,7 @@ urlpatterns = patterns('',
(r'^history/', include('history.urls')), (r'^history/', include('history.urls')),
(r'^converter/', include('converter.urls')), (r'^converter/', include('converter.urls')),
(r'^sources/', include('sources.urls')), (r'^sources/', include('sources.urls')),
(r'^project_setup/', include('project_setup.urls')),
) )