Coverage for gws-app/gws/plugin/qgis/finder.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-16 23:09 +0200

1"""QGIS Server-based Finder.""" 

2 

3from typing import Optional 

4 

5import gws 

6import gws.base.model 

7import gws.base.search 

8import gws.base.ows.client 

9import gws.config.util 

10import gws.gis.source 

11 

12from . import provider 

13 

14gws.ext.new.finder('qgis') 

15 

16 

17class Config(gws.base.search.finder.Config): 

18 """QGIS Server-based Finder configuration.""" 

19 

20 provider: Optional[provider.Config] 

21 """Provider configuration.""" 

22 sourceLayers: Optional[gws.gis.source.LayerFilter] 

23 """Source layers to search for.""" 

24 

25 

26class Object(gws.base.ows.client.finder.Object): 

27 supportsGeometrySearch = True 

28 serviceProvider: provider.Object 

29 

30 def configure_provider(self): 

31 return gws.config.util.configure_service_provider_for(self, provider.Object) 

32 

33 def can_run(self, search, user): 

34 return ( 

35 super().can_run(search, user) 

36 and bool(search.shape) 

37 and search.shape.type == gws.GeometryType.point)