apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
62.71k stars 13.85k forks source link

[alerts/reports] dashboard selector: list incomplete, type-ahead filtering broken #16963

Closed rumbin closed 1 year ago

rumbin commented 3 years ago

The drop-down selection for determining the dashboard to be sent int an Alert/Report is utterly broken. On the one hand, the type-ahead filtering is never working; it does not even find the first entry of the list. On the other hand, many existing dashboards are not included on the list which is truncated to 100 entries.

How to reproduce the bug

  1. Go to Settings → Alerts & Reports
  2. Click + Alert
  3. Select Dashboard as Message Content
  4. Start typing in the Select... drop-down selector in order to filter on an existing dashboard

Expected results

Any existing dashboard that the currently logged-in user has read-access to can be filtered and selected from the list.

Actual results

  1. By far not all existing and accessible dashboards are included in the selector's list.
  2. None of the listed dashboards can be found when typing into the selector field.
  3. As the list is truncated to 100 entries, many published dashboards that belong to the logged-in user are not included in the list and, thus, cannot be selected at all.

Screenshots/Screencasts

Alerts_Reports_dashboard_selection_bug

Environment

(please complete the following information):

Checklist

Make sure to follow these steps before submitting your issue - thank you!

Additional context

´pip freeze´

aiohttp==3.7.4.post0
alembic==1.7.3
amqp==2.6.1
apache-superset==1.3.1
apispec==3.3.2
asn1crypto==1.4.0
async-timeout==3.0.1
attrs==21.2.0
azure-common==1.1.27
azure-core==1.18.0
azure-storage-blob==12.9.0
Babel==2.9.1
backoff==1.11.1
billiard==3.6.4.0
bleach==3.3.1
boto3==1.18.51
botocore==1.21.51
Brotli==1.0.9
cachelib==0.1.1
cachetools==4.2.4
celery==4.4.7
certifi==2021.5.30
cffi==1.14.6
chardet==4.0.0
charset-normalizer==2.0.6
click==7.1.2
cmdstanpy==0.9.68
colorama==0.4.4
convertdate==2.3.2
cron-descriptor==1.2.24
croniter==1.0.15
cryptography==3.4.8
cx-Oracle==8.2.1
cycler==0.10.0
Cython==0.29.24
defusedxml==0.7.1
deprecation==2.1.0
dnspython==2.1.0
elasticsearch==7.13.4
elasticsearch-dbapi==0.2.6
email-validator==1.1.3
ephem==4.1
et-xmlfile==1.1.0
Flask==1.1.4
Flask-AppBuilder==3.3.3
Flask-Babel==1.0.0
Flask-Caching==1.10.1
Flask-Compress==1.10.1
Flask-JWT-Extended==3.25.1
Flask-Login==0.4.1
Flask-Migrate==3.1.0
Flask-OpenID==1.3.0
Flask-SQLAlchemy==2.5.1
flask-talisman==0.8.1
Flask-WTF==0.14.3
future==0.18.2
geographiclib==1.52
geopy==2.2.0
gevent==21.8.0
google-api-core==2.0.1
google-auth==2.2.1
google-cloud-bigquery==2.27.1
google-cloud-core==2.0.0
google-crc32c==1.2.0
google-resumable-media==2.0.3
googleapis-common-protos==1.53.0
graphlib-backport==1.0.3
greenlet==1.1.2
grpcio==1.41.0
gunicorn==20.0.4
hdbcli==2.10.13
holidays==0.10.3
humanize==3.11.0
idna==3.2
importlib-resources==5.2.2
isodate==0.6.0
itsdangerous==1.1.0
Jinja2==2.11.3
jmespath==0.10.0
jsonschema==3.2.0
kiwisolver==1.3.2
kombu==4.6.11
korean-lunar-calendar==0.2.1
LunarCalendar==0.0.9
Mako==1.1.5
Markdown==3.3.4
MarkupSafe==2.0.1
marshmallow==3.13.0
marshmallow-enum==1.5.1
marshmallow-sqlalchemy==0.23.1
matplotlib==3.4.3
msgpack==1.0.2
msrest==0.6.21
multidict==5.1.0
numpy==1.21.2
oauthlib==3.1.1
openpyxl==3.0.9
oscrypto==1.2.1
packaging==21.0
pandas==1.2.5
parsedatetime==2.6
pgsanity==0.2.9
Pillow==8.3.2
polyline==1.4.0
prison==0.2.1
prophet==1.0
proto-plus==1.19.2
protobuf==3.18.0
psycopg2-binary==2.8.6
pyarrow==4.0.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pybigquery==0.10.2
pycparser==2.20
pycryptodomex==3.10.4
pyhdb==0.3.4
PyJWT==1.7.1
PyMeeus==0.5.11
pyOpenSSL==20.0.1
pyparsing==2.4.7
pyrsistent==0.18.0
pystan==2.18.0.0
python-dateutil==2.8.2
python-dotenv==0.19.0
python-geohash==0.8.5
python-ldap==3.3.1
python3-openid==3.2.0
pytz==2021.1
PyYAML==5.4.1
redis==3.5.3
requests==2.26.0
requests-oauthlib==1.3.0
rsa==4.7.2
s3transfer==0.5.0
selenium==3.141.0
setuptools-git==1.2
simplejson==3.17.5
six==1.16.0
slackclient==2.5.0
snowflake-connector-python==2.6.2
snowflake-sqlalchemy==1.2.4
SQLAlchemy==1.3.24
sqlalchemy-hana==0.5.0
SQLAlchemy-Utils==0.36.8
sqlparse==0.3.0
tabulate==0.8.9
tqdm==4.62.3
typing-extensions==3.10.0.2
ujson==4.2.0
urllib3==1.26.7
vine==1.3.0
webencodings==0.5.1
Werkzeug==1.0.1
WTForms==2.3.3
WTForms-JSON==0.3.3
xlrd==2.0.1
yarl==1.6.3
zipp==3.6.0
zope.event==4.5.0
zope.interface==5.4.0
yousoph commented 3 years ago

