SYMBOL INDEX (111 symbols across 22 files) FILE: conftest.py function pytest_collection_modifyitems (line 7) | def pytest_collection_modifyitems(items): function dashboard_db (line 17) | def dashboard_db(settings): function execute_sql_permission (line 24) | def execute_sql_permission(): function saved_dashboard (line 33) | def saved_dashboard(dashboard_db): FILE: django_sql_dashboard/admin.py class DashboardQueryInline (line 9) | class DashboardQueryInline(admin.TabularInline): method has_change_permission (line 13) | def has_change_permission(self, request, obj=None): method get_readonly_fields (line 18) | def get_readonly_fields(self, request, obj=None): class DashboardAdmin (line 26) | class DashboardAdmin(admin.ModelAdmin): method view_dashboard (line 43) | def view_dashboard(self, obj): method save_model (line 48) | def save_model(self, request, obj, form, change): method has_change_permission (line 53) | def has_change_permission(self, request, obj=None): method get_readonly_fields (line 60) | def get_readonly_fields(self, request, obj): method get_queryset (line 66) | def get_queryset(self, request): FILE: django_sql_dashboard/apps.py class DjangoSqlDashboardConfig (line 4) | class DjangoSqlDashboardConfig(AppConfig): FILE: django_sql_dashboard/migrations/0001_initial.py class Migration (line 7) | class Migration(migrations.Migration): FILE: django_sql_dashboard/migrations/0002_dashboard_permissions.py class Migration (line 9) | class Migration(migrations.Migration): FILE: django_sql_dashboard/migrations/0003_update_metadata.py class Migration (line 8) | class Migration(migrations.Migration): FILE: django_sql_dashboard/migrations/0004_add_description_help_text.py class Migration (line 6) | class Migration(migrations.Migration): FILE: django_sql_dashboard/models.py class Dashboard (line 7) | class Dashboard(models.Model): class ViewPolicies (line 23) | class ViewPolicies(models.TextChoices): class EditPolicies (line 32) | class EditPolicies(models.TextChoices): method __str__ (line 69) | def __str__(self): method view_summary (line 72) | def view_summary(self): method get_absolute_url (line 78) | def get_absolute_url(self): method get_edit_url (line 81) | def get_edit_url(self): class Meta (line 84) | class Meta: method user_can_edit (line 87) | def user_can_edit(self, user): method get_editable_by_user (line 107) | def get_editable_by_user(cls, user): method get_visible_to_user (line 122) | def get_visible_to_user(cls, user): class DashboardQuery (line 144) | class DashboardQuery(models.Model): method __str__ (line 150) | def __str__(self): class Meta (line 153) | class Meta: FILE: django_sql_dashboard/templatetags/django_sql_dashboard.py function sign_sql (line 42) | def sign_sql(value): function sql_dashboard_bleach (line 47) | def sql_dashboard_bleach(value): function sql_dashboard_markdown (line 58) | def sql_dashboard_markdown(value): function sql_dashboard_tsv (line 75) | def sql_dashboard_tsv(result): function format_cell (line 85) | def format_cell(value): FILE: django_sql_dashboard/utils.py function sign_sql (line 14) | def sign_sql(sql): function unsign_sql (line 18) | def unsign_sql(signed_sql, try_object=False): class Row (line 33) | class Row: method __init__ (line 34) | def __init__(self, values, columns): method __getitem__ (line 39) | def __getitem__(self, key): method __repr__ (line 45) | def __repr__(self): function displayable_rows (line 49) | def displayable_rows(rows): function extract_named_parameters (line 64) | def extract_named_parameters(sql): function check_for_base64_upgrade (line 75) | def check_for_base64_upgrade(queries): function is_valid_base64_json (line 90) | def is_valid_base64_json(s): function postgresql_reserved_words (line 101) | def postgresql_reserved_words(connection): function apply_sort (line 113) | def apply_sort(sql, sort_column, is_desc=False): FILE: django_sql_dashboard/views.py class SaveDashboardForm (line 39) | class SaveDashboardForm(ModelForm): class Meta (line 42) | class Meta: function dashboard_index (line 63) | def dashboard_index(request): function _dashboard_index (line 131) | def _dashboard_index( function dashboard_json (line 383) | def dashboard_json(request, slug): function dashboard (line 390) | def dashboard(request, slug, json_mode=False): function export_sql_results (line 433) | def export_sql_results(request): FILE: pytest_plugins/pytest_use_postgresql.py function pytest_load_initial_conftests (line 13) | def pytest_load_initial_conftests(early_config, parser, args): function pytest_unconfigure (line 19) | def pytest_unconfigure(config): FILE: test_project/extra_models/models.py class Switch (line 4) | class Switch(models.Model): class Meta (line 8) | class Meta: FILE: test_project/manage.py function main (line 7) | def main(): FILE: test_project/test_dashboard.py function test_dashboard_submit_sql (line 11) | def test_dashboard_submit_sql(admin_client, dashboard_db): function test_invalid_signature_shows_warning (line 43) | def test_invalid_signature_shows_warning(admin_client, dashboard_db): function test_dashboard_upgrade_old_base64_links (line 55) | def test_dashboard_upgrade_old_base64_links(admin_client, dashboard_db, ... function test_dashboard_upgrade_does_not_break_regular_pages (line 69) | def test_dashboard_upgrade_does_not_break_regular_pages( function test_saved_dashboard (line 78) | def test_saved_dashboard(client, admin_client, dashboard_db, saved_dashb... function test_many_long_column_names (line 92) | def test_many_long_column_names(admin_client, dashboard_db): function test_dashboard_sql_errors (line 119) | def test_dashboard_sql_errors(admin_client, sql, expected_error): function test_dashboard_sql_queries (line 140) | def test_dashboard_sql_queries(admin_client, sql, expected_columns, expe... function test_dashboard_uses_post_if_sql_is_too_long (line 152) | def test_dashboard_uses_post_if_sql_is_too_long(admin_client): function test_dashboard_html_title (line 189) | def test_dashboard_html_title( function test_saved_dashboard_errors_sql_not_in_textarea (line 203) | def test_saved_dashboard_errors_sql_not_in_textarea(admin_client, saved_... function test_dashboard_show_available_tables (line 210) | def test_dashboard_show_available_tables(admin_client): FILE: test_project/test_dashboard_permissions.py function test_anonymous_user_redirected_to_login (line 10) | def test_anonymous_user_redirected_to_login(client): function test_superusers_allowed (line 16) | def test_superusers_allowed(admin_client, dashboard_db): function test_must_have_execute_sql_permission (line 22) | def test_must_have_execute_sql_permission( function test_user_without_execute_sql_permission_does_not_see_count_links_on_saved_dashboard (line 42) | def test_user_without_execute_sql_permission_does_not_see_count_links_on... function test_saved_dashboard_anonymous_users_denied_by_default (line 60) | def test_saved_dashboard_anonymous_users_denied_by_default(client, dashb... class UserType (line 67) | class UserType(Enum): function test_saved_dashboard_view_permissions (line 107) | def test_saved_dashboard_view_permissions( function test_unlisted_dashboard_has_meta_robots (line 148) | def test_unlisted_dashboard_has_meta_robots(client, dashboard_db): function test_get_visible_to_user (line 175) | def test_get_visible_to_user( function test_get_visible_to_user_no_dupes (line 253) | def test_get_visible_to_user_no_dupes(db): function test_user_can_edit (line 284) | def test_user_can_edit( function get_admin_change_form_html (line 361) | def get_admin_change_form_html(client, user, dashboard): function can_user_edit_using_admin (line 374) | def can_user_edit_using_admin(client, user, dashboard): function test_superuser_can_reassign_ownership (line 381) | def test_superuser_can_reassign_ownership(client, db): function test_no_link_to_index_on_saved_dashboard_for_logged_out_user (line 399) | def test_no_link_to_index_on_saved_dashboard_for_logged_out_user(client,... FILE: test_project/test_docs.py function test_widgets_are_documented (line 29) | def test_widgets_are_documented(template): FILE: test_project/test_export.py function test_export_requires_setting (line 4) | def test_export_requires_setting(admin_client, dashboard_db): function test_no_export_on_saved_dashboard (line 16) | def test_no_export_on_saved_dashboard( function test_export_csv (line 26) | def test_export_csv(admin_client, dashboard_db, settings): function test_export_tsv (line 48) | def test_export_tsv(admin_client, dashboard_db, settings): function test_export_json (line 71) | def test_export_json(admin_client, saved_dashboard, settings, json_disab... FILE: test_project/test_parameters.py function test_parameter_form (line 10) | def test_parameter_form(admin_client, dashboard_db): function test_parameters_applied (line 39) | def test_parameters_applied(admin_client, dashboard_db): function signed_sql (line 62) | def signed_sql(queries): FILE: test_project/test_save_dashboard.py function test_save_dashboard (line 4) | def test_save_dashboard(admin_client, dashboard_db): FILE: test_project/test_utils.py function test_is_valid_base64_json (line 18) | def test_is_valid_base64_json(input, expected): function test_apply_sort (line 51) | def test_apply_sort(sql, sort_column, is_desc, expected_sql): FILE: test_project/test_widgets.py function test_default_widget (line 10) | def test_default_widget(admin_client, dashboard_db): function test_default_widget_pretty_prints_json (line 34) | def test_default_widget_pretty_prints_json(admin_client, dashboard_db): function test_default_widget_shows_row_count_or_truncated_message (line 66) | def test_default_widget_shows_row_count_or_truncated_message( function test_default_widget_column_count_links (line 77) | def test_default_widget_column_count_links(admin_client, dashboard_db): function test_default_widget_no_count_links_for_ambiguous_columns (line 112) | def test_default_widget_no_count_links_for_ambiguous_columns( function test_big_number_widget (line 128) | def test_big_number_widget(admin_client, dashboard_db): function test_markdown_widget (line 153) | def test_markdown_widget(admin_client, dashboard_db, sql, expected): function test_html_widget (line 164) | def test_html_widget(admin_client, dashboard_db): function test_bar_chart_widget (line 180) | def test_bar_chart_widget(admin_client, dashboard_db): function test_progress_bar_widget (line 201) | def test_progress_bar_widget(admin_client, dashboard_db): function test_word_cloud_widget (line 212) | def test_word_cloud_widget(admin_client, dashboard_db):