parser.set ('manifold', 'url', Config.default_manifold_url)
parser.set ('manifold', 'admin_user', Config.default_manifold_admin_user)
parser.set ('manifold', 'admin_password', Config.default_manifold_admin_password)
+ parser.add_section('googlemap')
+ parser.set ('googlemap','api_key', None)
parser.read (os.path.join(ROOT,'myslice/myslice.ini'))
self.config_parser=parser
return (self.config_parser.get('manifold','admin_user'),
self.config_parser.get('manifold','admin_password'))
+ def googlemap_api_key (self):
+ return self.config_parser.get('googlemap','api_key')
+
# exporting these details to js
def manifold_js_export (self):
return "var MANIFOLD_URL = '%s';\n"%self.manifold_url();
class GoogleMap (Plugin):
- # set checkboxes if a final column with checkboxes is desired
- # pass columns as the initial set of columns
- # if None then this is taken from the query's fields
+ # expcted input are
+ # query : query about the slice
+ # query_all : query about all resources
+ # googlemap_key : mandatory googlemap API v3 key
# latitude,longitude, zoom : the starting point
- def __init__ (self, query, query_all = None, latitude=43., longitude=7., zoom=4, **settings):
+ # apparently at some point there has been support for a boolean 'checkboxes' input arg but seems dropped
+ def __init__ (self, query, query_all, googlemap_api_key=None, latitude=43., longitude=7., zoom=4, **settings):
Plugin.__init__ (self, **settings)
self.query=query
self.query_all = query_all
+ self.googlemap_api_key=googlemap_api_key
self.query_all_uuid = query_all.query_uuid if query_all else None
self.latitude=latitude
self.longitude=longitude
return env
def requirements (self):
+ googlemap_api_url = "https://maps.googleapis.com/maps/api/js?"
+ if self.googlemap_api_key: googlemap_api_url+="key=%s&"%self.googlemap_api_key
+ googlemap_api_url += "sensor=false"
reqs = {
- 'js_files' : [ "https://maps.googleapis.com/maps/api/js?sensor=false",
+ # let users configure their googlemap API key in production deployements
+ 'js_files' : [ googlemap_api_url,
"/js/googlemap.js",
"/js/markerclusterer.js",
"js/manifold.js", "js/manifold-query.js",
-from manifold.core.query import Query
-from unfold.page import Page
+from manifold.core.query import Query
+from unfold.page import Page
-from unfold.loginrequired import FreeAccessView
-from ui.topmenu import topmenu_items, the_user
+from unfold.loginrequired import FreeAccessView
+from ui.topmenu import topmenu_items, the_user
-from plugins.googlemap import GoogleMap
-from plugins.querytable import QueryTable
-from plugins.lists.simplelist import SimpleList
-from plugins.slicestat import SliceStat
+from plugins.googlemap import GoogleMap
+from plugins.querytable import QueryTable
+from plugins.lists.simplelist import SimpleList
+from plugins.slicestat import SliceStat
+
+from myslice.config import Config
# View for 1 platform and its details
class ResourceView(FreeAccessView):
togglable = True,
query = resource_query,
query_all = resource_query,
+ googlemap_api_key = Config().googlemap_api_key(),
checkboxes = False,
# center on Paris
#latitude = 49.,
togglable = False,
query = sq_resource,
query_all = query_resource_all,
+ googlemap_api_key = Config().googlemap_api_key(),
checkboxes = True,
# center on Paris
latitude = 49.,