1.1 --- a/MoinForms.py Wed Oct 30 17:01:46 2013 +0100
1.2 +++ b/MoinForms.py Wed Nov 06 14:42:12 2013 +0100
1.3 @@ -12,6 +12,8 @@
1.4 from MoinMoin.Page import Page
1.5 from MoinMoin import security, wikiutil
1.6 from MoinSupport import *
1.7 +from ItemSupport import ItemStoreBase, getSubpageItemStoreForPage, \
1.8 + getDirectoryItemStoreForPage
1.9 import re
1.10
1.11 try:
1.12 @@ -439,7 +441,7 @@
1.13 action == "read" and policy(self.request, self.pagename, user.name, "admin")
1.14 )
1.15
1.16 -class FormStore(ItemStore):
1.17 +class FormStore(ItemStoreBase):
1.18
1.19 "A form-specific storage mechanism."
1.20
1.21 @@ -453,7 +455,15 @@
1.22 suffix = fragment and ("_%s" % fragment) or ""
1.23 formdir = wikiutil.quoteWikinameFS("form%s" % suffix)
1.24 lockdir = wikiutil.quoteWikinameFS("lock%s" % suffix)
1.25 - ItemStore.__init__(self, page, "forms/%s" % formdir, "form_locks/%s" % lockdir)
1.26 +
1.27 + # Use an alternative store type if indicated.
1.28 +
1.29 + storetype = handler.attributes.get("storetype")
1.30 + if storetype == "subpage":
1.31 + store = getSubpageItemStoreForPage(page, "form_locks/%s" % lockdir)
1.32 + else:
1.33 + store = getDirectoryItemStoreForPage(page, "forms/%s" % formdir, "form_locks/%s" % lockdir)
1.34 + ItemStoreBase.__init__(self, page, store)
1.35
1.36 def can_write(self):
1.37