Test coverage for vnccollab.theme.settings
vnccollab/ | | covered 69% (1245 of 4098 uncovered) |
theme/ | | covered 69% (1245 of 4098 uncovered) |
settings.py | | covered 83% (37 of 221 uncovered) |
1: from zope import schema
1: from zope.interface import Interface
1: from zope.component import getUtility, provideAdapter
1: from plone import api
1: from plone.registry.interfaces import IRegistry
1: from plone.app.registry.browser import controlpanel
1: from plone.autoform.form import AutoExtensibleForm
1: from z3c.form import form, button, datamanager
1: from Products.statusmessages.interfaces import IStatusMessage
1: from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
1: from vnccollab.theme import messageFactory as _
1: provideAdapter(datamanager.DictionaryField)
2: class IWorldClockSettings(Interface):
1: tz_1 = schema.Choice(
1: title=_(u"Clock 1 Timezone"),
1: description=u'',
1: required=True,
1: vocabulary='vnccollab.theme.vocabularies.TimeZonesVocabulary',
1: default='Europe/Berlin')
1: skin_1 = schema.Choice(
1: title=_(u"Clock 1 Skin"),
1: description=u'',
1: required=True,
>>>>>> values=('chunkySwiss', 'chunkySwissOnBlack', 'swissRail', 'vnc',
1: 'vncHeaderViewlet'),
1: default='vncHeaderViewlet')
1: radius_1 = schema.Int(
1: title=_(u"Clock 1 Radius"),
1: description=u'',
1: required=True,
1: default=35)
1: no_seconds_1 = schema.Bool(
1: title=_(u"Clock 1 Without Seconds"),
1: description=_(u"Do not show seconds handle."),
1: required=False,
1: default=False)
1: tz_2 = schema.Choice(
1: title=_(u"Clock 2 Timezone"),
1: description=u'',
1: required=False,
1: vocabulary='vnccollab.theme.vocabularies.TimeZonesVocabulary',
1: default='Asia/Mumbai')
1: skin_2 = schema.Choice(
1: title=_(u"Clock 2 Skin"),
1: description=u'',
1: required=True,
>>>>>> values=('chunkySwiss', 'chunkySwissOnBlack', 'swissRail', 'vnc',
1: 'vncHeaderViewlet'),
1: default='vncHeaderViewlet')
1: radius_2 = schema.Int(
1: title=_(u"Clock 2 Radius"),
1: description=u'',
1: required=False,
1: default=35)
1: no_seconds_2 = schema.Bool(
1: title=_(u"Clock 2 Without Seconds"),
1: description=_(u"Do not show seconds handle."),
1: required=False,
1: default=False)
1: tz_3 = schema.Choice(
1: title=_(u"Clock 3 Timezone"),
1: description=u'',
1: required=False,
1: vocabulary='vnccollab.theme.vocabularies.TimeZonesVocabulary',
1: default='America/New_York')
1: skin_3 = schema.Choice(
1: title=_(u"Clock 3 Skin"),
1: description=u'',
1: required=True,
>>>>>> values=('chunkySwiss', 'chunkySwissOnBlack', 'swissRail', 'vnc',
1: 'vncHeaderViewlet'),
1: default='vncHeaderViewlet')
1: radius_3 = schema.Int(
1: title=_(u"Clock 3 Radius"),
1: description=u'',
1: required=False,
1: default=35)
1: no_seconds_3 = schema.Bool(
1: title=_(u"Clock 3 Without Seconds"),
1: description=_(u"Do not show seconds handle."),
1: required=False,
1: default=False)
2: class WorldClockSettingsEditForm(controlpanel.RegistryEditForm):
1: schema = IWorldClockSettings
1: label = _(u'WorldClock Settings')
1: description = _(u'')
1: def updateFields(self):
>>>>>> super(WorldClockSettingsEditForm, self).updateFields()
1: def updateWidgets(self):
>>>>>> super(WorldClockSettingsEditForm, self).updateWidgets()
2: class WorldClockSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
1: form = WorldClockSettingsEditForm
2: class IOpenERPSettings(Interface):
''' Global OpenERP Settings.
Here you define that action ids associate with the database.
1: '''
1: openerpActions = schema.List(
1: title=u'OpenERP Actions',
1: description=u"Actions, one for line in the format 'id,description'. "
u"DO NOT use commas in the description",
1: value_type=schema.TextLine(),
1: required=True,
1: default=[],
)
2: class OpenERPSettingsEditForm(controlpanel.RegistryEditForm):
1: schema = IOpenERPSettings
1: label = u'OpenERP Settings'
1: description = _(u"""""")
2: class OpenERPSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
1: form = OpenERPSettingsEditForm
2: class IAnonymousHomepageSettings(Interface):
1: """Anonymous Homepage Settings."""
1: help_url = schema.URI(
1: title=_(u'Help URL'),
1: description=_(u'URL of the page that shows the site help.'),
1: required=False,
)
1: show_register_url = schema.Bool(
1: title=_(u'Show Register'),
1: description=_(u'Should Register/Sing Up be shown'),
1: required=False,
1: default=True
)
1: register_url = schema.URI(
1: title=_(u'Register URL'),
1: description=_(u'URL of the page for Registration / Signup page (empty for default).'),
1: required=False,
)
1: show_login_url = schema.Bool(
1: title=_(u'Show Login'),
1: description=_(u'Should Login link be shown'),
1: required=False,
1: default=True
)
1: login_url = schema.URI(
1: title=_(u'Login URL'),
1: description=_(u'URL of the login page (empty for default).'),
1: required=False,
)
2: class IAnonymousHomepageForm(IAnonymousHomepageSettings):
1: """Anonymous Homepage Form."""
1: logo = schema.Bytes(
1: title=_(u'Homepage Logo'),
1: description=_(u'Upload an image to set or replace the site logo'),
1: required=False,
)
1: delete_logo = schema.Bool(
1: title=_(u"Delete Logo"),
1: description=_(u"Delete the customized logo."),
1: required=False,
1: default=False)
2: class AnonymousHomepageSettingsEditForm(AutoExtensibleForm, form.EditForm):
1: schema = IAnonymousHomepageForm
1: label = u'Anonymous Homepage Settings'
1: description = _(u"""""")
# Internal fields: not to be configured.
1: control_panel_view = "plone_control_panel"
1: registry_key_base = 'vnccollab.theme.settings.IAnonymousHomepageSettings'
1: help_url_key = '{0}.help_url'.format(registry_key_base)
1: show_register_url_key = '{0}.show_register_url'.format(registry_key_base)
1: register_url_key = '{0}.register_url'.format(registry_key_base)
1: show_login_url_key = '{0}.show_login_url'.format(registry_key_base)
1: login_url_key = '{0}.login_url'.format(registry_key_base)
1: def getContent(self):
>>>>>> registry = getUtility(IRegistry)
>>>>>> help_url = registry.get(self.help_url_key, '')
>>>>>> show_register_url = registry.get(self.show_register_url_key, True)
>>>>>> register_url = registry.get(self.register_url_key, '')
>>>>>> show_login_url = registry.get(self.show_login_url_key, True)
>>>>>> login_url = registry.get(self.login_url_key, '')
>>>>>> return {'help_url': help_url,
>>>>>> 'show_register_url': show_register_url,
>>>>>> 'register_url': register_url,
>>>>>> 'show_login_url': show_login_url,
>>>>>> 'login_url': login_url,
}
1: def applyChanges(self, data):
8: registry = getUtility(IRegistry)
8: help_url = data.get('help_url', None)
8: show_register_url = data.get('show_register_url', True)
8: register_url = data.get('register_url', None)
8: show_login_url = data.get('show_login_url', True)
8: login_url = data.get('login_url', None)
8: delete_logo = data['delete_logo']
8: logo = data['logo']
8: registry[self.help_url_key] = help_url
8: registry[self.show_register_url_key] = show_register_url
8: registry[self.register_url_key] = register_url
8: registry[self.show_login_url_key] = show_login_url
8: registry[self.login_url_key] = login_url
8: portal = api.portal.get()
8: custom_skin = portal.portal_skins.custom
8: destination = custom_skin
8: if delete_logo or logo:
2: current_logo = api.content.get(
2: path='/portal_skins/custom/logo.png')
2: if current_logo:
# logo.png could be not defined in ZODB, so current_logo
# could be not None and not deleteable
2: try:
2: api.content.delete(current_logo)
1: except:
1: pass
8: if logo:
1: destination.manage_addProduct['OFSP'].manage_addImage('logo.png',
1: logo)
1: def updateActions(self):
>>>>>> super(AutoExtensibleForm, self).updateActions()
>>>>>> self.actions['save'].addClass("context")
>>>>>> self.actions['cancel'].addClass("standalone")
1: @button.buttonAndHandler(_(u"Save"), name='save')
def handleSave(self, action):
>>>>>> data, errors = self.extractData()
>>>>>> if errors:
>>>>>> self.status = self.formErrorsMessage
>>>>>> return
>>>>>> self.applyChanges(data)
>>>>>> IStatusMessage(self.request).addStatusMessage(_(u"Changes saved."),
>>>>>> "info")
>>>>>> self.request.response.redirect("%s/%s" % (self.context.absolute_url(),
>>>>>> self.control_panel_view))
1: @button.buttonAndHandler(_(u"Cancel"), name='cancel')
def handleCancel(self, action):
>>>>>> IStatusMessage(self.request).addStatusMessage(_(u"Edit cancelled."),
>>>>>> "info")
>>>>>> self.request.response.redirect("%s/%s" % (self.context.absolute_url(),
>>>>>> self.control_panel_view))
1: @button.buttonAndHandler(_(u'Edit Home Page'), name='edit')
def handleEdit(self, action):
>>>>>> self.request.response.redirect("%s/%s" % (self.context.absolute_url(),
>>>>>> '@@manage-group-dashboard?key=AnonymousUsers'))
1: @button.buttonAndHandler(_(u'Edit Carousel'), name='carousel')
def handleCarousel(self, action):
>>>>>> portal = api.portal.get()
>>>>>> self.request.response.redirect("%s/%s" % (portal.absolute_url(),
>>>>>> '@@edit-carousel'))
2: class AnonymousHomepageSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
1: index = ViewPageTemplateFile('browser/templates/anonhomepage_controlpanel_layout.pt')
1: form = AnonymousHomepageSettingsEditForm