Coverage for gws-app/gws/base/ows/client/model.py: 80%
25 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Generic OWS model."""
3import gws
4import gws.base.feature
5import gws.base.model
6import gws.config.util
7import gws.lib.crs
8import gws.lib.extent
9import gws.gis.source
12class Object(gws.base.model.default_model.Object):
13 """Generic OWS model.
15 Read-only model that reads features from the queryable source layers of an
16 OWS service provider. Clients cannot create, update or delete features.
17 """
19 provider: gws.OwsServiceProvider
20 """Service provider."""
21 sourceLayers: list[gws.SourceLayer]
22 """Source layers to read features from."""
24 def configure(self):
25 self.configure_model()
27 def configure_provider(self):
28 pass
30 def configure_sources(self):
31 gws.u.require(self.provider, 'failed to configure service provider')
33 self.configure_source_layers()
35 def configure_source_layers(self):
36 """Select the queryable source layers of the provider, or those given in the configuration.
38 Returns:
39 Always ``True``.
40 """
42 return gws.config.util.configure_source_layers_for(self, self.provider.sourceLayers, is_queryable=True)
44 def find_features(self, search, mc):
45 if not self.sourceLayers:
46 return []
47 return [
48 self.feature_from_record(r, mc)
49 for r in self.provider.get_features(search, self.sourceLayers)
50 ]
52 def props(self, user):
53 return gws.u.merge(
54 super().props(user),
55 canCreate=False,
56 canDelete=False,
57 canWrite=False,
58 )