Adds support for previewing modifications on redmine's wiki pages.
Status: draft (needs further work to be really useful)
This commit is contained in:
parent
94a1fff7fa
commit
e3f46ac751
4 changed files with 28 additions and 0 deletions
|
|
@ -72,3 +72,14 @@ class RedmineBackend(BaseBackend, ICapContent):
|
||||||
|
|
||||||
with self.browser:
|
with self.browser:
|
||||||
return self.browser.set_wiki_source(project, page, content.content, message)
|
return self.browser.set_wiki_source(project, page, content.content, message)
|
||||||
|
|
||||||
|
def preview_content(self, content):
|
||||||
|
try:
|
||||||
|
_type, project, page = self.id2path(content.id)
|
||||||
|
except ValueError:
|
||||||
|
return
|
||||||
|
|
||||||
|
with self.browser:
|
||||||
|
return self.browser.get_wiki_preview(project, page, content.content)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
|
|
||||||
from urlparse import urlsplit
|
from urlparse import urlsplit
|
||||||
|
import urllib
|
||||||
|
|
||||||
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
|
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
|
||||||
|
|
||||||
|
|
@ -74,3 +75,10 @@ class RedmineBrowser(BaseBrowser):
|
||||||
def set_wiki_source(self, project, page, data, message):
|
def set_wiki_source(self, project, page, data, message):
|
||||||
self.location('%s/projects/%s/wiki/%s/edit' % (self.BASEPATH, project, page))
|
self.location('%s/projects/%s/wiki/%s/edit' % (self.BASEPATH, project, page))
|
||||||
self.page.set_source(data, message)
|
self.page.set_source(data, message)
|
||||||
|
|
||||||
|
def get_wiki_preview(self, project, page, data):
|
||||||
|
url = '%s/projects/%s/wiki/%s/preview' % (self.BASEPATH, project, page)
|
||||||
|
params = {}
|
||||||
|
params['content[text]'] = data.encode('utf-8')
|
||||||
|
params['authenticity_token'] = "%s" % self.page.get_authenticity_token()
|
||||||
|
return self.readurl(url, urllib.urlencode(params))
|
||||||
|
|
|
||||||
|
|
@ -30,5 +30,11 @@ class WikiEditPage(BasePage):
|
||||||
self.browser['content[comments]'] = message.encode('utf-8')
|
self.browser['content[comments]'] = message.encode('utf-8')
|
||||||
self.browser.submit()
|
self.browser.submit()
|
||||||
|
|
||||||
|
def get_authenticity_token(self):
|
||||||
|
wiki_form = select(self.document.getroot(), 'form#wiki_form', 1)
|
||||||
|
return wiki_form.xpath('div/input')[0].get('value')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WikiPage(BasePage):
|
class WikiPage(BasePage):
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -35,3 +35,6 @@ class ICapContent(IBaseCap):
|
||||||
|
|
||||||
def push_content(self, content, message=None):
|
def push_content(self, content, message=None):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
def preview_content(self, content):
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue