def create_tag(request): """Create a new tag """ if request.method == 'POST': form = TagForm(request.POST, request.FILES) if form.is_valid(): tag = form.save(commit=False) tag.user = request.user tag.save() # Get hashtags from tag.description or from POST['hashtags'] hashtags = tag.get_hashtags('description', request.POST['hashtags']) Hashtag.objects.update_tags(tag, hashtags) # Subscribe tag owner to tag try: track_tag(request, tag.id, silent=True) except Exception as ex: # TODO: Catch a real exception logging.debug( "Exception raised when subscribing tag owner '%s' to tag '%s': %s" % (request.user, tag, ex)) return HttpResponseRedirect(reverse(view_tag, kwargs={'id': tag.id})) else: form = TagForm() template = 'web/tag_form.html' if not is_mobile_browser(request) else 'mobile/tag_form.html' return render_to_response(template, {'form': form}, context_instance=RequestContext(request))
def edit_tag(request, id): """Edit a tag's details """ tag = get_object_or_404(Tag, pk=id) if tag.is_deleted: raise Http404 if request.method == 'POST': form = TagForm(request.POST, request.FILES, instance=tag) if form.is_valid(): tag = form.save() Hashtag.objects.update_tags(tag, request.POST['hashtags'].replace('#', '')) return HttpResponseRedirect(reverse(view_tag, kwargs={'id': tag.id})) else: form = TagForm(instance=tag) hashtags = ' '.join([u'#%s' % (t, ) for t in Hashtag.objects.get_for_object(tag)]) template = 'web/tag_form.html' if not is_mobile_browser(request) else 'mobile/tag_form.html' return render_to_response(template, {'form': form, 'hashtags': hashtags}, context_instance=RequestContext(request))