This is an automated email from the ASF dual-hosted git repository.
graceguo pushed a change to branch feature--dashboard-scoped-filter
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git.
from c422b49 Update Slack invitation link (#8399)
add c62b2f4 [docs] CTAS on PostgreSQL needs commit to apply (#8367)
add d3406e0 [Config] Cache static resources (#8370)
add a199901 [sqla] Enforcing ISO 8601 date/timestamp formats (#7702)
add 9fc37ea [ci] Deprecate flake8 (#8409)
add 1e533db fixed typo in installation instructions (#8413)
add 4cfd6b3 [tests] Fix, removing deprecated function for future Python
release compatibility. (#8353)
add cca689b Add improved typed casting to BigQuery (#8331)
add 8f246ce chore: disable another flaky cypress test (#8423)
add b91205d [pydruid] Bumping the pydruid version (#8430)
add a0db22b docs: add a note to RELEASING about Slack Channel (#8419)
add cde17a8 docs: Add an 'Orientation' section to CONTRIBUTING.md (#8422)
add 08c6b61 [fix] refine release instructions (#8381)
add 786d770 [fix] Updating parse_human_timedelta typing (#8436)
add 19d2ea2 spelling fix (#8442)
add a39c24e explain the need to enable async queries (#8444)
add 1d5718a introduce a space in command line option (#8438)
add 82b1747 Split up tests/db_engine_test.py (#8449)
add 59889a4 [setup] Fix, download_url (#8439)
add e704e29 Allow fetching all rows from results endpoint (#8389)
add eaeed0c removed repeated word (#8458)
add c1810aa [docs] Crafting a new release (#8433)
add 148cec4 Add UI-only database configuration method for extended
authorization scenarios (#8448)
add a757b43 [db engine] Add support for Elasticsearch (#8441)
add f7f0be5 [SIP-15] Making client time use UTC as the local time (#8450)
add 8b74745 [SIP-15] Adding initial framework (#8398)
add 1adf742 Provide documentation for using a Service Account to connect
to BigQuery (#8462)
add 5fb0bcb [Datasource Editor] A few small UI changes in modal to
prevent accidental edits (#8471)
add 7afda6e Update UPDATING.md (#8465)
add 0a3b121 [sql] Fixing datetime SQL literal (#8464)
add 18c6d17 docs: more release instructions (#8432)
add 3cba1bd feat: add expand_data parameter (#8472)
add e4ca44e Use `config[]` not `config.get()` (#8454)
add 1ccfa4f Re-enable DRUID_IS_ACTIVE flag (#8482)
add a8f1589 fixing typo. (#8487)
add 06a4108 Enhance docs for email reporting (#8486)
add eb150eb [sip-15] Fix time range endpoints encoding (#8481)
add 554a6d8 [sip-15] Adding database level python-date-format (#8474)
add d46b47a feat(TableVis): Switch to the new table plugin (#8446)
add acad66d [datasource editor] Only one click target for edit action
(#8495)
add fda2333 [SIP-15] Updating ISO 8601 regex match to make time optional
(#8494)
add a305b1a Change Fedora installation instructions + some small
formatting changes (#8496)
add 51c2290 feat: add korea(South) info on CountryMap viz and bump
legacy-plugin-chart-country-map to v0.11.4 (#8478)
add 5df1fcb Add `Duplicate Tab` option (#8485)
add 4c35de1 build: bump dompurify version because of nasty xss bypass.
(#8498)
add 9a29116 [typing] superset/models/core.py (#8284)
add 338a2b1 Allow user to customize query cost estimate (#8470)
add 5dba2f4 [SIP-15] Adding grace period (#8490)
add 5617f87 Updating pip with default timeout (#8492)
add 0730261 Fix column type on dbs.encrypted_extra, add instructions for
testing migration downgrades (#8493)
add e8af945 Update query tab's title when saving a new query (#8484)
add 926dca3 [docs] Small fixes on the release docs (#8500)
add 0e64dc8 [SIP-15] Making sure the toast link opens in a new tab (#8503)
add 7e7f553 Remove tabs (#8508)
add 571c474 Make Report a bug link open in a new tab (#8509)
add d78e59b revert tablevis (#8515)
add 1e3d833 [sip-15] Fixing time range endpoints from dashboards (#8513)
add ec476fc Default page: remove title attribute to fall back on
appbuilder.app_name (#8427)
add 397e1e3 Replace hardcoded default colors with defaults in
setupColors.js (#8510)
add 49ea232 [fix] Improve csv upload functionality (#8457)
add c4c01d6 [docs] Adding Slice parameter documentation (#8531)
add 5ed2190 [docs] User tutorial (#8459)
add 650c848 [cli] Fix, import datasources exported by UI (#8477)
add 64de9aa [docs] Updating slice parameter documentation. (#8535)
add 6bce4f9 fab 2.2.0 (#8517)
add 62476c5 Allow customization of documentation icon and text (#8507)
add 763f59f Add support for database engine SAP Hana (#8411)
add b7b655e [docs] 0.35.0 CHANGELOG (#8547)
add a867d41 Upgrade superset-ui/time-format (#8541)
add 1b3e40f Clickable checkbox labels (#8534)
add a58b392 Encode feature flags to JSON pessimistically (#8529)
add 7bfa24d [fix] Re-cleanup legacy filters (#8523)
No new revisions were added by this update.
Summary of changes:
.pre-commit-config.yaml | 17 +-
.travis.yml | 5 +-
CHANGELOG.md | 136 ++++
CONTRIBUTING.md | 381 +++++++++-
RELEASING/Dockerfile.from_tarball | 2 +-
RELEASING/README.md | 171 ++++-
RELEASING/from_tarball_entrypoint.sh | 3 +-
UPDATING.md | 19 +-
contrib/docker/Dockerfile | 4 +-
docs/{tutorial.rst => admintutorial.rst} | 4 +-
docs/index.rst | 6 +-
docs/installation.rst | 201 ++++-
docs/sqllab.rst | 49 ++
docs/{misc.rst => tutorials.rst} | 10 +-
docs/usertutorial.rst | 508 +++++++++++++
docs/visualization.rst | 40 +
pypi_push.sh | 10 +-
requirements-dev.txt | 4 +-
requirements.txt | 2 +-
scripts/sign.sh | 19 +-
setup.cfg | 12 +
setup.py | 10 +-
superset/__init__.py | 61 +-
.../cypress/integration/dashboard/controls.js | 2 +-
.../assets/images/usertutorial/add_new_chart.png | Bin 0 -> 42447 bytes
.../usertutorial/advanced_analytics_base.png | Bin 0 -> 122647 bytes
superset/assets/images/usertutorial/annotation.png | Bin 0 -> 101822 bytes
.../images/usertutorial/annotation_settings.png | Bin 0 -> 22421 bytes
.../usertutorial/average_aggregate_for_cost.png | Bin 0 -> 31741 bytes
.../usertutorial/blue_bar_insert_component.png | Bin 0 -> 56554 bytes
.../images/usertutorial/chose_a_datasource.png | Bin 0 -> 21013 bytes
.../usertutorial/csv_to_database_configuration.png | Bin 0 -> 30607 bytes
.../assets/images/usertutorial/edit-record.png | Bin 0 -> 4940 bytes
.../assets/images/usertutorial/edit_annotation.png | Bin 0 -> 34104 bytes
.../usertutorial/filter_on_origin_country.png | Bin 0 -> 44695 bytes
superset/assets/images/usertutorial/markdown.png | Bin 0 -> 9030 bytes
.../usertutorial/no_filter_on_time_filter.png | Bin 0 -> 35991 bytes
.../images/usertutorial/parse_dates_column.png | Bin 0 -> 22004 bytes
.../images/usertutorial/publish_dashboard.png | Bin 0 -> 67785 bytes
superset/assets/images/usertutorial/resample.png | Bin 0 -> 88488 bytes
.../resize_tutorial_table_on_dashboard.png | Bin 0 -> 40391 bytes
.../assets/images/usertutorial/rolling_mean.png | Bin 0 -> 99706 bytes
.../images/usertutorial/save_tutorial_table.png | Bin 0 -> 8282 bytes
.../usertutorial/select_dates_pivot_table.png | Bin 0 -> 35466 bytes
.../select_table_visualization_type.png | Bin 0 -> 47283 bytes
.../assets/images/usertutorial/sum_cost_column.png | Bin 0 -> 36632 bytes
.../time_comparison_absolute_difference.png | Bin 0 -> 98829 bytes
.../usertutorial/time_comparison_two_series.png | Bin 0 -> 137009 bytes
.../images/usertutorial/tutorial_line_chart.png | Bin 0 -> 97148 bytes
.../images/usertutorial/tutorial_pivot_table.png | Bin 0 -> 57761 bytes
.../assets/images/usertutorial/tutorial_table.png | Bin 0 -> 35897 bytes
.../assets/images/usertutorial/upload_a_csv.png | Bin 0 -> 38213 bytes
superset/assets/package-lock.json | 710 ++++++++++++------
superset/assets/package.json | 13 +-
.../datasource/DatasourceEditor_spec.jsx | 1 +
.../explore/components/CheckboxControl_spec.jsx | 14 +-
.../messageToasts/components/Toast_spec.jsx | 13 +-
.../javascripts/sqllab/TabbedSqlEditors_spec.jsx | 8 +
superset/assets/src/SqlLab/actions/sqlLab.js | 5 +-
superset/assets/src/SqlLab/components/App.jsx | 12 +-
.../assets/src/SqlLab/components/QueryHistory.jsx | 2 +
.../assets/src/SqlLab/components/QuerySearch.jsx | 2 +
.../assets/src/SqlLab/components/QueryTable.jsx | 15 +-
.../assets/src/SqlLab/components/ResultSet.jsx | 3 +-
.../assets/src/SqlLab/components/SouthPane.jsx | 9 +-
.../assets/src/SqlLab/components/SqlEditor.jsx | 2 +
.../src/SqlLab/components/TabbedSqlEditors.jsx | 13 +
superset/assets/src/SqlLab/reducers/sqlLab.js | 5 +-
.../assets/src/datasource/DatasourceEditor.jsx | 71 +-
superset/assets/src/datasource/main.css | 9 +
.../components/controls/CheckboxControl.jsx | 1 +
.../components/controls/DatasourceControl.css} | 30 +-
.../components/controls/DatasourceControl.jsx | 71 +-
.../components/controls/DateFilterControl.jsx | 37 +-
.../assets/src/explore/controlPanels/sections.jsx | 2 +-
superset/assets/src/explore/controls.jsx | 23 +-
.../assets/src/messageToasts/components/Toast.jsx | 3 +-
.../src/messageToasts/stylesheets/toast.less | 2 +-
superset/assets/src/setup/setupColors.js | 1 +
superset/cli.py | 16 +-
superset/common/query_context.py | 12 +-
superset/common/query_object.py | 13 +-
superset/config.py | 83 ++-
superset/connectors/base/models.py | 20 +-
superset/connectors/druid/__init__.py | 3 +-
superset/connectors/druid/models.py | 104 ++-
superset/connectors/druid/views.py | 116 ++-
superset/connectors/sqla/__init__.py | 3 +-
superset/connectors/sqla/models.py | 124 +++-
superset/connectors/sqla/views.py | 47 +-
superset/dataframe.py | 2 +-
superset/db_engine_specs/__init__.py | 4 +-
superset/db_engine_specs/athena.py | 9 +-
superset/db_engine_specs/base.py | 71 +-
superset/db_engine_specs/bigquery.py | 36 +-
superset/db_engine_specs/clickhouse.py | 9 +-
superset/db_engine_specs/db2.py | 6 -
superset/db_engine_specs/drill.py | 9 +-
.../db_engine_specs/{druid.py => elasticsearch.py} | 35 +-
superset/db_engine_specs/exasol.py | 2 +-
superset/db_engine_specs/{oracle.py => hana.py} | 33 +-
superset/db_engine_specs/hive.py | 26 +-
superset/db_engine_specs/impala.py | 10 +-
superset/db_engine_specs/kylin.py | 9 +-
superset/db_engine_specs/mssql.py | 20 +-
superset/db_engine_specs/mysql.py | 13 +-
superset/db_engine_specs/oracle.py | 12 +-
superset/db_engine_specs/postgres.py | 13 +-
superset/db_engine_specs/presto.py | 55 +-
superset/db_engine_specs/sqlite.py | 13 +-
superset/db_engines/hive.py | 4 +-
superset/examples/__init__.py | 34 +-
superset/examples/bart_lines.py | 1 +
superset/examples/birth_names.py | 4 +-
superset/examples/countries.py | 6 +-
superset/examples/country_map.py | 2 +-
superset/examples/deck.py | 22 +-
superset/examples/energy.py | 11 +-
superset/examples/flights.py | 1 +
superset/examples/helpers.py | 9 +-
superset/examples/long_lat.py | 2 +-
superset/examples/misc_dashboard.py | 2 +-
superset/examples/multi_line.py | 1 +
superset/examples/multiformat_time_series.py | 4 +-
superset/examples/paris.py | 1 +
superset/examples/random_time_series.py | 4 +-
superset/examples/sf_population_polygons.py | 1 +
superset/examples/tabbed_dashboard.py | 1 +
superset/examples/unicode_test_data.py | 4 +-
superset/examples/world_bank.py | 17 +-
superset/jinja_context.py | 6 +-
superset/migrations/env.py | 9 +-
.../0b1f1ab473c0_add_extra_column_to_query.py | 2 +-
.../0c5070e96b57_add_user_attributes_table.py | 2 +-
.../11c737c17cc6_deprecate_restricted_metrics.py | 3 +-
...9ee0e3_fix_wrong_constraint_on_table_columns.py | 4 +-
.../versions/1296d28ec131_druid_exports.py | 2 +-
.../versions/12d55656cbca_is_featured.py | 2 +-
.../versions/130915240929_is_sqllab_viz_flow.py | 2 +-
superset/migrations/versions/18dc26817ad2_.py | 2 +-
.../versions/18e88e1cc004_making_audit_nullable.py | 2 +-
.../19a814813610_adding_metric_warning_text.py | 2 +-
.../versions/1a1d627ebd8e_position_json.py | 2 +-
.../versions/1a48a5411020_adding_slug_to_dash.py | 2 +-
.../migrations/versions/1d2ddd543133_log_dt.py | 2 +-
superset/migrations/versions/1d9e835a84f9_.py | 2 +-
superset/migrations/versions/1e2841a4128_.py | 2 +-
...e_form_strip_leading_and_trailing_whitespace.py | 3 +-
.../migrations/versions/2591d77e9831_user_id.py | 2 +-
.../versions/27ae655e4247_make_creator_owners.py | 9 +-
.../289ce07647b_add_encrypted_password_field.py | 2 +-
.../2929af7925ed_tz_offsets_in_data_sources.py | 2 +-
.../versions/2fcdcb35e487_saved_queries.py | 2 +-
superset/migrations/versions/30bb17c0dc76_.py | 2 +-
.../versions/315b3f4da9b0_adding_log_model.py | 2 +-
.../versions/33d996bcc382_update_slice_model.py | 12 +-
.../versions/3b626e2a6783_sync_db_with_models.py | 8 +-
.../3c3ffe173e4f_add_sql_string_to_table.py | 2 +-
...1c4c6_migrate_num_period_compare_and_period_.py | 4 +-
...e1b21cd94a4_change_owner_to_m2m_relation_on_.py | 6 +-
.../41f6a59a61f2_database_options_for_sql_lab.py | 2 +-
.../migrations/versions/430039611635_log_more.py | 2 +-
.../migrations/versions/43df8de3a5f4_dash_json.py | 2 +-
.../4451805bbaa1_remove_double_percents.py | 5 +-
.../versions/4500485bde7d_allow_run_sync_async.py | 2 +-
superset/migrations/versions/45e7da7cfeba_.py | 2 +-
superset/migrations/versions/46ba6aaaac97_.py | 2 +-
...8b9b7_remove_coordinator_from_druid_cluster_.py | 2 +-
superset/migrations/versions/472d2f73dfd4_.py | 2 +-
superset/migrations/versions/4736ec66ce19_.py | 2 +-
superset/migrations/versions/4e6a06bad7a8_init.py | 2 +-
.../versions/4fa88fe24e94_owners_many_to_many.py | 2 +-
.../versions/525c854f0005_log_this_plus.py | 2 +-
.../migrations/versions/55179c7f25c7_sqla_descr.py | 2 +-
...826_add_metadata_column_to_annotation_model_.py | 2 +-
superset/migrations/versions/5a7bad26f2a7_.py | 2 +-
superset/migrations/versions/5ccf602336a0_.py | 2 +-
.../5e4a03ef0bf0_add_request_access_model.py | 2 +-
superset/migrations/versions/6414e83d82b7_.py | 2 +-
.../migrations/versions/65903709c321_allow_dml.py | 6 +-
.../versions/67a6ac9b727b_update_spatial_params.py | 2 +-
.../6c7537a6004a_models_for_email_reports.py | 2 +-
superset/migrations/versions/705732c70154_.py | 2 +-
.../732f1c06bcbf_add_fetch_values_predicate.py | 2 +-
.../versions/7467e77870e4_remove_aggs.py | 2 +-
.../versions/763d4b211ec9_fixing_audit_fk.py | 2 +-
...27d0d1d_reconvert_legacy_filters_into_adhoc.py} | 54 +-
.../versions/7dbf98566af7_slice_description.py | 2 +-
.../versions/7e3ddad2a00b_results_key_to_query.py | 2 +-
superset/migrations/versions/7fcdcde0761c_.py | 2 +-
.../80a67c5192fa_single_pie_chart_metric.py | 3 +-
...a3f04bc82_add_parent_ids_in_dashboard_layout.py | 3 +-
.../versions/836c0bf75904_cache_timeouts.py | 2 +-
...4f117f9_adding_extra_field_to_database_model.py | 2 +-
superset/migrations/versions/8b70aa3d0f87_.py | 2 +-
superset/migrations/versions/8e80a26a31db_.py | 2 +-
.../versions/937d04c16b64_update_datasources.py | 2 +-
.../versions/956a063c52b3_adjusting_key_length.py | 2 +-
superset/migrations/versions/960c69cb1f5b_.py | 2 +-
superset/migrations/versions/979c03af3341_.py | 2 +-
.../versions/a2d606a761d9_adding_favstar_model.py | 2 +-
.../a33a03f16c4a_add_extra_column_to_savedquery.py | 2 +-
.../versions/a61b40f9f57f_remove_allow_run_sync.py | 2 +-
...a65458420354_add_result_backend_time_logging.py | 2 +-
.../a6c18f869a4e_query_start_running_time.py | 2 +-
...7c195a_rewriting_url_from_shortner_with_new_.py | 8 +-
.../a9c47e2c1547_add_impersonate_user_to_dbs.py | 2 +-
...d66c4246e_add_cache_timeout_to_druid_cluster.py | 2 +-
.../versions/ad4d656d92bc_add_avg_metric.py | 2 +-
.../versions/ad82a75afd82_add_query_model.py | 2 +-
.../versions/afb7730f6a9c_remove_empty_filters.py | 5 +-
...er_sql_column_data_type_in_query_mysql_table.py | 2 +-
...dfe5fb6c_adding_verbose_name_to_druid_column.py | 2 +-
.../versions/b46fa1b0b39e_add_params_to_tables.py | 3 +-
.../b4a38aa87893_deprecate_database_expression.py | 2 +-
.../b6fa807eac07_make_names_non_nullable.py | 2 +-
.../bb51420eaf83_add_schema_to_table_model.py | 2 +-
.../versions/bcf3126872fc_add_keyvalue.py | 2 +-
.../versions/bddc498dd179_adhoc_filters.py | 5 +-
.../bebcf3fed1fe_convert_dashboard_v1_positions.py | 2 +-
...acd2cf3df2_alter_type_of_dbs_encrypted_extra.py | 64 ++
.../c3a8f8611885_materializing_permission.py | 2 +-
.../versions/c5756bec8b47_time_grain_sqla.py | 5 +-
.../migrations/versions/c611f2b591b8_dim_spec.py | 2 +-
.../versions/c617da68de7d_form_nullable.py | 2 +-
superset/migrations/versions/c829ff0b37d0_.py | 2 +-
.../versions/c82ee8a39623_add_implicit_tags.py | 3 +-
superset/migrations/versions/c9495751e314_.py | 2 +-
.../versions/ca69c70ec99b_tracking_url.py | 2 +-
... => cca2f5d568c8_add_encrypted_extra_to_dbs.py} | 18 +-
...d38_increase_size_of_name_column_in_ab_view_.py | 2 +-
superset/migrations/versions/d39b1e37131d_.py | 2 +-
superset/migrations/versions/d6db5a5cdb5d_.py | 2 +-
...fdf31bdd4_add_published_column_to_dashboards.py | 2 +-
...1a0d6f2da_remove_limit_used_from_query_model.py | 2 +-
.../versions/d827694c7555_css_templates.py | 2 +-
...d8bc074f7aad_add_new_field_is_restricted_to_.py | 7 +-
.../migrations/versions/d94d33dbe938_form_strip.py | 2 +-
.../db0c65b146bd_update_slice_model_json.py | 5 +-
.../versions/db527d8c4c78_add_db_verbose_name.py | 3 +-
.../versions/ddd6ebdd853b_annotations.py | 2 +-
superset/migrations/versions/e3970889f38e_.py | 2 +-
.../versions/e46f2d27a08e_materialize_perms.py | 2 +-
.../e502db2af7be_add_template_params_to_tables.py | 2 +-
.../versions/e553e78e90c5_add_druid_auth_py_py.py | 2 +-
...8c4473c581_allow_multi_schema_metadata_fetch.py | 2 +-
.../versions/e866bd2d4976_smaller_grid.py | 4 +-
superset/migrations/versions/ea033256294a_.py | 2 +-
.../eca4694defa7_sqllab_setting_defaults.py | 5 +-
...bf6129e13_adding_verbose_name_to_tablecolumn.py | 2 +-
.../versions/f162a1dea4c4_d3format_by_metric.py | 2 +-
superset/migrations/versions/f1f2d4af5b90_.py | 2 +-
superset/migrations/versions/f231d82b9b26_.py | 2 +-
superset/migrations/versions/f959a6652acd_.py | 2 +-
superset/migrations/versions/fbd55e0f83eb_.py | 2 +-
superset/migrations/versions/fc480c87706c_.py | 2 +-
superset/models/__init__.py | 5 +-
superset/models/core.py | 378 +++++-----
superset/models/helpers.py | 23 +-
superset/models/schedules.py | 1 -
superset/models/sql_lab.py | 4 +-
superset/models/sql_types/presto_sql_types.py | 1 -
superset/models/tags.py | 9 +-
superset/security.py | 14 +-
superset/sql_lab.py | 40 +-
superset/sql_validators/__init__.py | 9 +-
superset/sql_validators/presto_db.py | 4 +-
superset/tasks/__init__.py | 3 +-
superset/tasks/cache.py | 1 -
superset/tasks/schedules.py | 38 +-
superset/templates/appbuilder/navbar.html | 6 +-
superset/templates/appbuilder/navbar_right.html | 18 +-
.../templates/superset/models/database/add.html | 1 +
.../templates/superset/models/database/edit.html | 1 +
.../templates/superset/models/database/macros.html | 6 +
superset/translations/en/LC_MESSAGES/messages.po | 3 +-
superset/translations/fr/LC_MESSAGES/messages.json | 2 +-
superset/translations/fr/LC_MESSAGES/messages.po | 4 +-
superset/translations/it/LC_MESSAGES/messages.json | 4 +-
superset/translations/it/LC_MESSAGES/messages.po | 3 +-
superset/translations/ko/LC_MESSAGES/messages.po | 2 +-
superset/translations/messages.pot | 3 +-
superset/translations/ru/LC_MESSAGES/messages.json | 6 +-
superset/translations/ru/LC_MESSAGES/messages.po | 4 +-
superset/translations/utils.py | 3 +-
superset/translations/zh/LC_MESSAGES/messages.json | 4 +-
superset/translations/zh/LC_MESSAGES/messages.po | 4 +-
superset/utils/core.py | 106 +--
superset/utils/decorators.py | 3 +-
superset/utils/dict_import_export.py | 1 -
superset/utils/import_datasource.py | 2 +-
superset/utils/log.py | 6 +-
superset/utils/logging_configurator.py | 25 +-
superset/views/__init__.py | 23 +-
superset/views/annotations.py | 6 +-
superset/views/api.py | 5 +-
superset/views/base.py | 27 +-
superset/views/core.py | 207 ++++--
superset/views/dashboard.py | 1 +
superset/views/database/__init__.py | 23 +-
superset/views/database/api.py | 3 +-
superset/views/database/forms.py | 14 +-
superset/views/database/views.py | 79 +-
superset/views/datasource.py | 1 +
superset/views/log/api.py | 7 +-
superset/views/log/views.py | 7 +-
superset/views/schedules.py | 18 +-
superset/views/sql_lab.py | 6 +-
superset/views/tags.py | 8 +-
superset/views/utils.py | 79 +-
superset/viz.py | 56 +-
tests/access_tests.py | 41 +-
tests/base_tests.py | 8 +-
tests/cache_tests.py | 1 +
tests/celery_tests.py | 10 +-
tests/core_tests.py | 152 +++-
tests/dashboard_tests.py | 3 +-
tests/dataframe_test.py | 25 +-
tests/datasource_tests.py | 12 +-
.../db_engine_specs/athena_tests.py | 21 +-
tests/db_engine_specs/base_engine_spec_tests.py | 208 ++++++
.../db_engine_specs/base_tests.py | 24 +-
tests/db_engine_specs/bigquery_tests.py | 56 ++
.../db_engine_specs/clickhouse_tests.py | 20 +-
.../db_engine_specs/drill_tests.py | 21 +-
.../db_engine_specs/elasticsearch_tests.py | 16 +-
tests/db_engine_specs/hive_tests.py | 164 +++++
.../db_engine_specs/impala_tests.py | 20 +-
.../db_engine_specs/kylin_tests.py | 20 +-
tests/db_engine_specs/mssql_tests.py | 89 +++
tests/db_engine_specs/mysql_tests.py | 43 ++
tests/db_engine_specs/oracle_tests.py | 50 ++
.../db_engine_specs/pinot_tests.py | 24 +-
tests/db_engine_specs/postgres_tests.py | 85 +++
tests/db_engine_specs/presto_tests.py | 356 +++++++++
.../db_engine_specs/sqlite_tests.py | 12 +-
tests/db_engine_specs_test.py | 809 ---------------------
tests/dict_import_export_tests.py | 66 +-
tests/druid_func_tests.py | 11 +-
tests/druid_tests.py | 17 +-
tests/email_tests.py | 35 +-
tests/import_export_tests.py | 93 +--
tests/load_examples_test.py | 1 +
tests/macro_tests.py | 3 +-
tests/migration_tests.py | 3 +-
tests/model_tests.py | 45 +-
tests/schedules_test.py | 19 +-
tests/security_tests.py | 5 +-
tests/sql_parse_tests.py | 136 ++--
tests/sql_validator_tests.py | 3 +-
tests/sqla_models_tests.py | 13 +-
tests/sqllab_tests.py | 67 +-
tests/strategy_tests.py | 2 +-
tests/superset_test_config.py | 6 +-
tests/utils_tests.py | 153 ++--
tests/viz_tests.py | 13 +-
tox.ini | 39 +-
357 files changed, 5712 insertions(+), 2903 deletions(-)
rename docs/{tutorial.rst => admintutorial.rst} (99%)
copy docs/{misc.rst => tutorials.rst} (92%)
create mode 100644 docs/usertutorial.rst
create mode 100644 superset/assets/images/usertutorial/add_new_chart.png
create mode 100644
superset/assets/images/usertutorial/advanced_analytics_base.png
create mode 100644 superset/assets/images/usertutorial/annotation.png
create mode 100644 superset/assets/images/usertutorial/annotation_settings.png
create mode 100644
superset/assets/images/usertutorial/average_aggregate_for_cost.png
create mode 100644
superset/assets/images/usertutorial/blue_bar_insert_component.png
create mode 100644 superset/assets/images/usertutorial/chose_a_datasource.png
create mode 100644
superset/assets/images/usertutorial/csv_to_database_configuration.png
create mode 100644 superset/assets/images/usertutorial/edit-record.png
create mode 100644 superset/assets/images/usertutorial/edit_annotation.png
create mode 100644
superset/assets/images/usertutorial/filter_on_origin_country.png
create mode 100644 superset/assets/images/usertutorial/markdown.png
create mode 100644
superset/assets/images/usertutorial/no_filter_on_time_filter.png
create mode 100644 superset/assets/images/usertutorial/parse_dates_column.png
create mode 100644 superset/assets/images/usertutorial/publish_dashboard.png
create mode 100644 superset/assets/images/usertutorial/resample.png
create mode 100644
superset/assets/images/usertutorial/resize_tutorial_table_on_dashboard.png
create mode 100644 superset/assets/images/usertutorial/rolling_mean.png
create mode 100644 superset/assets/images/usertutorial/save_tutorial_table.png
create mode 100644
superset/assets/images/usertutorial/select_dates_pivot_table.png
create mode 100644
superset/assets/images/usertutorial/select_table_visualization_type.png
create mode 100644 superset/assets/images/usertutorial/sum_cost_column.png
create mode 100644
superset/assets/images/usertutorial/time_comparison_absolute_difference.png
create mode 100644
superset/assets/images/usertutorial/time_comparison_two_series.png
create mode 100644 superset/assets/images/usertutorial/tutorial_line_chart.png
create mode 100644 superset/assets/images/usertutorial/tutorial_pivot_table.png
create mode 100644 superset/assets/images/usertutorial/tutorial_table.png
create mode 100644 superset/assets/images/usertutorial/upload_a_csv.png
copy superset/assets/{stylesheets/explore.css =>
src/explore/components/controls/DatasourceControl.css} (76%)
copy superset/db_engine_specs/{druid.py => elasticsearch.py} (53%)
copy superset/db_engine_specs/{oracle.py => hana.py} (51%)
copy superset/migrations/versions/{bddc498dd179_adhoc_filters.py =>
78ee127d0d1d_reconvert_legacy_filters_into_adhoc.py} (64%)
create mode 100644
superset/migrations/versions/c2acd2cf3df2_alter_type_of_dbs_encrypted_extra.py
copy superset/migrations/versions/{1e2841a4128_.py =>
cca2f5d568c8_add_encrypted_extra_to_dbs.py} (75%)
copy superset/legacy.py => tests/db_engine_specs/athena_tests.py (59%)
create mode 100644 tests/db_engine_specs/base_engine_spec_tests.py
copy superset/utils/dates.py => tests/db_engine_specs/base_tests.py (56%)
create mode 100644 tests/db_engine_specs/bigquery_tests.py
copy superset/legacy.py => tests/db_engine_specs/clickhouse_tests.py (61%)
copy superset/legacy.py => tests/db_engine_specs/drill_tests.py (59%)
copy superset/legacy.py => tests/db_engine_specs/elasticsearch_tests.py (66%)
create mode 100644 tests/db_engine_specs/hive_tests.py
copy superset/legacy.py => tests/db_engine_specs/impala_tests.py (60%)
copy superset/legacy.py => tests/db_engine_specs/kylin_tests.py (61%)
create mode 100644 tests/db_engine_specs/mssql_tests.py
create mode 100644 tests/db_engine_specs/mysql_tests.py
create mode 100644 tests/db_engine_specs/oracle_tests.py
copy superset/bin/superset => tests/db_engine_specs/pinot_tests.py (56%)
mode change 100755 => 100644
create mode 100644 tests/db_engine_specs/postgres_tests.py
create mode 100644 tests/db_engine_specs/presto_tests.py
copy superset/db_engine_specs/gsheets.py =>
tests/db_engine_specs/sqlite_tests.py (74%)
delete mode 100644 tests/db_engine_specs_test.py