Changed layout to make more use of tabbed links

This commit is contained in:
Roberto Rosario
2011-07-01 19:38:59 -04:00
parent a8c4a7487d
commit ace6948185
13 changed files with 142 additions and 75 deletions

View File

@@ -123,7 +123,13 @@
{% endfor %}
{% if not hide_links %}
<td class="last">
{% object_navigation_template %}
{% if navigation_object_links %}
{% with navigation_object_links as overrided_object_links %}
{% object_navigation_template %}
{% endwith %}
{% else %}
{% object_navigation_template %}
{% endif %}
</td>
{% endif %}
</tr>

View File

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

View File

@@ -4,4 +4,5 @@ urlpatterns = patterns('document_comments.views',
url(r'^(?P<comment_id>\d+)/delete/$', 'comment_delete', (), 'comment_delete'),
url(r'^multiple/delete/$', 'comment_multiple_delete', (), 'comment_multiple_delete'),
url(r'^add_to_document/(?P<document_id>\d+)/$', 'comment_add', (), 'comment_add'),
url(r'^for/object/(?P<document_id>\d+)/$', 'comments_for_object', (), 'comments_for_object'),
)

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,6 +2,7 @@ from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('metadata.views',
url(r'^(?P<document_id>\d+)/edit/$', 'metadata_edit', (), 'metadata_edit'),
url(r'^(?P<document_id>\d+)/view/$', 'metadata_view', (), 'metadata_view'),
url(r'^multiple/edit/$', 'metadata_multiple_edit', (), 'metadata_multiple_edit'),
url(r'^(?P<document_id>\d+)/add/$', 'metadata_add', (), 'metadata_add'),
url(r'^multiple/add/$', 'metadata_multiple_add', (), 'metadata_multiple_add'),

View File

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

View File

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

View File

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

View File

@@ -8,5 +8,6 @@ urlpatterns = patterns('tags.views',
url(r'^multiple/delete/$', 'tag_multiple_delete', (), 'tag_multiple_delete'),
url(r'^(?P<tag_id>\d+)/remove_from_document/(?P<document_id>\d+)/$', 'tag_remove', (), 'tag_remove'),
url(r'^add_to_document/(?P<document_id>\d+)/$', 'tag_add', (), 'tag_add'),
url(r'^document/(?P<document_id>\d+)/add/$', 'tag_add', (), 'tag_add'),
url(r'^document/(?P<document_id>\d+)/list/$', 'document_tags', (), 'document_tags'),
)

View File

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