Example #1
0
def view_tag(request, tag_id):
    """
    Displays a tag
    """
    tag = Tag.objects.get(id=tag_id)

    if (request.user == tag.owner
            or request.user in tag.viewers.all()
            or request.user in tag.users.all()
            or tag.public):

        pageData = {}
        pageData['tag'] = tag
        pageData['canEdit'] = (
            request.user == tag.owner or request.user in tag.users.all())
        pageData['viewers'] = tag.viewers.all()
        pageData['users'] = tag.users.all()
        pageData['public'] = tag.public
        pageData['add_user_form'] = AddMemberForm()
        form = AddTagForm()
        initialDict = {
            'public': tag.public,
            'name': tag.name,
            'description': tag.description
        }
        form.initial = initialDict
        pageData['form'] = form

        return render_to_response('tag_view.html', RequestContext(request, pageData))

    else:
        return HttpResponseRedirect('/tags/')
Example #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))