mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
adds related models count on custom field #12825
This commit is contained in:
committed by
Jeremy Stretch
parent
d79fa131bb
commit
00ebdfe0df
@ -43,6 +43,23 @@ class CustomFieldListView(generic.ObjectListView):
|
|||||||
class CustomFieldView(generic.ObjectView):
|
class CustomFieldView(generic.ObjectView):
|
||||||
queryset = CustomField.objects.all()
|
queryset = CustomField.objects.all()
|
||||||
|
|
||||||
|
def get_extra_context(self, request, instance):
|
||||||
|
related_models = (
|
||||||
|
# (DataFile.objects.restrict(request.user, 'view').filter(source=instance), 'source_id'),
|
||||||
|
)
|
||||||
|
|
||||||
|
for content_type in instance.content_types.all():
|
||||||
|
related_models += (
|
||||||
|
content_type.model_class().objects.restrict(request.user, 'view').exclude(
|
||||||
|
Q(**{f'custom_field_data__{instance.name}': ''}) |
|
||||||
|
Q(**{f'custom_field_data__{instance.name}': None})
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
return {
|
||||||
|
'related_models': related_models
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@register_model_view(CustomField, 'edit')
|
@register_model_view(CustomField, 'edit')
|
||||||
class CustomFieldEditView(generic.ObjectEditView):
|
class CustomFieldEditView(generic.ObjectEditView):
|
||||||
|
@ -134,6 +134,24 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<h5 class="card-header">Related Objects</h5>
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
{% for qs in related_models %}
|
||||||
|
<a class="list-group-item list-group-item-action d-flex justify-content-between">
|
||||||
|
{{ qs.model|meta:"verbose_name_plural"|bettertitle }}
|
||||||
|
{% with count=qs.count %}
|
||||||
|
{% if count %}
|
||||||
|
<span class="badge bg-primary rounded-pill">{{ count }}</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="badge bg-light rounded-pill">—</span>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% plugin_right_page object %}
|
{% plugin_right_page object %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user