src/ztfy/myams/tal/api.py
changeset 101 8364fb15bfe5
parent 0 8a19e25e39e4
--- a/src/ztfy/myams/tal/api.py	Tue Dec 16 11:04:53 2014 +0100
+++ b/src/ztfy/myams/tal/api.py	Wed Jan 14 15:52:59 2015 +0100
@@ -12,15 +12,17 @@
 
 # import local interfaces
 from ztfy.myams.interfaces import IMyAMSApplication, IObjectData
-from ztfy.myams.interfaces.configuration import IMyAMSConfiguration
+from ztfy.myams.interfaces.configuration import IMyAMSConfiguration, IMyAMSStaticConfiguration, \
+    MYAMS_CONFIGURATION_NAME_KEY
 from ztfy.myams.tal.interfaces import IMyAMSTalesAPI
 
 # import Zope3 packages
-from zope.component import getUtility
+from zope.component import getUtility, queryUtility
 from zope.interface import implements
 from zope.security.proxy import removeSecurityProxy
 
 # import local packages
+from ztfy.utils.request import getRequestData
 from ztfy.utils.traversing import getParent
 
 
@@ -41,11 +43,25 @@
             writer = getUtility(IJSONWriter)
             return writer.write(data.object_data)
 
+    @property
+    def application(self):
+        return getParent(self.context, IMyAMSApplication)
+
     def configuration(self):
-        application = getParent(self.context, IMyAMSApplication)
+        application = self.application
         if application is not None:
             return IMyAMSConfiguration(application, None)
 
+    def static_configuration(self):
+        configuration_name = getRequestData(MYAMS_CONFIGURATION_NAME_KEY, self.request)
+        if configuration_name:
+            configuration = queryUtility(IMyAMSStaticConfiguration, name=configuration_name)
+            if configuration is not None:
+                return configuration
+        configuration = self.configuration()
+        if configuration is not None:
+            return configuration.static_configuration
+
     def resources(self):
         application = getParent(self.context, IMyAMSApplication)
         if application is not None: