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
Exemplo n.º 2
0
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))
Exemplo n.º 3
0
 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.')
Exemplo n.º 4
0
    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.')
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)