This commit is contained in:
@@ -115,7 +115,6 @@ def acl_detail_for(request, actor, obj):
|
||||
context = {
|
||||
'object': obj.source_object,
|
||||
'subtemplates_list': subtemplates_list,
|
||||
'multi_select_as_buttons': True,
|
||||
'multi_select_item_properties': {
|
||||
'permission_pk': lambda x: x.pk,
|
||||
'holder_gid': lambda x: actor.gid,
|
||||
@@ -447,7 +446,6 @@ def acl_class_acl_detail(request, access_object_class_gid, holder_object_gid):
|
||||
return render_to_response('main/generic_detail.html', {
|
||||
'object': access_object_class,
|
||||
'subtemplates_list': subtemplates_list,
|
||||
'multi_select_as_buttons': True,
|
||||
'multi_select_item_properties': {
|
||||
'permission_pk': lambda x: x.pk,
|
||||
'holder_gid': lambda x: actor.gid,
|
||||
|
||||
@@ -12,6 +12,7 @@ from history.permissions import PERMISSION_HISTORY_VIEW
|
||||
from main.api import register_diagnostic, register_maintenance_links
|
||||
from navigation.api import (register_links, register_model_list_columns,
|
||||
register_multi_item_links, register_top_menu)
|
||||
from navigation.links import link_spacer
|
||||
from project_setup.api import register_setup
|
||||
from rest_api.classes import APIEndPoint
|
||||
from statistics.classes import StatisticNamespace
|
||||
@@ -76,7 +77,7 @@ register_links([DocumentTypeFilename, 'documents:document_type_filename_list', '
|
||||
|
||||
# Register document links
|
||||
register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_clear_transformations, document_update_page_count])
|
||||
register_multi_item_links(['folders:folder_view', 'index_instance_node_view', 'search', 'results', 'document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download, document_multiple_update_page_count])
|
||||
register_multi_item_links(['folders:folder_view', 'index_instance_node_view', 'search', 'results', 'document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [link_spacer, document_multiple_clear_transformations, document_multiple_delete, document_multiple_download, document_multiple_update_page_count])
|
||||
|
||||
# Document Version links
|
||||
register_links(DocumentVersion, [document_version_revert, document_version_download])
|
||||
|
||||
@@ -62,7 +62,6 @@ class DocumentListView(SingleObjectListView):
|
||||
|
||||
extra_context = {
|
||||
'title': _(u'All documents'),
|
||||
'multi_select_as_buttons': True,
|
||||
'hide_links': True,
|
||||
}
|
||||
|
||||
@@ -84,7 +83,6 @@ def document_list(request, object_list=None, title=None, extra_context=None):
|
||||
context = {
|
||||
'object_list': final_object_list,
|
||||
'title': title if title else _(u'documents'),
|
||||
'multi_select_as_buttons': True,
|
||||
'hide_links': True,
|
||||
}
|
||||
if extra_context:
|
||||
|
||||
@@ -26,7 +26,6 @@ def results(request, extra_context=None):
|
||||
context = {
|
||||
'query_string': request.GET,
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'search_results_limit': LIMIT,
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ from common.utils import encapsulate
|
||||
from documents.models import Document
|
||||
from navigation.api import (register_links, register_model_list_columns,
|
||||
register_multi_item_links, register_top_menu)
|
||||
from navigation.links import link_spacer
|
||||
from rest_api.classes import APIEndPoint
|
||||
|
||||
from .links import (document_folder_list, folder_acl_list,
|
||||
@@ -27,7 +28,7 @@ register_links(Folder, [folder_view, folder_edit, folder_acl_list, folder_delete
|
||||
register_links([Folder, 'folders:folder_list', 'folders:folder_create'], [folder_list, folder_create], menu_name='secondary_menu')
|
||||
register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar")
|
||||
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'indexing:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [folder_add_multiple_documents])
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'indexing:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [link_spacer, folder_add_multiple_documents])
|
||||
register_multi_item_links(['folders:folder_view'], [folder_document_multiple_remove])
|
||||
|
||||
register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folders:folder_list', 'folders:folder_create', 'folders:folder_edit', 'folders:folder_delete', 'folders:folder_view', 'folders:folder_document_multiple_remove'])
|
||||
|
||||
@@ -36,7 +36,6 @@ class FolderListView(SingleObjectListView):
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
'title': _(u'Folders'),
|
||||
'multi_select_as_buttons': True,
|
||||
'hide_link': True,
|
||||
}
|
||||
|
||||
@@ -145,7 +144,6 @@ class FolderDetailView(DocumentListView):
|
||||
return {
|
||||
'title': _(u'Documents in folder: %s') % self.get_folder(),
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'object': self.get_folder(),
|
||||
'object_name': _(u'Folder'),
|
||||
}
|
||||
@@ -215,7 +213,6 @@ def document_folder_list(request, document_id):
|
||||
context = {
|
||||
'title': _(u'Folders containing: %s') % document,
|
||||
'object': document,
|
||||
'multi_select_as_buttons': True,
|
||||
'hide_link': True,
|
||||
}
|
||||
|
||||
|
||||
@@ -30,29 +30,17 @@
|
||||
{% endif %}
|
||||
|
||||
<form action="{% url 'common:multi_object_action_view' %}" class="form multi_select" method="get">
|
||||
{% get_multi_item_links_form %}
|
||||
{% if multi_item_actions %}
|
||||
{% with multi_item_form as form %}
|
||||
{% include 'main/generic_form_instance.html' %}
|
||||
{% endwith %}
|
||||
|
||||
{% 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" style="margin-bottom: 0px;">
|
||||
{% for link in multi_item_links %}
|
||||
<button class="button" type="submit" name="action" value="{{ link.url }}" style="margin-bottom: 8px;">
|
||||
{% if link.famfam %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text }}
|
||||
</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 '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 %}
|
||||
<div class="group navform wat-cf">
|
||||
<button class="button" type="submit" name="{{ form.prefix }}-submit">
|
||||
<img src="{% static '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 %}
|
||||
|
||||
{% if scrollable_content %}
|
||||
@@ -63,7 +51,7 @@
|
||||
<tbody>
|
||||
{% if not hide_header %}
|
||||
<tr>
|
||||
{% if multi_select or multi_select_as_buttons %}
|
||||
{% if multi_item_actions %}
|
||||
<th class="first"><input type="checkbox" class="checkbox toggle" /></th>
|
||||
{% endif %}
|
||||
|
||||
@@ -90,7 +78,8 @@
|
||||
{% endif %}
|
||||
{% for object in object_list %}
|
||||
<tr class="{% cycle 'odd' 'even2' %}">
|
||||
{% if multi_select or multi_select_as_buttons %}
|
||||
|
||||
{% if multi_item_actions %}
|
||||
<td>
|
||||
{% if multi_select_item_properties %}
|
||||
<input type="checkbox" class="checkbox" name="properties_{{ object|get_encoded_parameter:multi_select_item_properties }}" value="" />
|
||||
@@ -150,30 +139,6 @@
|
||||
{% 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" style="margin-bottom: 0px;">
|
||||
{% for link in multi_item_links %}
|
||||
<button class="button" type="submit" name="action" value="{{ link.url }}" style="margin-bottom: 8px;">
|
||||
{% if link.famfam %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text }}
|
||||
</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 '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 %}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ from common.utils import encapsulate
|
||||
from documents.models import Document, DocumentType
|
||||
from navigation.api import (register_links, register_model_list_columns,
|
||||
register_multi_item_links)
|
||||
from navigation.links import link_spacer
|
||||
from project_setup.api import register_setup
|
||||
from rest_api.classes import APIEndPoint
|
||||
|
||||
@@ -40,7 +41,7 @@ register_links(Document, [metadata_view], menu_name='form_header')
|
||||
register_links(DocumentType, [setup_document_type_metadata])
|
||||
register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete])
|
||||
register_links([MetadataType, 'metadata:setup_metadata_type_list', 'metadata:setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu')
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove])
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [link_spacer, metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove])
|
||||
|
||||
register_setup(setup_metadata_type_list)
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ class MultiItemForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
actions = kwargs.pop('actions', [])
|
||||
super(MultiItemForm, self).__init__(*args, **kwargs)
|
||||
choices = [('', '------')]
|
||||
choices = []
|
||||
choices.extend([(action[0], action[1]) for action in actions])
|
||||
self.fields['action'].choices = choices
|
||||
|
||||
action = forms.ChoiceField(label=_(u'Multi item action'))
|
||||
action = forms.ChoiceField(label=_(u'Action'), required=False)
|
||||
|
||||
1
mayan/apps/navigation/links.py
Normal file
1
mayan/apps/navigation/links.py
Normal file
@@ -0,0 +1 @@
|
||||
link_spacer = {'text': ('------'), 'url': ''}
|
||||
@@ -267,16 +267,12 @@ def get_multi_item_links(parser, token):
|
||||
return GetNavigationLinks(menu_name=menu_name, links_dict=multi_object_navigation, var_name=var_name)
|
||||
|
||||
|
||||
@register.inclusion_tag('main/generic_form_instance.html', takes_context=True)
|
||||
@register.simple_tag(takes_context=True)
|
||||
def get_multi_item_links_form(context):
|
||||
new_context = copy.copy(context)
|
||||
new_context.update({
|
||||
'form': MultiItemForm(actions=[(link['url'], link['text']) for link in _get_object_navigation_links(context, links_dict=multi_object_navigation)]),
|
||||
'title': _(u'Selected item actions:'),
|
||||
'form_action': reverse('common:multi_object_action_view'),
|
||||
'submit_method': 'get',
|
||||
})
|
||||
return new_context
|
||||
actions = [(link['url'], link['text']) for link in _get_object_navigation_links(context, links_dict=multi_object_navigation)]
|
||||
form = MultiItemForm(actions=actions)
|
||||
context.update({'multi_item_form': form, 'multi_item_actions': actions})
|
||||
return ''
|
||||
|
||||
|
||||
class GetSidebarTemplatesNone(Node):
|
||||
|
||||
@@ -12,6 +12,7 @@ from documents.models import Document, DocumentVersion
|
||||
from documents.signals import post_version_upload
|
||||
from main.api import register_maintenance_links
|
||||
from navigation.api import register_links, register_multi_item_links
|
||||
from navigation.links import link_spacer
|
||||
from project_tools.api import register_tool
|
||||
|
||||
from .links import (all_document_ocr_cleanup, ocr_tool_link,
|
||||
@@ -25,7 +26,7 @@ from .tasks import task_do_ocr
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
register_links(Document, [submit_document])
|
||||
register_multi_item_links(['folders:folder_view', 'indexing:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'document:document_list_recent', 'tags:tag_tagged_item_list'], [submit_document_multiple])
|
||||
register_multi_item_links(['folders:folder_view', 'indexing:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'document:document_list_recent', 'tags:tag_tagged_item_list'], [link_spacer, submit_document_multiple])
|
||||
register_multi_item_links(['ocr:queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete])
|
||||
register_links(['ocr:queue_document_list'], [queue_document_list], menu_name='secondary_menu')
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ def queue_document_list(request, queue_name='default'):
|
||||
{'name': _('Node'), 'attribute': 'node_name'},
|
||||
{'name': _('Result'), 'attribute': 'result'},
|
||||
],
|
||||
'multi_select_as_buttons': True,
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
|
||||
@@ -97,7 +97,6 @@ def role_permissions(request, role_id):
|
||||
'object': role,
|
||||
'object_name': _(u'Role'),
|
||||
'subtemplates_list': subtemplates_list,
|
||||
'multi_select_as_buttons': True,
|
||||
'multi_select_item_properties': {
|
||||
'permission_id': lambda x: x.pk,
|
||||
'requester_id': lambda x: role.pk,
|
||||
|
||||
@@ -8,6 +8,7 @@ from documents import document_search
|
||||
from documents.models import Document
|
||||
from navigation.api import (register_links, register_model_list_columns,
|
||||
register_multi_item_links, register_top_menu)
|
||||
from navigation.links import link_spacer
|
||||
from rest_api.classes import APIEndPoint
|
||||
|
||||
from .links import (multiple_documents_selection_tag_remove,
|
||||
@@ -52,14 +53,14 @@ register_model_list_columns(Document, [
|
||||
])
|
||||
|
||||
register_links(Tag, [tag_tagged_item_list, tag_edit, tag_acl_list, tag_delete])
|
||||
register_multi_item_links(['tags:tag_list'], [tag_multiple_delete])
|
||||
register_multi_item_links(['tags:tag_list'], [link_spacer, tag_multiple_delete])
|
||||
register_links([Tag, 'tags:tag_list', 'tags:tag_create'], [tag_list, tag_create], menu_name='secondary_menu')
|
||||
register_top_menu('tags', link={'text': _(u'Tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue'}, children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)'])
|
||||
|
||||
register_links(Document, [tag_document_list], menu_name='form_header')
|
||||
register_links(['tags:document_tags', 'tags:tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar')
|
||||
register_multi_item_links(['document_tags'], [single_document_multiple_tag_remove])
|
||||
register_multi_item_links(['tags:document_tags'], [link_spacer, single_document_multiple_tag_remove])
|
||||
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove])
|
||||
register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [link_spacer, tag_multiple_attach, multiple_documents_selection_tag_remove])
|
||||
|
||||
document_search.add_model_field('tags__label', label=_(u'Tags'))
|
||||
|
||||
@@ -114,7 +114,6 @@ def tag_list(request, queryset=None, extra_context=None):
|
||||
context = {
|
||||
'title': _(u'Tags'),
|
||||
'hide_link': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'hide_object': True,
|
||||
}
|
||||
if extra_context:
|
||||
@@ -225,7 +224,6 @@ class TagTaggedItemListView(DocumentListView):
|
||||
return {
|
||||
'title': _(u'Documents with the tag "%s"') % self.get_tag(),
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'object': self.get_tag(),
|
||||
'object_name': _(u'Tag'),
|
||||
}
|
||||
|
||||
@@ -47,7 +47,6 @@ def user_list(request):
|
||||
'attribute': encapsulate(lambda x: two_state_template(x.has_usable_password())),
|
||||
},
|
||||
],
|
||||
'multi_select_as_buttons': True,
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
@@ -256,7 +255,6 @@ def group_list(request):
|
||||
'attribute': 'user_set.count'
|
||||
},
|
||||
],
|
||||
'multi_select_as_buttons': True,
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
|
||||
Reference in New Issue
Block a user