From e27ba5d3d63e9a435e6f08ca91423525d65ae1fd Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 6 Apr 2015 01:02:48 -0400 Subject: [PATCH] Implement use of the injected 'resolved_object' variable to simplify navigation links of objects in lists. Remove obsolete varaibles_tags. Consolidate get_action_links by means of get_menus_links which supports a list of menus to resolve. Remove obsolete 'list_object_variable_name'. Remove 'resolve_for_source' method which was consolidated with the normal resolve method by means of an optional 'source' argument. --- .../appearance/templates/appearance/base.html | 4 +- .../appearance/generic_list_subtemplate.html | 7 +--- .../apps/common/templatetags/variable_tags.py | 42 ------------------- mayan/apps/document_indexing/links.py | 16 +++---- mayan/apps/document_indexing/views.py | 2 - mayan/apps/document_states/links.py | 4 +- mayan/apps/document_states/views.py | 1 - mayan/apps/documents/links.py | 10 ++--- mayan/apps/documents/views.py | 3 -- mayan/apps/linking/forms.py | 2 +- mayan/apps/linking/links.py | 4 +- mayan/apps/linking/views.py | 2 - mayan/apps/metadata/links.py | 4 +- mayan/apps/navigation/classes.py | 34 +++++---------- .../templatetags/navigation_tags.py | 13 +++--- mayan/apps/sources/links.py | 12 +++--- mayan/apps/sources/views.py | 2 - mayan/apps/statistics/apps.py | 2 +- mayan/apps/statistics/links.py | 2 +- mayan/apps/statistics/views.py | 6 +-- 20 files changed, 48 insertions(+), 124 deletions(-) delete mode 100644 mayan/apps/common/templatetags/variable_tags.py diff --git a/mayan/apps/appearance/templates/appearance/base.html b/mayan/apps/appearance/templates/appearance/base.html index 1574f201ef..3d98ae9579 100644 --- a/mayan/apps/appearance/templates/appearance/base.html +++ b/mayan/apps/appearance/templates/appearance/base.html @@ -6,7 +6,6 @@ {% load navigation_tags %} {% load project_tags %} {% load settings %} -{% load variable_tags %} @@ -152,8 +151,7 @@ - {% get_action_links as links %} - + {% get_menus_links names='object menu,sidebar menu,secondary menu' as links %} {% get_menu_links 'object facet' as form_navigation_links %}
diff --git a/mayan/apps/appearance/templates/appearance/generic_list_subtemplate.html b/mayan/apps/appearance/templates/appearance/generic_list_subtemplate.html index 5b3c184a1f..30576179a5 100644 --- a/mayan/apps/appearance/templates/appearance/generic_list_subtemplate.html +++ b/mayan/apps/appearance/templates/appearance/generic_list_subtemplate.html @@ -5,7 +5,6 @@ {% load pagination_tags %} {% load navigation_tags %} {% load non_breakable %} -{% load variable_tags %} {% load multiselect_tags %} {% autopaginate object_list %} @@ -101,12 +100,8 @@ {% 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 %} - {% get_menu_links 'object menu' as links %} + {% get_menu_links 'object menu' source=object as links %} {% with links as object_navigation_links %} {% with 'true' as horizontal %} {% include 'navigation/generic_navigation.html' %} diff --git a/mayan/apps/common/templatetags/variable_tags.py b/mayan/apps/common/templatetags/variable_tags.py deleted file mode 100644 index 5f7a7078ed..0000000000 --- a/mayan/apps/common/templatetags/variable_tags.py +++ /dev/null @@ -1,42 +0,0 @@ -import re - -from django.template import Node, TemplateSyntaxError, Library, Variable - -register = Library() - - -class CopyNode(Node): - def __init__(self, source_variable, var_name, delete_old=False): - self.source_variable = source_variable - self.var_name = var_name - self.delete_old = delete_old - - def render(self, context): - context[Variable(self.var_name).resolve(context)] = Variable(self.source_variable).resolve(context) - if self.delete_old: - context[Variable(self.source_variable).resolve(context)] = '' - return '' - - -@register.tag -def copy_variable(parser, token): - return parse_tag(parser, token) - - -@register.tag -def rename_variable(parser, token): - return parse_tag(parser, token, {'delete_old': True}) - - -def parse_tag(parser, token, *args, **kwargs): - # This version uses a regular expression to parse tag contents. - try: - # Splitting by None == splitting by spaces. - tag_name, arg = token.contents.split(None, 1) - except ValueError: - raise TemplateSyntaxError('%r tag requires arguments' % token.contents.split()[0]) - m = re.search(r'(.*?) as ([\'"]*\w+[\'"]*)', arg) - if not m: - raise TemplateSyntaxError('%r tag had invalid arguments' % tag_name) - source_variable, var_name = m.groups() - return CopyNode(source_variable, var_name, *args, **kwargs) diff --git a/mayan/apps/document_indexing/links.py b/mayan/apps/document_indexing/links.py index 066f1521a0..84d3274da8 100644 --- a/mayan/apps/document_indexing/links.py +++ b/mayan/apps/document_indexing/links.py @@ -18,7 +18,7 @@ def is_not_instance_root_node(context): def is_not_root_node(context): - return not context['node'].is_root_node() + return not context['resolved_object'].is_root_node() link_document_index_list = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW], text=_('Indexes'), view='indexing:document_index_list', args='object.pk') @@ -28,15 +28,15 @@ link_index_parent = Link(condition=is_not_instance_root_node, permissions=[PERMI link_index_setup = Link(icon='fa fa-sitemap', permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Indexes'), view='indexing:index_setup_list') link_index_setup_list = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Indexes'), view='indexing:index_setup_list') link_index_setup_create = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_CREATE], text=_('Create index'), view='indexing:index_setup_create') -link_index_setup_edit = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Edit'), view='indexing:index_setup_edit', args='index.pk') -link_index_setup_delete = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_DELETE], text=_('Delete'), view='indexing:index_setup_delete', args='index.pk') -link_index_setup_view = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Tree template'), view='indexing:index_setup_view', args='index.pk') -link_index_setup_document_types = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Document types'), view='indexing:index_setup_document_types', args='index.pk') +link_index_setup_edit = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Edit'), view='indexing:index_setup_edit', args='resolved_object.pk') +link_index_setup_delete = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_DELETE], text=_('Delete'), view='indexing:index_setup_delete', args='resolved_object.pk') +link_index_setup_view = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Tree template'), view='indexing:index_setup_view', args='resolved_object.pk') +link_index_setup_document_types = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Document types'), view='indexing:index_setup_document_types', args='resolved_object.pk') link_rebuild_index_instances = Link( description=_('Deletes and creates from scratch all the document indexes.'), permissions=[PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], text=_('Rebuild indexes'), view='indexing:rebuild_index_instances' ) -link_template_node_create = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('New child node'), view='indexing:template_node_create', args='node.pk') -link_template_node_edit = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Edit'), view='indexing:template_node_edit', args='node.pk') -link_template_node_delete = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Delete'), view='indexing:template_node_delete', args='node.pk') +link_template_node_create = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('New child node'), view='indexing:template_node_create', args='resolved_object.pk') +link_template_node_edit = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Edit'), view='indexing:template_node_edit', args='resolved_object.pk') +link_template_node_delete = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Delete'), view='indexing:template_node_delete', args='resolved_object.pk') diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index 7f6cd0692c..902d7de23c 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -37,7 +37,6 @@ def index_setup_list(request): context = { 'title': _('Indexes'), 'hide_object': True, - 'list_object_variable_name': 'index', 'extra_columns': [ {'name': _('Name'), 'attribute': 'name'}, {'name': _('Title'), 'attribute': 'title'}, @@ -151,7 +150,6 @@ def index_setup_view(request, index_pk): context = { 'object_list': object_list, 'index': index, - 'list_object_variable_name': 'node', 'navigation_object_list': ['index'], 'title': _('Tree template nodes for index: %s') % index, 'hide_object': True, diff --git a/mayan/apps/document_states/links.py b/mayan/apps/document_states/links.py index 34ec1f3494..db34be2153 100644 --- a/mayan/apps/document_states/links.py +++ b/mayan/apps/document_states/links.py @@ -18,5 +18,5 @@ link_setup_workflow_transition_create = Link(text=_('Create transition'), view=' link_setup_workflow_transition_delete = Link(text=_('Delete'), view='document_states:setup_workflow_transition_delete', args='object.pk') link_setup_workflow_transition_edit = Link(text=_('Edit'), view='document_states:setup_workflow_transition_edit', args='object.pk') link_setup_workflow_transitions = Link(text=_('Transitions'), view='document_states:setup_workflow_transitions', args='object.pk') -link_workflow_instance_detail = Link(text=_('Detail'), view='document_states:workflow_instance_detail', args='workflow_instance.pk') -link_workflow_instance_transition = Link(text=_('Transition'), view='document_states:workflow_instance_transition', args='workflow_instance.pk') +link_workflow_instance_detail = Link(text=_('Detail'), view='document_states:workflow_instance_detail', args='resolved_object.pk') +link_workflow_instance_transition = Link(text=_('Transition'), view='document_states:workflow_instance_transition', args='resolved_object.pk') diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index 8d2f2fc0b3..82527b112e 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -53,7 +53,6 @@ class DocumentWorkflowInstanceListView(SingleObjectListView): 'hide_link': True, 'object': self.get_document(), 'title': _('Workflows for document: %s') % self.get_document(), - 'list_object_variable_name': 'workflow_instance', } ) diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 30fd38bf37..ee14239197 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -93,11 +93,11 @@ link_document_version_revert = Link(conditional_disable=is_current_version, perm # Document type related links link_document_type_create = Link(permissions=[PERMISSION_DOCUMENT_TYPE_CREATE], text=_('Create document type'), view='documents:document_type_create') -link_document_type_delete = Link(permissions=[PERMISSION_DOCUMENT_TYPE_DELETE], text=_('Delete'), view='documents:document_type_delete', args='document_type.id') -link_document_type_edit = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Edit'), view='documents:document_type_edit', args='document_type.id') +link_document_type_delete = Link(permissions=[PERMISSION_DOCUMENT_TYPE_DELETE], text=_('Delete'), view='documents:document_type_delete', args='resolved_object.id') +link_document_type_edit = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Edit'), view='documents:document_type_edit', args='resolved_object.id') link_document_type_filename_create = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Add filename to document type'), view='documents:document_type_filename_create', args='document_type.id') -link_document_type_filename_delete = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Delete'), view='documents:document_type_filename_delete', args='filename.id') -link_document_type_filename_edit = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Edit'), view='documents:document_type_filename_edit', args='filename.id') -link_document_type_filename_list = Link(permissions=[PERMISSION_DOCUMENT_TYPE_VIEW], text=_('Filenames'), view='documents:document_type_filename_list', args='document_type.id') +link_document_type_filename_delete = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Delete'), view='documents:document_type_filename_delete', args='resolved_object.id') +link_document_type_filename_edit = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Edit'), view='documents:document_type_filename_edit', args='resolved_object.id') +link_document_type_filename_list = Link(permissions=[PERMISSION_DOCUMENT_TYPE_VIEW], text=_('Filenames'), view='documents:document_type_filename_list', args='resolved_object.id') link_document_type_list = Link(permissions=[PERMISSION_DOCUMENT_TYPE_VIEW], text=_('Document types'), view='documents:document_type_list') link_document_type_setup = Link(icon='fa fa-file', permissions=[PERMISSION_DOCUMENT_TYPE_VIEW], text=_('Document types'), view='documents:document_type_list') diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index da3a1c8877..062345b62a 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -854,7 +854,6 @@ def document_type_list(request): 'object_list': DocumentType.objects.all(), 'title': _('Document types'), 'hide_link': True, - 'list_object_variable_name': 'document_type', 'extra_columns': [ {'name': _('OCR'), 'attribute': 'ocr'}, {'name': _('Documents'), 'attribute': encapsulate(lambda x: x.documents.count())} @@ -960,7 +959,6 @@ def document_type_filename_list(request, document_type_id): } ], 'hide_link': True, - 'list_object_variable_name': 'filename', 'navigation_object_list': ['document_type'], 'object_list': document_type.filenames.all(), 'title': _('Filenames for document type: %s') % document_type, @@ -1168,7 +1166,6 @@ def document_page_transformation_list(request, document_page_id): 'page': document_page, 'navigation_object_list': ['page'], 'title': _('Transformations for: %s') % document_page, - 'list_object_variable_name': 'transformation', 'extra_columns': [ {'name': _('Order'), 'attribute': 'order'}, {'name': _('Transformation'), 'attribute': encapsulate(lambda x: x.get_transformation_display())}, diff --git a/mayan/apps/linking/forms.py b/mayan/apps/linking/forms.py index afe095b5ed..1d8ed1e6c7 100644 --- a/mayan/apps/linking/forms.py +++ b/mayan/apps/linking/forms.py @@ -23,7 +23,7 @@ class SmartLinkConditionForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(SmartLinkConditionForm, self).__init__(*args, **kwargs) self.fields['foreign_document_data'] = forms.ChoiceField(choices=ModelAttribute.get_choices_for(Document, type_names=['field', 'query']), label=_('Foreign document attribute')) - self.fields['expression'].help_text = ' '.join([self.fields['expression'].help_text, ModelAttribute.help_text_for(Document, type_names=['field', 'related', 'property'])]) + self.fields['expression'].help_text = ' '.join([unicode(self.fields['expression'].help_text), ModelAttribute.help_text_for(Document, type_names=['field', 'related', 'property'])]) class Meta: model = SmartLinkCondition diff --git a/mayan/apps/linking/links.py b/mayan/apps/linking/links.py index ac859fd522..6ad33ca8c9 100644 --- a/mayan/apps/linking/links.py +++ b/mayan/apps/linking/links.py @@ -13,8 +13,8 @@ from .permissions import ( link_smart_link_acl_list = Link(permissions=[ACLS_VIEW_ACL], text=_('ACLs'), view='linking:smart_link_acl_list', args='object.pk') link_smart_link_condition_create = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Create condition'), view='linking:smart_link_condition_create', args='object.pk') -link_smart_link_condition_delete = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Delete'), view='linking:smart_link_condition_delete', args='condition.pk') -link_smart_link_condition_edit = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Edit'), view='linking:smart_link_condition_edit', args='condition.pk') +link_smart_link_condition_delete = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Delete'), view='linking:smart_link_condition_delete', args='resolved_object.pk') +link_smart_link_condition_edit = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Edit'), view='linking:smart_link_condition_edit', args='resolved_object.pk') link_smart_link_condition_list = Link(permissions=[PERMISSION_SMART_LINK_EDIT], text=_('Conditions'), view='linking:smart_link_condition_list', args='object.pk') link_smart_link_create = Link(permissions=[PERMISSION_SMART_LINK_CREATE], text=_('Create new smart link'), view='linking:smart_link_create') link_smart_link_delete = Link(permissions=[PERMISSION_SMART_LINK_DELETE], text=_('Delete'), view='linking:smart_link_delete', args='object.pk') diff --git a/mayan/apps/linking/views.py b/mayan/apps/linking/views.py index abb061168d..a27646986f 100644 --- a/mayan/apps/linking/views.py +++ b/mayan/apps/linking/views.py @@ -117,7 +117,6 @@ def smart_link_list(request): {'name': _('Enabled'), 'attribute': encapsulate(lambda x: two_state_template(x.enabled))}, ], 'hide_link': True, - 'list_object_variable_name': 'smart_link', }, context_instance=RequestContext(request)) @@ -234,7 +233,6 @@ def smart_link_condition_list(request, smart_link_pk): ], 'hide_link': True, 'object': smart_link, - 'list_object_variable_name': 'condition', }, context_instance=RequestContext(request)) diff --git a/mayan/apps/metadata/links.py b/mayan/apps/metadata/links.py index cb54d1415c..5028429374 100644 --- a/mayan/apps/metadata/links.py +++ b/mayan/apps/metadata/links.py @@ -20,8 +20,8 @@ link_metadata_multiple_edit = Link(permissions=[PERMISSION_METADATA_DOCUMENT_EDI link_metadata_multiple_remove = Link(permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE], text=_('Remove metadata'), view='metadata:metadata_multiple_remove') link_metadata_remove = Link(permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE], text=_('Remove metadata'), view='metadata:metadata_remove', args='object.pk') link_metadata_view = Link(permissions=[PERMISSION_METADATA_DOCUMENT_VIEW], text=_('Metadata'), view='metadata:metadata_view', args='object.pk') -link_setup_document_type_metadata = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Optional metadata'), view='metadata:setup_document_type_metadata', args='document_type.pk') -link_setup_document_type_metadata_required = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Required metadata'), view='metadata:setup_document_type_metadata_required', args='document_type.pk') +link_setup_document_type_metadata = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Optional metadata'), view='metadata:setup_document_type_metadata', args='resolved_object.pk') +link_setup_document_type_metadata_required = Link(permissions=[PERMISSION_DOCUMENT_TYPE_EDIT], text=_('Required metadata'), view='metadata:setup_document_type_metadata_required', args='resolved_object.pk') link_setup_metadata_type_create = Link(permissions=[PERMISSION_METADATA_TYPE_CREATE], text=_('Create new'), view='metadata:setup_metadata_type_create') link_setup_metadata_type_delete = Link(permissions=[PERMISSION_METADATA_TYPE_DELETE], text=_('Delete'), view='metadata:setup_metadata_type_delete', args='object.pk') link_setup_metadata_type_edit = Link(permissions=[PERMISSION_METADATA_TYPE_EDIT], text=_('Edit'), view='metadata:setup_metadata_type_edit', args='object.pk') diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index 1b805365aa..1904cce7c2 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -62,22 +62,7 @@ class Menu(object): # Unsourced links display always self._add_links_to_source(links, None) - def resolve_for_source(self, context, source): - request = Variable('request').resolve(context) - current_path = request.META['PATH_INFO'] - current_view = resolve(current_path).view_name - - result = [] - - for link in self.bound_links.get(CombinedSource(obj=(source), view=current_view), []): - result.append(link.resolve(context)) - - for link in self.bound_links.get(source, []): - result.append(link.resolve(context)) - - return result - - def resolve(self, context): + def resolve(self, context, source=None): request = Variable('request').resolve(context) current_path = request.META['PATH_INFO'] @@ -87,14 +72,17 @@ class Menu(object): result = [] - navigation_object_list = context.get('navigation_object_list', ['object']) + if source: + resolved_navigation_object_list = [source] + else: + navigation_object_list = context.get('navigation_object_list', ['object']) - # Multiple objects - for navigation_object in navigation_object_list: - try: - resolved_navigation_object_list.append(Variable(navigation_object).resolve(context)) - except VariableDoesNotExist: - pass + # Multiple objects + for navigation_object in navigation_object_list: + try: + resolved_navigation_object_list.append(Variable(navigation_object).resolve(context)) + except VariableDoesNotExist: + pass for resolved_navigation_object in resolved_navigation_object_list: for source, links in self.bound_links.iteritems(): diff --git a/mayan/apps/navigation/templatetags/navigation_tags.py b/mayan/apps/navigation/templatetags/navigation_tags.py index bc78983315..e88070b67f 100644 --- a/mayan/apps/navigation/templatetags/navigation_tags.py +++ b/mayan/apps/navigation/templatetags/navigation_tags.py @@ -11,17 +11,16 @@ register = Library() @register.assignment_tag(takes_context=True) -def get_menu_links(context, name): - return Menu.get(name).resolve(context=context) +def get_menu_links(context, name, source=None): + return Menu.get(name).resolve(context=context, source=source) @register.assignment_tag(takes_context=True) -def get_action_links(context): - # TODO: move this logic to template +def get_menus_links(context, names, source=None): result = [] - for menu_name in ['object menu', 'sidebar menu', 'secondary menu']: - links = Menu.get(name=menu_name).resolve(context) + for name in names.split(','): + links = Menu.get(name=name).resolve(context) if links: result.append(links) @@ -30,7 +29,7 @@ def get_action_links(context): @register.simple_tag(takes_context=True) def get_multi_item_links_form(context, object_list): - actions = [(link.url, link.text) for link in Menu.get('multi item menu').resolve_for_source(context=context, source=type(object_list[0]))] + actions = [(link.url, link.text) for link in Menu.get('multi item menu').resolve(context=context, source=object_list[0])] form = MultiItemForm(actions=actions) context.update({'multi_item_form': form, 'multi_item_actions': actions}) return '' diff --git a/mayan/apps/sources/links.py b/mayan/apps/sources/links.py index 945267c1c8..4d57ec3f74 100644 --- a/mayan/apps/sources/links.py +++ b/mayan/apps/sources/links.py @@ -24,12 +24,12 @@ link_setup_source_create_pop3_email = Link(permissions=[PERMISSION_SOURCES_SETUP link_setup_source_create_staging_folder = Link(permissions=[PERMISSION_SOURCES_SETUP_CREATE], text=_('Add new staging folder'), view='sources:setup_source_create', args='"%s"' % SOURCE_CHOICE_STAGING) link_setup_source_create_watch_folder = Link(permissions=[PERMISSION_SOURCES_SETUP_CREATE], text=_('Add new watch folder'), view='sources:setup_source_create', args='"%s"' % SOURCE_CHOICE_WATCH) link_setup_source_create_webform = Link(permissions=[PERMISSION_SOURCES_SETUP_CREATE], text=_('Add new webform source'), view='sources:setup_source_create', args='"%s"' % SOURCE_CHOICE_WEB_FORM) -link_setup_source_delete = Link(permissions=[PERMISSION_SOURCES_SETUP_DELETE], text=_('Delete'), view='sources:setup_source_delete', args=['source.pk']) -link_setup_source_edit = Link(text=_('Edit'), view='sources:setup_source_edit', args=['source.pk'], permissions=[PERMISSION_SOURCES_SETUP_EDIT]) -link_setup_source_transformation_create = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Add transformation'), view='sources:setup_source_transformation_create', args=['source.pk']) -link_setup_source_transformation_edit = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Edit'), view='sources:setup_source_transformation_edit', args='transformation.pk') -link_setup_source_transformation_delete = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Delete'), view='sources:setup_source_transformation_delete', args='transformation.pk') -link_setup_source_transformation_list = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Transformations'), view='sources:setup_source_transformation_list', args=['source.pk']) +link_setup_source_delete = Link(permissions=[PERMISSION_SOURCES_SETUP_DELETE], text=_('Delete'), view='sources:setup_source_delete', args=['resolved_object.pk']) +link_setup_source_edit = Link(text=_('Edit'), view='sources:setup_source_edit', args=['resolved_object.pk'], permissions=[PERMISSION_SOURCES_SETUP_EDIT]) +link_setup_source_transformation_create = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Add transformation'), view='sources:setup_source_transformation_create', args=['resolved_object.pk']) +link_setup_source_transformation_edit = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Edit'), view='sources:setup_source_transformation_edit', args='resolved_object.pk') +link_setup_source_transformation_delete = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Delete'), view='sources:setup_source_transformation_delete', args='resolved_object.pk') +link_setup_source_transformation_list = Link(permissions=[PERMISSION_SOURCES_SETUP_EDIT], text=_('Transformations'), view='sources:setup_source_transformation_list', args=['resolved_object.pk']) link_source_list = Link(permissions=[PERMISSION_SOURCES_SETUP_VIEW], text=_('Document sources'), view='sources:setup_web_form_list') link_staging_file_delete = Link(keep_query=True, permissions=[PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE], text=_('Delete'), view='sources:staging_file_delete', args=['source.pk', 'object.encoded_filename']) link_upload_version = Link(permissions=[PERMISSION_DOCUMENT_NEW_VERSION], text=_('Upload new version'), view='sources:upload_version', args='object.pk') diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index 1ff9520fa5..2481cff508 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -343,7 +343,6 @@ def setup_source_list(request): 'object_list': Source.objects.select_subclasses(), 'title': _('Sources'), 'hide_link': True, - 'list_object_variable_name': 'source', 'extra_columns': [ { 'name': _('Type'), @@ -459,7 +458,6 @@ def setup_source_transformation_list(request, source_id): ], 'hide_link': True, 'hide_object': True, - 'list_object_variable_name': 'transformation', 'navigation_object_list': ['source'], 'object_list': SourceTransformation.transformations.get_for_object(source), 'source': source, diff --git a/mayan/apps/statistics/apps.py b/mayan/apps/statistics/apps.py index a6044523d9..80c4e5e99e 100644 --- a/mayan/apps/statistics/apps.py +++ b/mayan/apps/statistics/apps.py @@ -19,5 +19,5 @@ class StatisticsApp(apps.AppConfig): def ready(self): menu_object.bind_links(links=[link_execute], sources=[Statistic]) menu_object.bind_links(links=[link_namespace_details], sources=[StatisticNamespace]) - menu_secondary.bind_links(links=[link_namespace_list], sources=[StatisticNamespace, 'statistics:namespace_list', 'statistics:execute']) + menu_secondary.bind_links(links=[link_namespace_list], sources=[StatisticNamespace, 'statistics:namespace_list']) menu_tools.bind_links(links=[link_statistics]) diff --git a/mayan/apps/statistics/links.py b/mayan/apps/statistics/links.py index bdcc30cc71..7d6dcaf432 100644 --- a/mayan/apps/statistics/links.py +++ b/mayan/apps/statistics/links.py @@ -10,6 +10,6 @@ def is_superuser(context): link_execute = Link(condition=is_superuser, text=_('Execute'), view='statistics:execute', args='object.id') -link_namespace_details = Link(text=_('Details'), view='statistics:namespace_details', args='namespace.id', condition=is_superuser) +link_namespace_details = Link(text=_('Namespace details'), view='statistics:namespace_details', args='resolved_object.id', condition=is_superuser) link_namespace_list = Link(condition=is_superuser, text=_('Namespace list'), view='statistics:namespace_list') link_statistics = Link(condition=is_superuser, icon='fa fa-sort-numeric-desc', text=_('Statistics'), view='statistics:namespace_list') diff --git a/mayan/apps/statistics/views.py b/mayan/apps/statistics/views.py index 8a1d537552..7c4355f5e6 100644 --- a/mayan/apps/statistics/views.py +++ b/mayan/apps/statistics/views.py @@ -16,7 +16,6 @@ def namespace_list(request): 'object_list': StatisticNamespace.get_all(), 'hide_link': True, 'title': _('Statistics namespaces'), - 'list_object_variable_name': 'namespace', }, context_instance=RequestContext(request)) @@ -44,10 +43,7 @@ def execute(request, statistic_id): return render_to_response('appearance/generic_list.html', { 'object': statictic, 'namespace': statictic.namespace, - 'navigation_object_list': [ - {'object': 'namespace', 'name': _('Namespace')}, - {'object': 'object', 'name': _('Statistic')}, - ], + 'navigation_object_list': ['namespace', 'object'], 'object_list': statictic.get_results(), 'hide_link': True, 'title': _('Results for: %s') % statictic,