diff piecrust/data/providersdata.py @ 814:aca04e175488

data: Allow page generators to have an associated data provider
author Ben Artin <ben@artins.org>
date Wed, 28 Dec 2016 01:27:02 -0500
parents 32c7c2d219d2
children 71c4f43d8fc1
line wrap: on
line diff
--- a/piecrust/data/providersdata.py	Mon Jan 02 16:30:57 2017 -0500
+++ b/piecrust/data/providersdata.py	Wed Dec 28 01:27:02 2016 -0500
@@ -27,13 +27,14 @@
             return
 
         self._dict = {}
-        for source in self._page.app.sources:
-            endpoint_bits = re_endpoint_sep.split(source.data_endpoint)
-            endpoint = self._dict
-            for e in endpoint_bits[:-1]:
-                if e not in endpoint:
-                    endpoint[e] = {}
-                endpoint = endpoint[e]
-            override = endpoint.get(endpoint_bits[-1])
-            provider = source.buildDataProvider(self._page, override)
-            endpoint[endpoint_bits[-1]] = provider
+        for source in self._page.app.sources + self._page.app.generators:
+            if source.data_endpoint:
+                endpoint_bits = re_endpoint_sep.split(source.data_endpoint)
+                endpoint = self._dict
+                for e in endpoint_bits[:-1]:
+                    if e not in endpoint:
+                        endpoint[e] = {}
+                    endpoint = endpoint[e]
+                override = endpoint.get(endpoint_bits[-1])
+                provider = source.buildDataProvider(self._page, override)
+                endpoint[endpoint_bits[-1]] = provider