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:
|
||||
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
|
||||
import urllib
|
||||
|
||||
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
|
||||
|
||||
|
|
@ -74,3 +75,10 @@ class RedmineBrowser(BaseBrowser):
|
|||
def set_wiki_source(self, project, page, data, message):
|
||||
self.location('%s/projects/%s/wiki/%s/edit' % (self.BASEPATH, project, page))
|
||||
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.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):
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -35,3 +35,6 @@ class ICapContent(IBaseCap):
|
|||
|
||||
def push_content(self, content, message=None):
|
||||
raise NotImplementedError()
|
||||
|
||||
def preview_content(self, content):
|
||||
raise NotImplementedError()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue