mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* Initial work on new search backend * Clean up search backends * Return only the most relevant result per object * Clear any pre-existing cached entries on cache() * #6003: Implement global search functionality for custom field values * Tweak field weights & document guidance * Extend search() to accept a lookup type * Move get_registry() out of SearchBackend * Enforce object permissions when returning search results * Add indexers for remaining models * Avoid calling remove() on non-cacheable objects * Use new search backend by default * Extend search backend to filter by object type * Clean up search view form * Enable specifying lookup logic * Add indexes for value field * Remove object type selector from search bar * Introduce SearchTable and enable HTMX for results * Enable pagination * Remove legacy search backend * Cleanup * Use a UUID for CachedValue primary key * Refactoring search methods * Define max search results limit * Extend reindex command to support specifying particular models * Add clear() and size to SearchBackend * Optimize bulk caching performance * Highlight matched portion of field value * Performance improvements for reindexing * Started on search tests * Cleanup & docs * Documentation updates * Clean up SearchIndex * Flatten search registry to register by app_label.model_name * Clean up search backend classes * Clean up RestrictedGenericForeignKey and RestrictedPrefetch * Resolve migrations conflict
142 lines
3.9 KiB
HTML
142 lines
3.9 KiB
HTML
{% extends 'generic/object.html' %}
|
|
{% load helpers %}
|
|
{% load plugins %}
|
|
|
|
{% block content %}
|
|
<div class="row mb-3">
|
|
<div class="col col-md-6">
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
Custom Field
|
|
</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover attr-table">
|
|
<tr>
|
|
<th scope="row">Name</th>
|
|
<td>{{ object.name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Label</th>
|
|
<td>{{ object.label|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Group Name</th>
|
|
<td>{{ object.group_name|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Type</th>
|
|
<td>
|
|
{{ object.get_type_display }}
|
|
{% if object.object_type %}({{ object.object_type.model|bettertitle }}){% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Description</th>
|
|
<td>{{ object.description|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Required</th>
|
|
<td>{% checkmark object.required %}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Search Weight</th>
|
|
<td>
|
|
{% if object.search_weight %}
|
|
{{ object.search_weight }}
|
|
{% else %}
|
|
<span class="text-muted">Disabled</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Filter Logic</th>
|
|
<td>{{ object.get_filter_logic_display }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Display Weight</th>
|
|
<td>{{ object.weight }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">UI Visibility</th>
|
|
<td>{{ object.get_ui_visibility_display }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
Values
|
|
</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover attr-table">
|
|
<tr>
|
|
<th scope="row">Default Value</th>
|
|
<td>{{ object.default }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Choices</th>
|
|
<td>
|
|
{% if object.choices %}
|
|
{{ object.choices|join:", " }}
|
|
{% else %}
|
|
{{ ''|placeholder }}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% plugin_left_page object %}
|
|
</div>
|
|
<div class="col col-md-6">
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
Assigned Models
|
|
</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover attr-table">
|
|
{% for ct in object.content_types.all %}
|
|
<tr>
|
|
<td>{{ ct }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
Validation Rules
|
|
</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover attr-table">
|
|
<tr>
|
|
<th scope="row">Minimum Value</th>
|
|
<td>{{ object.validation_minimum|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Maximum Value</th>
|
|
<td>{{ object.validation_maximum|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Regular Expression</th>
|
|
<td>
|
|
{% if object.validation_regex %}
|
|
<code>{{ object.validation_regex }}</code>
|
|
{% else %}
|
|
{{ ''|placeholder }}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% plugin_right_page object %}
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col col-md-12">
|
|
{% plugin_full_width_page object %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|