def _synonym(self,item): tag=self._find_tag(item['id'],item['name']) properTags=Tag.objects.filter(name=item['proper_name']) if len(properTags)>0: properTag=properTags[0] else: properTag=None if tag is not None: if properTag is None: # got the synonym tag but not the proper tag # create the proper tag - so we can link it to the synonym properTag=Tag(name=item['proper_name']) properTag.save() if properTag is not None and properTag!=tag: # got the synonym tag and the proper tag - just create the synonym try: ts=TagSynonym(tag=properTag,synonym_tag=tag) if self._options['nodryrun']: ts.save() self.stdout.write('done') except IntegrityError as e: if str(e)=='column synonym_tag_id is not unique': self.stdout.write('-- warning --') self.stdout.write('synonym already exists') self.stdout.write('--------------------') else: raise e
def add_tag(request, tag_id=False, project_id=False, task_id=False): """ Provides a page where tags can be created by the user. """ if request.method == 'POST': postData = deepcopy(request.POST) if ('public' not in request.POST): postData['public'] = 'off' form = AddTagForm(postData) if form.is_valid(): if (not tag_id): newTag = Tag() else: newTag = Tag.objects.get(id=tag_id) newTag.name = form.cleaned_data['name'] newTag.description = form.cleaned_data['description'] newTag.public = form.cleaned_data['public'] newTag.owner = request.user if ('public' not in request.POST): newTag.public = False newTag.save() if (task_id): task = ProjectTask.objects.get(id=task_id) task.tags.add(newTag) task.save() if (project_id): project = Project.objects.get(id=project_id) project.tags.add(newTag) project.save() if ('returnUrl' in request.session): return HttpResponseRedirect(request.session['returnUrl']) else: return HttpResponseRedirect('/tags/' + str(newTag.id)) else: pageData = {} pageData['form'] = form pageData['postTo'] = request.get_full_path() messages.warning(request, "Please check your inputs.") return render_to_response('tag_create.html', RequestContext(request, pageData)) else: form = AddTagForm() args = {} args['form'] = form args['postTo'] = request.get_full_path() return render_to_response('tag_create.html', RequestContext(request, args))
def test_search_by_not_tag(self): client = self.client self.login(client) unused_tag = Tag(name="Unused") unused_tag.save() response = client.post('/contacts/', {'search_term':"My", "tags":[unused_tag.id]}) self.assertContains(response, 'No Results found.')
def test_search_by_not_tag(self): client = self.client self.login(client) unused_tag = Tag(name="Unused") unused_tag.save() response = client.post('/contacts/', { 'search_term': "My", "tags": [unused_tag.id] }) self.assertContains(response, 'No Results found.')
def TagsView(request, template_name="news/tags_list.html"): if request.method == 'POST': for field in request.POST: region_field = field.split('_') tag_name = request.POST[field] if region_field[0] == 'tag' and tag_name != 'None': # What region are we dealing with? if region_field[1] == '0': region = None # 0 = All else: region = Region.objects.get(id=region_field[1]) # Get region tag if available if region is not None: tag = list(Tag.objects.get_for_object(region)) else: tag = [ get_redmap_tag(), ] if not tag: # create tag if not exists tag = Tag() tag.name = tag_name tag.save() elif tag[0].name != tag_name: # update tag if different tag[0].name = tag_name tag[0].save() # TODO: If we update a tag, we will need to update zinnia # entries with updated tags because the app stores # tags in a plain-text string rather than by model # association if region is not None: # attach tag to region Tag.objects.update_tags(region, tag_name + ',') return HttpResponseRedirect(reverse('news_tags_list')) return render(request, template_name)
def create_tag(request, user_id): if request.method != 'POST': error_dict = {"message": "Method not allowed"} error_data = json.dumps(error_dict) return HttpResponseNotAllowed(error_data, content_type="application/json") received_json_data = json.loads(request.body) form = TagForm(received_json_data) if form.is_valid(): new_tag = Tag(tag_name=form.cleaned_data['tag_name']) new_tag.user = request.user new_tag.save() data = json.dumps(new_tag.to_dict()) logger.info("New Tag created name: %s id: %s", new_tag.tag_name, new_tag.id) return HttpResponse(data) else: logger.error("Invalid Tag Form. %s", form.errors) error_data = json.dumps(form.errors) return HttpResponseBadRequest(error_data)