@@ -50,55 +50,62 @@ <h5 class="card-header">{% trans "Custom Object Type" %}</h5>
50
50
< div class ="card ">
51
51
< h2 class ="card-header "> Fields</ h2 >
52
52
< table class ="table table-hover attr-table ">
53
- {% for field in object.fields.all %}
54
- < tr >
55
- < th scope ="row "> {{ field }}</ th >
56
- < td > {{ field|get_field_type_verbose_name }}</ td >
57
- < td > {% if field.type == "object" or field.type == "multiobject" %}{{ field|get_field_object_type }}{% endif %}</ td >
58
- < td >
59
- {% if field.required %}
60
- < i
61
- class ="mdi mdi-asterisk text-primary "
62
- data-bs-toggle ="tooltip "
63
- data-bs-placement ="right "
64
- title ="Required "
65
- > </ i >
66
- {% endif %}
67
- </ td >
68
- < td >
69
- {% if field.unique %}
70
- < i
71
- class ="mdi mdi-snowflake text-primary "
72
- data-bs-toggle ="tooltip "
73
- data-bs-placement ="right "
74
- title ="Unique "
75
- > </ i >
76
- {% endif %}
77
- </ td >
78
- < td >
79
- {% if field.primary %}
80
- < i
81
- class ="mdi mdi-text-short text-primary "
82
- data-bs-toggle ="tooltip "
83
- data-bs-placement ="right "
84
- title ="Primary name field "
85
- > </ i >
86
- {% endif %}
87
- </ td >
88
- < td >
89
- < span class ="btn-group dropdown ">
90
- < a class ="btn btn-sm btn-warning " href ="{% url 'plugins:netbox_custom_objects:customobjecttypefield_edit' pk=field.pk %}?return_url={{ object.get_absolute_url }} " type ="button "
91
- aria-label ="{attrs.title} "> < i class ="mdi mdi-pencil "> </ i > </ a >
92
- < a class ="btn btn-sm btn-warning dropdown-toggle " type ="button " data-bs-toggle ="dropdown "
93
- style ="padding-left: 2px ">
94
- < span class ="visually-hidden "> {toggle_text}</ span > </ a >
95
- < ul class ="dropdown-menu ">
96
- < li > < a class ="dropdown-item " href ="{% url 'plugins:netbox_custom_objects:customobjecttypefield_delete' pk=field.pk %}?return_url={{ object.get_absolute_url }} ">
97
- < i class ="mdi mdi-trash-can-outline "> </ i > Delete</ a > </ li >
98
- </ ul >
99
- </ span >
100
- </ td >
101
- </ tr >
53
+ {% for group_name, group_fields in field_groups.items %}
54
+ {% if group_name %}
55
+ < tr class ="table-group-header ">
56
+ < th scope ="row " colspan ="7 " class ="fw-bold "> {{ group_name }}</ th >
57
+ </ tr >
58
+ {% endif %}
59
+ {% for field in group_fields %}
60
+ < tr >
61
+ < th scope ="row "> {{ field }}</ th >
62
+ < td > {{ field|get_field_type_verbose_name }}</ td >
63
+ < td > {% if field.type == "object" or field.type == "multiobject" %}{{ field|get_field_object_type }}{% endif %}</ td >
64
+ < td >
65
+ {% if field.required %}
66
+ < i
67
+ class ="mdi mdi-asterisk text-primary "
68
+ data-bs-toggle ="tooltip "
69
+ data-bs-placement ="right "
70
+ title ="Required "
71
+ > </ i >
72
+ {% endif %}
73
+ </ td >
74
+ < td >
75
+ {% if field.unique %}
76
+ < i
77
+ class ="mdi mdi-snowflake text-primary "
78
+ data-bs-toggle ="tooltip "
79
+ data-bs-placement ="right "
80
+ title ="Unique "
81
+ > </ i >
82
+ {% endif %}
83
+ </ td >
84
+ < td >
85
+ {% if field.primary %}
86
+ < i
87
+ class ="mdi mdi-text-short text-primary "
88
+ data-bs-toggle ="tooltip "
89
+ data-bs-placement ="right "
90
+ title ="Primary name field "
91
+ > </ i >
92
+ {% endif %}
93
+ </ td >
94
+ < td >
95
+ < span class ="btn-group dropdown ">
96
+ < a class ="btn btn-sm btn-warning " href ="{% url 'plugins:netbox_custom_objects:customobjecttypefield_edit' pk=field.pk %}?return_url={{ object.get_absolute_url }} " type ="button "
97
+ aria-label ="{attrs.title} "> < i class ="mdi mdi-pencil "> </ i > </ a >
98
+ < a class ="btn btn-sm btn-warning dropdown-toggle " type ="button " data-bs-toggle ="dropdown "
99
+ style ="padding-left: 2px ">
100
+ < span class ="visually-hidden "> {toggle_text}</ span > </ a >
101
+ < ul class ="dropdown-menu ">
102
+ < li > < a class ="dropdown-item " href ="{% url 'plugins:netbox_custom_objects:customobjecttypefield_delete' pk=field.pk %}?return_url={{ object.get_absolute_url }} ">
103
+ < i class ="mdi mdi-trash-can-outline "> </ i > Delete</ a > </ li >
104
+ </ ul >
105
+ </ span >
106
+ </ td >
107
+ </ tr >
108
+ {% endfor %}
102
109
{% endfor %}
103
110
</ table >
104
111
</ div >
0 commit comments