mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* Initial work on custom field choice sets * Rename choices to extra_choices (prep for #12194) * Remove CustomField.choices * Add & update tests * Clean up table columns * Add order_alphanetically boolean for choice sets * Introduce ArrayColumn for choice lists * Show dependent custom fields on choice set view * Update custom fields documentation * Introduce ArrayWidget for more convenient editing of choices * Incorporate PR feedback * Misc cleanup
136 lines
3.9 KiB
HTML
136 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">Type</th>
|
|
<td>
|
|
{{ object.get_type_display }}
|
|
{% if object.object_type %}({{ object.object_type.model|bettertitle }}){% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Label</th>
|
|
<td>{{ object.label|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Group</th>
|
|
<td>{{ object.group_name|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Description</th>
|
|
<td>{{ object.description|markdown|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Required</th>
|
|
<td>{% checkmark object.required %}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Cloneable</th>
|
|
<td>{% checkmark object.is_cloneable %}</td>
|
|
</tr>
|
|
{% if object.choice_set %}
|
|
<tr>
|
|
<th scope="row">Choice Set</th>
|
|
<td>{{ object.choice_set|linkify }} ({{ object.choice_set.choices|length }} choices)</td>
|
|
</tr>
|
|
{% endif %}
|
|
<tr>
|
|
<th scope="row">Default Value</th>
|
|
<td>{{ object.default }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<h5 class="card-header">Behavior</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover attr-table">
|
|
<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>
|
|
{% plugin_left_page object %}
|
|
</div>
|
|
<div class="col col-md-6">
|
|
<div class="card">
|
|
<h5 class="card-header">Object Types</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 %}
|