Skip to content

Commit

Permalink
Moved our default_page_types setting to the registry.
Browse files Browse the repository at this point in the history
  • Loading branch information
mauritsvanrees committed Sep 30, 2015
1 parent e2e34fb commit 8f3e395
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 39 deletions.
3 changes: 3 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Change History
1.8.0b5 (unreleased)
--------------------

- Moved our default_page_types setting to the registry.
[maurits]

- Get email settings from registry. Fixes several Plone 5 errors.
Do not use ``plone_utils.getSiteEncoding()``, because this is
deprecated and always returns ``utf-8''.
Expand Down
8 changes: 4 additions & 4 deletions Products/PloneFormGen/content/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
from Products.PloneFormGen.content import validationMessages

from Products.PloneFormGen import PloneFormGenMessageFactory as _
from plone.registry.interfaces import IRegistry
from zope.component import getUtility

from types import StringTypes

Expand Down Expand Up @@ -755,10 +757,8 @@ def fgFieldsDisplayList(self, withNone=False, noneValue='', objTypes=None):
def thanksPageVocabulary(self):
""" returns a DisplayList of contained page-ish documents """

propsTool = getToolByName(self, 'portal_properties')
siteProperties = getattr(propsTool, 'site_properties')
defaultPageTypes = siteProperties.getProperty('default_page_types')

registry = getUtility(IRegistry)
defaultPageTypes = registry['plone.default_page_types']
tpages = [('', _(u'vocabulary_none_text', u'None')), ]

for obj in self.objectValues():
Expand Down
2 changes: 1 addition & 1 deletion Products/PloneFormGen/profiles/default/metadata.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<metadata>
<version>171</version>
<version>180</version>
<dependencies>
<dependency>profile-Products.ATContentTypes:base</dependency>
<!--
Expand Down
3 changes: 0 additions & 3 deletions Products/PloneFormGen/profiles/default/propertiestool.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,5 @@
<element value="FieldsetStart"/>
<element value="FieldsetEnd"/>
</property>
<property name="default_page_types" type="lines" purge="False">
<element value="FormFolder"/>
</property>
</object>
</object>
5 changes: 5 additions & 0 deletions Products/PloneFormGen/profiles/default/registry.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
<?xml version="1.0"?>
<registry>

<record name="plone.default_page_types">
<value purge="False">
<element>FormFolder</element>
</value>
</record>

<records prefix="plone.resources/pfgquickedit"
interface='Products.CMFPlone.interfaces.IResourceRegistry'>
Expand Down
56 changes: 25 additions & 31 deletions Products/PloneFormGen/tests/testSetup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
# Test PloneFormGen initialisation and set-up
#
from AccessControl import Unauthorized

from Products.PloneFormGen.tests import pfgtc

from Products.CMFCore.utils import getToolByName

from Products.PloneFormGen.tests import pfgtc
from plone.registry.interfaces import IRegistry
from zope.component import getUtility
import Products


def getAddPermission(product, name):
""" find the add permission for a meta_type """

Expand All @@ -18,6 +18,7 @@ def getAddPermission(product, name):
return mt['permission']
return ""


class TestInstallation(pfgtc.PloneFormGenTestCase):
"""Ensure product is properly installed"""

Expand Down Expand Up @@ -177,46 +178,39 @@ def testModificationsToPropSheetNotOverwritten(self):
# make sure we still have our new value for 'mail_body_type'
self.assertEquals(newprop, self.properties.ploneformgen_properties.getProperty('mail_body_type'))

def testModificationsToPropSheetLinesNotPuged(self):
pfg_property_mappings = [
{"propsheet":"navtree_properties",
"added_props":["metaTypesNotToList",]},
{"propsheet":"ploneformgen_properties",
"added_props":["permissions_used", "mail_cc_recipients",
"mail_bcc_recipients", "mail_xinfo_headers","mail_add_headers", "csv_delimiter"]},
{"propsheet":"site_properties",
"added_props":["use_folder_tabs", "typesLinkToFolderContentsInFC",
"types_not_searched", "default_page_types"]},
def testModificationsToRegistryLinesNotPurged(self):
registry = getUtility(IRegistry)
settings = [
'plone.default_page_types',
]

# add garbage prop element to each lines property
for mapping in pfg_property_mappings:
sheet = self.properties[mapping['propsheet']]
for lines_prop in mapping['added_props']:
propitems = list(sheet.getProperty(lines_prop))
propitems.append('foo')
sheet.manage_changeProperties({lines_prop:propitems})
for option in settings:
value = registry[option]
if isinstance(value, tuple):
value = list(value)
value.append(u'foo')
value = tuple(value)
else:
value.append(u'foo')
registry[option] = value

# reinstall
qi = self.portal.portal_quickinstaller
qi.reinstallProducts(['PloneFormGen'])

# now make sure our garbage values survived the reinstall
for mapping in pfg_property_mappings:
sheet = self.properties[mapping['propsheet']]
for lines_prop in mapping['added_props']:
self.failUnless('foo' in sheet.getProperty(lines_prop),
"Our garbage item didn't survive reinstall for property %s"
" within property sheet %s" % (lines_prop, mapping["propsheet"]))

for option in settings:
self.failUnless(
u'foo' in registry[option],
"Our garbage item didn't survive reinstall for property %s" %
option)

def test_FormFolderInDefaultPageTypes(self):
propsTool = getToolByName(self.portal, 'portal_properties')
siteProperties = getattr(propsTool, 'site_properties')
defaultPageTypes = list(siteProperties.getProperty('default_page_types'))
registry = getUtility(IRegistry)
defaultPageTypes = registry['plone.default_page_types']
self.failUnless('FormFolder' in defaultPageTypes)


def testTypeViews(self):
self.assertEqual(self.types.FormFolder.getAvailableViewMethods(self.types), ('fg_base_view_p3',))
self.assertEqual(self.types.FormThanksPage.getAvailableViewMethods(self.types), ('fg_thankspage_view_p3',))
Expand Down
10 changes: 10 additions & 0 deletions Products/PloneFormGen/upgrades.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,14 @@
handler=".upgrades.upgrade_to_171"
/>

<genericsetup:upgradeSteps
source="171"
destination="180"
profile="Products.PloneFormGen:default">
<genericsetup:upgradeDepends
title="Import registry.xml"
import_steps="plone.app.registry propertiestool"
/>
</genericsetup:upgradeSteps>

</configure>

0 comments on commit 8f3e395

Please sign in to comment.