diff --git a/apps/common/templates/generic_list_subtemplate.html b/apps/common/templates/generic_list_subtemplate.html
index 078dafb24f..242603cbeb 100644
--- a/apps/common/templates/generic_list_subtemplate.html
+++ b/apps/common/templates/generic_list_subtemplate.html
@@ -123,7 +123,13 @@
{% endfor %}
{% if not hide_links %}
- {% object_navigation_template %}
+ {% if navigation_object_links %}
+ {% with navigation_object_links as overrided_object_links %}
+ {% object_navigation_template %}
+ {% endwith %}
+ {% else %}
+ {% object_navigation_template %}
+ {% endif %}
|
{% endif %}
diff --git a/apps/document_comments/__init__.py b/apps/document_comments/__init__.py
index 590eb654d0..44ad4eb519 100644
--- a/apps/document_comments/__init__.py
+++ b/apps/document_comments/__init__.py
@@ -1,25 +1,31 @@
from django.utils.translation import ugettext_lazy as _
+from django.conf import settings
+from django.contrib.comments.models import Comment
from navigation.api import register_links, \
register_model_list_columns
from permissions.api import register_permission, set_namespace_title
-from django.contrib.comments.models import Comment
-
from documents.models import Document
+if 'django.contrib.comments' not in settings.INSTALLED_APPS:
+ raise Exception('This app depends on the django.contrib.comments app.')
+
PERMISSION_COMMENT_CREATE = {'namespace': 'comments', 'name': 'comment_create', 'label': _(u'Create new comments')}
PERMISSION_COMMENT_DELETE = {'namespace': 'comments', 'name': 'comment_delete', 'label': _(u'Delete comments')}
PERMISSION_COMMENT_EDIT = {'namespace': 'comments', 'name': 'comment_edit', 'label': _(u'Edit comments')}
+PERMISSION_COMMENT_VIEW = {'namespace': 'comments', 'name': 'comment_view', 'label': _(u'View comments')}
set_namespace_title('comments', _(u'Comments'))
register_permission(PERMISSION_COMMENT_CREATE)
register_permission(PERMISSION_COMMENT_DELETE)
register_permission(PERMISSION_COMMENT_EDIT)
+register_permission(PERMISSION_COMMENT_VIEW)
-comment_delete = {'text': _('delete'), 'view': 'comment_delete', 'args': 'object.id', 'famfam': 'comment_delete', 'permissions': [PERMISSION_COMMENT_DELETE]}
-comment_multiple_delete = {'text': _('delete'), 'view': 'comment_multiple_delete', 'args': 'object.id', 'famfam': 'comments_delete', 'permissions': [PERMISSION_COMMENT_DELETE]}
-comment_add = {'text': _('add comment'), 'view': 'comment_add', 'args': 'object.id', 'famfam': 'comment_add', 'permissions': [PERMISSION_COMMENT_CREATE]}
+comment_delete = {'text': _('delete'), 'view': 'comment_delete', 'args': 'object.pk', 'famfam': 'comment_delete', 'permissions': [PERMISSION_COMMENT_DELETE]}
+comment_multiple_delete = {'text': _('delete'), 'view': 'comment_multiple_delete', 'args': 'object.pk', 'famfam': 'comments_delete', 'permissions': [PERMISSION_COMMENT_DELETE]}
+comment_add = {'text': _('add comment'), 'view': 'comment_add', 'args': 'object.pk', 'famfam': 'comment_add', 'permissions': [PERMISSION_COMMENT_CREATE]}
+comments_for_object = {'text': _('comments'), 'view': 'comments_for_object', 'args': 'object.pk', 'famfam': 'comments', 'permissions': [PERMISSION_COMMENT_VIEW]}
register_model_list_columns(Comment, [
{
@@ -36,4 +42,8 @@ register_model_list_columns(Comment, [
}
])
-register_links(Document, [comment_add])
+register_links(['comments_for_object', 'comment_add', 'comment_delete', 'comment_multiple_delete'], [comment_add], menu_name='sidebar')
+register_links(Comment, [comment_delete])
+
+#comment_views = ['comment_delete', 'comment_multiple_delete', 'comment_add', 'comments_for_object']
+register_links(Document, [comments_for_object], menu_name='form_header')
diff --git a/apps/document_comments/urls.py b/apps/document_comments/urls.py
index 6f1544164a..f977004825 100644
--- a/apps/document_comments/urls.py
+++ b/apps/document_comments/urls.py
@@ -4,4 +4,5 @@ urlpatterns = patterns('document_comments.views',
url(r'^(?P\d+)/delete/$', 'comment_delete', (), 'comment_delete'),
url(r'^multiple/delete/$', 'comment_multiple_delete', (), 'comment_multiple_delete'),
url(r'^add_to_document/(?P\d+)/$', 'comment_add', (), 'comment_add'),
+ url(r'^for/object/(?P\d+)/$', 'comments_for_object', (), 'comments_for_object'),
)
diff --git a/apps/document_comments/views.py b/apps/document_comments/views.py
index 5e6745da4e..1e11c6e1dd 100644
--- a/apps/document_comments/views.py
+++ b/apps/document_comments/views.py
@@ -10,7 +10,8 @@ from django.contrib.sites.models import Site
from permissions.api import check_permissions
from documents.models import Document
-from document_comments import PERMISSION_COMMENT_DELETE, PERMISSION_COMMENT_CREATE
+from document_comments import PERMISSION_COMMENT_DELETE, \
+ PERMISSION_COMMENT_CREATE, PERMISSION_COMMENT_VIEW
from document_comments.forms import CommentForm
@@ -42,7 +43,7 @@ def comment_delete(request, comment_id=None, comment_id_list=None):
return HttpResponseRedirect(next)
context = {
- 'object_name': _(u'comment'),
+ #'object_name': _(u'comment'),
'delete_view': True,
'previous': previous,
'next': next,
@@ -93,3 +94,20 @@ def comment_add(request, document_id):
'next': next,
'object': document,
}, context_instance=RequestContext(request))
+
+
+def comments_for_object(request, document_id):
+ """
+ Show a list of all the comments related to the passed object
+ """
+ check_permissions(request.user, [PERMISSION_COMMENT_VIEW])
+
+ document = get_object_or_404(Document, pk=document_id)
+
+ return render_to_response('generic_list.html', {
+ 'object': document,
+ 'title': _(u'comments: %s') % document,
+ 'object_list': Comment.objects.for_model(document).order_by('-submit_date'),
+ 'hide_link': True,
+ 'hide_object': True,
+ }, context_instance=RequestContext(request))
diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py
index 0965250776..169ee6d6b7 100644
--- a/apps/documents/__init__.py
+++ b/apps/documents/__init__.py
@@ -9,6 +9,7 @@ from main.api import register_diagnostic, register_tool
from permissions.api import register_permission, set_namespace_title
from tags.widgets import get_tags_inline_widget_simple
from history.api import register_history_type
+#from document_comments import comments_for_object
from documents.models import Document, DocumentPage, \
DocumentPageTransformation, DocumentType, DocumentTypeFilename
@@ -69,8 +70,8 @@ document_list = {'text': _(u'all documents'), 'view': 'document_list', 'famfam':
document_list_recent = {'text': _(u'recent documents'), 'view': 'document_list_recent', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_create_multiple = {'text': _(u'upload new documents'), 'view': 'document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
document_create_siblings = {'text': _(u'clone metadata'), 'view': 'document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
-document_view_simple = {'text': _(u'details (simple)'), 'view': 'document_view_simple', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
-document_view_advanced = {'text': _(u'details (advanced)'), 'view': 'document_view_advanced', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
+document_view_simple = {'text': _(u'details'), 'view': 'document_view_simple', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
+document_view_advanced = {'text': _(u'properties'), 'view': 'document_view_advanced', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_delete = {'text': _(u'delete'), 'view': 'document_delete', 'args': 'object.id', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]}
document_multiple_delete = {'text': _(u'delete'), 'view': 'document_multiple_delete', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]}
document_edit = {'text': _(u'edit'), 'view': 'document_edit', 'args': 'object.id', 'famfam': 'page_edit', 'permissions': [PERMISSION_DOCUMENT_PROPERTIES_EDIT]}
@@ -136,7 +137,10 @@ register_links(['document_type_filename_create', 'document_type_filename_list',
register_links(['document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_return_to_document_type], menu_name='sidebar')
# Register document links
-register_links(Document, [document_view_simple, document_view_advanced, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_history_view, document_create_siblings])
+#register_links(Document, [document_view_simple, document_view_advanced, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_history_view, document_create_siblings])
+#register_links(Document, [document_view_advanced, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_history_view, document_create_siblings])
+#register_links(Document, [document_view_advanced, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings])
+register_links(Document, [document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings])
register_multi_item_links(['document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [document_multiple_clear_transformations, document_multiple_delete])
register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_document', 'upload_document_from_local', 'upload_document_from_staging', 'upload_document_from_user_staging', 'document_find_duplicates'], [document_list_recent, document_list, document_create_multiple], menu_name='secondary_menu')
@@ -197,7 +201,11 @@ register_model_list_columns(Document, [
},
])
-register_top_menu('documents', link={'famfam': 'page', 'text': _(u'documents'), 'view': 'document_list_recent'}, children_path_regex=[r'^documents/[^t]', r'^metadata/[^s]', r'comments'], position=0)
+register_top_menu('documents', link={'famfam': 'page', 'text': _(u'documents'), 'view': 'document_list_recent'}, children_path_regex=[r'^documents/[^t]', r'^metadata/[^s]', r'comments', r'tags/document'], position=0)
register_sidebar_template(['document_list_recent'], 'recent_document_list_help.html')
register_sidebar_template(['document_type_list'], 'document_types_help.html')
+
+register_links(Document, [document_view_simple], menu_name='form_header')
+register_links(Document, [document_view_advanced], menu_name='form_header')
+register_links(Document, [document_history_view], menu_name='form_header')
diff --git a/apps/documents/views.py b/apps/documents/views.py
index 5b61f873c1..7b5c019a3d 100644
--- a/apps/documents/views.py
+++ b/apps/documents/views.py
@@ -14,7 +14,7 @@ from django.views.generic.create_update import delete_object, update_object
from django.conf import settings
from django.utils.http import urlencode
from django.core.files.uploadedfile import SimpleUploadedFile
-from django.contrib.comments.models import Comment
+#from django.contrib.comments.models import Comment
import sendfile
from common.utils import pretty_size, parse_range, urlquote, \
@@ -26,7 +26,6 @@ from converter.api import convert_document, QUALITY_DEFAULT
from converter.exceptions import UnkownConvertError, UnknownFormat
from converter.api import DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION, \
DEFAULT_FILE_FORMAT, QUALITY_PRINT
-from document_comments.utils import get_comments_subtemplate
from filetransfers.api import serve_file
from grouping.utils import get_document_group_subtemplate
from metadata.api import save_metadata_list, \
@@ -34,7 +33,6 @@ from metadata.api import save_metadata_list, \
from metadata.forms import MetadataFormSet, MetadataSelectionForm
from navigation.utils import resolve_to_name
from permissions.api import check_permissions
-from tags.utils import get_tags_subtemplate
from document_indexing.utils import get_document_indexing_subtemplate
from document_indexing.api import update_indexes, delete_indexes
from history.api import create_history
@@ -295,30 +293,6 @@ def document_view(request, document_id, advanced=False):
subtemplates_list = []
- preview_form = DocumentPreviewForm(document=document)
- subtemplates_list.append(
- {
- 'name': 'generic_form_subtemplate.html',
- 'context': {
- 'form': preview_form,
- 'object': document,
- }
- },
- )
-
- content_form = DocumentContentForm(document=document)
-
- subtemplates_list.append(
- {
- 'name': 'generic_form_subtemplate.html',
- 'context': {
- 'title': _(u'document data'),
- 'form': content_form,
- 'object': document,
- },
- }
- )
-
if advanced:
document_properties_form = DocumentPropertiesForm(instance=document, extra_fields=[
{'label': _(u'Filename'), 'field': 'file_filename'},
@@ -341,36 +315,42 @@ def document_view(request, document_id, advanced=False):
'context': {
'form': document_properties_form,
'object': document,
- 'title': _(u'document properties'),
+ 'title': _(u'document properties for: %s') % document,
+ }
+ },
+ )
+ else:
+ preview_form = DocumentPreviewForm(document=document)
+ subtemplates_list.append(
+ {
+ 'name': 'generic_form_subtemplate.html',
+ 'context': {
+ 'form': preview_form,
+ 'object': document,
}
},
)
- if document.tags.count():
- subtemplates_list.append(get_tags_subtemplate(document))
+ content_form = DocumentContentForm(document=document)
- if Comment.objects.for_model(document).count():
- subtemplates_list.append(get_comments_subtemplate(document))
-
- subtemplates_list.append(
- {
- 'name': 'generic_list_subtemplate.html',
- 'context': {
- 'title': _(u'metadata'),
- 'object_list': document.documentmetadata_set.all(),
- 'extra_columns': [{'name': _(u'value'), 'attribute': 'value'}],
- 'hide_link': True,
+ subtemplates_list.append(
+ {
+ 'name': 'generic_form_subtemplate.html',
+ 'context': {
+ 'title': _(u'document data'),
+ 'form': content_form,
+ 'object': document,
+ },
}
- },
- )
+ )
- document_group_subtemplate = get_document_group_subtemplate(request, document)
+ document_group_subtemplate = get_document_group_subtemplate(request, document)
- if document_group_subtemplate:
- subtemplates_list.append(document_group_subtemplate)
+ if document_group_subtemplate:
+ subtemplates_list.append(document_group_subtemplate)
- if document.indexinstance_set.count():
- subtemplates_list.append(get_document_indexing_subtemplate(document))
+ if document.indexinstance_set.count():
+ subtemplates_list.append(get_document_indexing_subtemplate(document))
return render_to_response('generic_detail.html', {
'object': document,
diff --git a/apps/metadata/__init__.py b/apps/metadata/__init__.py
index c14a36de0e..44adeb25a5 100644
--- a/apps/metadata/__init__.py
+++ b/apps/metadata/__init__.py
@@ -10,6 +10,7 @@ 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_ADD = {'namespace': 'metadata', 'name': u'metadata_document_add', 'label': _(u'Add metadata to a document')}
PERMISSION_METADATA_DOCUMENT_REMOVE = {'namespace': 'metadata', 'name': u'metadata_document_remove', 'label': _(u'Remove metadata from a document')}
+PERMISSION_METADATA_DOCUMENT_VIEW = {'namespace': 'metadata', 'name': u'metadata_document_view', 'label': _(u'View metadata from a document')}
PERMISSION_METADATA_TYPE_EDIT = {'namespace': 'metadata_setup', 'name': u'metadata_type_edit', 'label': _(u'Edit metadata types')}
PERMISSION_METADATA_TYPE_CREATE = {'namespace': 'metadata_setup', 'name': u'metadata_type_create', 'label': _(u'Create new metadata types')}
@@ -25,6 +26,7 @@ set_namespace_title('metadata', _(u'Metadata'))
register_permission(PERMISSION_METADATA_DOCUMENT_EDIT)
register_permission(PERMISSION_METADATA_DOCUMENT_ADD)
register_permission(PERMISSION_METADATA_DOCUMENT_REMOVE)
+register_permission(PERMISSION_METADATA_DOCUMENT_VIEW)
set_namespace_title('metadata_setup', _(u'Metadata setup'))
register_permission(PERMISSION_METADATA_TYPE_EDIT)
@@ -37,26 +39,29 @@ register_permission(PERMISSION_METADATA_SET_CREATE)
register_permission(PERMISSION_METADATA_SET_DELETE)
register_permission(PERMISSION_METADATA_SET_VIEW)
-metadata_edit = {'text': _(u'edit metadata'), 'view': 'metadata_edit', 'args': 'object.id', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
+metadata_edit = {'text': _(u'edit metadata'), 'view': 'metadata_edit', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
+metadata_view = {'text': _(u'metadata'), 'view': 'metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
metadata_multiple_edit = {'text': _(u'edit metadata'), 'view': 'metadata_multiple_edit', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
-metadata_add = {'text': _(u'add metadata'), 'view': 'metadata_add', 'args': 'object.id', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_DOCUMENT_ADD]}
+metadata_add = {'text': _(u'add metadata'), 'view': 'metadata_add', 'args': 'object.pk', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_DOCUMENT_ADD]}
metadata_multiple_add = {'text': _(u'add metadata'), 'view': 'metadata_multiple_add', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_DOCUMENT_ADD]}
-metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.id', '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]}
setup_metadata_type_list = {'text': _(u'metadata types'), 'view': 'setup_metadata_type_list', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_TYPE_VIEW]}
-setup_metadata_type_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.id', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]}
-setup_metadata_type_delete = {'text': _(u'delete'), 'view': 'setup_metadata_type_delete', 'args': 'object.id', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]}
+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_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': 'application_form', 'permissions': [PERMISSION_METADATA_SET_VIEW]}
-setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.id', 'famfam': 'application_form_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]}
-setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.id', 'famfam': 'application_form_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]}
+setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'application_form_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]}
+setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'application_form_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]}
setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': 'application_form_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]}
-setup_document_type_metadata = {'text': _(u'default metadata'), 'view': 'setup_document_type_metadata', 'args': 'object.id', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
+setup_document_type_metadata = {'text': _(u'default metadata'), 'view': 'setup_document_type_metadata', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
-register_links(Document, [metadata_add, metadata_edit, metadata_remove])
+#register_links(Document, [metadata_add, metadata_edit, metadata_remove])
+register_links(['metadata_add', 'metadata_edit', 'metadata_remove', 'metadata_view'], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar')
+register_links(Document, [metadata_view], menu_name='form_header')#, metadata_edit, metadata_remove])
register_multi_item_links(['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])
diff --git a/apps/metadata/urls.py b/apps/metadata/urls.py
index 60a2c23bf6..7fd2b972ae 100644
--- a/apps/metadata/urls.py
+++ b/apps/metadata/urls.py
@@ -2,6 +2,7 @@ from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('metadata.views',
url(r'^(?P\d+)/edit/$', 'metadata_edit', (), 'metadata_edit'),
+ url(r'^(?P\d+)/view/$', 'metadata_view', (), 'metadata_view'),
url(r'^multiple/edit/$', 'metadata_multiple_edit', (), 'metadata_multiple_edit'),
url(r'^(?P\d+)/add/$', 'metadata_add', (), 'metadata_add'),
url(r'^multiple/add/$', 'metadata_multiple_add', (), 'metadata_multiple_add'),
diff --git a/apps/metadata/views.py b/apps/metadata/views.py
index 77440cdd6f..ecd6db9470 100644
--- a/apps/metadata/views.py
+++ b/apps/metadata/views.py
@@ -15,7 +15,8 @@ from document_indexing.api import update_indexes, delete_indexes
from common.utils import generate_choices_w_labels#, two_state_template
from common.views import assign_remove
-from metadata import PERMISSION_METADATA_DOCUMENT_EDIT, \
+from metadata import PERMISSION_METADATA_DOCUMENT_VIEW, \
+ PERMISSION_METADATA_DOCUMENT_EDIT, \
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE, \
PERMISSION_METADATA_TYPE_EDIT, PERMISSION_METADATA_TYPE_CREATE, \
PERMISSION_METADATA_TYPE_DELETE, PERMISSION_METADATA_TYPE_VIEW, \
@@ -272,6 +273,19 @@ def metadata_multiple_remove(request):
return metadata_remove(request, document_id_list=request.GET.get('id_list', []))
+def metadata_view(request, document_id):
+ check_permissions(request.user, [PERMISSION_METADATA_DOCUMENT_VIEW])
+ document = get_object_or_404(Document, pk=document_id)
+
+ return render_to_response('generic_list.html', {
+ 'title': _(u'metadata for: %s') % document,
+ 'object_list': document.documentmetadata_set.all(),
+ 'extra_columns': [{'name': _(u'value'), 'attribute': 'value'}],
+ 'hide_link': True,
+ 'object': document,
+ }, context_instance=RequestContext(request))
+
+
def setup_metadata_type_list(request):
check_permissions(request.user, [PERMISSION_METADATA_TYPE_VIEW])
diff --git a/apps/navigation/templatetags/navigation_tags.py b/apps/navigation/templatetags/navigation_tags.py
index 8740f97699..6d25203d63 100644
--- a/apps/navigation/templatetags/navigation_tags.py
+++ b/apps/navigation/templatetags/navigation_tags.py
@@ -136,7 +136,7 @@ def _get_object_navigation_links(context, menu_name=None, links_dict=object_navi
Override the navigation links dictionary with the provided
link list
"""
- navigation_object_links = Variable('navigation_object_links').resolve(context)
+ navigation_object_links = Variable('overrided_object_links').resolve(context)
if navigation_object_links:
return [link for link in resolve_links(context, navigation_object_links, current_view, current_path, parsed_query_string)]
except VariableDoesNotExist:
diff --git a/apps/tags/__init__.py b/apps/tags/__init__.py
index b06015842c..1eb980abcc 100644
--- a/apps/tags/__init__.py
+++ b/apps/tags/__init__.py
@@ -5,6 +5,8 @@ from navigation.api import register_links, register_top_menu, \
from permissions.api import register_permission, set_namespace_title
from navigation.api import register_sidebar_template
+from documents.models import Document
+
from taggit.models import Tag
PERMISSION_TAG_CREATE = {'namespace': 'tags', 'name': 'tag_create', 'label': _(u'Create new tags')}
@@ -22,6 +24,7 @@ register_permission(PERMISSION_TAG_EDIT)
tag_list = {'text': _(u'tag list'), 'view': 'tag_list', 'famfam': 'tag_blue'}
tag_document_remove = {'text': _(u'remove'), 'view': 'tag_remove', 'args': ['object.id', 'document.id'], 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
+tag_document_list = {'text': _(u'tags'), 'view': 'document_tags', 'args': 'object.pk', 'famfam': 'tag_blue', 'permissions': [PERMISSION_TAG_REMOVE]}
tag_delete = {'text': _(u'delete'), 'view': 'tag_delete', 'args': 'object.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_DELETE]}
tag_edit = {'text': _(u'edit'), 'view': 'tag_edit', 'args': 'object.id', 'famfam': 'tag_blue_edit', 'permissions': [PERMISSION_TAG_EDIT]}
tag_tagged_item_list = {'text': _(u'tagged documents'), 'view': 'tag_tagged_item_list', 'args': 'object.id', 'famfam': 'page'}
@@ -45,6 +48,8 @@ register_multi_item_links(['tag_list'], [tag_multiple_delete])
register_links(['tag_list', 'tag_remove', 'tag_delete', 'tag_edit', 'tag_tagged_item_list', 'tag_multiple_delete'], [tag_list], menu_name='secondary_menu')
-register_sidebar_template(['document_view_advanced', 'document_view_simple'], 'tags_sidebar_template.html')
+register_sidebar_template(['document_tags'], 'tags_sidebar_template.html')
-register_top_menu('tags', link={'text': _(u'tags'), 'view': 'tag_list', 'famfam': 'tag_blue'}, children_path_regex=[r'^tags/'])
+register_top_menu('tags', link={'text': _(u'tags'), 'view': 'tag_list', 'famfam': 'tag_blue'}, children_path_regex=[r'^tags/[^d]/'])
+
+register_links(Document, [tag_document_list], menu_name='form_header')
diff --git a/apps/tags/urls.py b/apps/tags/urls.py
index ab09172a88..0b92068a01 100644
--- a/apps/tags/urls.py
+++ b/apps/tags/urls.py
@@ -8,5 +8,6 @@ urlpatterns = patterns('tags.views',
url(r'^multiple/delete/$', 'tag_multiple_delete', (), 'tag_multiple_delete'),
url(r'^(?P\d+)/remove_from_document/(?P\d+)/$', 'tag_remove', (), 'tag_remove'),
- url(r'^add_to_document/(?P\d+)/$', 'tag_add', (), 'tag_add'),
+ url(r'^document/(?P\d+)/add/$', 'tag_add', (), 'tag_add'),
+ url(r'^document/(?P\d+)/list/$', 'document_tags', (), 'document_tags'),
)
diff --git a/apps/tags/views.py b/apps/tags/views.py
index 51e61407e3..1b8f3a0eb0 100644
--- a/apps/tags/views.py
+++ b/apps/tags/views.py
@@ -14,6 +14,8 @@ from tags.forms import AddTagForm, TagForm
from tags.models import TagProperties
from tags import PERMISSION_TAG_CREATE, PERMISSION_TAG_ATTACH, \
PERMISSION_TAG_REMOVE, PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT
+from tags import tag_document_remove as tag_document_remove_link
+from tags import tag_tagged_item_list as tag_tagged_item_list_link
def tag_remove(request, tag_id, document_id):
@@ -176,3 +178,19 @@ def tag_tagged_item_list(request, tag_id):
'object': tag
}
)
+
+
+def document_tags(request, document_id):
+ #check_permissions(request.user, [PERMISSION_TAG_VIEW])
+ document = get_object_or_404(Document, pk=document_id)
+
+ return render_to_response('generic_list.html', {
+ 'title': _(u'tags for: %s') % document,
+ 'object_list': document.tags.all(),
+ 'hide_link': True,
+ 'navigation_object_links': [tag_tagged_item_list_link, tag_document_remove_link],
+ 'object': document,
+ 'document': document,
+ 'disable_auto_focus': True,
+ },
+ context_instance=RequestContext(request))