def saveToGeonode(payload): admin = Profile.objects.filter(is_superuser=True).first() logger.debug('Uploading layer %s to geonode' % payload['zip_name']) # use overwrite to make sure if a layer exists it gets updated uploaded = upload(payload['zipfile_path'], admin, overwrite=True)[0] if uploaded['status'] == 'failed': raise Exception("Failed layer %s with error %s " % (payload['zip_name'], uploaded['error'])) else: uploaded_name = uploaded['name'] if any(s in payload['zip_name'] for s in ['_a', '_p', '_l']): gs_layer = gs_catalog.get_layer(name=uploaded_name) gs_style = gs_catalog.get_style(name=payload['style_name']) if not gs_style: #let's make sure the style is there gs_catalog.create_style(payload['style_name'], payload['style_body']) gs_style = gs_catalog.get_style(name=payload['style_name']) gs_layer.default_style = gs_style gs_catalog.save(gs_layer) # gs_catalog.reload() saved_layer = Layer.objects.get(name=uploaded_name) mapSetLayer = createMapSetLayer(saved_layer, payload['zip_name']) payload['mapset'].layers.add(mapSetLayer) #create_gs_thumbnail(saved_layer, overwrite=True) return uploaded_name
def create_style(self, name, sld_body, overwrite=True, raw=True): name = self.get_new_style_name(name) sld_body = self.convert_sld_attributes(sld_body) gs_catalog.create_style(name, sld_body, overwrite=overwrite, raw=True, workspace=settings.DEFAULT_WORKSPACE) style = gs_catalog.get_style(name, workspace=settings.DEFAULT_WORKSPACE) return style
def upload_style(self, style_name, sld_body, overwrite=False): name = self.get_new_name(style_name) gs_catalog.create_style( name, sld_body, overwrite=overwrite, raw=True, workspace=settings.DEFAULT_WORKSPACE) style_func = repeat_every()(gs_catalog.get_style) style = style_func(name, settings.DEFAULT_WORKSPACE) style_url = style.body_href gstyle, created = Style.objects.get_or_create( name=name, sld_title=name, workspace=settings.DEFAULT_WORKSPACE, sld_body=sld_body, sld_url=style_url) return gstyle