diff --git a/Pipfile b/Pipfile index 0b1e31d000..c57cc2c70d 100644 --- a/Pipfile +++ b/Pipfile @@ -9,16 +9,15 @@ cachetools = "~=5.2" decorator = "~=5.1" esrijson = "~=0.4" gatilegrid = "~=0.2" -geojson = "~=2.5" -lark_parser = "~=0.7.8" +geojson = "~=3.0" +lark_parser = "~=0.12.0" networkx = "~=2.8" -papyrus = "~=2.4" +papyrus = "==2.5" SQLAlchemy = "~=1.4.48" -GeoAlchemy2 = "~=0.13.0" Pillow = "~=9.2" polib = "~=1.1" psycopg2-binary = "~=2.9" -pyproj = "~=3.4" +pyproj = "==3.6.1" pyramid = "~=2.0" pyramid-mako = "~=1.1" pyramid-tm = "~=2.5" @@ -28,15 +27,16 @@ pytz = "~=2022.4" PyYAML = "~=6.0" regex = "~=2022.9.13" requests = "~=2.28" -Shapely = "~=1.8" +Shapely = "~=2.0" +numpy = "==2.0.2" simplejson = "~=3.17" unidecode = "~=1.3" -Akhet = "~=2.0" logging-utilities = "~=3.1.1" pyramid-exclog = "~=1.1" +GeoAlchemy2 = "==0.13.3" [dev-packages] -waitress = "~=2.1" +waitress = "~=3.0" PyRSS2Gen = "~=1.1" flake8 = "*" pep8 = "*" @@ -51,7 +51,7 @@ Sphinx = "~=5.2" sphinx-rtd-theme = "~=1.0" nose2 = "*" coverage = "~=4.5" -numpy = "*" +numpy = "==2.0.2" requests-mock = "~=1.12.1" [requires] diff --git a/Pipfile.lock b/Pipfile.lock index 2176f28505..3ddc20fb1e 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "0dc79d8074aa684960519ee120a083e4a2c72cad601d4bd136823ea8ff509920" + "sha256": "d00a9f3f9a9b1d310c07da6c628ba0eb2d6c27c88c69b52c982e8b24e677df8a" }, "pipfile-spec": 6, "requires": { @@ -16,12 +16,6 @@ ] }, "default": { - "akhet": { - "hashes": [ - "sha256:fd498432e3012264306b044b6291fd90f7a40c90775c684c8684e0b60cbf07cd" - ], - "version": "==2.0" - }, "boto3": { "hashes": [ "sha256:31ddcdb6f15dace2b68f6a0f11bdb58dd3ae79b8a3ccb174ff811ef0bbf938e0", @@ -189,7 +183,7 @@ "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216", "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.0.0" }, "gatilegrid": { @@ -211,11 +205,12 @@ }, "geojson": { "hashes": [ - "sha256:6e4bb7ace4226a45d9c8c8b1348b3fc43540658359f93c3f7e03efa9f15f658a", - "sha256:ccbd13368dd728f4e4f13ffe6aaf725b6e802c692ba0dde628be475040c534ba" + "sha256:58a7fa40727ea058efc28b0e9ff0099eadf6d0965e04690830208d3ef571adac", + "sha256:68a9771827237adb8c0c71f8527509c8f5bef61733aa434cefc9c9d4f0ebe8f3" ], "index": "pypi", - "version": "==2.5.0" + "markers": "python_version >= '3.7'", + "version": "==3.1.0" }, "greenlet": { "hashes": [ @@ -293,7 +288,7 @@ "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79", "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f" ], - "markers": "python_version >= '3' and platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))", + "markers": "python_version >= '3' and (platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32'))))))", "version": "==3.1.1" }, "hupper": { @@ -322,9 +317,10 @@ }, "lark-parser": { "hashes": [ - "sha256:26215ebb157e6fb2ee74319aa4445b9f3b7e456e26be215ce19fdaaa901c20a4" + "sha256:0eaf30cb5ba787fe404d73a7d6e61df97b21d5a63ac26c5008c78a494373c675", + "sha256:15967db1f1214013dca65b1180745047b9be457d73da224fcda3d9dd4e96a138" ], - "version": "==0.7.8" + "version": "==0.12.0" }, "logging-utilities": { "hashes": [ @@ -337,11 +333,11 @@ }, "mako": { "hashes": [ - "sha256:20405b1232e0759f0e7d87b01f6bb94fce0761747f1cb876ecf90bd512d0b639", - "sha256:d18f990ad57f800ce8e76cbfb0b74afe471c293517e9f5003ace6dad5aa72c36" + "sha256:42f48953c7eb91332040ff567eb7eea69b22e7a4affbc5ba8e845e8f730f6627", + "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8" ], "markers": "python_version >= '3.8'", - "version": "==1.3.7" + "version": "==1.3.8" }, "markupsafe": { "hashes": [ @@ -419,6 +415,58 @@ "markers": "python_version >= '3.8'", "version": "==2.8.8" }, + "numpy": { + "hashes": [ + "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", + "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", + "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", + "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", + "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", + "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", + "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", + "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", + "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", + "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", + "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", + "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", + "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", + "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", + "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", + "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", + "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", + "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", + "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", + "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", + "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", + "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", + "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", + "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", + "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", + "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", + "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", + "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", + "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", + "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", + "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", + "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", + "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", + "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", + "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", + "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", + "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", + "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", + "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", + "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", + "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", + "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", + "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", + "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", + "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd" + ], + "index": "pypi", + "markers": "python_version >= '3.9'", + "version": "==2.0.2" + }, "packaging": { "hashes": [ "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", @@ -705,7 +753,7 @@ "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" ], "index": "pypi", - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.9.0.post0" }, "pytz": { @@ -897,51 +945,51 @@ }, "shapely": { "hashes": [ - "sha256:02dd5d7dc6e46515d88874134dc8fcdc65826bca93c3eecee59d1910c42c1b17", - "sha256:0b4ee3132ee90f07d63db3aea316c4c065ed7a26231458dda0874414a09d6ba3", - "sha256:0d885cb0cf670c1c834df3f371de8726efdf711f18e2a75da5cfa82843a7ab65", - "sha256:147066da0be41b147a61f8eb805dea3b13709dbc873a431ccd7306e24d712bc0", - "sha256:21776184516a16bf82a0c3d6d6a312b3cd15a4cabafc61ee01cf2714a82e8396", - "sha256:2e0a8c2e55f1be1312b51c92b06462ea89e6bb703fab4b114e7a846d941cfc40", - "sha256:2fd15397638df291c427a53d641d3e6fd60458128029c8c4f487190473a69a91", - "sha256:3480657460e939f45a7d359ef0e172a081f249312557fe9aa78c4fd3a362d993", - "sha256:370b574c78dc5af3a198a6da5d9b3d7c04654bd2ef7e80e80a3a0992dfb2d9cd", - "sha256:38f0fbbcb8ca20c16451c966c1f527cc43968e121c8a048af19ed3e339a921cd", - "sha256:4728666fff8cccc65a07448cae72c75a8773fea061c3f4f139c44adc429b18c3", - "sha256:48dcfffb9e225c0481120f4bdf622131c8c95f342b00b158cdbe220edbbe20b6", - "sha256:4b47bb6f9369e8bf3e6dbd33e6a25a47ee02b2874792a529fe04a49bf8bc0df6", - "sha256:532a55ee2a6c52d23d6f7d1567c8f0473635f3b270262c44e1b0c88096827e22", - "sha256:5d7f85c2d35d39ff53c9216bc76b7641c52326f7e09aaad1789a3611a0f812f2", - "sha256:65b21243d8f6bcd421210daf1fabb9de84de2c04353c5b026173b88d17c1a581", - "sha256:66bdac74fbd1d3458fa787191a90fa0ae610f09e2a5ec398c36f968cc0ed743f", - "sha256:6d388c0c1bd878ed1af4583695690aa52234b02ed35f93a1c8486ff52a555838", - "sha256:6fe855e7d45685926b6ba00aaeb5eba5862611f7465775dacd527e081a8ced6d", - "sha256:753ed0e21ab108bd4282405b9b659f2e985e8502b1a72b978eaa51d3496dee19", - "sha256:783bad5f48e2708a0e2f695a34ed382e4162c795cb2f0368b39528ac1d6db7ed", - "sha256:78fb9d929b8ee15cfd424b6c10879ce1907f24e05fb83310fc47d2cd27088e40", - "sha256:84010db15eb364a52b74ea8804ef92a6a930dfc1981d17a369444b6ddec66efd", - "sha256:89164e7a9776a19e29f01369a98529321994e2e4d852b92b7e01d4d9804c55bf", - "sha256:8d086591f744be483b34628b391d741e46f2645fe37594319e0a673cc2c26bcf", - "sha256:8e59817b0fe63d34baedaabba8c393c0090f061917d18fc0bcc2f621937a8f73", - "sha256:99a2f0da0109e81e0c101a2b4cd8412f73f5f299e7b5b2deaf64cd2a100ac118", - "sha256:99ab0ddc05e44acabdbe657c599fdb9b2d82e86c5493bdae216c0c4018a82dee", - "sha256:a23ef3882d6aa203dd3623a3d55d698f59bfbd9f8a3bfed52c2da05a7f0f8640", - "sha256:a354199219c8d836f280b88f2c5102c81bb044ccea45bd361dc38a79f3873714", - "sha256:a74631e511153366c6dbe3229fa93f877e3c87ea8369cd00f1d38c76b0ed9ace", - "sha256:ab38f7b5196ace05725e407cb8cab9ff66edb8e6f7bb36a398e8f73f52a7aaa2", - "sha256:adcf8a11b98af9375e32bff91de184f33a68dc48b9cb9becad4f132fa25cfa3c", - "sha256:b65f5d530ba91e49ffc7c589255e878d2506a8b96ffce69d3b7c4500a9a9eaf8", - "sha256:be9423d5a3577ac2e92c7e758bd8a2b205f5e51a012177a590bc46fc51eb4834", - "sha256:c2822111ddc5bcfb116e6c663e403579d0fe3f147d2a97426011a191c43a7458", - "sha256:c6a9a4a31cd6e86d0fbe8473ceed83d4fe760b19d949fb557ef668defafea0f6", - "sha256:d048f93e42ba578b82758c15d8ae037d08e69d91d9872bca5a1895b118f4e2b0", - "sha256:d8a2b2a65fa7f97115c1cd989fe9d6f39281ca2a8a014f1d4904c1a6e34d7f25", - "sha256:e9c30b311de2513555ab02464ebb76115d242842b29c412f5a9aa0cac57be9f6", - "sha256:ec14ceca36f67cb48b34d02d7f65a9acae15cd72b48e303531893ba4a960f3ea", - "sha256:ef3be705c3eac282a28058e6c6e5503419b250f482320df2172abcbea642c831" + "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a", + "sha256:1bbc783529a21f2bd50c79cef90761f72d41c45622b3e57acf78d984c50a5d13", + "sha256:2423f6c0903ebe5df6d32e0066b3d94029aab18425ad4b07bf98c3972a6e25a1", + "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4", + "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b", + "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde", + "sha256:2b542d7f1dbb89192d3512c52b679c822ba916f93479fa5d4fc2fe4fa0b3c9e8", + "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805", + "sha256:2de00c3bfa80d6750832bde1d9487e302a6dd21d90cb2f210515cefdb616e5f5", + "sha256:392f66f458a0a2c706254f473290418236e52aa4c9b476a072539d63a2460595", + "sha256:3a82d58a1134d5e975f19268710e53bddd9c473743356c90d97ce04b73e101ee", + "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e", + "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013", + "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f", + "sha256:44246d30124a4f1a638a7d5419149959532b99dfa25b54393512e6acc9c211ac", + "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8", + "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e", + "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48", + "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7", + "sha256:7060566bc4888b0c8ed14b5d57df8a0ead5c28f9b69fb6bed4476df31c51b0af", + "sha256:81d9dfe155f371f78c8d895a7b7f323bb241fb148d848a2bf2244f79213123fe", + "sha256:837d395fac58aa01aa544495b97940995211e3e25f9aaf87bc3ba5b3a8cd1ac7", + "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3", + "sha256:8b3b818c4407eaa0b4cb376fd2305e20ff6df757bf1356651589eadc14aab41b", + "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726", + "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", + "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2", + "sha256:b02154b3e9d076a29a8513dffcb80f047a5ea63c897c0cd3d3679f29363cf7e5", + "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e", + "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0", + "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b", + "sha256:c6d88ade96bf02f6bfd667ddd3626913098e243e419a0325ebef2bbd481d1eb6", + "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0", + "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2", + "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d", + "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b", + "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381", + "sha256:eba5bae271d523c938274c61658ebc34de6c4b33fdf43ef7e938b5776388c1be", + "sha256:ed5867e598a9e8ac3291da6cc9baa62ca25706eea186117034e8ec0ea4355653", + "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855", + "sha256:fa7468e4f5b92049c0f36d63c3e309f85f2775752e076378e36c6387245c5462", + "sha256:fbb7bf02a7542dba55129062570211cfb0defa05386409b3e306c39612e7fbcc" ], - "markers": "python_version >= '3.6'", - "version": "==1.8.5.post1" + "markers": "python_version >= '3.7'", + "version": "==2.0.6" }, "simplejson": { "hashes": [ @@ -1057,7 +1105,7 @@ "sha256:ff7bc1bbdaa3e487c9469128bf39408e91f5573901cb852e03af378d3582c52d" ], "index": "pypi", - "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2'", "version": "==3.19.3" }, "six": { @@ -1065,7 +1113,7 @@ "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.17.0" }, "sqlalchemy": { @@ -1163,7 +1211,7 @@ "sha256:45e34c58ed0c7e2ecd238ffd34432487ff13d9ad459ddfd77895e67abba7c1f9", "sha256:ad6078e2edb6766d1334ec3dee072ac6a7f95b1e32ce10def8ff7f0f02d56589" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.8.9" }, "zope.deprecation": { @@ -1408,7 +1456,7 @@ "sha256:ff37757e068ae606659c28c3bd0d923f9d29a85de79bf25b2b34b148473b5025" ], "index": "pypi", - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' and python_version < '4'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2' and python_version < '4'", "version": "==4.5.4" }, "docutils": { @@ -1951,28 +1999,28 @@ }, "waitress": { "hashes": [ - "sha256:7500c9625927c8ec60f54377d590f67b30c8e70ef4b8894214ac6e4cad233d2a", - "sha256:780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba" + "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f", + "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e" ], "index": "pypi", - "markers": "python_full_version >= '3.7.0'", - "version": "==2.1.2" + "markers": "python_full_version >= '3.9.0'", + "version": "==3.0.2" }, "webob": { "hashes": [ "sha256:45e34c58ed0c7e2ecd238ffd34432487ff13d9ad459ddfd77895e67abba7c1f9", "sha256:ad6078e2edb6766d1334ec3dee072ac6a7f95b1e32ce10def8ff7f0f02d56589" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.8.9" }, "webtest": { "hashes": [ - "sha256:493b5c802f8948a65b5e3a1ad5b2524ee5e1ab60cd713d9a3da3b8da082c06fe", - "sha256:b3bc75d020d0576ee93a5f149666045e58fe2400ea5f0c214d7430d7d213d0d0" + "sha256:0b2de681c16f57b31da5cce6e94ff03cdc77bd86c37a57ba0ee27fed8e065ceb", + "sha256:799846e169d15e0c1233ab4ab00ee4de59a5d964407d6f2945d89249328dbbdb" ], "markers": "python_version >= '3.7'", - "version": "==3.0.1" + "version": "==3.0.2" }, "zipp": { "hashes": [ diff --git a/README.md b/README.md index 46808e9b33..50dc5573a1 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,14 @@ make setup Build the Pylons settings files and run the local `waitress` server ```bash -summon make serve +summon -p ssm make serve ``` You may want to customize the variables. Copy the file `.env.default` as `.ven.mine`, change the variables you want and use them with ```bash -summon make ENV_FILE=.env.mine serve +summon -p ssm make ENV_FILE=.env.mine serve ``` :book: You need some external ressource to run the service, see [External ressources dependencies](#external-ressources-dependencies) @@ -71,7 +71,7 @@ You can use the ssh port forwarding feature to have access to `pg-geodata-replic ssh ssh0a.prod.bgdi.ch -L 5432:pg-geodata-replica.bgdi.ch:5432 ``` -Then set the `DBHOST` environment variable to `localhost` (you can do this in your own environment file e.g. `.env.mine` and run the make file as follow: `summon make ENV_FILE=.env.mine serve`) +Then set the `DBHOST` environment variable to `localhost` (you can do this in your own environment file e.g. `.env.mine` and run the make file as follow: `summon -p ssm make ENV_FILE=.env.mine serve`) ### S3 Vector Bucket Access @@ -96,7 +96,7 @@ make dockerbuild ### Docker run locally ```bash -summon make dockerrun +summon -p ssm make dockerrun ``` :book: You need some external ressource to run the service, see [External ressources dependencies](#external-ressources-dependencies) @@ -130,19 +130,19 @@ See [External Ressources Dependencies](#external-ressources-dependencies) for mo To run the tests enter ```bash -summon make test +summon -p ssm make test ``` Or if you use your own environment file ```bash -summon make ENV_FILE=.env.mine test +summon -p ssm make ENV_FILE=.env.mine test ``` **:warning: If you don't have AWS Access you can disable the S3 tests as follow** ```bash -summon make S3_TESTS=0 test +summon -p ssm make S3_TESTS=0 test ``` ## Download WMS image legends diff --git a/apache/wsgi-py3.conf.in b/apache/wsgi-py3.conf.in index 4c5b174b55..ff82d2fb65 100644 --- a/apache/wsgi-py3.conf.in +++ b/apache/wsgi-py3.conf.in @@ -26,6 +26,19 @@ WSGIPassAuthorization On # Redirect no-slash target to slashed version RedirectMatch ^${APACHE_ENTRY_PATH}$ ${APACHE_ENTRY_PATH}/ +# Info +RewriteCond %{HTTP:X-Forwarded-Proto} !https +RewriteRule ^${APACHE_ENTRY_PATH}/static/info\.json https://%{HTTP_HOST}%{REQUEST_URI} [R,L] + +# Info +RewriteRule ^${APACHE_ENTRY_PATH}/info.json ${APACHE_ENTRY_PATH}/static/info.json [PT] + +# Static for cross domain flash/arcgis +RewriteRule ^${APACHE_ENTRY_PATH}/(crossdomain.xml|clientaccesspolicy.xml) ${APACHE_ENTRY_PATH}/static/$1 [PT] + + Header set Content-type "text/x-cross-domain-policy" + + # New style config url (see mf-geoadmin3 #4687) RewriteRule ^${APACHE_ENTRY_PATH}/configs/(de|fr|it|rm|en)/layersConfig\.json ${APACHE_ENTRY_PATH}/rest/services/all/MapServer/layersConfig?lang=$1 [PT] RewriteRule ^${APACHE_ENTRY_PATH}/configs/(de|fr|it|rm|en)/translations\.json ${APACHE_ENTRY_PATH}/rest/services/translations?lang=$1 [PT] @@ -33,6 +46,12 @@ RewriteRule ^${APACHE_ENTRY_PATH}/configs/(de|fr|it|rm|en)/catalog\.(\w+)\.json RewriteRule ^${APACHE_ENTRY_PATH}/configs/(de|fr|it|rm|en)/services\.json ${APACHE_ENTRY_PATH}/rest/services [PT] RewriteRule ^${APACHE_ENTRY_PATH}/configs/services\.json ${APACHE_ENTRY_PATH}/rest/services [PT] +# Robots static files +RewriteRule ^${APACHE_ENTRY_PATH}/robots.txt ${APACHE_ENTRY_PATH}/static/${ROBOTS_FILE} [PT] + + Header set Content-type "text/plain" + + ############ WSGI #################################3 ${LOAD_WSGI_MODULE_DIRECTIVE} diff --git a/chsdi/__init__.py b/chsdi/__init__.py index a7eff37a58..ff0d4cdfac 100644 --- a/chsdi/__init__.py +++ b/chsdi/__init__.py @@ -47,7 +47,6 @@ def main(global_config, **settings): request_method = tuple(settings.get('request_method').replace(' ', '').split(',')) config = Configurator(settings=settings, request_factory=WsgiSchemeAdaptedRequest) config.include('pyramid_mako') - config.include('akhet.static') # wrapper around all views # This is a wrapper function around all views. If OPTIONS is given, an empty string will be returned @@ -111,12 +110,10 @@ def datetime_adapter(obj, request): config.add_route('translations', '/rest/services/translations', request_method=request_method) config.add_route('stationboard', '/stationboard/stops/{id}', request_method=request_method) - config.add_route('faqlist', '/rest/services/{map}/faqlist', request_method=request_method) config.add_route('color', '/color/{r},{g},{b}/{image}', request_method=request_method) # Static route static_max_age = int(settings['static_max_age']) if settings['static_max_age'] else None - config.add_static_route('chsdi', 'static', cache_max_age=static_max_age) # Some views for specific routes config.add_view(route_name='dev', renderer='chsdi:templates/index.mako') diff --git a/chsdi/lib/parser.py b/chsdi/lib/parser.py index c1229aa691..c57178f438 100644 --- a/chsdi/lib/parser.py +++ b/chsdi/lib/parser.py @@ -19,7 +19,7 @@ expression: WORD is_not_null | WORD IS_NOT BOOLEAN | WORD operators SIGNED_NUMBER - | WORD operators_likes ESCAPED_QUOTED_STRING + | WORD operators_likes ESCAPED_QUOTED_STRING operators: OPERATORS -> ops operators_likes: OPERATORS | LIKES @@ -121,7 +121,7 @@ def operators_likes(self, s): def BOOLEAN(self, s): # log.debug(u'boolean: {}'.format(str(s))) - return "true" == str(s[0]).lower() + return "true" if s.lower() == "true" else "false" def IS_NOT(self, s): - return str(s[0]).lower() + return s.lower() diff --git a/chsdi/models/vector/dritte.py b/chsdi/models/vector/dritte.py index 4fb2cc3eb5..69502196f8 100644 --- a/chsdi/models/vector/dritte.py +++ b/chsdi/models/vector/dritte.py @@ -145,35 +145,15 @@ class AsylPlanning: class AsylPlanningAnhoerung(Base, AsylPlanning, Vector): __tablename__ = 'sachplan_asyl_plmeasures_anhorung' __bodId__ = 'ch.sem.sachplan-asyl_anhoerung' - __minscale__ = 20005 - __maxscale__ = 500005 - - -class AsylPlanningRasterAnhoerung(Base, AsylPlanning, Vector): - __tablename__ = 'sachplan_asyl_plmeasures_r_anhorung' - __bodId__ = 'ch.sem.sachplan-asyl_anhoerung' - __maxscale__ = 20005 - __minscale__ = 1 class AsylPlanningKraft(Base, AsylPlanning, Vector): __tablename__ = 'sachplan_asyl_plmeasures_kraft' __bodId__ = 'ch.sem.sachplan-asyl_kraft' - __minscale__ = 20005 - __maxscale__ = 500005 - - -class AsylPlanningRasterKraft(Base, AsylPlanning, Vector): - __tablename__ = 'sachplan_asyl_plmeasures_r_kraft' - __bodId__ = 'ch.sem.sachplan-asyl_kraft' - __maxscale__ = 20005 - __minscale__ = 1 register('ch.sem.sachplan-asyl_anhoerung', AsylPlanningAnhoerung) -register('ch.sem.sachplan-asyl_anhoerung', AsylPlanningRasterAnhoerung) register('ch.sem.sachplan-asyl_kraft', AsylPlanningKraft) -register('ch.sem.sachplan-asyl_kraft', AsylPlanningRasterKraft) class ArmasuisseNaturLandschaftArmee(Base, Vector): diff --git a/chsdi/models/vector/evd.py b/chsdi/models/vector/evd.py index 3869c9e4a3..3b7ab7860b 100644 --- a/chsdi/models/vector/evd.py +++ b/chsdi/models/vector/evd.py @@ -237,7 +237,7 @@ class SachplanCernAnhoerungFac: __table_args__ = ({'schema': 'sbfi', 'autoload': False}) __bodId__ = 'ch.sbfi.sachplan-cern_anhoerung' __label__ = 'objname_de' - id = Column('bgdi_id', Integer, primary_key=True) + id = Column('stabil_id', Unicode, primary_key=True) objname_de = Column('objname_de', Unicode) objname_fr = Column('objname_fr', Unicode) objname_it = Column('objname_it', Unicode) @@ -262,25 +262,23 @@ class SachplanCernAnhoerungFac: class SachplanCernAnhoerungFacPnt(Base, SachplanCernAnhoerungFac, Vector): __tablename__ = 'sachplan_cern_anhoerung_fac_pnt' - __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_pnt.mako' + __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_pnt.mako' register('ch.sbfi.sachplan-cern_anhoerung', SachplanCernAnhoerungFacPnt) class SachplanCernAnhoerungFacLine(Base, SachplanCernAnhoerungFac, Vector): __tablename__ = 'sachplan_cern_anhoerung_fac_line' - __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_line.mako' + __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_line.mako' register('ch.sbfi.sachplan-cern_anhoerung', SachplanCernAnhoerungFacLine) -class SachplanCernAnhoerungPlmPoly(Base, Vector): - __tablename__ = 'sachplan_cern_anhoerung_plm_poly' +class SachplanCernAnhoerungPlm: __table_args__ = ({'schema': 'sbfi', 'autoload': False}) __bodId__ = 'ch.sbfi.sachplan-cern_anhoerung' - __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_poly.mako' __label__ = 'plname_de' - id = Column('bgdi_id', Integer, primary_key=True) + id = Column('stabil_id', Unicode, primary_key=True) plname_de = Column('plname_de', Unicode) plname_fr = Column('plname_fr', Unicode) plname_it = Column('plname_it', Unicode) @@ -306,6 +304,11 @@ class SachplanCernAnhoerungPlmPoly(Base, Vector): doc_web_it = Column('doc_web_it', Unicode) the_geom = Column(Geometry2D) + +class SachplanCernAnhoerungPlmPoly(Base, SachplanCernAnhoerungPlm, Vector): + __tablename__ = 'sachplan_cern_anhoerung_plm_poly' + __template__ = 'templates/htmlpopup/sbfi_sachplan_cern_anhoerung_plm_poly.mako' + register('ch.sbfi.sachplan-cern_anhoerung', SachplanCernAnhoerungPlmPoly) diff --git a/chsdi/models/vector/oereb/uvek.py b/chsdi/models/vector/oereb/uvek.py index 1405777e02..21a31682c0 100644 --- a/chsdi/models/vector/oereb/uvek.py +++ b/chsdi/models/vector/oereb/uvek.py @@ -18,14 +18,6 @@ class OerebBase: # ASTRA -class ProjektierungszonenNationalstrassenOereb(Base, OerebBase, Vector): - __tablename__ = 'projektierungszonen_nationalstrassen_oereb' - __table_args__ = ({'schema': 'astra', 'autoload': False}) - __bodId__ = 'ch.astra.projektierungszonen-nationalstrassen.oereb' - -register_oereb(ProjektierungszonenNationalstrassenOereb.__bodId__, ProjektierungszonenNationalstrassenOereb) - - class ProjektierungszonenNationalstrassenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'projektierungszonen_nationalstrassen_v2_0_oereb' __table_args__ = ({'schema': 'astra', 'autoload': False}) @@ -34,14 +26,6 @@ class ProjektierungszonenNationalstrassenV20Oereb(Base, OerebBase, Vector): register_oereb(ProjektierungszonenNationalstrassenV20Oereb.__bodId__, ProjektierungszonenNationalstrassenV20Oereb) -class BaulinienNationalstrassenOereb(Base, OerebBase, Vector): - __tablename__ = 'baulinien_nationalstrassen_oereb' - __table_args__ = ({'schema': 'astra', 'autoload': False}) - __bodId__ = 'ch.astra.baulinien-nationalstrassen.oereb' - -register_oereb(BaulinienNationalstrassenOereb.__bodId__, BaulinienNationalstrassenOereb) - - class BaulinienNationalstrassenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'baulinien_nationalstrassen_v2_0_oereb' __table_args__ = ({'schema': 'astra', 'autoload': False}) @@ -75,14 +59,6 @@ class ProjektierungStarkstromV20Oereb(Base, OerebBase, Vector): # BAV -class KatasterBelastetenStandorteOevOereb(Base, OerebBase, Vector): - __tablename__ = 'kataster_belasteter_standorte_oev_oereb' - __table_args__ = ({'schema': 'bav', 'autoload': False}) - __bodId__ = 'ch.bav.kataster-belasteter-standorte-oev.oereb' - -register_oereb(KatasterBelastetenStandorteOevOereb.__bodId__, KatasterBelastetenStandorteOevOereb) - - class KatasterBelastetenStandorteOevV20Oereb(Base, OerebBase, Vector): __tablename__ = 'kataster_belasteter_standorte_oev_v2_0_oereb' __table_args__ = ({'schema': 'bav', 'autoload': False}) @@ -91,14 +67,6 @@ class KatasterBelastetenStandorteOevV20Oereb(Base, OerebBase, Vector): register_oereb(KatasterBelastetenStandorteOevV20Oereb.__bodId__, KatasterBelastetenStandorteOevV20Oereb) -class ProjektierungszonenEisenbahnanlagenOereb(Base, OerebBase, Vector): - __tablename__ = 'projektierungszonen_eisenbahnanlagen_oereb' - __table_args__ = ({'schema': 'bav', 'autoload': False}) - __bodId__ = 'ch.bav.projektierungszonen-eisenbahnanlagen.oereb' - -register_oereb(ProjektierungszonenEisenbahnanlagenOereb.__bodId__, ProjektierungszonenEisenbahnanlagenOereb) - - class ProjektierungszonenEisenbahnanlagenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'projektierungszonen_eisenbahnanlagen_v2_0_oereb' __table_args__ = ({'schema': 'bav', 'autoload': False}) @@ -107,14 +75,6 @@ class ProjektierungszonenEisenbahnanlagenV20Oereb(Base, OerebBase, Vector): register_oereb(ProjektierungszonenEisenbahnanlagenV20Oereb.__bodId__, ProjektierungszonenEisenbahnanlagenV20Oereb) -class BaulinienEisenbahnanlagenOereb(Base, OerebBase, Vector): - __tablename__ = 'baulinien_eisenbahnanlagen_oereb' - __table_args__ = ({'schema': 'bav', 'autoload': False}) - __bodId__ = 'ch.bav.baulinien-eisenbahnanlagen.oereb' - -register_oereb(BaulinienEisenbahnanlagenOereb.__bodId__, BaulinienEisenbahnanlagenOereb) - - class BaulinienEisenbahnanlagenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'baulinien_eisenbahnanlagen_v2_0_oereb' __table_args__ = ({'schema': 'bav', 'autoload': False}) @@ -124,14 +84,6 @@ class BaulinienEisenbahnanlagenV20Oereb(Base, OerebBase, Vector): # BAZL -class ProjektierungszonenOereb(Base, OerebBase, Vector): - __tablename__ = 'projektierungszonen_oereb' - __table_args__ = ({'schema': 'bazl', 'autoload': False}) - __bodId__ = 'ch.bazl.projektierungszonen-flughafenanlagen.oereb' - -register_oereb(ProjektierungszonenOereb.__bodId__, ProjektierungszonenOereb) - - class ProjektierungszonenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'projektierungszonen_v2_0_oereb' __table_args__ = ({'schema': 'bazl', 'autoload': False}) @@ -140,14 +92,6 @@ class ProjektierungszonenV20Oereb(Base, OerebBase, Vector): register_oereb(ProjektierungszonenV20Oereb.__bodId__, ProjektierungszonenV20Oereb) -class SichereitszonenOereb(Base, OerebBase, Vector): - __tablename__ = 'sichereitszonen_oereb' - __table_args__ = ({'schema': 'bazl', 'autoload': False}) - __bodId__ = 'ch.bazl.sicherheitszonenplan.oereb' - -register_oereb(SichereitszonenOereb.__bodId__, SichereitszonenOereb) - - class SichereitszonenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'sichereitszonen_v2_0_oereb' __table_args__ = ({'schema': 'bazl', 'autoload': False}) @@ -164,14 +108,6 @@ class SichereitszonenV20Oereb(Base, OerebBase, Vector): # register_oereb(SichereitszonenAenderungV20Oereb.__bodId__, SichereitszonenAenderungV20Oereb) -class KatasterBelastetenStandorteZivflplOereb(Base, OerebBase, Vector): - __tablename__ = 'kataster_belasteter_standorte_zivflpl_oereb' - __table_args__ = ({'schema': 'bazl', 'autoload': False}) - __bodId__ = 'ch.bazl.kataster-belasteter-standorte-zivilflugplaetze.oereb' - -register_oereb(KatasterBelastetenStandorteZivflplOereb.__bodId__, KatasterBelastetenStandorteZivflplOereb) - - class KatasterBelastetenStandorteZivflplV20Oereb(Base, OerebBase, Vector): __tablename__ = 'kataster_belasteter_standorte_zivflpl_v2_0_oereb' __table_args__ = ({'schema': 'bazl', 'autoload': False}) @@ -180,14 +116,6 @@ class KatasterBelastetenStandorteZivflplV20Oereb(Base, OerebBase, Vector): register_oereb(KatasterBelastetenStandorteZivflplV20Oereb.__bodId__, KatasterBelastetenStandorteZivflplV20Oereb) -class BaulinienFlughafenanlagenOereb(Base, OerebBase, Vector): - __tablename__ = 'baulinien_flughafenanlagen_oereb' - __table_args__ = ({'schema': 'bazl', 'autoload': False}) - __bodId__ = 'ch.bazl.baulinien-flughafenanlagen.oereb' - -register_oereb(BaulinienFlughafenanlagenOereb.__bodId__, BaulinienFlughafenanlagenOereb) - - class BaulinienFlughafenanlagenV20Oereb(Base, OerebBase, Vector): __tablename__ = 'baulinien_flughafenanlagen_v2_0_oereb' __table_args__ = ({'schema': 'bazl', 'autoload': False}) diff --git a/chsdi/models/vector/stopo.py b/chsdi/models/vector/stopo.py index 692d502a7d..2cfac182a1 100644 --- a/chsdi/models/vector/stopo.py +++ b/chsdi/models/vector/stopo.py @@ -919,7 +919,8 @@ class GridstandSwisssurface3d(Base, Vector): __template__ = 'templates/htmlpopup/swisssurface3d.mako' __label__ = 'id' id = Column('tilekey', Unicode, primary_key=True) - temporalkey = Column('temporalkey', Integer) + gpstime_min = Column('gpstime_min', Integer) + gpstime_max = Column('gpstime_max', Integer) the_geom = Column(Geometry2D) register('ch.swisstopo.swisssurface3d.metadata', GridstandSwisssurface3d) @@ -1218,62 +1219,6 @@ class Gk500LithologieHauptgruppen(Base, Vector): register('ch.swisstopo.geologie-geotechnik-gk500-lithologie_hauptgruppen', Gk500LithologieHauptgruppen) -class GeologieGeotechnikSteinbrueche1915(Base, Vector): - __tablename__ = 'geotechnik_steinbrueche_1915' - __table_args__ = ({'schema': 'geol', 'autoload': False}) - __template__ = 'templates/htmlpopup/steinbrueche_1915.mako' - __bodId__ = 'ch.swisstopo.geologie-geotechnik-steinbrueche_1915' - __label__ = 'gesteinsgr' - id = Column('id', Integer, primary_key=True) - gesteinsgr = Column('gesteinsgr', Unicode) - gestein = Column('gestein', Unicode) - the_geom = Column(Geometry2D) - -register('ch.swisstopo.geologie-geotechnik-steinbrueche_1915', GeologieGeotechnikSteinbrueche1915) - - -class GeologieGeotechnikSteinbrueche1965(Base, Vector): - __tablename__ = 'geotechnik_steinbrueche_1965' - __table_args__ = ({'schema': 'geol', 'autoload': False}) - __template__ = 'templates/htmlpopup/steinbrueche_1965.mako' - __bodId__ = 'ch.swisstopo.geologie-geotechnik-steinbrueche_1965' - __label__ = 'gesteinsgr' - id = Column('id', Integer, primary_key=True) - gesteinsgr = Column('gesteinsgr', Unicode) - gestein = Column('gestein', Unicode) - the_geom = Column(Geometry2D) - -register('ch.swisstopo.geologie-geotechnik-steinbrueche_1965', GeologieGeotechnikSteinbrueche1965) - - -class GeologieGeotechnikSteinbrueche1980(Base, Vector): - __tablename__ = 'geotechnik_steinbrueche_1980' - __table_args__ = ({'schema': 'geol', 'autoload': False}) - __template__ = 'templates/htmlpopup/steinbrueche_1980.mako' - __bodId__ = 'ch.swisstopo.geologie-geotechnik-steinbrueche_1980' - __label__ = 'gesteinsgr' - id = Column('id', Integer, primary_key=True) - gesteinsgr = Column('gesteinsgr', Unicode) - gestein = Column('gestein', Unicode) - the_geom = Column(Geometry2D) - -register('ch.swisstopo.geologie-geotechnik-steinbrueche_1980', GeologieGeotechnikSteinbrueche1980) - - -class GeologieGeotechnikSteinbrueche1995(Base, Vector): - __tablename__ = 'geotechnik_steinbrueche_1995' - __table_args__ = ({'schema': 'geol', 'autoload': False}) - __template__ = 'templates/htmlpopup/steinbrueche_1995.mako' - __bodId__ = 'ch.swisstopo.geologie-geotechnik-steinbrueche_1995' - __label__ = 'gesteinsgr' - id = Column('id', Integer, primary_key=True) - gesteinsgr = Column('gesteinsgr', Unicode) - gestein = Column('gestein', Unicode) - the_geom = Column(Geometry2D) - -register('ch.swisstopo.geologie-geotechnik-steinbrueche_1995', GeologieGeotechnikSteinbrueche1995) - - class GeologieHydroKarteGrundwasservorkommen(Base, Vector): __tablename__ = 'grundwasservorkommen' __table_args__ = ({'schema': 'geol', 'autoload': False}) diff --git a/chsdi/models/vector/uvek.py b/chsdi/models/vector/uvek.py index 2677371189..160895b17f 100644 --- a/chsdi/models/vector/uvek.py +++ b/chsdi/models/vector/uvek.py @@ -2499,8 +2499,6 @@ class SisPlanningA(Base, Vector): doc_web = Column('doc_web', Unicode) doc_title = Column('doc_title', Unicode) bgdi_created = Column('bgdi_created', Unicode) - __minscale__ = 20005 - __maxscale__ = 500005 the_geom = Column(Geometry2D) register('ch.bav.sachplan-infrastruktur-schiene_anhorung', SisPlanningA) @@ -2531,44 +2529,6 @@ class SisAngaben(Base, Vector): register('ch.bav.sachplan-infrastruktur-schiene_ausgangslage', SisAngaben) -class SisPlanningRasterA(Base, Vector): - __tablename__ = 'sis_pl_r_anhorung' - __table_args__ = ({'schema': 'bav', 'autoload': False}) - __template__ = 'templates/htmlpopup/sis_planning.mako' - __bodId__ = 'ch.bav.sachplan-infrastruktur-schiene_anhorung' - # Translatable labels in fr, it - __label__ = 'facname_de' - id = Column('stabil_id', Unicode, primary_key=True) - facname_de = Column('facname_de', Unicode) - facname_fr = Column('facname_fr', Unicode) - facname_it = Column('facname_it', Unicode) - plname_de = Column('plname_de', Unicode) - plname_fr = Column('plname_fr', Unicode) - plname_it = Column('plname_it', Unicode) - meastype_text_de = Column('meastype_text_de', Unicode) - meastype_text_fr = Column('meastype_text_fr', Unicode) - meastype_text_it = Column('meastype_text_it', Unicode) - coordlevel_text_de = Column('coordlevel_text_de', Unicode) - coordlevel_text_fr = Column('coordlevel_text_fr', Unicode) - coordlevel_text_it = Column('coordlevel_text_it', Unicode) - plstatus_text_de = Column('plstatus_text_de', Unicode) - plstatus_text_fr = Column('plstatus_text_fr', Unicode) - plstatus_text_it = Column('plstatus_text_it', Unicode) - validfrom = Column('validfrom', Unicode) - validuntil = Column('validuntil', Unicode) - description_de = Column('description_de', Unicode) - description_fr = Column('description_fr', Unicode) - description_it = Column('description_it', Unicode) - doc_web = Column('doc_web', Unicode) - doc_title = Column('doc_title', Unicode) - bgdi_created = Column('bgdi_created', Unicode) - __maxscale__ = 20005 - __minscale__ = 1 - the_geom = Column(Geometry2D) - -register('ch.bav.sachplan-infrastruktur-schiene_anhorung', SisPlanningRasterA) - - class SisFacilitiesK(Base, Vector): __tablename__ = 'sis_fac_kraft' __table_args__ = ({'schema': 'bav', 'autoload': False}) @@ -2631,51 +2591,11 @@ class SisPlanningK(Base, Vector): doc_web = Column('doc_web', Unicode) doc_title = Column('doc_title', Unicode) bgdi_created = Column('bgdi_created', Unicode) - __minscale__ = 20005 - __maxscale__ = 500005 the_geom = Column(Geometry2D) register('ch.bav.sachplan-infrastruktur-schiene_kraft', SisPlanningK) -class SisPlanningRasterK(Base, Vector): - __tablename__ = 'sis_pl_r_kraft' - __table_args__ = ({'schema': 'bav', 'autoload': False}) - __template__ = 'templates/htmlpopup/sis_planning.mako' - __bodId__ = 'ch.bav.sachplan-infrastruktur-schiene_kraft' - # Translatable labels in fr, it - __label__ = 'facname_de' - id = Column('stabil_id', Unicode, primary_key=True) - facname_de = Column('facname_de', Unicode) - facname_fr = Column('facname_fr', Unicode) - facname_it = Column('facname_it', Unicode) - plname_de = Column('plname_de', Unicode) - plname_fr = Column('plname_fr', Unicode) - plname_it = Column('plname_it', Unicode) - meastype_text_de = Column('meastype_text_de', Unicode) - meastype_text_fr = Column('meastype_text_fr', Unicode) - meastype_text_it = Column('meastype_text_it', Unicode) - coordlevel_text_de = Column('coordlevel_text_de', Unicode) - coordlevel_text_fr = Column('coordlevel_text_fr', Unicode) - coordlevel_text_it = Column('coordlevel_text_it', Unicode) - plstatus_text_de = Column('plstatus_text_de', Unicode) - plstatus_text_fr = Column('plstatus_text_fr', Unicode) - plstatus_text_it = Column('plstatus_text_it', Unicode) - validfrom = Column('validfrom', Unicode) - validuntil = Column('validuntil', Unicode) - description_de = Column('description_de', Unicode) - description_fr = Column('description_fr', Unicode) - description_it = Column('description_it', Unicode) - doc_web = Column('doc_web', Unicode) - doc_title = Column('doc_title', Unicode) - bgdi_created = Column('bgdi_created', Unicode) - __maxscale__ = 20005 - __minscale__ = 1 - the_geom = Column(Geometry2D) - -register('ch.bav.sachplan-infrastruktur-schiene_kraft', SisPlanningRasterK) - - class SugBaseClass: __table_args__ = ({'schema': 'bav', 'autoload': False}) __label__ = 'facname_de' diff --git a/chsdi/response_callbacks.py b/chsdi/response_callbacks.py index 7695409b89..bdd03e7fcc 100644 --- a/chsdi/response_callbacks.py +++ b/chsdi/response_callbacks.py @@ -24,9 +24,3 @@ def add_cors_header(request, response): response.headers['Access-Control-Allow-Origin'] = "*" response.headers['Access-Control-Allow-Methods'] = request.registry.settings['request_method'] response.headers['Access-Control-Allow-Headers'] = "*" - - -def add_cross_domain_policy(request, response): - # Check if the request is a cross domain policy request - if request.path in ['/crossdomain.xml', '/clientaccesspolicy.xml']: - response.headers['Content-Type'] = 'text/x-cross-domain-policy' diff --git a/chsdi/static/doc/source/api/faq/index.rst b/chsdi/static/doc/source/api/faq/index.rst index 1909b6301b..279d28ff10 100755 --- a/chsdi/static/doc/source/api/faq/index.rst +++ b/chsdi/static/doc/source/api/faq/index.rst @@ -77,34 +77,60 @@ The following list contains all the free accessible layers: .. raw:: html - + - - + + .. _querybale_layers: diff --git a/chsdi/static/doc/source/releasenotes/index.rst b/chsdi/static/doc/source/releasenotes/index.rst index 09e122a830..bceb012b9e 100644 --- a/chsdi/static/doc/source/releasenotes/index.rst +++ b/chsdi/static/doc/source/releasenotes/index.rst @@ -14,6 +14,101 @@ Release Notes

RSS Feeds

+ +.. _releasenotes_20241218: + +Release 20241218 - Wednesday, December 18th 2024 +------------------------------------------------ + +API & applications +****************** + +`API `__ +''''''''''''''''''''''''''''' + +- Bug fixes +- Announcements: + - the object ID values of the layer *ch.vbs.schiessanzeigen* will change for all objects due to geometrical changes in the source data with one of the next releases in 2025. Existing permalinks to objects may not work anymore and will have to be replaced by the new object id’s (chsdi fields featureId and id). In addition there will be a new attribute bezeichnung_ort on the dataset. The other existing attributes will stay + - decommission of various vectortile styles and datasets by January 2025. Details `read here `__ + - the layer *ch.bakom.notruf-112_satellit* will be decommissioned with the release of February 5th 2025 + - the fuzzy search behaviour of swisssearch will be changed. the new quorum operator will be used for the fuzzy search. this operator adds an additional fuzziness on the whole search string. the fuzzy search will therefore return more results than before when searching for multiple keywords. + + +- `Full changelog `__ + +Geodata +******* + ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| New | `Residential areas according to AuLaV `__ (ch.bazl.wohngebiete-aulav) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Municipal boundaries `__ (ch.swisstopo.swissboundaries3d-gemeinde-flaeche.fill) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `District boundaries `__ (ch.swisstopo.swissboundaries3d-bezirk-flaeche.fill) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Cantonal boundaries `__ (ch.swisstopo.swissboundaries3d-kanton-flaeche.fill) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `National boundaries `__ (ch.swisstopo.swissboundaries3d-land-flaeche.fill) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `SIL consultation `__ (ch.bazl.sachplan-infrastruktur-luftfahrt_anhorung) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `SP Aviation infrastructure `__ (ch.bazl.sachplan-infrastruktur-luftfahrt_kraft) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Wells > 500m `__ (ch.swisstopo.geologie-bohrungen_tiefer_500) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Emergency calls by comune `__ (ch.bakom.notruf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `112 Fixed network `__ (ch.bakom.notruf-112_festnetz) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `112 Mobile network `__ (ch.bakom.notruf-112_mobilnetz) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `112 Satellite network `__ (ch.bakom.notruf-112_satellit) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `118 Fixed network `__ (ch.bakom.notruf-118_festnetz) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `118 Mobile network `__ (ch.bakom.notruf-118_mobilnetz) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Spitallandeplätze `__ (ch.bazl.spitallandeplaetze) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Groundwater level/spring discharge `__ (ch.bafu.hydroweb-messstationen_grundwasserzustand) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Sectoral plan CERN consultation `__ (ch.sbfi.sachplan-cern_anhoerung) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Habitat Map `__ (ch.bafu.lebensraumkarte-schweiz) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Cableways/skilifts winter `__ (ch.swisstopo.bahnen-winter) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Accommodations winter `__ (ch.swisstopo.unterkuenfte-winter) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Ski routes `__ (ch.swisstopo-karto.skitouren) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Snowshoe routes `__ (ch.swisstopo-schneeschuhrouten) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Swiss Parks (Zones) `__ (ch.bafu.schutzgebiete-paerke_nationaler_bedeutung) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Swiss Parks (Perimeter) `__ (ch.bafu.schutzgebiete-paerke_nationaler_bedeutung_perimeter) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Wildlife reserves `__ (ch.bafu.wrz-jagdbanngebiete_select) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Designated wildlife areas `__ (ch.bafu.wrz-wildruhezonen_portal) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. 1st night hour `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_erste-nachtstunde) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. helicopters Lmax `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_helikopter-maximalpegel) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. helicopters Lr `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_helikopter) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. light / large airecrafts `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_klein-grossflugzeuge)| ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. ligt aircrafts `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_kleinluftfahrzeuge) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. last night hour `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_letzte-nachtstunde) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. milit. aerodr. (tot.) `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_militaer-gesamt) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Update | `Noise exp. 2nd night hour `__ (ch.bazl.laermbelastungskataster-zivilflugplaetze_zweite-nachtstunde) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + .. _releasenotes_20241113: Release 20241113 - Wednesday, November 13th 2024 diff --git a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_de.png b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_de.png index d9c491f98a..07fb4558b5 100644 Binary files a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_de.png and b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_de.png differ diff --git a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_en.png b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_en.png index 797bb1345b..47a0d6a14e 100644 Binary files a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_en.png and b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_en.png differ diff --git a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_fr.png b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_fr.png index 83686f39bc..9b21dd2156 100644 Binary files a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_fr.png and b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_fr.png differ diff --git a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_it.png b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_it.png index 0c86760ab2..be10737124 100644 Binary files a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_it.png and b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_it.png differ diff --git a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_rm.png b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_rm.png index d9c491f98a..07fb4558b5 100644 Binary files a/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_rm.png and b/chsdi/static/images/legends/ch.bafu.hydroweb-messstationen_grundwasserzustand_rm.png differ diff --git a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_de.png b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_de.png index 32bedec077..dd91e687a0 100644 Binary files a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_de.png and b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_de.png differ diff --git a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_en.png b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_en.png index 32bedec077..dd91e687a0 100644 Binary files a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_en.png and b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_en.png differ diff --git a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_fr.png b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_fr.png index db6a947e04..6575bbadca 100644 Binary files a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_fr.png and b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_fr.png differ diff --git a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_it.png b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_it.png index 37e6d7b4a8..9008d8f9a0 100644 Binary files a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_it.png and b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_it.png differ diff --git a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_rm.png b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_rm.png index 32bedec077..dd91e687a0 100644 Binary files a/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_rm.png and b/chsdi/static/images/legends/ch.bafu.lebensraumkarte-schweiz_rm.png differ diff --git a/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_de.png b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_de.png new file mode 100644 index 0000000000..faa1abec8a Binary files /dev/null and b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_de.png differ diff --git a/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_en.png b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_en.png new file mode 100644 index 0000000000..e85ee65b8c Binary files /dev/null and b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_en.png differ diff --git a/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_fr.png b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_fr.png new file mode 100644 index 0000000000..407ae55191 Binary files /dev/null and b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_fr.png differ diff --git a/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_it.png b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_it.png new file mode 100644 index 0000000000..6d8b011862 Binary files /dev/null and b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_it.png differ diff --git a/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_rm.png b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_rm.png new file mode 100644 index 0000000000..faa1abec8a Binary files /dev/null and b/chsdi/static/images/legends/ch.bazl.wohngebiete-aulav_rm.png differ diff --git a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_de.png b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_de.png index 9f3f07747e..31f7c96d84 100644 Binary files a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_de.png and b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_de.png differ diff --git a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_en.png b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_en.png index 9f3f07747e..31f7c96d84 100644 Binary files a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_en.png and b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_en.png differ diff --git a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_fr.png b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_fr.png index 145e4f23f7..2ee614583f 100644 Binary files a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_fr.png and b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_fr.png differ diff --git a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_it.png b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_it.png index e2cdb5ee18..a322697f85 100644 Binary files a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_it.png and b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_it.png differ diff --git a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_rm.png b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_rm.png index 9f3f07747e..31f7c96d84 100644 Binary files a/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_rm.png and b/chsdi/static/images/legends/ch.sbfi.sachplan-cern_anhoerung_rm.png differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_de.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_de.png deleted file mode 100755 index 4fe7abb909..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_de.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_en.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_en.png deleted file mode 100755 index c4618a9ac4..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_en.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_fr.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_fr.png deleted file mode 100755 index cde5621f93..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_fr.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_it.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_it.png deleted file mode 100755 index a3e152a448..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_it.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_rm.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_rm.png deleted file mode 100755 index 4fe7abb909..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1915_rm.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_de.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_de.png deleted file mode 100755 index a454c4dfc2..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_de.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_en.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_en.png deleted file mode 100755 index 63ba092900..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_en.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_fr.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_fr.png deleted file mode 100755 index c9bd48c7ba..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_fr.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_it.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_it.png deleted file mode 100755 index bb1f808a75..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_it.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_rm.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_rm.png deleted file mode 100755 index a454c4dfc2..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1965_rm.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_de.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_de.png deleted file mode 100755 index 8f2561ec1b..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_de.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_en.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_en.png deleted file mode 100755 index 3f8d4a35f6..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_en.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_fr.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_fr.png deleted file mode 100755 index 23e6ac1be9..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_fr.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_it.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_it.png deleted file mode 100755 index 4d09f0e533..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_it.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_rm.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_rm.png deleted file mode 100755 index 8f2561ec1b..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1980_rm.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_de.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_de.png deleted file mode 100755 index bb571e7af2..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_de.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_en.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_en.png deleted file mode 100755 index 6c037802d0..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_en.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_fr.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_fr.png deleted file mode 100755 index 86b98a0be3..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_fr.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_it.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_it.png deleted file mode 100755 index 917b54dd54..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_it.png and /dev/null differ diff --git a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_rm.png b/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_rm.png deleted file mode 100755 index bb571e7af2..0000000000 Binary files a/chsdi/static/images/legends/ch.swisstopo.geologie-geotechnik-steinbrueche_1995_rm.png and /dev/null differ diff --git a/chsdi/subscribers.py b/chsdi/subscribers.py index e5cbbea18e..7561f79fe6 100644 --- a/chsdi/subscribers.py +++ b/chsdi/subscribers.py @@ -11,7 +11,6 @@ from chsdi.models.bod import get_translations from chsdi.response_callbacks import add_default_cache_control from chsdi.response_callbacks import add_cors_header -from chsdi.response_callbacks import add_cross_domain_policy import logging @@ -85,7 +84,6 @@ def log_request(event): def setup_response_callbacks(event): event.request.add_response_callback(add_default_cache_control) event.request.add_response_callback(add_cors_header) - event.request.add_response_callback(add_cross_domain_policy) @subscriber(NewResponse) diff --git a/chsdi/templates/htmlpopup/bafu_lebensraumkarte_schweiz.mako b/chsdi/templates/htmlpopup/bafu_lebensraumkarte_schweiz.mako index 331e7b74ef..198c74b27b 100644 --- a/chsdi/templates/htmlpopup/bafu_lebensraumkarte_schweiz.mako +++ b/chsdi/templates/htmlpopup/bafu_lebensraumkarte_schweiz.mako @@ -20,8 +20,8 @@ ${_('ch.bafu.lebensraumkarte-schweiz.cover')} - % if c['attributes']['cover']: - ${round(c['attributes']['cover'], 5)} + % if c['attributes']['cover'] and c['attributes']['cover'] < 9999: + ${c['attributes']['cover']} % else: - % endif diff --git a/chsdi/templates/htmlpopup/geologie_reflexionsseismik_line.mako b/chsdi/templates/htmlpopup/geologie_reflexionsseismik_line.mako index 6fb30b42e2..1c530590cb 100644 --- a/chsdi/templates/htmlpopup/geologie_reflexionsseismik_line.mako +++ b/chsdi/templates/htmlpopup/geologie_reflexionsseismik_line.mako @@ -80,19 +80,27 @@ ${_('ch.swisstopo.geologie-reflexionsseismik.link')} - % if c['attributes']['link'] in [None, "-"]: - ${'-'} + % if c['attributes']['link'] and c['attributes']['link'].startswith('http'): + ${_('link')} % else: - ${_('link')} + - % endif ${_('ch.swisstopo.geologie-reflexionsseismik.download')} - ${c['attributes']['download'] or '-'} + % if c['attributes']['download'] and c['attributes']['download'].startswith('http'): + ${_('link')} + % else: + - + % endif ${_('ch.swisstopo.geologie-reflexionsseismik.swissgeol')} - ${c['attributes']['swissgeol'] or '-'} + % if c['attributes']['swissgeol'] and c['attributes']['swissgeol'].startswith('http'): + ${_('link')} + % else: + - + % endif diff --git a/chsdi/templates/htmlpopup/geologie_reflexionsseismik_poly.mako b/chsdi/templates/htmlpopup/geologie_reflexionsseismik_poly.mako index e701de0801..b635c8aab7 100644 --- a/chsdi/templates/htmlpopup/geologie_reflexionsseismik_poly.mako +++ b/chsdi/templates/htmlpopup/geologie_reflexionsseismik_poly.mako @@ -80,19 +80,27 @@ ${_('ch.swisstopo.geologie-reflexionsseismik.link')} - % if c['attributes']['link'] in [None, "-"]: - ${'-'} + % if c['attributes']['link'] and c['attributes']['link'].startswith('http'): + ${_('link')} % else: - ${_('link')} + - % endif ${_('ch.swisstopo.geologie-reflexionsseismik.download')} - ${c['attributes']['download'] or '-'} + % if c['attributes']['download'] and c['attributes']['download'].startswith('http'): + ${_('link')} + % else: + - + % endif ${_('ch.swisstopo.geologie-reflexionsseismik.swissgeol')} - ${c['attributes']['swissgeol'] or '-'} + % if c['attributes']['swissgeol'] and c['attributes']['swissgeol'].startswith('http'): + ${_('link')} + % else: + - + % endif diff --git a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_line.mako b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_line.mako similarity index 82% rename from chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_line.mako rename to chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_line.mako index 67a5825119..d82ee54133 100644 --- a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_line.mako +++ b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_line.mako @@ -32,8 +32,12 @@ ${_('ch.sbfi.sachplan-cern_anhoerung.web')} - % if c['attributes'][doc_web_text].startswith('http'): - ${c['attributes'][title_text]} + % if c['attributes'][doc_web_text]: + % if c['attributes'][doc_web_text].startswith('http'): + ${c['attributes'][title_text]} + % else: + - + % endif % else: - % endif diff --git a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_pnt.mako b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_pnt.mako similarity index 82% rename from chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_pnt.mako rename to chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_pnt.mako index 67a5825119..d82ee54133 100644 --- a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_pnt.mako +++ b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_fac_pnt.mako @@ -32,8 +32,12 @@ ${_('ch.sbfi.sachplan-cern_anhoerung.web')} - % if c['attributes'][doc_web_text].startswith('http'): - ${c['attributes'][title_text]} + % if c['attributes'][doc_web_text]: + % if c['attributes'][doc_web_text].startswith('http'): + ${c['attributes'][title_text]} + % else: + - + % endif % else: - % endif diff --git a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_poly.mako b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_plm_poly.mako similarity index 85% rename from chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_poly.mako rename to chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_plm_poly.mako index b1309783e2..861c964146 100644 --- a/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_poly.mako +++ b/chsdi/templates/htmlpopup/sbfi_sachplan_cern_anhoerung_plm_poly.mako @@ -41,8 +41,12 @@ ${_('ch.sbfi.sachplan-cern_anhoerung.web')} - % if c['attributes'][doc_web_text].startswith('http'): - ${c['attributes'][title_text]} + % if c['attributes'][doc_web_text]: + % if c['attributes'][doc_web_text].startswith('http'): + ${c['attributes'][title_text]} + % else: + - + % endif % else: - % endif diff --git a/chsdi/templates/htmlpopup/steinbrueche_1915.mako b/chsdi/templates/htmlpopup/steinbrueche_1915.mako deleted file mode 100644 index 862ec3cb77..0000000000 --- a/chsdi/templates/htmlpopup/steinbrueche_1915.mako +++ /dev/null @@ -1,6 +0,0 @@ -<%inherit file="base.mako"/> - -<%def name="table_body(c,lang)"> - ${_('gesteinsgr')}${c['attributes']['gesteinsgr'] or '-'} - ${_('gestein')}${c['attributes']['gestein'] or '-'} - diff --git a/chsdi/templates/htmlpopup/steinbrueche_1965.mako b/chsdi/templates/htmlpopup/steinbrueche_1965.mako deleted file mode 100644 index 862ec3cb77..0000000000 --- a/chsdi/templates/htmlpopup/steinbrueche_1965.mako +++ /dev/null @@ -1,6 +0,0 @@ -<%inherit file="base.mako"/> - -<%def name="table_body(c,lang)"> - ${_('gesteinsgr')}${c['attributes']['gesteinsgr'] or '-'} - ${_('gestein')}${c['attributes']['gestein'] or '-'} - diff --git a/chsdi/templates/htmlpopup/steinbrueche_1980.mako b/chsdi/templates/htmlpopup/steinbrueche_1980.mako deleted file mode 100644 index 3bd84e139b..0000000000 --- a/chsdi/templates/htmlpopup/steinbrueche_1980.mako +++ /dev/null @@ -1,6 +0,0 @@ -<%inherit file="base.mako"/> - -<%def name="table_body(c,lang)"> - ${_('gesteinsgr')}${c['attributes']['gesteinsgr'] or '-'} - ${_('gestein')}${c['attributes']['gestein'] or '-'} - diff --git a/chsdi/templates/htmlpopup/steinbrueche_1995.mako b/chsdi/templates/htmlpopup/steinbrueche_1995.mako deleted file mode 100644 index 862ec3cb77..0000000000 --- a/chsdi/templates/htmlpopup/steinbrueche_1995.mako +++ /dev/null @@ -1,6 +0,0 @@ -<%inherit file="base.mako"/> - -<%def name="table_body(c,lang)"> - ${_('gesteinsgr')}${c['attributes']['gesteinsgr'] or '-'} - ${_('gestein')}${c['attributes']['gestein'] or '-'} - diff --git a/chsdi/templates/htmlpopup/swisssurface3d.mako b/chsdi/templates/htmlpopup/swisssurface3d.mako index f786578674..791555ae2e 100644 --- a/chsdi/templates/htmlpopup/swisssurface3d.mako +++ b/chsdi/templates/htmlpopup/swisssurface3d.mako @@ -2,5 +2,6 @@ <%def name="table_body(c, lang)"> ${_('ch.swisstopo.swisssurface3d.metadata.tilekey')} ${c['id'] or '-'} - ${_('ch.swisstopo.swisssurface3d.metadata.temporalkey')} ${c['attributes']['temporalkey'] or '-'} + ${_('ch.swisstopo.swisssurface3d.metadata.gpstime_min')} ${c['attributes']['gpstime_min'] or '-'} + ${_('ch.swisstopo.swisssurface3d.metadata.gpstime_max')} ${c['attributes']['gpstime_max'] or '-'} diff --git a/chsdi/templates/index.mako b/chsdi/templates/index.mako index 400891607b..38b6d6c480 100644 --- a/chsdi/templates/index.mako +++ b/chsdi/templates/index.mako @@ -51,7 +51,7 @@ version = python_version() Identify on mutiple queryable attributes
Identify - example with callback
Identify - without geometry
- Identify - geometryFormat=interlis on Oereb layers + Identify - geometryFormat=interlis on Oereb layers

Indentify: with query

Query 'ch.bazl.luftfahrthindernis' for 'Antenna' with a bbox
Get some values for attribute 'obstacletype'
diff --git a/chsdi/views/layers.py b/chsdi/views/layers.py index 7ce6443810..0c8808142a 100644 --- a/chsdi/views/layers.py +++ b/chsdi/views/layers.py @@ -147,51 +147,6 @@ def insert_value_at(field, attrName, value): return {'id': layerId, 'name': params.translate(layerId), 'fields': fields} -@view_config(route_name='faqlist', renderer='jsonp') -def faqlist(request): - params = BaseLayersValidation(request) - params.geodataStaging = 'prod' - translations = {} - - # That there is a tooltip - tooltipLayers = [] - # That you can search in layer search - searchableLayers = [] - # That you need to pay for - chargeableLayers = [] - # Free layers - notChargeableLayers = [] - # queryable layer (filtering with where and layerDefs) - queryableLayers = [] - - query = params.request.db.query(LayersConfig) - for layer in get_layers_config_for_params(params, query, LayersConfig): - k = list(layer.keys()).pop() - lyr = list(layer.values()).pop() - if 'parentLayerId' not in lyr and not k.endswith('_3d'): - if k not in translations: - translations[k] = request.translate(k) - if 'tooltip' in lyr and lyr['tooltip'] and 'type' in lyr and lyr['type'] not in ('geojson',): - tooltipLayers.append(k) - if 'queryableAttributes' in lyr and lyr['queryableAttributes']: - queryableLayers.append(k) - if 'searchable' in lyr and lyr['searchable']: - searchableLayers.append(k) - if 'chargeable' in lyr and lyr['chargeable']: - chargeableLayers.append(k) - if 'chargeable' in lyr and not lyr['chargeable']: - notChargeableLayers.append(k) - - return { - 'translations': translations, - 'tooltipLayers': sorted(tooltipLayers), - 'searchableLayers': sorted(searchableLayers), - 'chargeableLayers': sorted(chargeableLayers), - 'notChargeableLayers': sorted(notChargeableLayers), - 'queryableLayers': sorted(queryableLayers) - } - - def _has_legend(layerId, lang): legendsDir = os.path.join(os.path.dirname(__file__), '../static/images/legends') image = "%s_%s.png" % (layerId, lang) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index e37b5c7a3c..7050b18de3 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -20,8 +20,6 @@ envsubst < apache/ports.conf.in > /etc/apache2/ports.conf envsubst < apache/wsgi-py3.conf.in > apache/wsgi.conf -cd chsdi/static/ && ln -sf "${ROBOTS_FILE}" robots.txt && cd - || echo "FAILED TO CREATE ROBOTS LINK" - if [ -n "${LOGS_DIR}" ]; then install -d -o "${USER}" -g "${GROUP}" -m 0777 "${LOGS_DIR}" fi diff --git a/secrets.yml b/secrets.yml index c1e6739c83..5462e4813d 100644 --- a/secrets.yml +++ b/secrets.yml @@ -1,3 +1,3 @@ -OPENTRANS_API_KEY: !var infra-gopass-bgdi/mf-chsdi3/OPENTRANS_API_KEY password -PGUSER: !var infra-gopass-bgdi/mf-chsdi3/PG PGUSER -PGPASSWORD: !var infra-gopass-bgdi/mf-chsdi3/PG PGPASSWORD \ No newline at end of file +PGUSER: !var /amazon-rds/geodata-master/www-data/user --profile swisstopo-bgdi +PGPASSWORD: !var /amazon-rds/geodata-master/www-data/password --profile swisstopo-bgdi +OPENTRANS_API_KEY: !var /opentransportdata.swiss/swisstopo/tokens/departure_board --profile swisstopo-bgdi diff --git a/tests/integration/test_identify_service.py b/tests/integration/test_identify_service.py index bb7790ab6d..6f5096fa52 100644 --- a/tests/integration/test_identify_service.py +++ b/tests/integration/test_identify_service.py @@ -749,7 +749,7 @@ def test_identify_oereb_several_layers(self): params = {'geometry': '618953,170093', 'geometryType': 'esriGeometryPoint', 'imageDisplay': '1920,576,96', - 'layers': 'all:ch.bav.kataster-belasteter-standorte-oev.oereb,ch.bazl.sicherheitszonenplan.oereb', + 'layers': 'all:ch.bav.kataster-belasteter-standorte-oev_v2_0.oereb,ch.bazl.sicherheitszonenplan_v2_0.oereb', 'mapExtent': '671164.31244,253770,690364.31244,259530', 'tolerance': '5', 'geometryFormat': 'interlis'} diff --git a/tests/integration/test_layers_service.py b/tests/integration/test_layers_service.py index 543ecc787c..ad4c782767 100644 --- a/tests/integration/test_layers_service.py +++ b/tests/integration/test_layers_service.py @@ -86,32 +86,6 @@ def test_metadata_chargeable_false(self): resp = self.testapp.get('/rest/services/blw/MapServer', params={'chargeable': 'false'}, status=200) self.assertEqual(resp.content_type, 'application/json') - def test_faqlist(self): - resp = self.testapp.get('/rest/services/api/faqlist', status=200) - self.assertEqual(resp.content_type, 'application/json') - self.assertIn('ch.astra.ivs-nat', resp.json['searchableLayers']) - self.assertIn('ch.bafu.bundesinventare-bln', resp.json['tooltipLayers']) - self.assertIn('ch.swisstopo-karto.hangneigung', resp.json['chargeableLayers']) - self.assertIn('ch.are.alpenkonvention', resp.json['notChargeableLayers']) - self.assertGreater(len(resp.json['searchableLayers']), 20) - self.assertGreater(len(resp.json['tooltipLayers']), 20) - self.assertGreater(len(resp.json['chargeableLayers']), 20) - self.assertGreater(len(resp.json['notChargeableLayers']), 20) - self.assertGreater(len(resp.json['translations']), 20) - - def test_faqlist_topic_all(self): - resp = self.testapp.get('/rest/services/all/faqlist', status=200) - self.assertEqual(resp.content_type, 'application/json') - self.assertIn('ch.astra.ivs-nat', resp.json['searchableLayers']) - self.assertIn('ch.bafu.bundesinventare-bln', resp.json['tooltipLayers']) - self.assertIn('ch.swisstopo-karto.hangneigung', resp.json['chargeableLayers']) - self.assertIn('ch.are.alpenkonvention', resp.json['notChargeableLayers']) - self.assertGreater(len(resp.json['searchableLayers']), 20) - self.assertGreater(len(resp.json['tooltipLayers']), 20) - self.assertGreater(len(resp.json['chargeableLayers']), 20) - self.assertGreater(len(resp.json['notChargeableLayers']), 20) - self.assertGreater(len(resp.json['translations']), 20) - def test_legend_valid(self): resp = self.testapp.get('/rest/services/ech/MapServer/ch.bafu.bundesinventare-bln/legend', status=200) self.assertEqual(resp.content_type, 'text/html')