[Products.SilvaExternalSources][Sylvain Viollon] Make service co...

[email protected] Mon, 28 Oct 2013 15:47:01 +0100
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Mon Oct 28 15:46:54 2013 +0100
revision:  1127:cac70275e114 in Products.SilvaExternalSources
branch:    2.4
details:   https://hg.infrae.com/Products.SilvaExternalSources?cmd=changeset;node=cac70275e114
modified:  Products/SilvaExternalSources/CodeSourceService.py Products/SilvaExternalSources/CodeSourceService_templates/configureinstallcodesources.cpt
added:     Products/SilvaExternalSources/CodeSourceService_templates/configureinstallcodesources.cpt
removed:   
log:       Make service configurable.


diffstat:

 Products/SilvaExternalSources/CodeSourceService.py                                        |  23 ++++++++-
 Products/SilvaExternalSources/CodeSourceService_templates/configureinstallcodesources.cpt |   3 +
 2 files changed, 22 insertions(+), 4 deletions(-)

diffs (77 lines):

diff -r c3df1d86f0e2 -r cac70275e114 Products/SilvaExternalSources/CodeSourceService.py
--- a/Products/SilvaExternalSources/CodeSourceService.py	Tue Oct 22 11:37:19 2013 +0200
+++ b/Products/SilvaExternalSources/CodeSourceService.py	Mon Oct 28 15:46:54 2013 +0100
@@ -33,13 +33,14 @@
 from js.jquery import jquery
 
 from silva.core import conf as silvaconf
-from silva.core.interfaces import IContainer
+from silva.core.interfaces import IContainer, ISilvaConfigurableService
 from silva.core.interfaces import IMimeTypeClassifier
 from silva.core.services.base import SilvaService
 from silva.core.services.utils import walk_silva_tree
 from silva.core.views import views as silvaviews
 from silva.translations import translate as _
 from silva.fanstatic import need
+from silva.ui import rest
 from zeam.form import silva as silvaforms
 
 from .interfaces import ICodeSource, ICodeSourceService, ICodeSourceInstaller
@@ -524,7 +525,7 @@
 class CodeSourceService(SilvaService):
     meta_type = 'Silva Code Source Service'
 
-    grok.implements(ICodeSourceService)
+    grok.implements(ICodeSourceService, ISilvaConfigurableService)
     grok.name('service_codesources')
     silvaconf.icon('www/codesource_service.png')
 
@@ -701,6 +702,7 @@
 
 class ManageExistingCodeSources(silvaviews.ZMIView):
     grok.name('manage_existing_codesources')
+    grok.context(CodeSourceService)
 
     def update(self, find=False, below=None, child=False,
                update=False, bind=False):
@@ -763,8 +765,7 @@
             self.filter = '/'.join(aq_parent(self.context).getPhysicalPath())
 
 
-class ManageInstallCodeSources(silvaviews.ZMIView):
-    grok.name('manage_install_codesources')
+class InstallCodeSourcesMixin(object):
 
     def update(self, install=False, refresh=False, locations=[]):
         self.status = []
@@ -836,9 +837,23 @@
         self.extensions.sort(key=operator.itemgetter('title'))
         need(jquery)
 
+class ManageInstallCodeSources(InstallCodeSourcesMixin, silvaviews.ZMIView):
+    grok.name('manage_install_codesources')
+    grok.context(CodeSourceService)
+
+
+class ConfigureInstallCodeSources(InstallCodeSourcesMixin, rest.PageWithTemplateREST):
+    grok.adapts(rest.Screen, CodeSourceService)
+    grok.name('admin')
+    grok.require('zope2.ViewManagementScreens')
+
+    def get_menu_title(self):
+        return _('Install code sources')
+
 
 class ManageSourcesErrors(silvaviews.ZMIView):
     grok.name('manage_sources_errors')
+    grok.context(CodeSourceService)
 
     def update(self):
         errors = getUtility(ISourceErrors)
diff -r c3df1d86f0e2 -r cac70275e114 Products/SilvaExternalSources/CodeSourceService_templates/configureinstallcodesources.cpt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Products/SilvaExternalSources/CodeSourceService_templates/configureinstallcodesources.cpt	Mon Oct 28 15:46:54 2013 +0100
@@ -0,0 +1,3 @@
+<tal:configure i18n:domain="plone">
+   Install
+</tal:configure>