add field for selecting view for ServiceManager
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1980 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									b652508e46
								
							
						
					
					
						commit
						163e6dedd7
					
				
					 3 changed files with 31 additions and 3 deletions
				
			
		|  | @ -70,6 +70,13 @@ class BaseView(object): | ||||||
| 
 | 
 | ||||||
| class ServiceManagerView(BaseView): | class ServiceManagerView(BaseView): | ||||||
| 
 | 
 | ||||||
|  |     def getCustomView(self): | ||||||
|  |         viewName = self.context.viewName | ||||||
|  |         if viewName: | ||||||
|  |             return component.getMultiAdapter((self.context, self.request), | ||||||
|  |                                              name=viewName) | ||||||
|  |         return None | ||||||
|  | 
 | ||||||
|     def findRegistrationTemplate(self, service): |     def findRegistrationTemplate(self, service): | ||||||
|         """ Find a registration template that provides the registration |         """ Find a registration template that provides the registration | ||||||
|             for the service given. |             for the service given. | ||||||
|  | @ -80,7 +87,7 @@ class ServiceManagerView(BaseView): | ||||||
|                 return tpl |                 return tpl | ||||||
|         return None |         return None | ||||||
| 
 | 
 | ||||||
|     def overview(self): |     def overview(self, includeCategories=None): | ||||||
|         result = [] |         result = [] | ||||||
|         classific = [] |         classific = [] | ||||||
|         category = None |         category = None | ||||||
|  | @ -88,9 +95,12 @@ class ServiceManagerView(BaseView): | ||||||
|         svcs = sorted((svc.getCategory(), idx, svc) |         svcs = sorted((svc.getCategory(), idx, svc) | ||||||
|                 for idx, svc in enumerate(self.context.getServices())) |                 for idx, svc in enumerate(self.context.getServices())) | ||||||
|         for cat, idx, svc in svcs: |         for cat, idx, svc in svcs: | ||||||
|  |             if includeCategories and cat not in includeCategories: | ||||||
|  |                 continue | ||||||
|             if cat != category: |             if cat != category: | ||||||
|                 term = serviceCategories.getTermByToken(cat) |                 term = serviceCategories.getTermByToken(cat) | ||||||
|                 result.append(dict(isHeadline=True, level=0, title=term.title, |                 result.append(dict(isHeadline=True, level=0, title=term.title, | ||||||
|  |                                    name=cat, | ||||||
|                                    object=None)) |                                    object=None)) | ||||||
|                 category = cat |                 category = cat | ||||||
|                 classific = [] |                 classific = [] | ||||||
|  | @ -100,17 +110,22 @@ class ServiceManagerView(BaseView): | ||||||
|                 if (len(classific) <= idx or |                 if (len(classific) <= idx or | ||||||
|                         classific[idx].name != element.name): |                         classific[idx].name != element.name): | ||||||
|                     result.append(dict(isHeadline=True, level=level, |                     result.append(dict(isHeadline=True, level=level, | ||||||
|  |                                        name=element.name, | ||||||
|                                        title=element.title, |                                        title=element.title, | ||||||
|                                        object=element.object)) |                                        object=element.object)) | ||||||
|                     classific = clsf |                     classific = clsf | ||||||
|                 if level > maxLevel: |                 if level > maxLevel: | ||||||
|                     maxLevel = level |                     maxLevel = level | ||||||
|             result.append(dict(isHeadline=False, level=maxLevel+1, |             result.append(dict(isHeadline=False, level=maxLevel+1, | ||||||
|  |                                name=svc.getName(), | ||||||
|                                title=svc.title or svc.getName(), |                                title=svc.title or svc.getName(), | ||||||
|                                fromTo=self.getFromTo(svc), |                                fromTo=self.getFromTo(svc), | ||||||
|                                object=svc)) |                                object=svc)) | ||||||
|         return result |         return result | ||||||
| 
 | 
 | ||||||
|  |     def eventsOverview(self): | ||||||
|  |         return self.overview(includeCategories=('event',)) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class ServiceView(BaseView): | class ServiceView(BaseView): | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -125,6 +125,11 @@ class ITask(Interface): | ||||||
| 
 | 
 | ||||||
| # services | # services | ||||||
| 
 | 
 | ||||||
|  | serviceManagerViews = SimpleVocabulary(( | ||||||
|  |     SimpleTerm('', '', u'Default view'), | ||||||
|  |     SimpleTerm('events_overview.html', 'events_overview.html', u'Events overview'), | ||||||
|  | )) | ||||||
|  | 
 | ||||||
| class IServiceManager(Interface): | class IServiceManager(Interface): | ||||||
|     """ A manager or container for a set of services. |     """ A manager or container for a set of services. | ||||||
|     """ |     """ | ||||||
|  | @ -137,6 +142,13 @@ class IServiceManager(Interface): | ||||||
|                 title=_(u'End date/time'), |                 title=_(u'End date/time'), | ||||||
|                 description=_(u'The end date/time for providing services.'), |                 description=_(u'The end date/time for providing services.'), | ||||||
|                 required=False,) |                 required=False,) | ||||||
|  |     viewName = schema.Choice( | ||||||
|  |                 title=_(u'View name'), | ||||||
|  |                 description=_(u'Select the name of a specialized view to be used ' | ||||||
|  |                         'for presenting this object.'), | ||||||
|  |                 vocabulary=serviceManagerViews, | ||||||
|  |                 default='', | ||||||
|  |                 required=False,) | ||||||
| 
 | 
 | ||||||
|     services = Attribute('A collection of services managed by this object.') |     services = Attribute('A collection of services managed by this object.') | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,9 @@ from time import time | ||||||
| from BTrees.OOBTree import OOBTree | from BTrees.OOBTree import OOBTree | ||||||
| from zope.cachedescriptors.property import Lazy | from zope.cachedescriptors.property import Lazy | ||||||
| from zope.component import adapts | from zope.component import adapts | ||||||
| from zope.interface import implements | from zope import component | ||||||
|  | from zope.interface import implements, Interface | ||||||
|  | 
 | ||||||
| from cybertools.composer.interfaces import IInstance | from cybertools.composer.interfaces import IInstance | ||||||
| from cybertools.composer.schema.interfaces import IClientManager, IClient | from cybertools.composer.schema.interfaces import IClientManager, IClient | ||||||
| from cybertools.stateful.definition import registerStatesDefinition | from cybertools.stateful.definition import registerStatesDefinition | ||||||
|  | @ -34,7 +36,6 @@ from cybertools.stateful.definition import StatesDefinition | ||||||
| from cybertools.stateful.definition import State, Transition | from cybertools.stateful.definition import State, Transition | ||||||
| from cybertools.util.jeep import Jeep | from cybertools.util.jeep import Jeep | ||||||
| from cybertools.util.randomname import generateName | from cybertools.util.randomname import generateName | ||||||
| 
 |  | ||||||
| from cybertools.organize.interfaces import IServiceManager | from cybertools.organize.interfaces import IServiceManager | ||||||
| from cybertools.organize.interfaces import IService, IScheduledService | from cybertools.organize.interfaces import IService, IScheduledService | ||||||
| from cybertools.organize.interfaces import IRegistration, IRegistrationTemplate | from cybertools.organize.interfaces import IRegistration, IRegistrationTemplate | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm