def builtin_metadata(self): meta_data = {} meta_data["workspace"] = self.datasource.workspace.name meta_data["name"] = self.kmi_name meta_data["service_type"] = "WMS" if SpatialTable.check_normal(self.spatial_type) or not self.datasource.workspace.publish_channel.sync_geoserver_data: meta_data["service_type"] = "" elif SpatialTable.check_raster(self.spatial_type): meta_data["service_type"] = "WMS" meta_data["service_type_version"] = self.datasource.workspace.publish_channel.wms_version else: meta_data["service_type"] = "WFS" meta_data["service_type_version"] = self.datasource.workspace.publish_channel.wfs_version meta_data["modified"] = (self.last_modify_time or self.last_refresh_time).astimezone(timezone.get_default_timezone()).strftime("%Y-%m-%d %H:%M:%S.%f") #bbox meta_data["bounding_box"] = self.bbox or None meta_data["crs"] = self.crs or None #ows resource meta_data["ows_resource"] = {} if meta_data["service_type"] == "WFS" and self.datasource.workspace.publish_channel.wfs_endpoint: meta_data["ows_resource"]["wfs"] = True meta_data["ows_resource"]["wfs_version"] = self.datasource.workspace.publish_channel.wfs_version meta_data["ows_resource"]["wfs_endpoint"] = self.datasource.workspace.publish_channel.wfs_endpoint if meta_data["service_type"] in ("WFS","WMS") and self.datasource.workspace.publish_channel.wfs_endpoint: meta_data["ows_resource"]["wms"] = True meta_data["ows_resource"]["wms_version"] = self.datasource.workspace.publish_channel.wms_version meta_data["ows_resource"]["wms_endpoint"] = self.datasource.workspace.publish_channel.wms_endpoint geo_settings = json.loads(self.geoserver_setting) if self.geoserver_setting else {} if geo_settings.get("create_cache_layer",False) and self.datasource.workspace.publish_channel.gwc_endpoint: meta_data["ows_resource"]["gwc"] = True meta_data["ows_resource"]["gwc_endpoint"] = self.datasource.workspace.publish_channel.gwc_endpoint return meta_data
def get_fields(self, request, obj=None): if obj and SpatialTable.check_normal(obj.spatial_type): base_fields = ['name','workspace','interval','status','input_table','dependents','priority','sql','create_extra_index_sql'] else: base_fields = ['name','workspace','interval','status','input_table','dependents','priority','sql','create_extra_index_sql',"create_cache_layer","server_cache_expire","client_cache_expire"] return base_fields + list(self.get_readonly_fields(request, obj))
def get_form(self, request, obj=None, **kwargs): # Proper kwargs are form, fields, exclude, formfield_callback if obj and SpatialTable.check_normal(obj.spatial_type): return NormalTablePublishForm else: return PublishForm
def get_form(self, request, obj=None, **kwargs): # Proper kwargs are form, fields, exclude, formfield_callback if obj and SpatialTable.check_normal(obj.spatial_type): return NormalTablePublishForm else: return PublishForm