diff --git a/Dockerfile.devfinal b/Dockerfile.devfinal new file mode 100644 index 0000000000000..520719e0be9e7 --- /dev/null +++ b/Dockerfile.devfinal @@ -0,0 +1,125 @@ +###################################################################### +# Node stage to deal with static asset construction +###################################################################### +ARG PY_VER=3.9-slim-bookworm + +# if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise). +ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64} +FROM --platform=${BUILDPLATFORM} node:16-bookworm-slim AS superset-node + +ARG NPM_BUILD_CMD="build" + +RUN apt-get update -qq \ + && apt-get install -yqq --no-install-recommends \ + build-essential \ + python3 + +ENV BUILD_CMD=${NPM_BUILD_CMD} \ + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true +# NPM ci first, as to NOT invalidate previous steps except for when package.json changes +WORKDIR /app/superset-frontend + +RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.sh \ + /frontend-mem-nag.sh + +RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \ + --mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \ + npm ci + +COPY ./superset-frontend ./ +# This seems to be the most expensive step +RUN npm run ${BUILD_CMD} + +###################################################################### +# Final lean image... +###################################################################### +FROM python:${PY_VER} AS lean + +WORKDIR /app +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + SUPERSET_ENV=production \ + FLASK_APP="superset.app:create_app()" \ + PYTHONPATH="/app/pythonpath" \ + SUPERSET_HOME="/app/superset_home" \ + SUPERSET_PORT=8088 + +RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache_superset.egg-info requirements \ + && useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \ + && apt-get update -qq && apt-get install -yqq --no-install-recommends \ + build-essential \ + curl \ + default-libmysqlclient-dev \ + libsasl2-dev \ + libsasl2-modules-gssapi-mit \ + libpq-dev \ + libecpg-dev \ + libldap2-dev \ + && touch superset/static/version_info.json \ + && chown -R superset:superset ./* \ + && rm -rf /var/lib/apt/lists/* + +COPY --chown=superset:superset setup.py MANIFEST.in README.md ./ +# setup.py uses the version information in package.json +COPY --chown=superset:superset superset-frontend/package.json superset-frontend/ +COPY --chown=superset:superset requirements/base.txt requirements/ +RUN --mount=type=cache,target=/root/.cache/pip \ + pip install --upgrade setuptools pip && \ + pip install -r requirements/base.txt + +COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets +## Lastly, let's install superset itself +COPY --chown=superset:superset superset superset +RUN --mount=type=cache,target=/root/.cache/pip \ + pip install -e . \ + && flask fab babel-compile --target superset/translations \ + && chown -R superset:superset superset/translations + +COPY --chmod=755 ./docker/run-server.sh /usr/bin/ +USER superset + +HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health" + +EXPOSE ${SUPERSET_PORT} + +CMD ["/usr/bin/run-server.sh"] + +###################################################################### +# Dev image... +###################################################################### +FROM lean AS dev +ARG GECKODRIVER_VERSION=v0.33.0 \ + FIREFOX_VERSION=117.0.1 + +USER root + +RUN apt-get update -qq \ + && apt-get install -yqq --no-install-recommends \ + libnss3 \ + libdbus-glib-1-2 \ + libgtk-3-0 \ + libx11-xcb1 \ + libasound2 \ + libxtst6 \ + wget \ + # Install GeckoDriver WebDriver + && wget -q https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O - | tar xfz - -C /usr/local/bin \ + # Install Firefox + && wget -q https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O - | tar xfj - -C /opt \ + && ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && apt-get autoremove -yqq --purge wget && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/* +# Cache everything for dev purposes... + +COPY --chown=superset:superset requirements/development.txt requirements/ +RUN --mount=type=cache,target=/root/.cache/pip \ + pip install -r requirements/development.txt + +USER superset +###################################################################### +# CI image... +###################################################################### +FROM dev AS devfinal + +COPY --chown=superset:superset --chmod=755 ./docker/*.sh /app/docker/ + +CMD ["/app/docker/docker-ci.sh"] diff --git a/Dockerfile.zain b/Dockerfile.zain new file mode 100644 index 0000000000000..5dd3ab29a715c --- /dev/null +++ b/Dockerfile.zain @@ -0,0 +1,137 @@ +############ Zain Note ############ +# ARG PY_VER=3.9-slim-bookworm ## Old version upgraded to ARG PY_VER=3.11-slim-bookworm +# node:16-bookworm-slim ## Old version upgraded to node:21-bookworm-slim +# ARG GECKODRIVER_VERSION=v0.29.0 ## you should be noted that GECKODRIVER should be compatible with FIREFOX_VERSION or report delivery will not work +# FIREFOX_VERSION=117.0.1 +############ Zain Note End ############ + + ###################################################################### +# Node stage to deal with static asset construction +###################################################################### +ARG PY_VER=3.11-slim-bookworm +# if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise). +ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64} +FROM --platform=${BUILDPLATFORM} node:21-bullseye-slim AS superset-node + +ARG NPM_BUILD_CMD="build" + +RUN apt-get update -qq \ + && apt-get install -yqq --no-install-recommends \ + build-essential \ + python3 + +ENV BUILD_CMD=${NPM_BUILD_CMD} \ + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true +# NPM ci first, as to NOT invalidate previous steps except for when package.json changes +WORKDIR /app/superset-frontend + +RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.sh \ + /frontend-mem-nag.sh + +RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \ + --mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \ + npm ci + +COPY ./superset-frontend ./ +# This seems to be the most expensive step +RUN npm run ${BUILD_CMD} + +###################################################################### +# Final lean image... +###################################################################### +FROM python:${PY_VER} AS lean + + +WORKDIR /app +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + SUPERSET_ENV=production \ + FLASK_APP="superset.app:create_app()" \ + PYTHONPATH="/app/pythonpath" \ + SUPERSET_HOME="/app/superset_home" \ + SUPERSET_PORT=8088 + +RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache_superset.egg-info requirements \ + && useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \ + && apt-get update -qq && apt-get install -yqq --no-install-recommends \ + build-essential \ + curl \ + default-libmysqlclient-dev \ + libsasl2-dev \ + libsasl2-modules-gssapi-mit \ + libpq-dev \ + libecpg-dev \ + libldap2-dev \ + && touch superset/static/version_info.json \ + && chown -R superset:superset ./* \ + && rm -rf /var/lib/apt/lists/* + + +COPY --chown=superset:superset setup.py MANIFEST.in README.md ./ +# setup.py uses the version information in package.json +COPY --chown=superset:superset superset-frontend/package.json superset-frontend/ +COPY --chown=superset:superset requirements/base.txt requirements/ +RUN --mount=type=cache,target=/root/.cache/pip \ + pip install --upgrade pip && \ + pip install uv && \ + pip install -r requirements/base.txt \ + uv pip install setuptools Pillow psycopg2-binary gevent ## this is by zain to fix issue not working + + +COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets +## Lastly, let's install superset itself +COPY --chown=superset:superset superset superset +RUN --mount=type=cache,target=/root/.cache/pip \ + pip install -e . \ + && flask fab babel-compile --target superset/translations \ + && chown -R superset:superset superset/translations + +COPY --chmod=755 ./docker/run-server.sh /usr/bin/ +USER superset + +HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health" + +EXPOSE ${SUPERSET_PORT} + +CMD ["/usr/bin/run-server.sh"] + +###################################################################### +# Dev image... +###################################################################### +FROM lean AS dev +ARG GECKODRIVER_VERSION=v0.33.0 \ + FIREFOX_VERSION=117.0.1 + +USER root + +RUN apt-get update -qq \ + && apt-get install -yqq --no-install-recommends \ + libnss3 \ + libdbus-glib-1-2 \ + libgtk-3-0 \ + libx11-xcb1 \ + libasound2 \ + libxtst6 \ + wget \ + pkg-config \ + # Install GeckoDriver WebDriver + && wget -q https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O - | tar xfz - -C /usr/local/bin \ + # Install Firefox + && wget -q https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O - | tar xfj - -C /opt \ + && ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && apt-get autoremove -yqq --purge wget && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/* +# Cache everything for dev purposes... + +COPY --chown=superset:superset requirements/development.txt requirements/ +RUN --mount=type=cache,target=/root/.cache/pip \ + uv pip install -r requirements/development.txt + +USER superset +###################################################################### +# CI image... +###################################################################### +FROM lean AS ci + +COPY --chown=superset:superset --chmod=755 ./docker/*.sh /app/docker/ + +CMD ["/app/docker/docker-ci.sh"] diff --git a/superset-frontend/src/features/home/RightMenu.tsx b/superset-frontend/src/features/home/RightMenu.tsx index ff4a6a8095469..7b9b5da94b6b5 100644 --- a/superset-frontend/src/features/home/RightMenu.tsx +++ b/superset-frontend/src/features/home/RightMenu.tsx @@ -489,12 +489,12 @@ const RightMenu = ({
{navbarRight.show_watermark && (
- {t('Powered by Apache Superset')} + {t('Zain Analytics')}
)} {navbarRight.version_string && (
- {t('Version')}: {navbarRight.version_string} + {t('Business Intelligence')}: {navbarRight.version_string}
)} {navbarRight.version_sha && ( diff --git a/superset-frontend/src/pages/ChartCreation/index.tsx b/superset-frontend/src/pages/ChartCreation/index.tsx index f621519102e48..7e4b82f0a85b2 100644 --- a/superset-frontend/src/pages/ChartCreation/index.tsx +++ b/superset-frontend/src/pages/ChartCreation/index.tsx @@ -289,7 +289,7 @@ export class ChartCreation extends React.PureComponent< render() { const isButtonDisabled = this.isBtnDisabled(); - const VIEW_INSTRUCTIONS_TEXT = t('view instructions'); + const VIEW_INSTRUCTIONS_TEXT = t('view web'); const datasetHelpText = this.state.canCreateDataset ? ( @@ -297,7 +297,7 @@ export class ChartCreation extends React.PureComponent< {t('or')}{' '} diff --git a/superset/config.py b/superset/config.py index 8e0db72b28dce..cf0224936224f 100644 --- a/superset/config.py +++ b/superset/config.py @@ -1327,7 +1327,7 @@ def EMAIL_HEADER_MUTATOR( # pylint: disable=invalid-name,unused-argument EMAIL_REPORTS_SUBJECT_PREFIX = "[Report] " # The text for call-to-action link in Alerts & Reports emails -EMAIL_REPORTS_CTA = "Explore in Superset" +EMAIL_REPORTS_CTA = "Explore in ZReport" # Slack API token for the superset reports, either string or callable SLACK_API_TOKEN: Callable[[], str] | str | None = None diff --git a/superset/reports/notifications/slack.py b/superset/reports/notifications/slack.py index a7072ca20c4d5..1ce3296f0887b 100644 --- a/superset/reports/notifications/slack.py +++ b/superset/reports/notifications/slack.py @@ -77,7 +77,7 @@ def _message_template(self, table: str = "") -> str: %(description)s -<%(url)s|Explore in Superset> +<%(url)s|Explore in ZReport> %(table)s """, diff --git a/superset/templates/slack/alert.txt b/superset/templates/slack/alert.txt index df943f5ef090e..c136e2088549f 100644 --- a/superset/templates/slack/alert.txt +++ b/superset/templates/slack/alert.txt @@ -21,4 +21,4 @@ *Result*: {{observation_value}} *Reason*: {{validation_error_message}} <{{alert_url}}|View Alert Details> -<{{url}}|*Explore in Superset*> +<{{url}}|*View Dashboard Details *> diff --git a/superset/translations/de/LC_MESSAGES/messages.json b/superset/translations/de/LC_MESSAGES/messages.json index a79b0a23c1f08..9406074df8b3b 100644 --- a/superset/translations/de/LC_MESSAGES/messages.json +++ b/superset/translations/de/LC_MESSAGES/messages.json @@ -102,7 +102,7 @@ "), and they become available in your SQL (example:": [ "), und sie werden in Ihrem SQL verfügbar (Beispiel:" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "*%(name)s*\n\n%(description)s\n\n<%(url)s|In Superset erkunden>\n%(table)s\n" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [ diff --git a/superset/translations/de/LC_MESSAGES/messages.po b/superset/translations/de/LC_MESSAGES/messages.po index cc6f5ba47cd9e..74bd0fa2f5960 100644 --- a/superset/translations/de/LC_MESSAGES/messages.po +++ b/superset/translations/de/LC_MESSAGES/messages.po @@ -2868,7 +2868,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/en/LC_MESSAGES/messages.json b/superset/translations/en/LC_MESSAGES/messages.json index e74da2f18e124..17f91e327a2df 100644 --- a/superset/translations/en/LC_MESSAGES/messages.json +++ b/superset/translations/en/LC_MESSAGES/messages.json @@ -69,7 +69,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore The ZReport >\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/en/LC_MESSAGES/messages.po b/superset/translations/en/LC_MESSAGES/messages.po index ab7880909b7c9..a1804563e2aaf 100644 --- a/superset/translations/en/LC_MESSAGES/messages.po +++ b/superset/translations/en/LC_MESSAGES/messages.po @@ -2651,7 +2651,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/es/LC_MESSAGES/messages.json b/superset/translations/es/LC_MESSAGES/messages.json index bc880e1e59683..403bc01179274 100644 --- a/superset/translations/es/LC_MESSAGES/messages.json +++ b/superset/translations/es/LC_MESSAGES/messages.json @@ -60,7 +60,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/es/LC_MESSAGES/messages.po b/superset/translations/es/LC_MESSAGES/messages.po index f22ba5bf73958..dcf437d2ed4fd 100644 --- a/superset/translations/es/LC_MESSAGES/messages.po +++ b/superset/translations/es/LC_MESSAGES/messages.po @@ -2826,7 +2826,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/fr/LC_MESSAGES/messages.json b/superset/translations/fr/LC_MESSAGES/messages.json index c45a4f88ccbac..5281875867e6e 100644 --- a/superset/translations/fr/LC_MESSAGES/messages.json +++ b/superset/translations/fr/LC_MESSAGES/messages.json @@ -77,8 +77,8 @@ "), and they become available in your SQL (example:": [ "), et ils deviennent disponibles dans votre SQL (exemple :" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ - "*%(name)s*%(description)s<%(url)s|Explore in Superset>%(table)s" + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ + "*%(name)s*%(description)s<%(url)s|Explore in ZReport>%(table)s" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [ "*%(name)s*%(description)sErreur : %(text)s" diff --git a/superset/translations/fr/LC_MESSAGES/messages.po b/superset/translations/fr/LC_MESSAGES/messages.po index 7296f19d9f6bc..def5b07259ade 100644 --- a/superset/translations/fr/LC_MESSAGES/messages.po +++ b/superset/translations/fr/LC_MESSAGES/messages.po @@ -2917,10 +2917,10 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" -msgstr "*%(name)s*%(description)s<%(url)s|Explore in Superset>%(table)s" +msgstr "*%(name)s*%(description)s<%(url)s|Explore in ZReport>%(table)s" #: superset/reports/notifications/slack.py:93 #, python-format diff --git a/superset/translations/it/LC_MESSAGES/messages.json b/superset/translations/it/LC_MESSAGES/messages.json index 7ec2e7ded4651..0e236a3016167 100644 --- a/superset/translations/it/LC_MESSAGES/messages.json +++ b/superset/translations/it/LC_MESSAGES/messages.json @@ -62,7 +62,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/it/LC_MESSAGES/messages.po b/superset/translations/it/LC_MESSAGES/messages.po index 21d93e8d36f65..2c349697e2427 100644 --- a/superset/translations/it/LC_MESSAGES/messages.po +++ b/superset/translations/it/LC_MESSAGES/messages.po @@ -2755,7 +2755,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/ja/LC_MESSAGES/messages.json b/superset/translations/ja/LC_MESSAGES/messages.json index 5d404dc515fc8..52871c4139f62 100644 --- a/superset/translations/ja/LC_MESSAGES/messages.json +++ b/superset/translations/ja/LC_MESSAGES/messages.json @@ -61,7 +61,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/ja/LC_MESSAGES/messages.po b/superset/translations/ja/LC_MESSAGES/messages.po index 59be8b1f49688..d8c7927b9c7e0 100644 --- a/superset/translations/ja/LC_MESSAGES/messages.po +++ b/superset/translations/ja/LC_MESSAGES/messages.po @@ -2738,7 +2738,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/ko/LC_MESSAGES/messages.json b/superset/translations/ko/LC_MESSAGES/messages.json index a4c712693cca4..f57e368f8ad2d 100644 --- a/superset/translations/ko/LC_MESSAGES/messages.json +++ b/superset/translations/ko/LC_MESSAGES/messages.json @@ -64,7 +64,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/ko/LC_MESSAGES/messages.po b/superset/translations/ko/LC_MESSAGES/messages.po index 2c248966fd18f..38d8a0ec335c7 100644 --- a/superset/translations/ko/LC_MESSAGES/messages.po +++ b/superset/translations/ko/LC_MESSAGES/messages.po @@ -2712,7 +2712,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/messages.pot b/superset/translations/messages.pot index 0fa03ca6fc686..d71a31a25cc17 100644 --- a/superset/translations/messages.pot +++ b/superset/translations/messages.pot @@ -2657,7 +2657,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/nl/LC_MESSAGES/messages.json b/superset/translations/nl/LC_MESSAGES/messages.json index 0f5ff0dadd742..8f013f11e446f 100644 --- a/superset/translations/nl/LC_MESSAGES/messages.json +++ b/superset/translations/nl/LC_MESSAGES/messages.json @@ -68,7 +68,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/nl/LC_MESSAGES/messages.po b/superset/translations/nl/LC_MESSAGES/messages.po index 81b3cb88f895f..6cf09a90552cc 100644 --- a/superset/translations/nl/LC_MESSAGES/messages.po +++ b/superset/translations/nl/LC_MESSAGES/messages.po @@ -2742,7 +2742,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/pt/LC_MESSAGES/message.json b/superset/translations/pt/LC_MESSAGES/message.json index 12284400e1b77..d855a1b50789b 100644 --- a/superset/translations/pt/LC_MESSAGES/message.json +++ b/superset/translations/pt/LC_MESSAGES/message.json @@ -590,19 +590,19 @@ "An error occurred while pruning logs ": [ "Ocorreu um erro ao renderizar a visualização: %s" ], - "\n Explore in Superset

\n \n ": [ + "\n Explore in ZReport

\n \n ": [ "" ], "%(prefix)s %(title)s": [""], - "\n *%(name)s*\n\n <%(url)s|Explore in Superset>\n ": [ + "\n *%(name)s*\n\n <%(url)s|Explore in ZReport>\n ": [ "" ], - "\n *%(name)s*\n\n <%(url)s|Explore in Superset>\n ": [ + "\n *%(name)s*\n\n <%(url)s|Explore in ZReport>\n ": [ "" ], - "Explore in Superset

": [""], + "Explore in ZReport

": [""], "%(name)s.csv": [""], - "\n *%(slice_name)s*\n\n <%(slice_url_user_friendly)s|Explore in Superset>\n ": [ + "\n *%(slice_name)s*\n\n <%(slice_url_user_friendly)s|Explore in ZReport>\n ": [ "" ], "[Alert] %(label)s": ["Etiquetas de marcadores"], diff --git a/superset/translations/pt/LC_MESSAGES/messages.json b/superset/translations/pt/LC_MESSAGES/messages.json index 8b50f8ddae5a9..922e48b8f8624 100644 --- a/superset/translations/pt/LC_MESSAGES/messages.json +++ b/superset/translations/pt/LC_MESSAGES/messages.json @@ -62,7 +62,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/pt/LC_MESSAGES/messages.po b/superset/translations/pt/LC_MESSAGES/messages.po index 6a266c3c4ddb3..b12de73f4e455 100644 --- a/superset/translations/pt/LC_MESSAGES/messages.po +++ b/superset/translations/pt/LC_MESSAGES/messages.po @@ -2779,7 +2779,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/pt_BR/LC_MESSAGES/messages.po b/superset/translations/pt_BR/LC_MESSAGES/messages.po index 7e77e7e987335..5b4286fc48acd 100644 --- a/superset/translations/pt_BR/LC_MESSAGES/messages.po +++ b/superset/translations/pt_BR/LC_MESSAGES/messages.po @@ -2839,7 +2839,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/ru/LC_MESSAGES/messages.json b/superset/translations/ru/LC_MESSAGES/messages.json index 9653aec5ba49c..3e900e564a256 100644 --- a/superset/translations/ru/LC_MESSAGES/messages.json +++ b/superset/translations/ru/LC_MESSAGES/messages.json @@ -89,7 +89,7 @@ "), and they become available in your SQL (example:": [ "), и они станут доступны в ваших SQL запросах (пример:" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "*%(name)s*\n\n%(description)s\n\n<%(url)s|Исследовать в Суперсете>\n\n%(table)s\n" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [ diff --git a/superset/translations/ru/LC_MESSAGES/messages.po b/superset/translations/ru/LC_MESSAGES/messages.po index 1f94678cbd173..31356c1b7ab96 100644 --- a/superset/translations/ru/LC_MESSAGES/messages.po +++ b/superset/translations/ru/LC_MESSAGES/messages.po @@ -2787,7 +2787,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/sk/LC_MESSAGES/messages.json b/superset/translations/sk/LC_MESSAGES/messages.json index b09297f6c6bd6..8df7b7e4b5b9d 100644 --- a/superset/translations/sk/LC_MESSAGES/messages.json +++ b/superset/translations/sk/LC_MESSAGES/messages.json @@ -68,7 +68,7 @@ "(deleted or invalid type)": [""], "(no description, click to see stack trace)": [""], "), and they become available in your SQL (example:": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/sk/LC_MESSAGES/messages.po b/superset/translations/sk/LC_MESSAGES/messages.po index 19c570c04d1f9..f3b8c38a8b585 100644 --- a/superset/translations/sk/LC_MESSAGES/messages.po +++ b/superset/translations/sk/LC_MESSAGES/messages.po @@ -2663,7 +2663,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/sl/LC_MESSAGES/messages.json b/superset/translations/sl/LC_MESSAGES/messages.json index fe7f29f5c7f73..d58dc29ced4a6 100644 --- a/superset/translations/sl/LC_MESSAGES/messages.json +++ b/superset/translations/sl/LC_MESSAGES/messages.json @@ -103,7 +103,7 @@ "), and they become available in your SQL (example:": [ "), s čimer bodo na razpolago v sklopu SQL-poizvedbe (primer:" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "*%(name)s*\n\n%(description)s\n\n<%(url)s|Razišči v Supersetu>\n\n%(table)s\n" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [ diff --git a/superset/translations/sl/LC_MESSAGES/messages.po b/superset/translations/sl/LC_MESSAGES/messages.po index b648a7f8f84a8..d84bdd0adf7ad 100644 --- a/superset/translations/sl/LC_MESSAGES/messages.po +++ b/superset/translations/sl/LC_MESSAGES/messages.po @@ -2815,7 +2815,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/tr/LC_MESSAGES/messages.json b/superset/translations/tr/LC_MESSAGES/messages.json index fbd632709d9a2..be1786dabbf58 100644 --- a/superset/translations/tr/LC_MESSAGES/messages.json +++ b/superset/translations/tr/LC_MESSAGES/messages.json @@ -689,7 +689,7 @@ "EMAIL_REPORTS_CTA": [""], "%(name)s.csv": [""], "%(prefix)s %(title)s": [""], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZainDash>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/tr/LC_MESSAGES/messages.po b/superset/translations/tr/LC_MESSAGES/messages.po index d0fadd852dca2..7bf8c29a1dbd2 100644 --- a/superset/translations/tr/LC_MESSAGES/messages.po +++ b/superset/translations/tr/LC_MESSAGES/messages.po @@ -2647,7 +2647,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZainDash>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/uk/LC_MESSAGES/messages.json b/superset/translations/uk/LC_MESSAGES/messages.json index 4f9392bf0384e..fe6b1e2169ce8 100644 --- a/superset/translations/uk/LC_MESSAGES/messages.json +++ b/superset/translations/uk/LC_MESSAGES/messages.json @@ -100,7 +100,7 @@ "), and they become available in your SQL (example:": [ "), і вони стають доступними у вашому SQL (приклад:" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZReport>\n\n%(table)s\n": [ "*%(name)s*\n\n%(description)s\n\n<%(URL)s | Ознайомтеся з Superset>\n\n%(table)s\n" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [ diff --git a/superset/translations/uk/LC_MESSAGES/messages.po b/superset/translations/uk/LC_MESSAGES/messages.po index fc78d79a68cf1..fdf30df05e4c0 100644 --- a/superset/translations/uk/LC_MESSAGES/messages.po +++ b/superset/translations/uk/LC_MESSAGES/messages.po @@ -2825,7 +2825,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/superset/translations/zh/LC_MESSAGES/messages.json b/superset/translations/zh/LC_MESSAGES/messages.json index 896503f2bdda6..923918063f0d0 100644 --- a/superset/translations/zh/LC_MESSAGES/messages.json +++ b/superset/translations/zh/LC_MESSAGES/messages.json @@ -95,7 +95,7 @@ "), and they become available in your SQL (example:": [ "), 他们在你的SQL中会变成有效数据 (比如:" ], - "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in Superset>\n\n%(table)s\n": [ + "*%(name)s*\n\n%(description)s\n\n<%(url)s|Explore in ZainDash>\n\n%(table)s\n": [ "" ], "*%(name)s*\n\n%(description)s\n\nError: %(text)s\n": [""], diff --git a/superset/translations/zh/LC_MESSAGES/messages.po b/superset/translations/zh/LC_MESSAGES/messages.po index db982d7b0266b..92459f28e8a1f 100644 --- a/superset/translations/zh/LC_MESSAGES/messages.po +++ b/superset/translations/zh/LC_MESSAGES/messages.po @@ -2720,7 +2720,7 @@ msgid "" "\n" "%(description)s\n" "\n" -"<%(url)s|Explore in Superset>\n" +"<%(url)s|Explore in ZReport>\n" "\n" "%(table)s\n" msgstr "" diff --git a/tests/integration_tests/reports/commands_tests.py b/tests/integration_tests/reports/commands_tests.py index 79102654d5126..59c48a3056a7a 100644 --- a/tests/integration_tests/reports/commands_tests.py +++ b/tests/integration_tests/reports/commands_tests.py @@ -661,7 +661,7 @@ def test_email_chart_report_schedule( assert ( 'Explore in Superset' in email_mock.call_args[0][2] + '%7D&force=false">Explore in ZReport' in email_mock.call_args[0][2] ) # Assert the email smtp address assert email_mock.call_args[0][0] == notification_targets[0] @@ -716,7 +716,7 @@ def _screenshot_side_effect(user: User) -> Optional[bytes]: assert ( 'Explore in Superset' in email_mock.call_args[0][2] + '%7D&force=false">Explore in ZReport' in email_mock.call_args[0][2] ) # Assert the email smtp address assert email_mock.call_args[0][0] == notification_targets[0] @@ -761,7 +761,7 @@ def test_email_chart_report_schedule_force_screenshot( assert ( 'Explore in Superset' in email_mock.call_args[0][2] + '%7D&force=true">Explore in ZReport' in email_mock.call_args[0][2] ) # Assert the email smtp address assert email_mock.call_args[0][0] == notification_targets[0] @@ -798,7 +798,7 @@ def test_email_chart_alert_schedule( assert ( 'Explore in Superset' in email_mock.call_args[0][2] + '%7D&force=true">Explore in ZReport' in email_mock.call_args[0][2] ) # Assert the email smtp address assert email_mock.call_args[0][0] == notification_targets[0] @@ -870,7 +870,7 @@ def test_email_chart_report_schedule_with_csv( assert ( 'Explore in Superset' in email_mock.call_args[0][2] + 'force=false">Explore in ZReport' in email_mock.call_args[0][2] ) # Assert the email smtp address assert email_mock.call_args[0][0] == notification_targets[0] @@ -1296,7 +1296,7 @@ def test_slack_chart_report_schedule_with_text( | 1 | c21 | c22 | c23 |""" assert table_markdown in post_message_mock.call_args[1]["text"] assert ( - f"" + f"" in post_message_mock.call_args[1]["text"] ) diff --git a/tests/unit_tests/notifications/slack_tests.py b/tests/unit_tests/notifications/slack_tests.py index e423527df8201..8ce12c5f3529b 100644 --- a/tests/unit_tests/notifications/slack_tests.py +++ b/tests/unit_tests/notifications/slack_tests.py @@ -74,7 +74,7 @@ def test_send_slack(

This is a test alert


- + ``` | | A | B | C |