Esempio n. 1
0
    def data(self):

        _ = {}

        fields = self.object_fields

        for (i,f) in fields.iteritems():

            if f:

                value = getattr(self.context, i, None)

                value_type = None

                if hasattr(f, 'value_type'):
                    value_type = f.value_type

                is_grid = isinstance(value_type, DictRow)

                if is_grid and isinstance(f, (schema.List, schema.Tuple)):
                    value = [object_factory(**x) for x in value]

                __ = {
                    'name' : i,
                    'title' : f.title,
                    'value' : value,
                }

                _[i] = object_factory(**__)

        return object_factory(**_)
Esempio n. 2
0
    def data(self):

        _ = {}

        fields = self.object_fields

        for (i, f) in fields.iteritems():

            if f:

                value = getattr(self.context, i, None)

                value_type = None

                if hasattr(f, 'value_type'):
                    value_type = f.value_type

                is_grid = isinstance(value_type, DictRow)

                if is_grid and isinstance(f, (schema.List, schema.Tuple)):
                    try:
                        value = [object_factory(**x) for x in value]
                    except:
                        value = []

                __ = {
                    'name': i,
                    'title': f.title,
                    'value': value,
                }

                _[i] = object_factory(**__)

        return object_factory(**_)
Esempio n. 3
0
    def upload_image(self):

        response = requests.put(
            "%s/api/upload" % self.API_URL,
            headers={'Content-Type': self.getContentType()},
            data=self.image.data)

        if response.status_code in (200, ):
            return object_factory(**response.json())

        return object_factory(error="HTTP Error %d" % response.status_code)
Esempio n. 4
0
    def __call__(self):
        _name = self.context.__name__
        _tile_type = self.context.tile_type
        _id = self.context.id

        for (_label, _url) in self.links:
            yield object_factory(
                name=_name,
                tile_type=_tile_type,
                label=_label,
                url=_url,
                id=_id,
            )
Esempio n. 5
0
    def to_brain(self, config=[]):
        rv = []

        for _ in config:
            # Present URL Key as SKU if no SKU for sorting/filtering purposes.
            __ = {
                'Title': _.get('name', None),
                'Description': _.get('description', None),
                'getURL': _.get('url', None),
                'thumbnail': _.get('thumbnail', None),
                'hasLeadImage': not not _.get('thumbnail', None),
                'sku': _.get('sku', _.get('url_key', None)),
            }

            rv.append(object_factory(**__))

        rv.sort(key=lambda x: x.Title)

        if self.sku_order:
            rv.sort(key=self.sku_sort_key)

        return rv
Esempio n. 6
0
 def name_data(self):
     from agsci.common import object_factory
     names = dict([(x, getattr(self, x, '')) for x in self.name_fields])
     names['title'] = self.title
     return object_factory(**names)
Esempio n. 7
0
 def tag_data(self):
     return [object_factory(key=x, value=x) for x in self.tags]