Added new view to create tag from the main menu

This commit is contained in:
Roberto Rosario
2011-08-05 10:37:42 -04:00
parent 50b8102618
commit e524ec1e8b
3 changed files with 35 additions and 3 deletions

View File

@@ -26,6 +26,7 @@ register_permission(PERMISSION_TAG_EDIT)
register_permission(PERMISSION_TAG_VIEW)
tag_list = {'text': _(u'tag list'), 'view': 'tag_list', 'famfam': 'tag_blue'}
tag_create = {'text': _(u'create new tag'), 'view': 'tag_create', 'famfam': 'tag_blue_add'}
tag_add_attach = {'text': _(u'attach tag'), 'view': 'tag_add_attach', 'args': 'object.pk', 'famfam': 'tag_blue_add', 'permission': [PERMISSION_TAG_CREATE, PERMISSION_TAG_ATTACH]}
tag_document_remove = {'text': _(u'remove'), 'view': 'tag_remove', 'args': ['object.id', 'document.id'], 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
tag_document_remove_multiple = {'text': _(u'remove'), 'view': 'tag_multiple_remove', 'args': 'document.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
@@ -50,7 +51,7 @@ register_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete])
register_multi_item_links(['tag_list'], [tag_multiple_delete])
register_links(['tag_list', 'tag_delete', 'tag_edit', 'tag_tagged_item_list', 'tag_multiple_delete'], [tag_list], menu_name='secondary_menu')
register_links(['tag_list', 'tag_delete', 'tag_edit', 'tag_tagged_item_list', 'tag_multiple_delete', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu')
#register_sidebar_template(['document_tags'], 'tags_sidebar_template.html')

View File

@@ -2,6 +2,7 @@ from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('tags.views',
url(r'^list/$', 'tag_list', (), 'tag_list'),
url(r'^create/$', 'tag_create', (), 'tag_create'),
url(r'^(?P<tag_id>\d+)/delete/$', 'tag_delete', (), 'tag_delete'),
url(r'^(?P<tag_id>\d+)/edit/$', 'tag_edit', (), 'tag_edit'),
url(r'^(?P<tag_id>\d+)/tagged_item/list/$', 'tag_tagged_item_list', (), 'tag_tagged_item_list'),

View File

@@ -19,10 +19,40 @@ from tags import PERMISSION_TAG_CREATE, PERMISSION_TAG_ATTACH, \
from tags import tag_tagged_item_list as tag_tagged_item_list_link
def tag_create(request):
#check_permissions(request.user, [PERMISSION_TAG_EDIT])
redirect_url = reverse('tag_list')
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', redirect_url)))
if request.method == 'POST':
form = TagForm(request.POST)
if form.is_valid():
tag_name = form.cleaned_data['name']
if tag_name in Tag.objects.values_list('name', flat=True):
messages.error(request, _(u'Tag already exists.'))
return HttpResponseRedirect(previous)
tag = Tag(name=tag_name)
tag.save()
TagProperties(tag=tag, color=form.cleaned_data['color']).save()
messages.success(request, _(u'Tag created succesfully.'))
return HttpResponseRedirect(redirect_url)
else:
form = TagForm()
return render_to_response('generic_form.html', {
'title': _(u'create tag'),
'form': form,
},
context_instance=RequestContext(request))
def tag_add_sidebar(request, document_id):
document = get_object_or_404(Document, pk=document_id)
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', None)))
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse('tag_list'))))
if request.method == 'POST':
previous = request.META.get('HTTP_REFERER', '/')
@@ -116,7 +146,7 @@ def tag_list(request):
'multi_select_as_buttons': True,
'extra_columns': [
{
'name': _(u'count'),
'name': _(u'tagged items'),
'attribute': encapsulate(lambda x: x.taggit_taggeditem_items.count())
}
]