|
1 | 1 | from collections import OrderedDict |
2 | 2 | import json |
3 | 3 | import os |
| 4 | +import re |
4 | 5 | from pathlib import Path |
5 | 6 | import requests |
6 | 7 | import traceback |
@@ -452,7 +453,20 @@ def theme_item(self, cfg_item, themes_config, assets_dir, autogenExternalLayers, |
452 | 453 | else: |
453 | 454 | item['initialBbox'] = item['bbox'] |
454 | 455 |
|
455 | | - item['visibilityPresets'] = self.themes_reader.visibility_presets(service_name) |
| 456 | + visibilityPresets = self.themes_reader.visibility_presets(service_name) |
| 457 | + item['visibilityPresets'] = {} |
| 458 | + visibilityPresetsBlacklist = [ |
| 459 | + re.compile( |
| 460 | + '^' + '.*'.join(re.escape(part) for part in re.split(r'\*+', pattern)) + '$' |
| 461 | + ) |
| 462 | + for pattern in cfg_item.get('visibilityPresetsBlacklist', []) |
| 463 | + ] |
| 464 | + for key in visibilityPresets: |
| 465 | + for pattern in visibilityPresetsBlacklist: |
| 466 | + if pattern.match(key): |
| 467 | + break |
| 468 | + else: |
| 469 | + item['visibilityPresets'][key] = visibilityPresets[key] |
456 | 470 |
|
457 | 471 | # get search layers from searchProviders |
458 | 472 | search_providers = cfg_item.get('searchProviders', themes_config.get('defaultSearchProviders', [])) |
@@ -549,7 +563,6 @@ def theme_item(self, cfg_item, themes_config, assets_dir, autogenExternalLayers, |
549 | 563 | self.set_optional_config(cfg_item, 'layerTreeHiddenSublayers', item) |
550 | 564 | self.set_optional_config(cfg_item, 'predefinedFilters', item) |
551 | 565 | self.set_optional_config(cfg_item, 'map3d', item) |
552 | | - self.set_optional_config(cfg_item, 'visibilityPresetsBlacklist', item) |
553 | 566 |
|
554 | 567 | if not cfg_item.get('wmsOnly', False): |
555 | 568 | item['thumbnail'] = self.get_thumbnail(cfg_item, service_name, cap, assets_dir) |
|
0 commit comments