# HG changeset patch # User Paul Boddie # Date 1383745332 -3600 # Node ID 89b43fa145a60725bf7a0edcffaa3e191754daa0 # Parent c68a1fb9dc8ae10f3c8e9bab4f604ebde6773545 Changed item store usage to use the revised API and to permit subpage storage. diff -r c68a1fb9dc8a -r 89b43fa145a6 MoinForms.py --- a/MoinForms.py Wed Oct 30 17:01:46 2013 +0100 +++ b/MoinForms.py Wed Nov 06 14:42:12 2013 +0100 @@ -12,6 +12,8 @@ from MoinMoin.Page import Page from MoinMoin import security, wikiutil from MoinSupport import * +from ItemSupport import ItemStoreBase, getSubpageItemStoreForPage, \ + getDirectoryItemStoreForPage import re try: @@ -439,7 +441,7 @@ action == "read" and policy(self.request, self.pagename, user.name, "admin") ) -class FormStore(ItemStore): +class FormStore(ItemStoreBase): "A form-specific storage mechanism." @@ -453,7 +455,15 @@ suffix = fragment and ("_%s" % fragment) or "" formdir = wikiutil.quoteWikinameFS("form%s" % suffix) lockdir = wikiutil.quoteWikinameFS("lock%s" % suffix) - ItemStore.__init__(self, page, "forms/%s" % formdir, "form_locks/%s" % lockdir) + + # Use an alternative store type if indicated. + + storetype = handler.attributes.get("storetype") + if storetype == "subpage": + store = getSubpageItemStoreForPage(page, "form_locks/%s" % lockdir) + else: + store = getDirectoryItemStoreForPage(page, "forms/%s" % formdir, "form_locks/%s" % lockdir) + ItemStoreBase.__init__(self, page, store) def can_write(self):