Moved object context rendering to ObjectConfigContextView and standardized the template

This commit is contained in:
Jeremy Stretch
2018-06-28 13:48:12 -04:00
parent b952ec73ce
commit 62989ecb6e
8 changed files with 88 additions and 72 deletions

View File

@@ -0,0 +1,23 @@
from __future__ import unicode_literals
from django.db.models import Q, QuerySet
class ConfigContextQuerySet(QuerySet):
def get_for_object(self, obj):
"""
Return all applicable ConfigContexts for a given object. Only active ConfigContexts will be included.
"""
# `device_role` for Device; `role` for VirtualMachine
role = getattr(obj, 'device_role', None) or obj.role
return self.filter(
Q(regions=obj.site.region) | Q(regions=None),
Q(sites=obj.site) | Q(sites=None),
Q(roles=role) | Q(roles=None),
Q(tenants=obj.tenant) | Q(tenants=None),
Q(platforms=obj.platform) | Q(platforms=None),
is_active=True,
).order_by('weight', 'name')