nautobot 2.4.17__py3-none-any.whl → 2.4.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/apps/ui.py +6 -0
- nautobot/apps/views.py +2 -0
- nautobot/circuits/tables.py +1 -1
- nautobot/circuits/templates/circuits/circuit_create.html +7 -7
- nautobot/circuits/templates/circuits/circuit_retrieve.html +1 -5
- nautobot/circuits/templates/circuits/circuittermination_create.html +26 -26
- nautobot/circuits/templates/circuits/circuittermination_retrieve.html +1 -8
- nautobot/circuits/templates/circuits/inc/circuit_termination.html +20 -20
- nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +3 -3
- nautobot/circuits/templates/circuits/inc/circuit_termination_speed_fragment.html +9 -0
- nautobot/circuits/templates/circuits/providernetwork_retrieve.html +1 -3
- nautobot/circuits/tests/integration/test_circuit.py +2 -2
- nautobot/circuits/views.py +49 -15
- nautobot/cloud/templates/cloud/cloudaccount_retrieve.html +1 -4
- nautobot/cloud/templates/cloud/cloudnetwork_retrieve.html +1 -7
- nautobot/cloud/templates/cloud/cloudresourcetype_retrieve.html +1 -3
- nautobot/cloud/templates/cloud/cloudservice_retrieve.html +1 -5
- nautobot/cloud/views.py +45 -0
- nautobot/core/filters.py +2 -2
- nautobot/core/graphql/generators.py +5 -2
- nautobot/core/jobs/bulk_actions.py +48 -85
- nautobot/core/models/querysets.py +2 -1
- nautobot/core/settings.py +1 -0
- nautobot/core/settings.yaml +9 -0
- nautobot/core/tables.py +21 -23
- nautobot/core/templates/40x.html +15 -15
- nautobot/core/templates/500.html +21 -21
- nautobot/core/templates/admin/app_index.html +8 -8
- nautobot/core/templates/admin/base.html +104 -104
- nautobot/core/templates/admin/change_form.html +65 -65
- nautobot/core/templates/admin/change_list.html +60 -60
- nautobot/core/templates/admin/change_list_results.html +39 -39
- nautobot/core/templates/admin/config/config.html +47 -47
- nautobot/core/templates/admin/delete_confirmation.html +47 -47
- nautobot/core/templates/admin/edit_inline/stacked.html +124 -124
- nautobot/core/templates/admin/edit_inline/tabular.html +60 -60
- nautobot/core/templates/admin/includes/fieldset.html +4 -4
- nautobot/core/templates/admin/index.html +60 -60
- nautobot/core/templates/admin/prepopulated_fields_js.html +18 -18
- nautobot/core/templates/admin/submit_line.html +4 -4
- nautobot/core/templates/base_django.html +46 -46
- nautobot/core/templates/buttons/consolidated_bulk_action_buttons.html +8 -8
- nautobot/core/templates/buttons/consolidated_detail_view_action_buttons.html +8 -8
- nautobot/core/templates/buttons/export.html +3 -3
- nautobot/core/templates/components/breadcrumbs.html +19 -0
- nautobot/core/templates/components/button/default.html +3 -3
- nautobot/core/templates/components/button/dropdown.html +7 -7
- nautobot/core/templates/components/button/formbutton.html +4 -4
- nautobot/core/templates/components/panel/body_content_data_table.html +1 -1
- nautobot/core/templates/components/panel/body_wrapper_generic_table.html +3 -0
- nautobot/core/templates/components/panel/footer_content_table.html +3 -1
- nautobot/core/templates/components/panel/header_extra_content_table.html +10 -1
- nautobot/core/templates/components/tab/content_wrapper.html +1 -1
- nautobot/core/templates/components/tab/label_wrapper.html +1 -1
- nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +10 -3
- nautobot/core/templates/generic/object_bulk_add_component.html +40 -40
- nautobot/core/templates/generic/object_bulk_create.html +3 -3
- nautobot/core/templates/generic/object_bulk_destroy.html +6 -6
- nautobot/core/templates/generic/object_bulk_update.html +52 -52
- nautobot/core/templates/generic/object_changelog.html +0 -2
- nautobot/core/templates/generic/object_import.html +33 -33
- nautobot/core/templates/generic/object_list.html +271 -268
- nautobot/core/templates/generic/object_notes.html +0 -2
- nautobot/core/templates/generic/object_retrieve.html +264 -257
- nautobot/core/templates/graphene/graphiql.html +127 -127
- nautobot/core/templates/home.html +62 -62
- nautobot/core/templates/inc/computed_fields/panel_data.html +13 -13
- nautobot/core/templates/inc/created_updated.html +8 -8
- nautobot/core/templates/inc/custom_fields/panel_data.html +13 -13
- nautobot/core/templates/inc/dynamic_groups_panel.html +11 -11
- nautobot/core/templates/inc/footer.html +19 -19
- nautobot/core/templates/inc/javascript.html +1 -1
- nautobot/core/templates/inc/media.html +46 -46
- nautobot/core/templates/inc/nav_menu.html +1 -1
- nautobot/core/templates/inc/relationships_table_rows.html +22 -22
- nautobot/core/templates/inc/tenant_table_row.html +1 -1
- nautobot/core/templates/login.html +77 -77
- nautobot/core/templates/media_failure.html +38 -38
- nautobot/core/templates/panel_table.html +1 -1
- nautobot/core/templates/rest_framework/api.html +3 -3
- nautobot/core/templates/search.html +1 -1
- nautobot/core/templates/swagger_ui.html +9 -9
- nautobot/core/templates/utilities/confirmation_form.html +18 -18
- nautobot/core/templates/utilities/render_field.html +1 -1
- nautobot/core/templates/utilities/render_jinja2.html +43 -43
- nautobot/core/templates/utilities/templatetags/filter_form_modal.html +56 -56
- nautobot/core/templates/utilities/templatetags/utilization_graph.html +1 -1
- nautobot/core/templates/utilities/theme_preview.html +799 -799
- nautobot/core/templates/utilities/worker_status.html +122 -122
- nautobot/core/templates/widgets/clearable_file.html +3 -3
- nautobot/core/templates/widgets/sluginput.html +1 -1
- nautobot/core/templatetags/buttons.py +8 -2
- nautobot/core/templatetags/helpers.py +24 -0
- nautobot/core/templatetags/ui_framework.py +40 -5
- nautobot/core/testing/filters.py +37 -21
- nautobot/core/testing/integration.py +7 -4
- nautobot/core/testing/views.py +49 -5
- nautobot/core/tests/test_breadcrumbs.py +78 -4
- nautobot/core/tests/test_commands.py +7 -4
- nautobot/core/tests/test_graphql.py +20 -5
- nautobot/core/tests/test_jobs.py +34 -21
- nautobot/core/tests/test_tables.py +43 -6
- nautobot/core/tests/test_templatetags_ui_framework.py +146 -0
- nautobot/core/tests/test_titles.py +2 -2
- nautobot/core/tests/test_ui.py +188 -1
- nautobot/core/tests/test_utils.py +35 -0
- nautobot/core/tests/test_views.py +45 -0
- nautobot/core/tests/test_views_generic.py +43 -0
- nautobot/core/tests/test_views_utils.py +239 -5
- nautobot/core/ui/breadcrumbs.py +220 -28
- nautobot/core/ui/bulk_buttons.py +8 -0
- nautobot/core/ui/object_detail.py +181 -60
- nautobot/core/ui/titles.py +10 -5
- nautobot/core/utils/requests.py +27 -2
- nautobot/core/views/__init__.py +24 -3
- nautobot/core/views/generic.py +70 -35
- nautobot/core/views/mixins.py +226 -122
- nautobot/core/views/utils.py +270 -1
- nautobot/dcim/api/serializers.py +8 -2
- nautobot/dcim/constants.py +1 -0
- nautobot/dcim/factory.py +4 -3
- nautobot/dcim/filters/mixins.py +1 -2
- nautobot/dcim/forms.py +5 -1
- nautobot/dcim/migrations/0074_alter_rack_u_height.py +21 -0
- nautobot/dcim/models/devices.py +30 -1
- nautobot/dcim/models/racks.py +2 -2
- nautobot/dcim/tables/__init__.py +2 -0
- nautobot/dcim/tables/devices.py +24 -0
- nautobot/dcim/tables/power.py +2 -2
- nautobot/dcim/templates/dcim/cable.html +53 -53
- nautobot/dcim/templates/dcim/cable_connect.html +182 -182
- nautobot/dcim/templates/dcim/cable_trace.html +1 -1
- nautobot/dcim/templates/dcim/console_port_connection_list.html +5 -5
- nautobot/dcim/templates/dcim/consoleport.html +86 -86
- nautobot/dcim/templates/dcim/consoleserverport.html +86 -86
- nautobot/dcim/templates/dcim/controller_create.html +34 -34
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -68
- nautobot/dcim/templates/dcim/device/base.html +1 -114
- nautobot/dcim/templates/dcim/device/config.html +17 -17
- nautobot/dcim/templates/dcim/device/consoleports.html +1 -52
- nautobot/dcim/templates/dcim/device/consoleserverports.html +1 -52
- nautobot/dcim/templates/dcim/device/devicebays.html +1 -48
- nautobot/dcim/templates/dcim/device/frontports.html +1 -52
- nautobot/dcim/templates/dcim/device/interfaces.html +1 -56
- nautobot/dcim/templates/dcim/device/inventory.html +1 -48
- nautobot/dcim/templates/dcim/device/lldp_neighbors.html +64 -64
- nautobot/dcim/templates/dcim/device/modulebays.html +1 -48
- nautobot/dcim/templates/dcim/device/poweroutlets.html +1 -52
- nautobot/dcim/templates/dcim/device/powerports.html +1 -52
- nautobot/dcim/templates/dcim/device/rearports.html +1 -52
- nautobot/dcim/templates/dcim/device/status.html +66 -66
- nautobot/dcim/templates/dcim/device/wireless.html +1 -72
- nautobot/dcim/templates/dcim/device.html +4 -422
- nautobot/dcim/templates/dcim/device_component.html +0 -19
- nautobot/dcim/templates/dcim/device_component_add.html +25 -25
- nautobot/dcim/templates/dcim/device_create.html +229 -0
- nautobot/dcim/templates/dcim/device_edit.html +2 -227
- nautobot/dcim/templates/dcim/devicebay.html +41 -41
- nautobot/dcim/templates/dcim/devicebay_populate.html +32 -32
- nautobot/dcim/templates/dcim/devicetype_component_add.html +28 -28
- nautobot/dcim/templates/dcim/devicetype_retrieve.html +1 -3
- nautobot/dcim/templates/dcim/frontport.html +84 -84
- nautobot/dcim/templates/dcim/inc/cable_toggle_buttons.html +1 -1
- nautobot/dcim/templates/dcim/inc/device_interface_filter.html +8 -0
- nautobot/dcim/templates/dcim/inc/device_napalm_tabs.html +1 -15
- nautobot/dcim/templates/dcim/inc/location_hierarchy.html +22 -22
- nautobot/dcim/templates/dcim/interface.html +206 -206
- nautobot/dcim/templates/dcim/interface_connection_list.html +5 -5
- nautobot/dcim/templates/dcim/interfaceredundancygroupassociation_create.html +6 -6
- nautobot/dcim/templates/dcim/inventoryitem.html +44 -44
- nautobot/dcim/templates/dcim/inventoryitem_add.html +32 -32
- nautobot/dcim/templates/dcim/inventoryitem_edit.html +22 -22
- nautobot/dcim/templates/dcim/location_migrate_data_to_contact.html +46 -46
- nautobot/dcim/templates/dcim/location_retrieve.html +1 -7
- nautobot/dcim/templates/dcim/locationtype.html +1 -6
- nautobot/dcim/templates/dcim/locationtype_retrieve.html +1 -7
- nautobot/dcim/templates/dcim/module/base.html +85 -85
- nautobot/dcim/templates/dcim/module_interfaces.html +1 -1
- nautobot/dcim/templates/dcim/module_modulebays.html +1 -1
- nautobot/dcim/templates/dcim/module_retrieve.html +52 -52
- nautobot/dcim/templates/dcim/module_update.html +61 -61
- nautobot/dcim/templates/dcim/modulebay_destroy.html +1 -1
- nautobot/dcim/templates/dcim/modulebay_retrieve.html +83 -99
- nautobot/dcim/templates/dcim/modulebay_update.html +33 -33
- nautobot/dcim/templates/dcim/modulefamily_retrieve.html +1 -1
- nautobot/dcim/templates/dcim/moduletype_retrieve.html +140 -144
- nautobot/dcim/templates/dcim/platform_create.html +38 -38
- nautobot/dcim/templates/dcim/power_port_connection_list.html +5 -5
- nautobot/dcim/templates/dcim/powerfeed_retrieve.html +1 -8
- nautobot/dcim/templates/dcim/poweroutlet.html +85 -85
- nautobot/dcim/templates/dcim/powerpanel_retrieve.html +1 -8
- nautobot/dcim/templates/dcim/powerport.html +91 -91
- nautobot/dcim/templates/dcim/rack_elevation_list.html +18 -18
- nautobot/dcim/templates/dcim/rack_retrieve.html +264 -274
- nautobot/dcim/templates/dcim/rackreservation_retrieve.html +0 -3
- nautobot/dcim/templates/dcim/rearport.html +78 -78
- nautobot/dcim/templates/dcim/virtualchassis_retrieve.html +1 -50
- nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -5
- nautobot/dcim/tests/integration/test_device_bulk_operations.py +3 -2
- nautobot/dcim/tests/integration/test_location_bulk_operations.py +6 -2
- nautobot/dcim/tests/test_api.py +33 -1
- nautobot/dcim/tests/test_views.py +189 -4
- nautobot/dcim/ui.py +29 -0
- nautobot/dcim/urls.py +1 -109
- nautobot/dcim/utils.py +30 -0
- nautobot/dcim/views.py +1149 -550
- nautobot/extras/filters/mixins.py +1 -1
- nautobot/extras/forms/forms.py +15 -0
- nautobot/extras/models/groups.py +10 -1
- nautobot/extras/models/jobs.py +2 -2
- nautobot/extras/plugins/views.py +18 -5
- nautobot/extras/tables.py +24 -2
- nautobot/extras/templates/extras/computedfield_edit.html +4 -4
- nautobot/extras/templates/extras/configcontext_update.html +1 -1
- nautobot/extras/templates/extras/configcontextschema_retrieve.html +32 -32
- nautobot/extras/templates/extras/customfield_retrieve.html +1 -128
- nautobot/extras/templates/extras/customfield_update.html +23 -23
- nautobot/extras/templates/extras/dynamicgroup.html +2 -99
- nautobot/extras/templates/extras/dynamicgroup_edit.html +2 -199
- nautobot/extras/templates/extras/dynamicgroup_retrieve.html +99 -0
- nautobot/extras/templates/extras/dynamicgroup_update.html +199 -0
- nautobot/extras/templates/extras/gitrepository.html +2 -82
- nautobot/extras/templates/extras/gitrepository_list.html +10 -10
- nautobot/extras/templates/extras/gitrepository_object_edit.html +2 -13
- nautobot/extras/templates/extras/gitrepository_retrieve.html +82 -0
- nautobot/extras/templates/extras/gitrepository_update.html +13 -0
- nautobot/extras/templates/extras/graphqlquery_retrieve.html +73 -73
- nautobot/extras/templates/extras/inc/configcontext_format.html +2 -2
- nautobot/extras/templates/extras/inc/job_table.html +10 -10
- nautobot/extras/templates/extras/inc/jobresult.html +21 -21
- nautobot/extras/templates/extras/inc/jobresult_js.html +6 -6
- nautobot/extras/templates/extras/inc/tags_panel.html +10 -10
- nautobot/extras/templates/extras/job.html +64 -64
- nautobot/extras/templates/extras/job_approval_request.html +9 -9
- nautobot/extras/templates/extras/job_bulk_edit.html +13 -13
- nautobot/extras/templates/extras/job_edit.html +45 -45
- nautobot/extras/templates/extras/job_list.html +4 -4
- nautobot/extras/templates/extras/jobresult_retrieve.html +0 -25
- nautobot/extras/templates/extras/marketplace.html +101 -101
- nautobot/extras/templates/extras/metadatatype_create.html +20 -20
- nautobot/extras/templates/extras/note_retrieve.html +0 -52
- nautobot/extras/templates/extras/object_assign_contact_or_team.html +18 -18
- nautobot/extras/templates/extras/object_configcontext.html +1 -3
- nautobot/extras/templates/extras/objectchange.html +2 -165
- nautobot/extras/templates/extras/objectchange_retrieve.html +165 -0
- nautobot/extras/templates/extras/plugin_detail.html +44 -48
- nautobot/extras/templates/extras/plugins_list.html +9 -11
- nautobot/extras/templates/extras/plugins_tiles.html +26 -26
- nautobot/extras/templates/extras/relationship_edit.html +4 -4
- nautobot/extras/templates/extras/role_retrieve.html +13 -13
- nautobot/extras/templates/extras/scheduled_jobs_approval_queue_list.html +21 -21
- nautobot/extras/templates/extras/scheduledjob.html +128 -128
- nautobot/extras/templates/extras/secret_create.html +53 -53
- nautobot/extras/templates/extras/secretsgroup_update.html +13 -13
- nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +3 -3
- nautobot/extras/templates/extras/webhook.html +79 -79
- nautobot/extras/tests/integration/test_relationships.py +6 -6
- nautobot/extras/tests/test_dynamicgroups.py +73 -18
- nautobot/extras/tests/test_filters.py +1 -1
- nautobot/extras/tests/test_jobs.py +2 -0
- nautobot/extras/tests/test_views.py +8 -3
- nautobot/extras/urls.py +3 -97
- nautobot/extras/views.py +524 -456
- nautobot/ipam/filters.py +2 -2
- nautobot/ipam/migrations/0053_alter_vrfdeviceassignment_options_and_more.py +20 -0
- nautobot/ipam/models.py +34 -0
- nautobot/ipam/querysets.py +3 -3
- nautobot/ipam/signals.py +6 -1
- nautobot/ipam/tables.py +3 -1
- nautobot/ipam/templates/ipam/inc/prefix_header_extra_content_table.html +4 -0
- nautobot/ipam/templates/ipam/inc/toggle_available.html +8 -8
- nautobot/ipam/templates/ipam/inc/vlangroup_header.html +4 -4
- nautobot/ipam/templates/ipam/ipaddress.html +119 -123
- nautobot/ipam/templates/ipam/ipaddress_assign.html +10 -10
- nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -1
- nautobot/ipam/templates/ipam/ipaddress_merge.html +180 -180
- nautobot/ipam/templates/ipam/ipaddresstointerface_retrieve.html +48 -48
- nautobot/ipam/templates/ipam/prefix.html +2 -115
- nautobot/ipam/templates/ipam/prefix_create.html +34 -0
- nautobot/ipam/templates/ipam/prefix_edit.html +1 -34
- nautobot/ipam/templates/ipam/prefix_retrieve.html +3 -0
- nautobot/ipam/templates/ipam/service_retrieve.html +1 -6
- nautobot/ipam/templates/ipam/vlan_retrieve.html +1 -7
- nautobot/ipam/templates/ipam/vrf_edit.html +1 -1
- nautobot/ipam/tests/test_api.py +5 -0
- nautobot/ipam/tests/test_models.py +387 -0
- nautobot/ipam/tests/test_querysets.py +46 -0
- nautobot/ipam/tests/test_views.py +34 -0
- nautobot/ipam/ui.py +145 -0
- nautobot/ipam/urls.py +1 -46
- nautobot/ipam/utils/__init__.py +26 -0
- nautobot/ipam/utils/migrations.py +1 -1
- nautobot/ipam/views.py +234 -112
- nautobot/project-static/docs/404.html +11 -11
- nautobot/project-static/docs/apps/index.html +11 -11
- nautobot/project-static/docs/apps/nautobot-apps.html +11 -11
- nautobot/project-static/docs/assets/javascripts/{bundle.92b07e13.min.js → bundle.f55a23d4.min.js} +2 -2
- nautobot/project-static/docs/assets/javascripts/{bundle.92b07e13.min.js.map → bundle.f55a23d4.min.js.map} +2 -2
- nautobot/project-static/docs/assets/stylesheets/{main.7e37652d.min.css → main.e53b48f4.min.css} +1 -1
- nautobot/project-static/docs/assets/stylesheets/{main.7e37652d.min.css.map → main.e53b48f4.min.css.map} +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +83 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +1265 -281
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +11 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +12 -12
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +452 -29
- nautobot/project-static/docs/development/apps/api/configuration-view.html +11 -11
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +11 -11
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +11 -11
- nautobot/project-static/docs/development/apps/api/models/global-search.html +11 -11
- nautobot/project-static/docs/development/apps/api/models/graphql.html +11 -11
- nautobot/project-static/docs/development/apps/api/models/index.html +11 -11
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +12 -12
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/prepopulating-data.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +11 -11
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +11 -11
- nautobot/project-static/docs/development/apps/api/prometheus.html +11 -11
- nautobot/project-static/docs/development/apps/api/setup.html +11 -11
- nautobot/project-static/docs/development/apps/api/testing.html +11 -11
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +11 -11
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +11 -11
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +11 -11
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +11 -11
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/base-template.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/index.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/notes.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +11 -11
- nautobot/project-static/docs/development/apps/api/views/urls.html +11 -11
- nautobot/project-static/docs/development/apps/index.html +11 -11
- nautobot/project-static/docs/development/apps/migration/code-updates.html +11 -11
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +11 -11
- nautobot/project-static/docs/development/apps/migration/from-v1.html +11 -11
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +11 -11
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +11 -11
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +11 -11
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +11 -11
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +11 -11
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/breadcrumbs-titles.html +11 -11
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +11 -11
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +11 -11
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +11 -11
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +11 -11
- nautobot/project-static/docs/development/core/application-registry.html +11 -11
- nautobot/project-static/docs/development/core/best-practices.html +11 -11
- nautobot/project-static/docs/development/core/bootstrap-ui.html +11 -11
- nautobot/project-static/docs/development/core/caching.html +11 -11
- nautobot/project-static/docs/development/core/controllers.html +11 -11
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +11 -11
- nautobot/project-static/docs/development/core/generic-views.html +11 -11
- nautobot/project-static/docs/development/core/getting-started.html +50 -63
- nautobot/project-static/docs/development/core/homepage.html +11 -11
- nautobot/project-static/docs/development/core/index.html +11 -11
- nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +11 -11
- nautobot/project-static/docs/development/core/model-checklist.html +11 -11
- nautobot/project-static/docs/development/core/model-features.html +11 -11
- nautobot/project-static/docs/development/core/natural-keys.html +11 -11
- nautobot/project-static/docs/development/core/navigation-menu.html +11 -11
- nautobot/project-static/docs/development/core/release-checklist.html +11 -11
- nautobot/project-static/docs/development/core/role-internals.html +11 -11
- nautobot/project-static/docs/development/core/settings.html +11 -11
- nautobot/project-static/docs/development/core/style-guide.html +15 -11
- nautobot/project-static/docs/development/core/templates.html +11 -11
- nautobot/project-static/docs/development/core/testing.html +11 -11
- nautobot/project-static/docs/development/core/ui-component-framework.html +17 -22
- nautobot/project-static/docs/development/core/user-preferences.html +11 -11
- nautobot/project-static/docs/development/index.html +11 -11
- nautobot/project-static/docs/development/jobs/getting-started.html +11 -11
- nautobot/project-static/docs/development/jobs/index.html +11 -11
- nautobot/project-static/docs/development/jobs/installation.html +11 -11
- nautobot/project-static/docs/development/jobs/job-extensions.html +11 -11
- nautobot/project-static/docs/development/jobs/job-logging.html +11 -11
- nautobot/project-static/docs/development/jobs/job-patterns.html +11 -11
- nautobot/project-static/docs/development/jobs/job-structure.html +11 -11
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +11 -11
- nautobot/project-static/docs/development/jobs/testing.html +11 -11
- nautobot/project-static/docs/index.html +11 -11
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +11 -11
- nautobot/project-static/docs/overview/design_philosophy.html +11 -11
- nautobot/project-static/docs/release-notes/index.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.0.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.1.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.2.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.3.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.4.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.5.html +11 -11
- nautobot/project-static/docs/release-notes/version-1.6.html +11 -11
- nautobot/project-static/docs/release-notes/version-2.0.html +11 -11
- nautobot/project-static/docs/release-notes/version-2.1.html +11 -11
- nautobot/project-static/docs/release-notes/version-2.2.html +11 -11
- nautobot/project-static/docs/release-notes/version-2.3.html +11 -11
- nautobot/project-static/docs/release-notes/version-2.4.html +418 -11
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +300 -300
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +11 -11
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +11 -11
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +11 -11
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +11 -11
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +11 -11
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +38 -11
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +89 -14
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +11 -11
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/index.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +11 -11
- nautobot/project-static/docs/user-guide/administration/installation/services.html +11 -11
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +11 -11
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +11 -11
- nautobot/project-static/docs/user-guide/administration/security/index.html +11 -11
- nautobot/project-static/docs/user-guide/administration/security/notices.html +11 -11
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +11 -11
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +11 -11
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulefamily.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +11 -11
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +11 -11
- nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +11 -11
- nautobot/project-static/docs/user-guide/index.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +11 -11
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +11 -11
- nautobot/project-static/img/nautobot_icon.svg +32 -34
- nautobot/project-static/js/table_sorting_indicator.js +0 -2
- nautobot/tenancy/templates/tenancy/tenant.html +1 -7
- nautobot/tenancy/views.py +13 -0
- nautobot/users/templates/users/api_tokens.html +4 -4
- nautobot/users/templates/users/base.html +28 -28
- nautobot/virtualization/templates/virtualization/cluster.html +64 -64
- nautobot/virtualization/templates/virtualization/inc/virtualmachine_vminterface_filter.html +8 -0
- nautobot/virtualization/templates/virtualization/virtualmachine_component_add.html +25 -25
- nautobot/virtualization/templates/virtualization/virtualmachine_retrieve.html +1 -251
- nautobot/virtualization/templates/virtualization/vminterface.html +70 -70
- nautobot/virtualization/urls.py +0 -12
- nautobot/virtualization/views.py +158 -54
- nautobot/wireless/templates/wireless/wirelessnetwork_create.html +13 -13
- nautobot/wireless/tests/integration/test_radio_profile.py +1 -1
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/METADATA +4 -4
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/RECORD +623 -607
- nautobot/core/templates/inc/breadcrumbs.html +0 -14
- nautobot/ipam/templates/ipam/prefix_ipaddresses.html +0 -11
- nautobot/ipam/templates/ipam/prefix_prefixes.html +0 -11
- nautobot/project-static/docs/requirements.txt +0 -14
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/NOTICE +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/WHEEL +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.19.dist-info}/entry_points.txt +0 -0
|
@@ -1,199 +1,2 @@
|
|
|
1
|
-
{% extends '
|
|
2
|
-
{%
|
|
3
|
-
{% load form_helpers %}
|
|
4
|
-
|
|
5
|
-
{% block form_errors %}
|
|
6
|
-
{% if form.non_field_errors %}
|
|
7
|
-
<div class="panel panel-danger">
|
|
8
|
-
<div class="panel-heading"><strong>Errors</strong></div>
|
|
9
|
-
<div class="panel-body">
|
|
10
|
-
{{ form.non_field_errors }}
|
|
11
|
-
{% for child in children.forms %}
|
|
12
|
-
{% if child.errors %}
|
|
13
|
-
{% for error in child.errors.values %}{{ error }}{% endfor %}
|
|
14
|
-
{% endif %}
|
|
15
|
-
{% endfor %}
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
{% endif %}
|
|
19
|
-
{% endblock %}
|
|
20
|
-
|
|
21
|
-
{% block form %}
|
|
22
|
-
<div class="panel panel-default">
|
|
23
|
-
<div class="panel-heading"><strong>Dynamic Group</strong></div>
|
|
24
|
-
<div class="panel-body">
|
|
25
|
-
{% render_field form.name %}
|
|
26
|
-
{% render_field form.description %}
|
|
27
|
-
{% render_field form.content_type %}
|
|
28
|
-
{% render_field form.group_type %}
|
|
29
|
-
{% render_field form.tenant %}
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
<div class="panel panel-default">
|
|
33
|
-
<div class="panel-heading"><strong>Filter Options</strong></div>
|
|
34
|
-
<div class="panel-body">
|
|
35
|
-
<ul class="nav nav-tabs" role="tablist">
|
|
36
|
-
<li role="presentation" class="active">
|
|
37
|
-
<a href="#filter-form" role="tab" data-toggle="tab">Filter Fields</a>
|
|
38
|
-
</li>
|
|
39
|
-
<li role="presentation">
|
|
40
|
-
<a href="#children-form" role="tab" data-toggle="tab">Child Groups</a>
|
|
41
|
-
</li>
|
|
42
|
-
</ul>
|
|
43
|
-
<div class="tab-content">
|
|
44
|
-
<div class="tab-pane active" id="filter-form">
|
|
45
|
-
{% if filter_form %}
|
|
46
|
-
<span class="help-block">
|
|
47
|
-
Select the filtering criteria to determine membership of objects matching
|
|
48
|
-
the Content Type for this Dynamic Group. Fields that are not a dropdown are
|
|
49
|
-
expected to have string inputs and do not support multiple values.
|
|
50
|
-
</span>
|
|
51
|
-
|
|
52
|
-
<div class="panel panel-default">
|
|
53
|
-
<div class="panel-heading"><strong>Object Fields</strong></div>
|
|
54
|
-
<div class="panel-body">
|
|
55
|
-
{% render_form filter_form excluded_fields="[]" %}
|
|
56
|
-
</div>
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
{% if filter_form.custom_fields %}
|
|
60
|
-
<div class="panel panel-default">
|
|
61
|
-
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
62
|
-
<div class="panel-body">
|
|
63
|
-
{% render_custom_fields filter_form %}
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
{% endif %}
|
|
67
|
-
|
|
68
|
-
{% if filter_form.relationships %}
|
|
69
|
-
<div class="panel panel-default">
|
|
70
|
-
<div class="panel-heading"><strong>Relationships</strong></div>
|
|
71
|
-
<div class="panel-body">
|
|
72
|
-
{% render_relationships filter_form %}
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
{% endif %}
|
|
76
|
-
|
|
77
|
-
{% else %}
|
|
78
|
-
<span class="help-block">
|
|
79
|
-
Filtering criteria will be available after initially saving this group and
|
|
80
|
-
returning to this page.
|
|
81
|
-
</span>
|
|
82
|
-
{% endif %}
|
|
83
|
-
</div>
|
|
84
|
-
<div class="tab-pane" id="children-form">
|
|
85
|
-
{% if children.errors %}
|
|
86
|
-
<div class="text-danger">
|
|
87
|
-
Please correct the error(s) below:
|
|
88
|
-
|
|
89
|
-
{% for child in children.forms %}
|
|
90
|
-
{% if child.errors %}
|
|
91
|
-
{% for error in child.errors.values %}{{ error }}{% endfor %}
|
|
92
|
-
{% endif %}
|
|
93
|
-
{% endfor %}
|
|
94
|
-
</div>
|
|
95
|
-
{% endif %}
|
|
96
|
-
{{ children.non_field_errors }}
|
|
97
|
-
<table class="table" id="children">
|
|
98
|
-
{{ children.management_form }}
|
|
99
|
-
{% for child_form in children.forms %}
|
|
100
|
-
{% if forloop.first %}
|
|
101
|
-
<thead>
|
|
102
|
-
<tr>
|
|
103
|
-
<th>Weight</th>
|
|
104
|
-
{% for field in child_form.visible_fields %}
|
|
105
|
-
<th>{{ field.label|capfirst }}</th>
|
|
106
|
-
{% endfor %}
|
|
107
|
-
</tr>
|
|
108
|
-
</thead>
|
|
109
|
-
{% endif %}
|
|
110
|
-
<tr class="formset_row-{{ children.prefix }}">
|
|
111
|
-
<td><i class="mdi mdi-drag-horizontal drag-handler"></i></td>
|
|
112
|
-
{% for field in child_form.visible_fields %}
|
|
113
|
-
<td>
|
|
114
|
-
{% if forloop.first %}
|
|
115
|
-
{% for hidden in child_form.hidden_fields %}
|
|
116
|
-
{{ hidden }}
|
|
117
|
-
{% endfor %}
|
|
118
|
-
{% endif %}
|
|
119
|
-
{{ field }}
|
|
120
|
-
{% if field.errors %}
|
|
121
|
-
<ul>
|
|
122
|
-
{% for error in field.errors %}
|
|
123
|
-
{# Embed an HTML comment indicating the error for extraction by tests #}
|
|
124
|
-
<!-- FORM-ERROR {{ field.name }}: {{ error }} -->
|
|
125
|
-
<li class="text-danger">{{ error }}</li>
|
|
126
|
-
{% endfor %}
|
|
127
|
-
</ul>
|
|
128
|
-
{% endif %}
|
|
129
|
-
</td>
|
|
130
|
-
{% endfor %}
|
|
131
|
-
</tr>
|
|
132
|
-
{% endfor %}
|
|
133
|
-
</table>
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
{% include 'inc/extras_features_edit_form_fields.html' %}
|
|
139
|
-
{% endblock form %}
|
|
140
|
-
|
|
141
|
-
{% block javascript %}
|
|
142
|
-
{{ block.super }}
|
|
143
|
-
<script src="{% static 'jquery/jquery.formset.js' %}"></script>
|
|
144
|
-
<script type="text/javascript">
|
|
145
|
-
$('.formset_row-{{ children.prefix }}').formset({
|
|
146
|
-
addText: '<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add another Group',
|
|
147
|
-
addCssClass: 'btn btn-primary add-row',
|
|
148
|
-
deleteText: '<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span>',
|
|
149
|
-
deleteCssClass: 'btn btn-danger delete-row',
|
|
150
|
-
prefix: '{{ children.prefix }}',
|
|
151
|
-
formCssClass: 'dynamic-formset-{{ children.prefix }}',
|
|
152
|
-
added: jsify_form
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
// Function that takes a Dynamic Group children form and recomputes the weights.
|
|
156
|
-
function update_weights(children_form){
|
|
157
|
-
let w = 10;
|
|
158
|
-
$(children_form).find('.formset_row-{{ children.prefix }}').each((i, el) => {
|
|
159
|
-
|
|
160
|
-
// A child is considered "weight-able" if any of the settable values contains a value
|
|
161
|
-
// If a user is in the middle of setting a group we want to consider it for weight
|
|
162
|
-
// We also want to remove the weight if it's empty to not throw a field value error on a hidden field
|
|
163
|
-
//
|
|
164
|
-
// el = child row
|
|
165
|
-
// sel = a select element either specifying the child group or operator
|
|
166
|
-
// we don't need to worry about which one we are looking at, just if it has a value
|
|
167
|
-
let contains_value = $(el).find("select[name$='-group'], select[name$='-operator']") // Get any select element in this row ending in -group or -operator
|
|
168
|
-
.toArray() // Convert to Array to access .some() method
|
|
169
|
-
.some((x) => { return ($(x).val().length > 0) === true }) // Evaluate if any element in this row has a value length over 0
|
|
170
|
-
// .some(fn(x)) will return a true/false if any item in the array return true when passed into the evaluator function
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
let weight_input = $(el).find("*[name$='-weight']")
|
|
175
|
-
weight_input.val("") // Reset the value to start clean always
|
|
176
|
-
if(contains_value) {
|
|
177
|
-
weight_input.val(w); // Set a weight
|
|
178
|
-
w += 10; // Following current convention by allowing space between children to aid in API interface.
|
|
179
|
-
// If someone wants to add a child later via the API they can insert a child between children without
|
|
180
|
-
// having to re-weight all children following first.
|
|
181
|
-
}
|
|
182
|
-
})
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Make the children form formset rows draggable and hook to re-weight on drag complete.
|
|
186
|
-
$('#children-form').sortable({
|
|
187
|
-
handle: '.drag-handler',
|
|
188
|
-
items: '.formset_row-{{ children.prefix }}',
|
|
189
|
-
update: ( e, ui ) => {
|
|
190
|
-
update_weights(e.target)
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
// Instead of re-weight on every input change, just do it before we submit the form.
|
|
195
|
-
$('form.form').submit((e) => {
|
|
196
|
-
$(e.target).find('#children-form').each((i, cf) => { update_weights(cf) });
|
|
197
|
-
});
|
|
198
|
-
</script>
|
|
199
|
-
{% endblock javascript %}
|
|
1
|
+
{% extends 'extras/dynamicgroup_update.html' %}
|
|
2
|
+
{% comment %}3.0 TODO: remove this template, which only exists for backward compatibility with 2.4 and earlier{% endcomment %}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{% extends 'generic/object_retrieve.html' %}
|
|
2
|
+
{% load helpers %}
|
|
3
|
+
|
|
4
|
+
{% block extra_nav_tabs %}
|
|
5
|
+
<li role="presentation"{% if request.GET.tab == 'members' %} class="active"{% endif %}>
|
|
6
|
+
<a href="{{ object.get_absolute_url }}#members" onclick="switch_tab(this.href, reload=false)" aria-controls="members" role="tab" data-toggle="tab">
|
|
7
|
+
Members {% badge object.count %}
|
|
8
|
+
</a>
|
|
9
|
+
</li>
|
|
10
|
+
{% endblock extra_nav_tabs %}
|
|
11
|
+
|
|
12
|
+
{% block extra_tab_content %}
|
|
13
|
+
<div id="members" role="tabpanel" class="tab-pane {% if not active_tab and not request.GET.tab or request.GET.tab == "members" %}active{% else %}fade{% endif %}">
|
|
14
|
+
{% if members_list_url %}
|
|
15
|
+
<div class="row">
|
|
16
|
+
<div class="col-md-12">
|
|
17
|
+
<div class="alert alert-success" role="alert">
|
|
18
|
+
You can bulk-add and bulk-remove members of this group from the <a href="{{ members_list_url }}">{{ members_verbose_name_plural|bettertitle }} list view</a>.
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
{% endif %}
|
|
23
|
+
<div class="row">
|
|
24
|
+
<div class="col-md-12">
|
|
25
|
+
{% include 'utilities/obj_table.html' with table=members_table table_template='panel_table.html' heading='Dynamic Group members' %}
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
{% endblock extra_tab_content %}
|
|
30
|
+
|
|
31
|
+
{% block content_left_page %}
|
|
32
|
+
<div class="panel panel-default">
|
|
33
|
+
<div class="panel-heading">
|
|
34
|
+
<strong>Dynamic Group</strong>
|
|
35
|
+
</div>
|
|
36
|
+
<table class="table table-hover panel-body attr-table">
|
|
37
|
+
<tr>
|
|
38
|
+
<td>Name</td>
|
|
39
|
+
<td><span>{{ object.name }}</span></td>
|
|
40
|
+
</tr>
|
|
41
|
+
<tr>
|
|
42
|
+
<td>Description</td>
|
|
43
|
+
<td><span>{{ object.description }}</span></td>
|
|
44
|
+
</tr>
|
|
45
|
+
<tr>
|
|
46
|
+
<td>Content Type</td>
|
|
47
|
+
<td><span>{{ object.content_type }}</span></td>
|
|
48
|
+
</tr>
|
|
49
|
+
<tr>
|
|
50
|
+
<td>Group Type</td>
|
|
51
|
+
<td><span>{{ object.get_group_type_display }}</span></td>
|
|
52
|
+
</tr>
|
|
53
|
+
{% include 'inc/tenant_table_row.html' %}
|
|
54
|
+
</table>
|
|
55
|
+
</div>
|
|
56
|
+
{% endblock content_left_page %}
|
|
57
|
+
|
|
58
|
+
{% block content_right_page %}
|
|
59
|
+
{% if object.group_type == "dynamic-filter" %}
|
|
60
|
+
<div class="panel panel-default">
|
|
61
|
+
<div class="panel-heading">
|
|
62
|
+
<strong>Filter</strong>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="panel-body">
|
|
65
|
+
<pre>{{ object.filter | render_json }}</pre>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
{% endif %}
|
|
69
|
+
{% endblock content_right_page %}
|
|
70
|
+
|
|
71
|
+
{% block content_full_width_page %}
|
|
72
|
+
{% if object.group_type != "static" %}
|
|
73
|
+
<div class="panel panel-default">
|
|
74
|
+
<div class="panel-heading">
|
|
75
|
+
<strong>Filter Query Logic</strong>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="panel-body">
|
|
78
|
+
{% if object.group_type == "dynamic-set" %}
|
|
79
|
+
<span class="help-block">
|
|
80
|
+
This is a raw representation of the underlying filter that is derived
|
|
81
|
+
by aggregating the filters from all descendant groups.
|
|
82
|
+
</span>
|
|
83
|
+
{% endif %}
|
|
84
|
+
<pre>{{ raw_query }}</pre>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="panel panel-default">
|
|
88
|
+
<div class="panel-heading">
|
|
89
|
+
<strong>Related Groups</strong>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="panel-body">
|
|
92
|
+
{% if object.group_type == "dynamic-set" %}
|
|
93
|
+
{% include 'utilities/obj_table.html' with table=descendants_table table_template='panel_table.html' heading='Descendants' disable_pagination=True %}
|
|
94
|
+
{% endif %}
|
|
95
|
+
{% include 'utilities/obj_table.html' with table=ancestors_table table_template='panel_table.html' heading='Ancestors' disable_pagination=True %}
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
{% endif %}
|
|
99
|
+
{% endblock content_full_width_page %}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
{% extends 'generic/object_create.html' %}
|
|
2
|
+
{% load static %}
|
|
3
|
+
{% load form_helpers %}
|
|
4
|
+
|
|
5
|
+
{% block form_errors %}
|
|
6
|
+
{% if form.non_field_errors %}
|
|
7
|
+
<div class="panel panel-danger">
|
|
8
|
+
<div class="panel-heading"><strong>Errors</strong></div>
|
|
9
|
+
<div class="panel-body">
|
|
10
|
+
{{ form.non_field_errors }}
|
|
11
|
+
{% for child in children.forms %}
|
|
12
|
+
{% if child.errors %}
|
|
13
|
+
{% for error in child.errors.values %}{{ error }}{% endfor %}
|
|
14
|
+
{% endif %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
{% endif %}
|
|
19
|
+
{% endblock %}
|
|
20
|
+
|
|
21
|
+
{% block form %}
|
|
22
|
+
<div class="panel panel-default">
|
|
23
|
+
<div class="panel-heading"><strong>Dynamic Group</strong></div>
|
|
24
|
+
<div class="panel-body">
|
|
25
|
+
{% render_field form.name %}
|
|
26
|
+
{% render_field form.description %}
|
|
27
|
+
{% render_field form.content_type %}
|
|
28
|
+
{% render_field form.group_type %}
|
|
29
|
+
{% render_field form.tenant %}
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="panel panel-default">
|
|
33
|
+
<div class="panel-heading"><strong>Filter Options</strong></div>
|
|
34
|
+
<div class="panel-body">
|
|
35
|
+
<ul class="nav nav-tabs" role="tablist">
|
|
36
|
+
<li role="presentation" class="active">
|
|
37
|
+
<a href="#filter-form" role="tab" data-toggle="tab">Filter Fields</a>
|
|
38
|
+
</li>
|
|
39
|
+
<li role="presentation">
|
|
40
|
+
<a href="#children-form" role="tab" data-toggle="tab">Child Groups</a>
|
|
41
|
+
</li>
|
|
42
|
+
</ul>
|
|
43
|
+
<div class="tab-content">
|
|
44
|
+
<div class="tab-pane active" id="filter-form">
|
|
45
|
+
{% if filter_form %}
|
|
46
|
+
<span class="help-block">
|
|
47
|
+
Select the filtering criteria to determine membership of objects matching
|
|
48
|
+
the Content Type for this Dynamic Group. Fields that are not a dropdown are
|
|
49
|
+
expected to have string inputs and do not support multiple values.
|
|
50
|
+
</span>
|
|
51
|
+
|
|
52
|
+
<div class="panel panel-default">
|
|
53
|
+
<div class="panel-heading"><strong>Object Fields</strong></div>
|
|
54
|
+
<div class="panel-body">
|
|
55
|
+
{% render_form filter_form excluded_fields="[]" %}
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
{% if filter_form.custom_fields %}
|
|
60
|
+
<div class="panel panel-default">
|
|
61
|
+
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
62
|
+
<div class="panel-body">
|
|
63
|
+
{% render_custom_fields filter_form %}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
{% endif %}
|
|
67
|
+
|
|
68
|
+
{% if filter_form.relationships %}
|
|
69
|
+
<div class="panel panel-default">
|
|
70
|
+
<div class="panel-heading"><strong>Relationships</strong></div>
|
|
71
|
+
<div class="panel-body">
|
|
72
|
+
{% render_relationships filter_form %}
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
{% endif %}
|
|
76
|
+
|
|
77
|
+
{% else %}
|
|
78
|
+
<span class="help-block">
|
|
79
|
+
Filtering criteria will be available after initially saving this group and
|
|
80
|
+
returning to this page.
|
|
81
|
+
</span>
|
|
82
|
+
{% endif %}
|
|
83
|
+
</div>
|
|
84
|
+
<div class="tab-pane" id="children-form">
|
|
85
|
+
{% if children.errors %}
|
|
86
|
+
<div class="text-danger">
|
|
87
|
+
Please correct the error(s) below:
|
|
88
|
+
|
|
89
|
+
{% for child in children.forms %}
|
|
90
|
+
{% if child.errors %}
|
|
91
|
+
{% for error in child.errors.values %}{{ error }}{% endfor %}
|
|
92
|
+
{% endif %}
|
|
93
|
+
{% endfor %}
|
|
94
|
+
</div>
|
|
95
|
+
{% endif %}
|
|
96
|
+
{{ children.non_field_errors }}
|
|
97
|
+
<table class="table" id="children">
|
|
98
|
+
{{ children.management_form }}
|
|
99
|
+
{% for child_form in children.forms %}
|
|
100
|
+
{% if forloop.first %}
|
|
101
|
+
<thead>
|
|
102
|
+
<tr>
|
|
103
|
+
<th>Weight</th>
|
|
104
|
+
{% for field in child_form.visible_fields %}
|
|
105
|
+
<th>{{ field.label|capfirst }}</th>
|
|
106
|
+
{% endfor %}
|
|
107
|
+
</tr>
|
|
108
|
+
</thead>
|
|
109
|
+
{% endif %}
|
|
110
|
+
<tr class="formset_row-{{ children.prefix }}">
|
|
111
|
+
<td><i class="mdi mdi-drag-horizontal drag-handler"></i></td>
|
|
112
|
+
{% for field in child_form.visible_fields %}
|
|
113
|
+
<td>
|
|
114
|
+
{% if forloop.first %}
|
|
115
|
+
{% for hidden in child_form.hidden_fields %}
|
|
116
|
+
{{ hidden }}
|
|
117
|
+
{% endfor %}
|
|
118
|
+
{% endif %}
|
|
119
|
+
{{ field }}
|
|
120
|
+
{% if field.errors %}
|
|
121
|
+
<ul>
|
|
122
|
+
{% for error in field.errors %}
|
|
123
|
+
{# Embed an HTML comment indicating the error for extraction by tests #}
|
|
124
|
+
<!-- FORM-ERROR {{ field.name }}: {{ error }} -->
|
|
125
|
+
<li class="text-danger">{{ error }}</li>
|
|
126
|
+
{% endfor %}
|
|
127
|
+
</ul>
|
|
128
|
+
{% endif %}
|
|
129
|
+
</td>
|
|
130
|
+
{% endfor %}
|
|
131
|
+
</tr>
|
|
132
|
+
{% endfor %}
|
|
133
|
+
</table>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
{% include 'inc/extras_features_edit_form_fields.html' %}
|
|
139
|
+
{% endblock form %}
|
|
140
|
+
|
|
141
|
+
{% block javascript %}
|
|
142
|
+
{{ block.super }}
|
|
143
|
+
<script src="{% static 'jquery/jquery.formset.js' %}"></script>
|
|
144
|
+
<script type="text/javascript">
|
|
145
|
+
$('.formset_row-{{ children.prefix }}').formset({
|
|
146
|
+
addText: '<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add another Group',
|
|
147
|
+
addCssClass: 'btn btn-primary add-row',
|
|
148
|
+
deleteText: '<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span>',
|
|
149
|
+
deleteCssClass: 'btn btn-danger delete-row',
|
|
150
|
+
prefix: '{{ children.prefix }}',
|
|
151
|
+
formCssClass: 'dynamic-formset-{{ children.prefix }}',
|
|
152
|
+
added: jsify_form
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Function that takes a Dynamic Group children form and recomputes the weights.
|
|
156
|
+
function update_weights(children_form){
|
|
157
|
+
let w = 10;
|
|
158
|
+
$(children_form).find('.formset_row-{{ children.prefix }}').each((i, el) => {
|
|
159
|
+
|
|
160
|
+
// A child is considered "weight-able" if any of the settable values contains a value
|
|
161
|
+
// If a user is in the middle of setting a group we want to consider it for weight
|
|
162
|
+
// We also want to remove the weight if it's empty to not throw a field value error on a hidden field
|
|
163
|
+
//
|
|
164
|
+
// el = child row
|
|
165
|
+
// sel = a select element either specifying the child group or operator
|
|
166
|
+
// we don't need to worry about which one we are looking at, just if it has a value
|
|
167
|
+
let contains_value = $(el).find("select[name$='-group'], select[name$='-operator']") // Get any select element in this row ending in -group or -operator
|
|
168
|
+
.toArray() // Convert to Array to access .some() method
|
|
169
|
+
.some((x) => { return ($(x).val().length > 0) === true }) // Evaluate if any element in this row has a value length over 0
|
|
170
|
+
// .some(fn(x)) will return a true/false if any item in the array return true when passed into the evaluator function
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
let weight_input = $(el).find("*[name$='-weight']")
|
|
175
|
+
weight_input.val("") // Reset the value to start clean always
|
|
176
|
+
if(contains_value) {
|
|
177
|
+
weight_input.val(w); // Set a weight
|
|
178
|
+
w += 10; // Following current convention by allowing space between children to aid in API interface.
|
|
179
|
+
// If someone wants to add a child later via the API they can insert a child between children without
|
|
180
|
+
// having to re-weight all children following first.
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Make the children form formset rows draggable and hook to re-weight on drag complete.
|
|
186
|
+
$('#children-form').sortable({
|
|
187
|
+
handle: '.drag-handler',
|
|
188
|
+
items: '.formset_row-{{ children.prefix }}',
|
|
189
|
+
update: ( e, ui ) => {
|
|
190
|
+
update_weights(e.target)
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// Instead of re-weight on every input change, just do it before we submit the form.
|
|
195
|
+
$('form.form').submit((e) => {
|
|
196
|
+
$(e.target).find('#children-form').each((i, cf) => { update_weights(cf) });
|
|
197
|
+
});
|
|
198
|
+
</script>
|
|
199
|
+
{% endblock javascript %}
|
|
@@ -1,82 +1,2 @@
|
|
|
1
|
-
{% extends '
|
|
2
|
-
{%
|
|
3
|
-
|
|
4
|
-
{% block extra_buttons %}
|
|
5
|
-
{% if perms.extras.change_gitrepository %}
|
|
6
|
-
<form class="form-inline" style="display: inline-block"
|
|
7
|
-
method="post" action="{% url 'extras:gitrepository_dryrun' pk=object.pk %}">
|
|
8
|
-
{% csrf_token %}
|
|
9
|
-
<button type="submit" class="btn btn-info">
|
|
10
|
-
<i class="mdi mdi-book-refresh" aria-hidden="true"></i> Dry-Run
|
|
11
|
-
</button>
|
|
12
|
-
</form>
|
|
13
|
-
<form class="form-inline" style="display: inline-block"
|
|
14
|
-
method="post" action="{% url 'extras:gitrepository_sync' pk=object.pk %}">
|
|
15
|
-
{% csrf_token %}
|
|
16
|
-
<button type="submit" class="btn btn-primary">
|
|
17
|
-
<i class="mdi mdi-source-branch-sync" aria-hidden="true"></i> Sync
|
|
18
|
-
</button>
|
|
19
|
-
</form>
|
|
20
|
-
{% endif %}
|
|
21
|
-
{% endblock extra_buttons %}
|
|
22
|
-
|
|
23
|
-
{% block extra_nav_tabs %}
|
|
24
|
-
<li role="presentation"{% if active_tab == 'result' %} class="active"{% endif %}>
|
|
25
|
-
<a href="{% url 'extras:gitrepository_result' pk=object.pk %}">Synchronization Status</a>
|
|
26
|
-
</li>
|
|
27
|
-
{% endblock extra_nav_tabs %}
|
|
28
|
-
|
|
29
|
-
{% block content_left_page %}
|
|
30
|
-
<div class="panel panel-default">
|
|
31
|
-
<div class="panel-heading">
|
|
32
|
-
<strong>Repository Details</strong>
|
|
33
|
-
</div>
|
|
34
|
-
<table class="table table-hover panel-body attr-table">
|
|
35
|
-
<tr>
|
|
36
|
-
<td>Remote URL</td>
|
|
37
|
-
<td>{{ object.remote_url }}</td>
|
|
38
|
-
</tr>
|
|
39
|
-
<tr>
|
|
40
|
-
<td>Branch</td>
|
|
41
|
-
<td>
|
|
42
|
-
<code>{{ object.branch }}</code>
|
|
43
|
-
{% if object.current_head %}
|
|
44
|
-
(checked out locally at commit <code>{{ object.current_head }}</code>)
|
|
45
|
-
{% else %}
|
|
46
|
-
(not locally checked out yet)
|
|
47
|
-
{% endif %}
|
|
48
|
-
</td>
|
|
49
|
-
</tr>
|
|
50
|
-
<tr>
|
|
51
|
-
<td>Secrets Group</td>
|
|
52
|
-
<td>{{ object.secrets_group|hyperlinked_object }}</td>
|
|
53
|
-
</tr>
|
|
54
|
-
</table>
|
|
55
|
-
</div>
|
|
56
|
-
{% endblock content_left_page %}
|
|
57
|
-
|
|
58
|
-
{% block content_right_page %}
|
|
59
|
-
<div class="panel panel-default">
|
|
60
|
-
<div class="panel-heading">
|
|
61
|
-
<strong>Provided Data Types</strong>
|
|
62
|
-
</div>
|
|
63
|
-
<table class="table table-hover panel-body">
|
|
64
|
-
{% for entry in datasource_contents %}
|
|
65
|
-
<tr>
|
|
66
|
-
<td>
|
|
67
|
-
<span style="display: inline-block" class="label label-info">
|
|
68
|
-
<i class="mdi {{ entry.icon }}"></i>
|
|
69
|
-
</span>
|
|
70
|
-
{{ entry.name|title }}</td>
|
|
71
|
-
<td>
|
|
72
|
-
{% if entry.content_identifier in object.provided_contents %}
|
|
73
|
-
{{ True | render_boolean }}
|
|
74
|
-
{% else %}
|
|
75
|
-
{{ False | render_boolean }}
|
|
76
|
-
{% endif %}
|
|
77
|
-
</td>
|
|
78
|
-
</tr>
|
|
79
|
-
{% endfor %}
|
|
80
|
-
</table>
|
|
81
|
-
</div>
|
|
82
|
-
{% endblock %}
|
|
1
|
+
{% extends 'extras/gitrepository_retrieve.html' %}
|
|
2
|
+
{% comment %}3.0 TODO: remove this template, which only exists for backward compatibility with 2.4 and earlier{% endcomment %}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{% extends 'generic/object_list.html' %}
|
|
2
2
|
|
|
3
3
|
{% block javascript %}
|
|
4
|
-
{{ block.super }}
|
|
5
|
-
<script>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
</script>
|
|
4
|
+
{{ block.super }}
|
|
5
|
+
<script>
|
|
6
|
+
$("button.sync-repository").click(function() {
|
|
7
|
+
event.preventDefault();
|
|
8
|
+
var form = $("<form>").attr("action", $(this).data("url")).attr("method", "POST");
|
|
9
|
+
form.append('{% csrf_token %}');
|
|
10
|
+
$(document.body).append(form);
|
|
11
|
+
form.submit();
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
14
|
{% endblock javascript %}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
{% extends '
|
|
2
|
-
|
|
3
|
-
{% block buttons %}
|
|
4
|
-
{% if editing %}
|
|
5
|
-
<button type="submit" name="_dryrun_update" class="btn btn-warning">Update & Dry Run</button>
|
|
6
|
-
<button type="submit" name="_update" class="btn btn-primary">Update & Sync</button>
|
|
7
|
-
{% else %}
|
|
8
|
-
<button type="submit" name="_dryrun_create" class="btn btn-info">Create & Dry Run</button>
|
|
9
|
-
<button type="submit" name="_create" class="btn btn-primary">Create & Sync</button>
|
|
10
|
-
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
|
11
|
-
{% endif %}
|
|
12
|
-
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
|
13
|
-
{% endblock %}
|
|
1
|
+
{% extends 'extras/gitrepository_update.html' %}
|
|
2
|
+
{% comment %}3.0 TODO: remove this template, which only exists for backward compatibility with 2.4 and earlier{% endcomment %}
|