diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index 1f35d85b51..56620fbb96 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -17,7 +17,7 @@ "@superset-ui/core": "^0.17.30", "@superset-ui/legacy-plugin-chart-calendar": "^0.17.30", "@superset-ui/legacy-plugin-chart-chord": "^0.17.30", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.30", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.31", "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.30", "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.30", "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.30", @@ -16059,9 +16059,9 @@ } }, "node_modules/@superset-ui/legacy-plugin-chart-country-map": { - "version": "0.17.30", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.30.tgz", - "integrity": "sha512-Rg/o5aWkakDZDpPfiM7RHuj+LfMvep3GprPooQjioKAHzMiUziztcdb+nyOFbojGGr9bJnMDsu1iHgRBj1v1Jw==", + "version": "0.17.31", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.31.tgz", + "integrity": "sha512-Mga075bvVIz0HIUJ4UpHr/RTQOsbQH9Ra59rZ1SfCuKf1ZoobYRrm3KrUv5VqdKjHS4vEKNXiJwcdQveWHgnNA==", "dependencies": { "@superset-ui/chart-controls": "0.17.30", "@superset-ui/core": "0.17.30", @@ -72007,9 +72007,9 @@ } }, "@superset-ui/legacy-plugin-chart-country-map": { - "version": "0.17.30", - "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.30.tgz", - "integrity": "sha512-Rg/o5aWkakDZDpPfiM7RHuj+LfMvep3GprPooQjioKAHzMiUziztcdb+nyOFbojGGr9bJnMDsu1iHgRBj1v1Jw==", + "version": "0.17.31", + "resolved": "https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-country-map/-/legacy-plugin-chart-country-map-0.17.31.tgz", + "integrity": "sha512-Mga075bvVIz0HIUJ4UpHr/RTQOsbQH9Ra59rZ1SfCuKf1ZoobYRrm3KrUv5VqdKjHS4vEKNXiJwcdQveWHgnNA==", "requires": { "@superset-ui/chart-controls": "0.17.30", "@superset-ui/core": "0.17.30", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index edffa5f2d3..1f874e65fb 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -69,7 +69,7 @@ "@superset-ui/core": "^0.17.30", "@superset-ui/legacy-plugin-chart-calendar": "^0.17.30", "@superset-ui/legacy-plugin-chart-chord": "^0.17.30", - "@superset-ui/legacy-plugin-chart-country-map": "^0.17.30", + "@superset-ui/legacy-plugin-chart-country-map": "^0.17.31", "@superset-ui/legacy-plugin-chart-event-flow": "^0.17.30", "@superset-ui/legacy-plugin-chart-force-directed": "^0.17.30", "@superset-ui/legacy-plugin-chart-heatmap": "^0.17.30", diff --git a/superset/migrations/versions/085f06488938_country_map_use_lowercase_country_name.py b/superset/migrations/versions/085f06488938_country_map_use_lowercase_country_name.py new file mode 100644 index 0000000000..7e6d904db1 --- /dev/null +++ b/superset/migrations/versions/085f06488938_country_map_use_lowercase_country_name.py @@ -0,0 +1,85 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +"""Country map use lowercase country name + +Revision ID: 085f06488938 +Revises: 134cea61c5e7 +Create Date: 2021-04-09 16:14:19.040884 + +""" +import json + +from alembic import op +from sqlalchemy import Column, Integer, String, Text +from sqlalchemy.ext.declarative import declarative_base + +from superset import db + +# revision identifiers, used by Alembic. +revision = "085f06488938" +down_revision = "134cea61c5e7" + +Base = declarative_base() + + +class Slice(Base): + __tablename__ = "slices" + + id = Column(Integer, primary_key=True) + params = Column(Text) + viz_type = Column(String(250)) + + +def upgrade(): + """ + Convert all country names to lowercase + """ + bind = op.get_bind() + session = db.Session(bind=bind) + + for slc in session.query(Slice).filter(Slice.viz_type == "country_map").all(): + try: + params = json.loads(slc.params) + if params.get("select_country"): + params["select_country"] = params["select_country"].lower() + slc.params = json.dumps(params, sort_keys=True) + except Exception: + pass + + session.commit() + session.close() + + +def downgrade(): + """ + Convert all country names to sentence case + """ + bind = op.get_bind() + session = db.Session(bind=bind) + + for slc in session.query(Slice).filter(Slice.viz_type == "country_map").all(): + try: + params = json.loads(slc.params) + if params.get("select_country"): + country = params["select_country"].lower() + params["select_country"] = country[0].upper() + country[1:] + slc.params = json.dumps(params, sort_keys=True) + except Exception: + pass + + session.commit() + session.close()