def idea(req, slug): p = _create_params(req) p['idea'] = get_object_or_404(Idea, owner=req.user, slug=slug) p['slug'] = p['idea'].slug p['breadcrumbs'].append({reverse('idea', args=[slug,]): \ p['idea'].name}) if req.method == 'GET': p['form'] = IdeaForm(instance=p['idea']) return render_to_response(TEMPLATE_PATH + 'idea.html', p, context_instance=RequestContext(req)) elif req.method == 'POST': idea = get_object_or_404(Idea, owner=req.user, slug=slug) form = IdeaForm(req.POST) if form.is_valid(): _save_idea(form, idea) tags = req.POST.get('tags', '').strip() if tags != '': _add_tags(idea, tags, req.user, 'idea') messages.add_message(req, messages.INFO, 'Idea "%s" successfully updated.' % idea.name) return HttpResponseRedirect(reverse('ideas')) else: p['form'] = form return render_to_response(TEMPLATE_PATH + 'idea.html', p, context_instance=RequestContext(req))
def new_project(req): p = _createParams(req) if req.method == "GET": p["breadcrumbs"].append({reverse("new_project"): "New Project"}) p["ideas"] = Idea.objects.filter(owner=req.user) p["form"] = ProjectForm() return render_to_response(TEMPLATE_PATH + "project.html", p, context_instance=RequestContext(req)) elif req.method == "POST": form = ProjectForm(req.POST) if form.is_valid(): project = Project() project.owner = req.user _save_project(form, project) ideas = req.POST.get("ideas", "") tags = req.POST.get("tags", "").strip() if tags != "": _add_tags(project, tags, req.user, "project") messages.add_message(req, messages.INFO, 'Project "%s" added successfully.' % project.name) return HttpResponseRedirect(reverse("projects")) else: p["form"] = form return render_to_response(TEMPLATE_PATH + "project.html", p, context_instance=RequestContext(req))
def new_idea(req): p = _create_params(req) p['breadcrumbs'].append({reverse('new_idea'): 'New Idea'}) if req.method == 'GET': p['form'] = IdeaForm() return render_to_response(TEMPLATE_PATH + 'idea.html', p, context_instance=RequestContext(req)) elif req.method == 'POST': form = IdeaForm(req.POST) if form.is_valid(): idea = Idea() idea.owner = req.user _save_idea(form, idea) tags = req.POST.get('tags', '').strip() if tags != '': _add_tags(idea, tags, req.user, 'idea') messages.add_message(req, messages.INFO, 'New idea "%s" successfully saved.' % idea.name) return HttpResponseRedirect(reverse('ideas')) else: p['form'] = form return render_to_response(TEMPLATE_PATH + 'idea.html', p, context_instance=RequestContext(req))
def project(req, slug=""): project = get_object_or_404(Project, slug=slug, owner=req.user) p = _createParams(req) p["breadcrumbs"].append({reverse("project", args=[project.name]): "Projects"}) p["slug"] = project.slug p["ideas"] = Idea.objects.filter(owner=req.user) if req.method == "GET": if req.user == project.owner: for i in p["ideas"]: if project in i.projects.all(): i.selected = True p["form"] = ProjectForm(instance=project) return render_to_response(TEMPLATE_PATH + "project.html", p, context_instance=RequestContext(req)) else: raise Http404 elif req.method == "POST": form = ProjectForm(req.POST) if form.is_valid(): _save_project(form, project) ideas = req.POST.getlist("ideas", "") owned_idea_ids = ( Idea.objects.filter(owner=req.user, id__in=ideas).values_list("id", flat=True).order_by("id") ) for i in ideas: # ensure this user came up with this idea if int(i) in owned_idea_ids: idea = Idea.objects.get(id=i) idea.projects.add(project) idea.save() tags = req.POST.get("tags", "").strip() if tags != "": _add_tags(project, tags, req.user, "project") messages.add_message(req, messages.INFO, "Project successfully updated.") return HttpResponseRedirect(reverse("projects")) else: p["form"] = form return render_to_response(TEMPLATE_PATH + "project.html", p, context_instance=RequestContext(req))
def new_research_link(req): p = _create_params(req) p['breadcrumbs'].append({reverse('new_research_link'): \ 'New Research Link'}) if req.method == 'GET': p['form'] = ResearchLinkForm() return render_to_response(TEMPLATE_PATH + 'research_link.html', p, context_instance=RequestContext(req)) elif req.method == 'POST': form = ResearchLinkForm(req.POST) if form.is_valid(): link = ResearchLink() link.owner = req.user _save_research_link(form, link) tags = req.POST.get('tags', '').strip() if tags != '': _add_tags(link, tags, req.user, 'research link') messages.add_message(req, messages.INFO, 'New research link "%s" created successfully.' % link.name) return HttpResponseRedirect(reverse('ideas')) else: p['form'] = form return render_to_response(TEMPLATE_PATH + 'research_link.html', p, context_instance=RequestContext(req))