def namespace(request, namespace): ns = get_object_or_404(Namespace, owner=request.user, name=namespace) page = WikiPage.objects.get_or_create(namespace=ns, name='SplashPage')[0] if request.method == 'POST' and ns.can_update(request.user): create_wiki_page_form = CreateWikiPageForm(request.POST, instance=WikiPage(namespace=ns)) if create_wiki_page_form.is_valid() and WikiPage.objects.filter(namespace=ns, name=create_wiki_page_form.cleaned_data['name']).count() == 0: page = create_wiki_page_form.save() return HttpResponseRedirect(reverse('peach.mobile_views.wiki', kwargs={'namespace':namespace, 'name':page.name})) else: create_wiki_page_form = CreateWikiPageForm(instance=WikiPage(namespace=ns)) if not ns.can_read(request.user): return HttpResponseRedirect(reverse('peach.mobile_views.index')) return render_to_response('peach/mobile/namespace.html', { 'namespace':ns, 'page':page, 'create_wiki_page_form':create_wiki_page_form, 'wiki_pages':WikiPage.objects.filter(namespace=ns).exclude(name='SplashPage') }, context_instance=RequestContext(request))
def parse_wiki(ctxt, hook): page = hook["object_attributes"] page = WikiPage(name=page["slug"], title=page["title"], action=_preterit(page["action"]), url=page["url"]) return Wiki(user=ctxt.user, project=ctxt.project, pages=[page])
def parse_wiki(ctxt, hook): pages = [ WikiPage(name=page["page_name"], title=page["title"], action=page["action"], url=page["html_url"]) for page in hook["pages"] ] return Wiki(user=ctxt.user, project=ctxt.project, pages=pages)
def test_wiki(self): pages = [ WikiPage(name="home", title="Home page of my project's wiki", action="created", url="example.com/wiki/home") ] wiki = Wiki(user=self.user, project=self.project, pages=pages) self.assertEqual( wiki.render_simple(), "[My Project] Mrs Foobar updated the wiki\n" "created page home: Home page of my project's wiki. " "(example.com/wiki/home)")
def save(self): page = WikiPage(title=self.cleaned_data['title'], ) page.project = self.project page.save() page_rev = WikiPageRevision(wiki_text=self.cleaned_data['text']) page_rev.wiki_page = page page_rev.user = self.user page_rev.save() page.current_revision = page_rev page.save() return page
def create_new_page(): data = request.get_json(silent=True) if data is None: abort(400) try: page = WikiPage(title=data['title']) page_version = WikiPageVersion(wikipage=page, number=1, text=data['text']) # FIXME: do it in one commit somehow db.session.add(page) db.session.commit() page.current_version = page_version db.session.commit() except KeyError: abort(400) except IntegrityError: db.session.rollback() abort(409) return jsonify(result='OK', id=page.id)