Пример #1
0
    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')
Пример #2
0
 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)
Пример #3
0
 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
Пример #4
0
            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()
Пример #5
0
                    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()
Пример #6
0
            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()
Пример #7
0
                    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()