Hi @rumbin !

Thanks for the detailed report and video! I have yet to be able to reproduce the issues you're seeing 😞 - could you help with a bit more info?

rumbin commented 3 years ago

@yousoph No, the Superset Training dashboards (there are plenty of them) are not contained in the list.

I counted the list entries: they are truncated to 100, as it seems.

We have many more than 100 dashboards. I'll provide an exact number as soon as I have access.

What else could I try for helping to trace down the issue?

rumbin commented 3 years ago

@yousoph We currently have 313 dashboards of which 100 are shown in the truncated selector list. I haven't found any systematics or ordering in this list, though.

rumbin commented 2 years ago

Same in Superset 1.3.2

villebro commented 2 years ago

@michael-s-molina do you know if this implementation of the select component doesn't support pagination?

michael-s-molina commented 2 years ago

@michael-s-molina do you know if this implementation of the select component doesn't support pagination?

@villebro It's the old Select component. It does not support pagination.

villebro commented 2 years ago

@villebro It's the old Select component. It does not support pagination.

@michael-s-molina would it be a big effort to migrate to the new component?

michael-s-molina commented 2 years ago

@villebro It's the old Select component. It does not support pagination.

@michael-s-molina would it be a big effort to migrate to the new component?

It was already migrated in https://github.com/apache/superset/pull/16144

villebro commented 2 years ago

Oh ok, so then it should work on the forthcoming 1.4 👍

rumbin commented 2 years ago

Thanks having figured this out!

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. For admin, please label this issue .pinned to prevent stale bot from closing the issue.

rusackas commented 1 year ago

Sounds like this is fixed based on the thread above. Closing as resolved, but if you see this crop up in 2.0.x or newer, we can re-open.