def del_tag(request): if not request.user.is_authenticated() or not request.user.is_active: #needs to popup registration dialog instead return HttpResponse( simplejson.dumps({ 'FAIL': True }), #need a better non-auth error here, interferes with view mimetype='application/json') if request.method == 'POST': obj_id = request.POST[u'obj'] tag = str(request.POST[u'tag']) c_type = str(request.POST['c_type']) app_type = str(request.POST['app_type']) model_type = ContentType.objects.get(app_label=app_type, model=c_type) obj = model_type.get_object_for_this_type(pk=obj_id) del_group_tag.apply_async(args=[obj_id, c_type, tag]) tagobj = Tag.objects.get(name=tag) taggedobj = TaggedItem.objects.get(tag_name=tag, object_id=obj.pk) delete_relationship_event.send(sender=tagobj, obj=tagobj, parent=obj, initiator=request.user) taggedobj.delete() results = { 'linktaglist': get_link_tag_list(request.user, obj, get_links=True), 'taglist': get_recommended_tag_list(obj, get_links=True), 'FAIL': False } return HttpResponse(simplejson.dumps(results), mimetype='application/json')
def add_tag(request): if not request.user.is_authenticated() or not request.user.is_active: #needs to popup registration dialog instead return HttpResponse(simplejson.dumps({'FAIL':True}), #need a better non-auth error here, interferes with view mimetype='application/json') if request.method == 'POST': obj_id = request.POST[u'obj'] tag = str(request.POST[u'tag']) c_type = str(request.POST['c_type']) app_type = str(request.POST['app_type']) model_type = ContentType.objects.get(app_label=app_type, model=c_type) obj = model_type.get_object_for_this_type(pk=obj_id) Tag.objects.add_tag(obj, tag) add_group_tag.apply_async(args=[obj_id, c_type, tag]) new_tag = Tag.objects.get(name=tag) try: relationship_event.send(sender=new_tag, obj=new_tag, parent=obj, initiator=request.user) except: pass results = {'linktaglist': get_link_tag_list(request.user, obj, get_links=True), 'taglist': get_recommended_tag_list(obj, get_links=True), 'FAIL': False} return HttpResponse(simplejson.dumps(results), mimetype='application/json')
def del_tag(request): if not request.user.is_authenticated() or not request.user.is_active: # needs to popup registration dialog instead return HttpResponse( simplejson.dumps({"FAIL": True}), # need a better non-auth error here, interferes with view mimetype="application/json", ) if request.method == "POST": obj_id = request.POST[u"obj"] tag = str(request.POST[u"tag"]) c_type = str(request.POST["c_type"]) app_type = str(request.POST["app_type"]) model_type = ContentType.objects.get(app_label=app_type, model=c_type) obj = model_type.get_object_for_this_type(pk=obj_id) del_group_tag.apply_async(args=[obj_id, c_type, tag]) tagobj = Tag.objects.get(name=tag) taggedobj = TaggedItem.objects.get(tag_name=tag, object_id=obj.pk) delete_relationship_event.send(sender=tagobj, obj=tagobj, parent=obj, initiator=request.user) taggedobj.delete() results = { "linktaglist": get_link_tag_list(request.user, obj, get_links=True), "taglist": get_recommended_tag_list(obj, get_links=True), "FAIL": False, } return HttpResponse(simplejson.dumps(results), mimetype="application/json")
def read(self, request, app=None, model=None, obj_id=None): """ Returns a single post if `blogpost_id` is given, otherwise a subset. """ if app is not None and model is not None: try: base = ContentType.objects.get(app_label=app, model=model) except: return { 'error': True, 'type': 'Content Not Found', 'code': 404, 'app': app, 'model': model } if obj_id is not None: try: con = Consensus.objects.get(object_pk=obj_id) obj = base.get_object_for_this_type(pk=obj_id) #get tags from convienent tag_helper function tags = get_link_tag_list(None, con) return { 'id': obj.id, 'user_id': obj.user.id, 'object': base.get_object_for_this_type(pk=obj_id), 'tags': [{ 'name': i[0], 'count': i[3] } for i in tags], 'parent': obj.parent.id, 'sources': URLSource.objects.filter(object_pk=obj.pk, is_video=False) } except: return { 'error': True, 'type': 'Content Not Found', 'id': int(obj_id), 'code': 404 } else: return base.model_class().objects.all() else: content = {} for fd in ForumDimension.objects.filter(is_content=True): content[fd.app_label + '_' + fd.model_class_name.lower()] = ( fd.get_model().objects.all()) return content
def read(self, request, app=None, model=None, obj_id=None): """ Returns a single post if `blogpost_id` is given, otherwise a subset. """ if app is not None and model is not None: try: base = ContentType.objects.get(app_label=app, model=model) except: return {'error': True, 'type': 'Content Not Found', 'code': 404, 'app': app, 'model': model} if obj_id is not None: try: con = Consensus.objects.get(object_pk=obj_id) obj = base.get_object_for_this_type(pk=obj_id) #get tags from convienent tag_helper function tags = get_link_tag_list(None, con) return {'id': obj.id, 'user_id': obj.user.id, 'object': base.get_object_for_this_type(pk=obj_id), 'tags': [{'name': i[0], 'count': i[3]} for i in tags], 'parent': obj.parent.id, 'sources': URLSource.objects.filter(object_pk=obj.pk, is_video=False) } except: return {'error': True, 'type': 'Content Not Found', 'id': int(obj_id), 'code': 404} else: return base.model_class().objects.all() else: content = {} for fd in ForumDimension.objects.filter(is_content=True): content[fd.app_label + '_' + fd.model_class_name.lower()] = (fd.get_model().objects.all()) return content