def set_registry(): registry = getUtility(IRegistry) settings_iface = ( "collective.classification.folder.browser.settings.IClassificationConfig.{0}" ) key = settings_iface.format("folder_number") if not registry.get(key): registry_field = field.Int(title=u"folder_number") registry_record = Record(registry_field) registry_record.value = 1 registry.records[key] = registry_record key = settings_iface.format("folder_talexpression") if not registry.get(key): registry_field = field.TextLine(title=u"folder_talexpression") registry_record = Record(registry_field) registry_record.value = u"python:'F%04d'%int(number)" registry.records[key] = registry_record key = settings_iface.format("subfolder_number") if not registry.get(key): registry_field = field.Int(title=u"subfolder_number") registry_record = Record(registry_field) registry_record.value = 1 registry.records[key] = registry_record key = settings_iface.format("subfolder_talexpression") if not registry.get(key): registry_field = field.TextLine(title=u"subfolder_talexpression") registry_record = Record(registry_field) registry_record.value = u"python:'%s-xx'%(context.internal_reference_no)" registry.records[key] = registry_record
def test_import_collection_frozenset_append(self): xml = """\ <registry> <record name="test.registry.field"> <value purge="false"> <element>4</element> <element>6</element> </value> </record> </registry> """ self.registry.records['test.registry.field'] = Record( field.FrozenSet( title=u"Simple record", value_type=field.Int(title=u"Val") ), value=frozenset([2, 4]) ) context = DummyImportContext(self.site, purge=False) context._files = {'registry.xml': xml} importRegistry(context) self.assertEqual(1, len(self.registry.records)) self.assertEqual( frozenset([2, 4, 6]), self.registry['test.registry.field'] )
def test_export_with_dict(self): xml = """\ <registry> <record name="test.export.dict"> <field type="plone.registry.field.Dict"> <default /> <key_type type="plone.registry.field.ASCIILine"> <title>Key</title> </key_type> <title>Dict</title> <value_type type="plone.registry.field.Int"> <title>Value</title> </value_type> </field> <value> <element key="a">1</element> </value> </record> </registry>""" self.registry.records['test.export.dict'] = \ Record(field.Dict(title=u"Dict", default={}, key_type=field.ASCIILine(title=u"Key"), value_type=field.Int(title=u"Value")), value={'a': 1}) context = DummyExportContext(self.site) exportRegistry(context) self.assertEqual('registry.xml', context._wrote[0][0]) self.assertXmlEquals(xml, context._wrote[0][1])
def test_export_with_collection(self): xml = """\ <registry> <record name="test.export.simple"> <field type="plone.registry.field.List"> <title>Simple record</title> <value_type type="plone.registry.field.Int"> <title>Val</title> </value_type> </field> <value> <element>2</element> </value> </record> </registry>""" self.registry.records['test.export.simple'] = Record( field.List( title=u"Simple record", value_type=field.Int(title=u"Val") ), value=[2] ) context = DummyExportContext(self.site) exportRegistry(context) self.assertEqual('registry.xml', context._wrote[0][0]) self.assertXmlEquals(xml, context._wrote[0][1])
def test_import_collection_nopurge(self): xml = """\ <registry> <record name="test.registry.field"> <value purge="false"> <element>4</element> <element>6</element> </value> </record> </registry> """ self.registry.records['test.registry.field'] = Record(field.Set( title=u"Simple record", value_type=field.Int(title=u"Val")), value=set([1])) context = DummyImportContext(self.site, purge=False) context._files = {'registry.xml': xml} importRegistry(context) self.assertEquals(1, len(self.registry.records)) self.failUnless( isinstance(self.registry.records['test.registry.field'].field, field.Set)) self.assertEquals( u"Simple record", self.registry.records['test.registry.field'].field.title) self.assertEquals(frozenset([1, 4, 6]), self.registry['test.registry.field'])
def test_import_dict_nopurge(self): xml = """\ <registry> <record name="test.registry.field"> <value purge="false"> <element key="x">4</element> <element key="y">6</element> </value> </record> </registry> """ self.registry.records['test.registry.field'] = \ Record(field.Dict(title=u"Simple record", key_type=field.ASCIILine(title=u"Key"), value_type=field.Int(title=u"Val")), value={'a': 1}) context = DummyImportContext(self.site, purge=False) context._files = {'registry.xml': xml} importRegistry(context) self.assertEquals(1, len(self.registry.records)) self.failUnless( isinstance(self.registry.records['test.registry.field'].field, field.Dict)) self.assertEquals( u"Simple record", self.registry.records['test.registry.field'].field.title) self.assertEquals({ 'a': 1, 'x': 4, 'y': 6 }, self.registry['test.registry.field'])
def set_buttons_babel_view_up_to_nr_translations(self, value): # Backwards-compatibility for installations of PAM before this # field was added. # If no entry is present in the registry, initialize it with a # dummy value name = "%s.buttons_babel_view_up_to_nr_translations" % \ IMultiLanguageExtraOptionsSchema.__identifier__ if name not in self.registry.records: int_field = registry_field.Int() self.registry.records[name] = Record(int_field) self.settings.buttons_babel_view_up_to_nr_translations = value
def next_certificate_number(self): """Get a new certificate id. These are throwaway IDs, until the publication is actually done. So each preview gives us a new ID. """ key = 'bika.lims.current_coa_number' registry = getUtility(IRegistry) if key not in registry: registry.records[key] = \ Record(field.Int(title=u"Current COA number"), 0) val = api.portal.get_registry_record(key) + 1 api.portal.set_registry_record(key, val) return "%05d"%int(val)
def upgrade(context, logger=None): setup = getToolByName(context, 'portal_setup') setup.runAllImportStepsFromProfile(PROFILE_ID) try: auth_step_timeout = api.portal.get_registry_record( name='plone.auth_step_timeout', default=None) except api.exc.InvalidParameterError: auth_step_timeout = None if not auth_step_timeout: registry = getUtility(IRegistry) auth_timeout_field = field.Int( title=u"(Seconds) This amount of inactivity \ will reset the login process", description=u"Between each step, the allowed \ time is reset to this amount", default=120) auth_timeout_record = Record(auth_timeout_field) registry._records['plone.auth_step_timeout'] = auth_timeout_record try: disclaimer = api.portal.get_registry_record( name='castle.show_disclaimer', default=None) except api.exc.InvalidParameterError: disclaimer = None if not disclaimer: registry = getUtility(IRegistry) show_disclaimer_field = field.Bool( title=u'Show disclaimer for first time a user visits a site. ' u'To comply with ePrivacy Directive, use this feature to notify about cookie use.', default=False, required=False) site_disclaimer_field = field.Text( title=u"Disclaimer", default=u'<p><strong>Disclaimer</strong> ' u'<em>You are seeing this because this is your first time visiting the site.</em></p>', required=False) show_disclaimer_record = Record(show_disclaimer_field) site_disclaimer_record = Record(site_disclaimer_field) registry._records['castle.show_disclaimer'] = show_disclaimer_record registry._records['castle.site_disclaimer'] = site_disclaimer_record transaction.commit() update_password_expiry(api.portal.get()) for id in context.objectIds(): context[id].reindexObject(idxs=['has_private_parents'])
def addSliderTimerToRegistry(): registry = getUtility(IRegistry) records = registry.records if 'cpskin.core.interfaces.ICPSkinSettings.slider_timer' in records: return logger.info( 'Adding cpskin.core.interfaces.ICPSkinSettings.slider_timer to registry' ) # noqa record = Record(field.Int( title=_(u'Slider timer'), description=_(u'Number of seconds between each transition.'), required=False, default=5000), value=5000) records['cpskin.core.interfaces.ICPSkinSettings.slider_timer'] = record
def addMediaViewletAlbumsToRegistry(value): registry = getUtility(IRegistry) records = registry.records if 'cpskin.core.interfaces.ICPSkinSettings.media_viewlet_visible_albums' in records: return logger.info( 'Adding cpskin.core.interfaces.ICPSkinSettings.media_viewlet_visible_albums to registry' ) # noqa record = Record( field.Int( title=_(u'Viewlet media : Visible albums'), description=_( u'Number of visible albums on media viewlet.'), # noqa required=False, default=1), value=value) records[ 'cpskin.core.interfaces.ICPSkinSettings.media_viewlet_visible_albums'] = record # noqa
def upgrade(context, logger=None): setup = getToolByName(context, 'portal_setup') setup.runAllImportStepsFromProfile(PROFILE_ID) registry = getUtility(IRegistry) try: auth_step_timeout = api.portal.get_registry_record(name='plone.auth_step_timeout', default=None) except api.exc.InvalidParameterError: auth_step_timeout = None if not auth_step_timeout: auth_timeout_field = field.Int(title=u"(Seconds) This amount of inactivity \ will reset the login process", description=u"Between each step, the allowed \ time is reset to this amount", default=120) auth_timeout_record = Record(auth_timeout_field) registry._records['plone.auth_step_timeout'] = auth_timeout_record try: disclaimer = api.portal.get_registry_record(name='castle.show_disclaimer', default=None) except api.exc.InvalidParameterError: disclaimer = None if not disclaimer: show_disclaimer_field = field.Bool( title=u'Show disclaimer for first time a user visits a site. ' u'To comply with ePrivacy Directive, use this feature to notify about cookie use.', default=False, required=False) site_disclaimer_field = field.Text( title=u"Disclaimer", default=u'<p><strong>Disclaimer</strong> ' u'<em>You are seeing this because this is your first time visiting the site.</em></p>', required=False) show_disclaimer_record = Record(show_disclaimer_field) site_disclaimer_record = Record(site_disclaimer_field) registry._records['castle.show_disclaimer'] = show_disclaimer_record registry._records['castle.site_disclaimer'] = site_disclaimer_record update_password_expiry(api.portal.get()) for id in context.objectIds(): context[id].reindexObject(idxs=['has_private_parents']) try: scrub_site_identity = api.portal.get_registry_record(name='plone.scrub_title_logo_to_backend_login', default=None) except api.exc.InvalidParameterError: scrub_site_identity = None if not scrub_site_identity: scrub_identity_field = field.Bool( title=u'Do not show identifying customizations (logo/text) at backend login view', description=u'If set, backend visitors will see a generic login view.', default=False, required=False) scrub_identity_record = Record(scrub_identity_field) registry._records['plone.scrub_title_logo_to_backend_login'] = scrub_identity_record try: login_footer_message = api.portal.get_registry_record(name='plone.scrub_title_logo_to_backend_login', default=None) except api.exc.InvalidParameterError: login_footer_message = None if not login_footer_message: login_footer_message_field = field.TextLine( title=u'Login Footer Message', description=u'Display a message or warning below the secure login form', required=False) login_footer_message_record = Record(login_footer_message_field) registry._records['plone.login_footer_message'] = login_footer_message_record