# HG changeset patch
# User ReimarBauer <R.Bauer@fz-juelich.de>
# Node ID 8b0a29e34f949b36c6ac0bf45f83d1cf81d1f3a6
# Parent  b3a47164c22a16a37bb097a78e03342ecacf4d3b
Feature for a suplementation page e.g. Discussion added, default editbar is [u'Edit', u'Info', u'Subscribe', u'Quicklink', u'Attachments', u'ActionsMenu', ] This feature could be enabled by adding the supplementation_page_name to this var. On default it is named Discussion. To change it you need to set 
supplementation_page_name = u'Comment'
supplementation_page_template = u'CommentTemplate'
edit_bar = [u'Edit', u'Info', u'Subscribe', u'Quicklink', u'Attachments', supplementation_page_name, u'ActionsMenu', ]

diff -r b3a47164c22a -r 8b0a29e34f94 MoinMoin/config/multiconfig.py
--- a/MoinMoin/config/multiconfig.py	Tue Aug 29 17:01:55 2006 +0200
+++ b/MoinMoin/config/multiconfig.py	Thu Aug 31 13:01:16 2006 +0200
@@ -235,7 +235,9 @@ class DefaultConfig:
 
     default_markup = 'wiki'
     docbook_html_dir = r"/usr/share/xml/docbook/stylesheet/nwalsh/html/" # correct for debian sarge
-
+    
+    edit_bar = [u'Edit', u'Info', u'Subscribe', u'Quicklink', u'Attachments', u'ActionsMenu', ]
+    
     editor_default = 'text' # which editor is called when nothing is specified
     editor_ui = 'freechoice' # which editor links are shown on user interface
     editor_force = False
@@ -372,6 +374,9 @@ reStructuredText Quick Reference
     siteid = 'default'
     stylesheets = [] # list of tuples (media, csshref) to insert after theme css, before user css
     superuser = [] # list of unicode user names that have super powers :)
+    
+    supplementation_page_name = u'Discussion'
+    supplementation_page_template = u'DiscussionTemplate'
 
     surge_action_limits = {# allow max. <count> <action> requests per <dt> secs
         # action: (count, dt)
diff -r b3a47164c22a -r 8b0a29e34f94 MoinMoin/theme/__init__.py
--- a/MoinMoin/theme/__init__.py	Tue Aug 29 17:01:55 2006 +0200
+++ b/MoinMoin/theme/__init__.py	Thu Aug 31 13:01:16 2006 +0200
@@ -1027,13 +1027,19 @@ actionsMenuInit('%(label)s');
         This is separate method to make it easy to customize the
         edtibar in sub classes.
         """
-        return [self.editorLink(page),
-                self.infoLink(page),
-                self.subscribeLink(page),
-                self.quicklinkLink(page),
-                self.attachmentsLink(page),
-                self.actionsMenu(page),
-               ]
+        editbar_items = {'Edit': self.editorLink(page),
+                        'Info': self.infoLink(page),
+                        'Subscribe': self.subscribeLink(page),
+                        'Quicklink': self.quicklinkLink(page),
+                        'Attachments': self.attachmentsLink(page),
+                        self.request.cfg.supplementation_page_name: self.supplementation_page_nameLink(page),
+                        'ActionsMenu': self.actionsMenu(page)}
+
+        allowed_action = []
+        for action in self.request.cfg.edit_bar:
+            allowed_action.append(editbar_items[action])
+        return allowed_action
+
 
     def guiworks(self, page):
         """ Return whether the gui editor / converter can work for that page.
@@ -1118,6 +1124,13 @@ var gui_editor_link_text = "%(text)s";
         return page.link_to(self.request,
                             text=_('Info', formatted=False),
                             querystr={'action': 'info'}, id='info', rel='nofollow')
+
+    def supplementation_page_nameLink(self, page):
+        """  discussion for page """
+        _ = self.request.getText
+        return page.link_to(self.request,
+                            text=_(self.request.cfg.supplementation_page_name, formatted=False),
+                            querystr={'action': 'supplementation'}, id='supplementation', rel='nofollow')
 
     def subscribeLink(self, page):
         """ Return subscribe/unsubscribe link to valid users
diff -r b3a47164c22a -r 8b0a29e34f94 MoinMoin/action/supplementation.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MoinMoin/action/supplementation.py	Thu Aug 31 13:01:16 2006 +0200
@@ -0,0 +1,42 @@
+"""
+    MoinMoin - Action for supplementation pages
+
+    This Action is used to create a supplementation subpage e.g. a Discussion below a comon page
+
+    Install:
+        put it into the 'action' directory and do create a supplementation Template e.g. DiscussionTemplate
+        
+    Note:
+        derived from the newpage macro by Vito Miliano (vito_moinnewpagewithtemplate@perilith.com) et al
+
+    Modification History:
+       2006-08-30 ReimarBauer initial version
+                   
+    License:
+        @license: GNU GPL, see COPYING for details.  
+        
+"""
+from MoinMoin.Page import Page
+from MoinMoin.wikiutil import quoteWikinameURL
+
+def execute(pagename, request):
+    _ = request.getText
+    sub_page_name = request.cfg.supplementation_page_name
+    sub_page_template = request.cfg.supplementation_page_template
+    newpagename = "%s/%s" % (pagename, sub_page_name)
+
+    if pagename.endswith(sub_page_name): # sub_sub_page redirects to sub_page
+        query = {}
+        url = Page(request, pagename).url(request, query, escape=0, relative=False)
+        request.http_redirect(url)
+    elif request.user.may.read(newpagename) and request.user.may.write(newpagename):
+       query = {}
+       url = Page(request, newpagename).url(request, query, escape=0, relative=False)
+       test = Page(request, newpagename)
+       if test.exists(): # page is defined -> redirect
+           request.http_redirect(url)
+       else:  # page will be created from template
+           query = {'action': 'edit', 'backto': newpagename}
+           query['template'] = quoteWikinameURL(sub_page_template)
+           url = Page(request, newpagename).url(request, query, escape=0, relative=False)
+           request.http_redirect(url)