def tags_box(context, object): request = context['request'] response_format = 'html' if 'response_format' in context: response_format = context['response_format'] response_format_tags = response_format if 'response_format_tags' in context: response_format_tags = context['response_format_tags'] tags = object.tags.all() form = None if 'tags-edit' in request.GET: if request.POST.get('tags_object', 0) == unicode(object.id): form = TagsForm(tags, request.POST) if form.is_valid(): if 'multicomplete_tags' in request.POST: tag_names = request.POST.get( 'multicomplete_tags').split(',') new_tags = [] for name in tag_names: name = name.strip() if name: try: tag = Tag.objects.get(name=name) except Tag.DoesNotExist: tag = Tag(name=name) tag.save() new_tags.append(tag) else: new_tags = form.is_valid() object.tags.clear() for tag in new_tags: object.tags.add(tag) tags = object.tags.all() form = None else: form = TagsForm(tags) context = {'object': object, 'tags': tags, 'form': form, 'editlink': request.path + '?tags-edit'} if 'ajax' in response_format_tags: context = converter.preprocess_context(context) return Markup(render_to_string('core/tags/tags_box', context, context_instance=RequestContext(request), response_format=response_format))
def tags(request, target, object_id, edit=False, formdata=None): if formdata is None: formdata = {} dajax = Dajax() response_format = 'html' obj = Object.objects.get(pk=object_id) tags = obj.tags.all() form = None if 'tags' in formdata and not type(formdata['tags']) == list: formdata['tags'] = [formdata['tags']] if edit or formdata: if formdata.get('tags_object', 0) == unicode(obj.id): form = TagsForm(tags, formdata) if form.is_valid(): if 'multicomplete_tags' in formdata: tag_names = formdata.get('multicomplete_tags').split(',') new_tags = [] for name in tag_names: name = name.strip() if name: try: tag = Tag.objects.get(name=name) except Tag.DoesNotExist: tag = Tag(name=name) tag.save() new_tags.append(tag) else: new_tags = form.is_valid() obj.tags.clear() for tag in new_tags: obj.tags.add(tag) tags = obj.tags.all() form = None else: form = TagsForm(tags) context = {'object': obj, 'tags': tags, 'form': form} context = converter.preprocess_context(context) output = render_to_string('core/ajax/tags_box', context, context_instance=RequestContext(request), response_format=response_format) dajax.add_data({'target': target, 'content': output}, 'anaf.add_data') return dajax.json()
def tags_box(context, object): request = context['request'] response_format = 'html' if 'response_format' in context: response_format = context['response_format'] response_format_tags = response_format if 'response_format_tags' in context: response_format_tags = context['response_format_tags'] tags = object.tags.all() form = None if 'tags-edit' in request.GET: if request.POST.get('tags_object', 0) == unicode(object.id): form = TagsForm(tags, request.POST) if form.is_valid(): if 'multicomplete_tags' in request.POST: tag_names = request.POST.get('multicomplete_tags').split( ',') new_tags = [] for name in tag_names: name = name.strip() if name: try: tag = Tag.objects.get(name=name) except Tag.DoesNotExist: tag = Tag(name=name) tag.save() new_tags.append(tag) else: new_tags = form.is_valid() object.tags.clear() for tag in new_tags: object.tags.add(tag) tags = object.tags.all() form = None else: form = TagsForm(tags) context = { 'object': object, 'tags': tags, 'form': form, 'editlink': request.path + '?tags-edit' } if 'ajax' in response_format_tags: context = converter.preprocess_context(context) return Markup( render_to_string('core/tags/tags_box', context, context_instance=RequestContext(request), response_format=response_format))