@@ -123,6 +123,47 @@ def render_to_response(self, context: dict, **kwargs) -> TemplateResponse:
123123 )
124124
125125
126+ class LayerJsonView (JsonView ):
127+ """View for returning all available layers in json."""
128+
129+ def get_context_data (self , ** kwargs ) -> list :
130+ """Return the GeoJSON Data to the client."""
131+ layers = []
132+ for layer in Layer .objects .filter (public = True ):
133+ url = reverse (
134+ "maps:map_layer_geojson" ,
135+ kwargs = {"layer_slug" : layer .slug },
136+ )
137+ layers .append (
138+ {
139+ "name" : layer .name ,
140+ "team" : layer .responsible_team .name if layer .responsible_team else "None" ,
141+ "camp" : layer .responsible_team .camp .slug if layer .responsible_team else "all" ,
142+ "url" : self .request .build_absolute_uri (url ),
143+ "type" : "layer" ,
144+ },
145+ )
146+ for facility_type in FacilityType .objects .all ():
147+ url = reverse (
148+ "facilities:facility_list_geojson" ,
149+ kwargs = {
150+ "camp_slug" : facility_type .responsible_team .camp .slug ,
151+ "facility_type_slug" : facility_type .slug ,
152+ },
153+ )
154+ layers .append (
155+ {
156+ "name" : facility_type .name ,
157+ "team" : facility_type .responsible_team .name ,
158+ "camp" : facility_type .responsible_team .camp .slug ,
159+ "url" : self .request .build_absolute_uri (url ),
160+ "type" : "facility" ,
161+ },
162+ )
163+
164+ return layers
165+
166+
126167class MapView (CampViewMixin , TemplateView ):
127168 """Global map view."""
128169
0 commit comments