def ready(self): if database_ready(): # from django.contrib.contenttypes.models import ContentType # from .models import Content, Website # qset = Content.content_type.field.get_limit_choices_to() # for ct in ContentType.objects.filter(qset): # relation = GenericRelation('websites.Content') # ct.model_class().add_to_class('content_set', relation) from .models import Website services.register(Website, icon='Applications-internet.png')
def ready(self): if database_ready(): from .models import create_resource_relation try: create_resource_relation() except db.utils.OperationalError: # Not ready afterall pass from .models import Resource, ResourceData, MonitorData administration.register(Resource, icon='gauge.png') administration.register(ResourceData, parent=Resource, icon='monitor.png') administration.register(MonitorData, parent=Resource, dashboard=False)
def ready(self): if database_ready(): from .models import create_resource_relation try: create_resource_relation() except db.utils.OperationalError: # Not ready afterall pass from .models import Resource, ResourceData, MonitorData administration.register(Resource, icon='gauge.png') administration.register(ResourceData, parent=Resource, icon='monitor.png') administration.register(MonitorData, parent=Resource, dashboard=False) from . import signals
if data.used is not None: return '%s %s %s' % (data.used, data.resource.unit, update_link) return _("Unknonw %s") % update_link display_used.short_description = _("Used") display_used.allow_tags = True def has_add_permission(self, *args, **kwargs): """ Hidde add another """ return False return ResourceInline def insert_resource_inlines(): # Clean previous state for related in Resource._related: modeladmin = get_modeladmin(related) modeladmin_class = type(modeladmin) for inline in getattr(modeladmin_class, 'inlines', []): if inline.__name__ == 'ResourceInline': modeladmin_class.inlines.remove(inline) resources = Resource.objects.filter(is_active=True) for ct, resources in resources.group_by('content_type').items(): inline = resource_inline_factory(resources) model = ct.model_class() insertattr(model, 'inlines', inline) if db.database_ready(): insert_resource_inlines()
raise serializers.ValidationError(msg) resources.remove(resource) if not resource.on_demand and not data.allocated: data.allocated = resource.default_allocation result.append(data) for resource in resources: data = ResourceData(resource=resource) if not resource.on_demand: data.allocated = resource.default_allocation result.append(data) return result viewset = router.get_viewset(model) viewset.serializer_class.validate_resources = validate_resources old_options = viewset.options def options(self, request, resources=resources): """ Provides available resources description """ metadata = old_options(self, request) metadata.data['available_resources'] = [ { 'name': resource.name, 'on_demand': resource.on_demand, 'default_allocation': resource.default_allocation } for resource in resources ] return metadata viewset.options = options if database_ready(): insert_resource_serializers()
if rdata.resource.monitors: return _("Unknonw %s %s") % (update, history) return _("No monitor") display_used.short_description = _("Used") def has_add_permission(self, *args, **kwargs): """ Hidde add another """ return False return ResourceInline def insert_resource_inlines(): # Clean previous state for related in Resource._related: modeladmin = get_modeladmin(related) modeladmin_class = type(modeladmin) for inline in getattr(modeladmin_class, 'inlines', []): if inline.__name__ == 'ResourceInline': modeladmin_class.inlines.remove(inline) resources = Resource.objects.filter(is_active=True) for ct, resources in resources.group_by('content_type').items(): inline = resource_inline_factory(resources) model = ct.model_class() insertattr(model, 'inlines', inline) if db.database_ready(): insert_resource_inlines()
raise serializers.ValidationError(msg) resources.remove(resource) if not resource.on_demand and not data.allocated: data.allocated = resource.default_allocation result.append(data) for resource in resources: data = ResourceData(resource=resource) if not resource.on_demand: data.allocated = resource.default_allocation result.append(data) return result viewset = router.get_viewset(model) viewset.serializer_class.validate_resources = validate_resources old_options = viewset.options def options(self, request, resources=resources): """ Provides available resources description """ metadata = old_options(self, request) metadata.data['available_resources'] = [ { 'name': resource.name, 'on_demand': resource.on_demand, 'default_allocation': resource.default_allocation } for resource in resources ] return metadata viewset.options = options if database_ready(): insert_resource_serializers()