From 73e1af53096dce2872e2b59b6e5d3c2c0734cff9 Mon Sep 17 00:00:00 2001
From: Antoine Durand-Gasselin
Date: Sun, 9 Nov 2008 16:40:15 +0100
Subject: [PATCH] [wiki-lenny/] Nouvelle architecture des scripts wiki
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
= wiki-lenny =
Description: Ce répertoire contient tous les scripts utilisés par le
wiki du Cr@ns.
Organisation:
- share/ : Contient les hacks qui ont été faits au moinmoin pour
permettre de gérer à notre manière les permissions,
interdire l'éditeur graphique sur certaines pages, etc…
Ces fichiers doivent être linkés depuis
/usr/share/python-support/python-moinmoin/MoinMoin
- local/ : Contient toutes les macros, thèmes, formatters, parsers, etc…
en clair toutes les scripts locaux au wiki.
Ces fichiers doivent êtres linkés depuis
/var/local/wiki/data/plugin
= Installation du wiki =
- Installer apache2, apacheSSL, pythonmodrewrite
- sync-er le /var/local/wiki (en cas de changement de version de
moinmoin, il y a des scripts qui mettent à jour les pages.
- copier les fichiers de conf de moinmoin (/etc/moin/*)
- linker les scripts de /usr/scripts/wiki-lenny
darcs-hash:20081109154015-bd074-b25cd1c606ab26fec7eee67dc4484dad6cc0b747.gz
---
wiki-lenny/PageGraphicalEditor.orig.py | 411 ------------------------
wiki-lenny/PageGraphicalEditor.py | 428 -------------------------
2 files changed, 839 deletions(-)
delete mode 100644 wiki-lenny/PageGraphicalEditor.orig.py
delete mode 100644 wiki-lenny/PageGraphicalEditor.py
diff --git a/wiki-lenny/PageGraphicalEditor.orig.py b/wiki-lenny/PageGraphicalEditor.orig.py
deleted file mode 100644
index 04005739..00000000
--- a/wiki-lenny/PageGraphicalEditor.orig.py
+++ /dev/null
@@ -1,411 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-"""
- MoinMoin - Call the GUI editor (FCKeditor)
-
- Same as PageEditor, but we use the HTML based GUI editor here.
-
- TODO:
- * see PageEditor.py
-
- @copyright: 2006 Bastian Blank, Florian Festi,
- 2006-2007 MoinMoin:ThomasWaldmann
- @license: GNU GPL, see COPYING for details.
-"""
-import re
-
-from MoinMoin import PageEditor
-from MoinMoin import wikiutil
-from MoinMoin.Page import Page
-from MoinMoin.widget import html
-from MoinMoin.widget.dialog import Status
-from MoinMoin.util import web
-from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
-
-def execute(pagename, request):
- if not request.user.may.write(pagename):
- _ = request.getText
- request.theme.add_msg_('You are not allowed to edit this page.', "error")
- Page(request, pagename).send_page()
- return
-
- PageGraphicalEditor(request, pagename).sendEditor()
-
-
-class PageGraphicalEditor(PageEditor.PageEditor):
- """ Same as PageEditor, but use the GUI editor (FCKeditor) """
- def word_rule(self):
- regex = re.compile(r"\(\?" + edit_lock_message
- else:
- msg = edit_lock_message
-
- # Did one of the prechecks fail?
- if msg:
- request.theme.add_msg(msg, "error")
- self.send_page()
- return
-
- # check if we want to load a draft
- use_draft = None
- if 'button_load_draft' in form:
- wanted_draft_timestamp = int(form.get('draft_ts', ['0'])[0])
- if wanted_draft_timestamp:
- draft = self._load_draft()
- if draft is not None:
- draft_timestamp, draft_rev, draft_text = draft
- if draft_timestamp == wanted_draft_timestamp:
- use_draft = draft_text
-
- # Check for draft / normal / preview submit
- if use_draft is not None:
- title = _('Draft of "%(pagename)s"')
- # Propagate original revision
- rev = int(form['draft_rev'][0])
- self.set_raw_body(use_draft, modified=1)
- preview = use_draft
- elif preview is None:
- title = _('Edit "%(pagename)s"')
- else:
- title = _('Preview of "%(pagename)s"')
- # Propagate original revision
- rev = request.rev
- self.set_raw_body(preview, modified=1)
-
- # send header stuff
- lock_timeout = self.lock.timeout / 60
- lock_page = wikiutil.escape(self.page_name, quote=1)
- lock_expire = _("Your edit lock on %(lock_page)s has expired!") % {'lock_page': lock_page}
- lock_mins = _("Your edit lock on %(lock_page)s will expire in # minutes.") % {'lock_page': lock_page}
- lock_secs = _("Your edit lock on %(lock_page)s will expire in # seconds.") % {'lock_page': lock_page}
-
- # get request parameters
- try:
- text_rows = int(form['rows'][0])
- except StandardError:
- text_rows = self.cfg.edit_rows
- if request.user.valid:
- text_rows = int(request.user.edit_rows)
-
- if preview is not None:
- # Check for editing conflicts
- if not self.exists():
- # page does not exist, are we creating it?
- if rev:
- conflict_msg = _('Someone else deleted this page while you were editing!')
- elif rev != self.current_rev():
- conflict_msg = _('Someone else changed this page while you were editing!')
- if self.mergeEditConflict(rev):
- conflict_msg = _("""Someone else saved this page while you were editing!
-Please review the page and save then. Do not save this page as it is!""")
- rev = self.current_rev()
- if conflict_msg:
- # We don't show preview when in conflict
- preview = None
-
- elif self.exists():
- # revision of existing page
- rev = self.current_rev()
- else:
- # page creation
- rev = 0
-
- self.setConflict(bool(conflict_msg))
-
- # Page editing is done using user language
- request.setContentLanguage(request.lang)
-
- # Get the text body for the editor field.
- # TODO: what about deleted pages? show the text of the last revision or use the template?
- if preview is not None:
- raw_body = self.get_raw_body()
- if use_draft:
- request.write(_("[Content loaded from draft]"), '
')
- elif self.exists():
- # If the page exists, we get the text from the page.
- # TODO: maybe warn if template argument was ignored because the page exists?
- raw_body = self.get_raw_body()
- elif 'template' in form:
- # If the page does not exist, we try to get the content from the template parameter.
- template_page = wikiutil.unquoteWikiname(form['template'][0])
- if request.user.may.read(template_page):
- raw_body = Page(request, template_page).get_raw_body()
- if raw_body:
- request.write(_("[Content of new page loaded from %s]") % (template_page, ), '
')
- else:
- request.write(_("[Template %s not found]") % (template_page, ), '
')
- else:
- request.write(_("[You may not read %s]") % (template_page, ), '
')
-
- # Make backup on previews - but not for new empty pages
- if not use_draft and preview and raw_body:
- self._save_draft(raw_body, rev)
-
- draft_message = None
- loadable_draft = False
- if preview is None:
- draft = self._load_draft()
- if draft is not None:
- draft_timestamp, draft_rev, draft_text = draft
- if draft_text != raw_body:
- loadable_draft = True
- page_rev = rev
- draft_timestamp_str = request.user.getFormattedDateTime(draft_timestamp)
- draft_message = _(u"'''<
>Your draft based on revision %(draft_rev)d (saved %(draft_timestamp_str)s) can be loaded instead of the current revision %(page_rev)d by using the load draft button - in case you lost your last edit somehow without saving it.''' A draft gets saved for you when you do a preview, cancel an edit or unsuccessfully save.", wiki=True, percent=True) % locals()
-
- # Setup status message
- status = [kw.get('msg', ''), conflict_msg, edit_lock_message, draft_message]
- status = [msg for msg in status if msg]
- status = ' '.join(status)
- status = Status(request, content=status)
-
- request.theme.add_msg(status, "error")
- request.theme.send_title(
- title % {'pagename': self.split_title(), },
- page=self,
- html_head=self.lock.locktype and (
- PageEditor._countdown_js % {
- 'countdown_script': request.theme.externalScript('countdown'),
- 'lock_timeout': lock_timeout,
- 'lock_expire': lock_expire,
- 'lock_mins': lock_mins,
- 'lock_secs': lock_secs,
- }) or '',
- editor_mode=1,
- )
-
- request.write(request.formatter.startContent("content"))
-
- # Generate default content for new pages
- if not raw_body:
- raw_body = _('Describe %s here.') % (self.page_name, )
-
- # send form
- request.write('
")
-
- badwords_re = None
- if preview is not None:
- if 'button_spellcheck' in form or 'button_newwords' in form:
- badwords, badwords_re, msg = SpellCheck.checkSpelling(self, request, own_form=0)
- request.write("%s
" % msg)
- request.write('')
- request.write("")
-
- if preview is not None:
- if staytop:
- content_id = 'previewbelow'
- else:
- content_id = 'preview'
- self.send_page(content_id=content_id, content_only=1, hilite_re=badwords_re)
-
- request.write(request.formatter.endContent()) # end content div
- request.theme.send_footer(self.page_name)
- request.theme.send_closing_html()
-
diff --git a/wiki-lenny/PageGraphicalEditor.py b/wiki-lenny/PageGraphicalEditor.py
deleted file mode 100644
index 25c56734..00000000
--- a/wiki-lenny/PageGraphicalEditor.py
+++ /dev/null
@@ -1,428 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- MoinMoin - Call the GUI editor (FCKeditor)
-
- Same as PageEditor, but we use the HTML based GUI editor here.
-
- TODO:
- * see PageEditor.py
-
- @copyright: 2006 Bastian Blank, Florian Festi,
- 2006-2007 MoinMoin:ThomasWaldmann
- @license: GNU GPL, see COPYING for details.
-"""
-import re
-
-from MoinMoin import PageEditor
-from MoinMoin import wikiutil
-from MoinMoin.Page import Page
-from MoinMoin.widget import html
-from MoinMoin.widget.dialog import Status
-from MoinMoin.util import web
-from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
-
-def execute(pagename, request):
- if not request.user.may.write(pagename):
- _ = request.getText
- request.theme.add_msg_('You are not allowed to edit this page.', "error")
- Page(request, pagename).send_page()
- return
-
- PageGraphicalEditor(request, pagename).sendEditor()
-
-
-class PageGraphicalEditor(PageEditor.PageEditor):
- """ Same as PageEditor, but use the GUI editor (FCKeditor) """
- def word_rule(self):
- regex = re.compile(r"\(\?" + edit_lock_message
- else:
- msg = edit_lock_message
-
- # Did one of the prechecks fail?
- if msg:
- request.theme.add_msg(msg, "error")
- # Il est manifestement hors de question d'avoir envoyé les
- # headers http avant d'appeler cette fonction
- self.send_page()
- return
-
- # par contre, il faut les envoyer dans le cas contraire
- request.emit_http_headers()
-
- # check if we want to load a draft
- use_draft = None
- if 'button_load_draft' in form:
- wanted_draft_timestamp = int(form.get('draft_ts', ['0'])[0])
- if wanted_draft_timestamp:
- draft = self._load_draft()
- if draft is not None:
- draft_timestamp, draft_rev, draft_text = draft
- if draft_timestamp == wanted_draft_timestamp:
- use_draft = draft_text
-
- # Check for draft / normal / preview submit
- if use_draft is not None:
- title = _('Draft of "%(pagename)s"')
- # Propagate original revision
- rev = int(form['draft_rev'][0])
- self.set_raw_body(use_draft, modified=1)
- preview = use_draft
- elif preview is None:
- title = _('Edit "%(pagename)s"')
- else:
- title = _('Preview of "%(pagename)s"')
- # Propagate original revision
- rev = request.rev
- self.set_raw_body(preview, modified=1)
-
- # send header stuff
- lock_timeout = self.lock.timeout / 60
- lock_page = wikiutil.escape(self.page_name, quote=1)
- lock_expire = _("Your edit lock on %(lock_page)s has expired!") % {'lock_page': lock_page}
- lock_mins = _("Your edit lock on %(lock_page)s will expire in # minutes.") % {'lock_page': lock_page}
- lock_secs = _("Your edit lock on %(lock_page)s will expire in # seconds.") % {'lock_page': lock_page}
-
- # get request parameters
- try:
- text_rows = int(form['rows'][0])
- except StandardError:
- text_rows = self.cfg.edit_rows
- if request.user.valid:
- text_rows = int(request.user.edit_rows)
-
- if preview is not None:
- # Check for editing conflicts
- if not self.exists():
- # page does not exist, are we creating it?
- if rev:
- conflict_msg = _('Someone else deleted this page while you were editing!')
- elif rev != self.current_rev():
- conflict_msg = _('Someone else changed this page while you were editing!')
- if self.mergeEditConflict(rev):
- conflict_msg = _("""Someone else saved this page while you were editing!
-Please review the page and save then. Do not save this page as it is!""")
- rev = self.current_rev()
- if conflict_msg:
- # We don't show preview when in conflict
- preview = None
-
- elif self.exists():
- # revision of existing page
- rev = self.current_rev()
- else:
- # page creation
- rev = 0
-
- self.setConflict(bool(conflict_msg))
-
- # Page editing is done using user language
- request.setContentLanguage(request.lang)
-
- # Get the text body for the editor field.
- # TODO: what about deleted pages? show the text of the last revision or use the template?
- if preview is not None:
- raw_body = self.get_raw_body()
- if use_draft:
- request.write(_("[Content loaded from draft]"), '
')
- elif self.exists():
- # If the page exists, we get the text from the page.
- # TODO: maybe warn if template argument was ignored because the page exists?
- raw_body = self.get_raw_body()
- elif 'template' in form:
- # If the page does not exist, we try to get the content from the template parameter.
- template_page = wikiutil.unquoteWikiname(form['template'][0])
- if request.user.may.read(template_page):
- raw_body = Page(request, template_page).get_raw_body()
- if raw_body:
- request.write(_("[Content of new page loaded from %s]") % (template_page, ), '
')
- else:
- request.write(_("[Template %s not found]") % (template_page, ), '
')
- else:
- request.write(_("[You may not read %s]") % (template_page, ), '
')
-
- # Make backup on previews - but not for new empty pages
- if not use_draft and preview and raw_body:
- self._save_draft(raw_body, rev)
-
- draft_message = None
- loadable_draft = False
- if preview is None:
- draft = self._load_draft()
- if draft is not None:
- draft_timestamp, draft_rev, draft_text = draft
- if draft_text != raw_body:
- loadable_draft = True
- page_rev = rev
- draft_timestamp_str = request.user.getFormattedDateTime(draft_timestamp)
- draft_message = _(u"'''<
>Your draft based on revision %(draft_rev)d (saved %(draft_timestamp_str)s) can be loaded instead of the current revision %(page_rev)d by using the load draft button - in case you lost your last edit somehow without saving it.''' A draft gets saved for you when you do a preview, cancel an edit or unsuccessfully save.", wiki=True, percent=True) % locals()
-
- # Setup status message
- status = [kw.get('msg', ''), conflict_msg, edit_lock_message, draft_message]
- status = [msg for msg in status if msg]
- status = ' '.join(status)
- status = Status(request, content=status)
-
- request.theme.add_msg(status, "error")
- request.theme.send_title(
- title % {'pagename': self.split_title(), },
- page=self,
- html_head=self.lock.locktype and (
- PageEditor._countdown_js % {
- 'countdown_script': request.theme.externalScript('countdown'),
- 'lock_timeout': lock_timeout,
- 'lock_expire': lock_expire,
- 'lock_mins': lock_mins,
- 'lock_secs': lock_secs,
- }) or '',
- editor_mode=1,
- )
-
- request.write(request.formatter.startContent("content"))
-
- # Generate default content for new pages
- if not raw_body:
- raw_body = _('Describe %s here.') % (self.page_name, )
-
- # send form
- request.write('")
-
- if preview is not None:
- if staytop:
- content_id = 'previewbelow'
- else:
- content_id = 'preview'
- self.send_page(content_id=content_id, content_only=1, hilite_re=badwords_re)
-
- request.write(request.formatter.endContent()) # end content div
- request.theme.send_footer(self.page_name)
- request.theme.send_closing_html()
-