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/')
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))