예제 #1
0
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))
예제 #2
0
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])
예제 #3
0
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)
예제 #4
0
파일: rendering.py 프로젝트: Aufinal/GHA
 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)")
예제 #5
0
    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
예제 #6
0
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)