Source code for contentful_management.ui_extension

from .resource import Resource, EnvironmentAwareResource
from copy import deepcopy


"""
contentful_management.ui_extension
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module implements the UIExtension class.

API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/ui-extensions

:copyright: (c) 2018 by Contentful GmbH.
:license: MIT, see LICENSE for more details.
"""


[docs]class UIExtension(Resource, EnvironmentAwareResource): """ API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/ui-extensions """ def __init__(self, item, **kwargs): super(UIExtension, self).__init__(item, **kwargs) self.extension = deepcopy(item.get('extension', {})) @property def source(self): return self.extension.get('src', '') or self.extension.get('srcdoc', '') @source.setter def source(self, value): key = 'src' if value.startswith('http') else 'srcdoc' self.extension[key] = value @property def name(self): return self.extension.get('name', '') @name.setter def name(self, value): self.extension['name'] = value @property def field_types(self): return self.extension.get('fieldTypes', []) @field_types.setter def field_types(self, value): self.extension['fieldTypes'] = value @property def sidebar(self): return self.extension.get('sidebar', False) @sidebar.setter def sidebar(self, value): self.extension['sidebar'] = value @property def parameters(self): return self.extension.get('parameters', {}) @parameters.setter def parameters(self, value): self.extension['parameters'] = value
[docs] @classmethod def update_attributes_map(klass): """ Defines keys and default values for non-generic attributes. """ return { 'extension': {} }
[docs] def to_json(self): """ Returns the JSON Representation of the UI extension. """ result = super(UIExtension, self).to_json() result.update({ 'extension': self.extension }) return result
def __repr__(self): return "<UIExtension[{0}] id='{1}' field_types=[{2}]>".format( self.name, self.sys.get('id', ''), ', '.join( "'{0}'".format(t) for t in [ ft['type'] for ft in self.field_types ] ) )