Beispiel #1
0
    def save(self, uuid, data):
        """
        Save data and resolve the path for the children
        """

        if 'slug' not in data:
            raise InvalidDataFormat("The data must contain a `slug` key: %s" % (data))

        if not uuid:
            uuid = generate_uuid()

        if 'id' in data:
            data['_id'] = ObjectId(data['id'])
            del(data['id'])

        data['uuid'] = uuid

        self.resolve_parents(data)
        self.fix_paths(data)

        data['_id'] = self.get_collection().save(data)

        self.fix_children(data)
        self.normalize([data])

        return data
Beispiel #2
0
    def __init__(self, uuid=None, data=None):

        self.methods = {}
        self.uuid = uuid or generate_uuid()

        self.manager = None
        # set default values

        self.id = None
        self.path = None
        self.data = {}
        self.type = None
        self.enabled = True
        self.status = 0
        self.created_at = datetime.datetime.now()
        self.updated_at = datetime.datetime.now()
        self.version = 1
        self.revision = 1
        self.deleted = False
        self.current = True
        self.set_uuid = None
        self.weight = 0
        self.set = None

        if not data:
            return

        self.define(data)
Beispiel #3
0
    def save(self, uuid, data):
        """
        Save data and resolve the path for the children
        """
        if 'slug' not in data:
            raise InvalidDataFormat("The data must contain a `slug` key: %s" % (data))

        if not uuid:
            uuid = generate_uuid()

        data['uuid'] = uuid

        kwargs = {
            'index': self.index,
            'doc_type': 'node',
            'body': data,
            # refresh=True, this is not ideal but required to have real time data inside the index
            'refresh': True
        }

        if 'id' in data:
            kwargs['id'] = data['id']
            del(data['id'])

        self.resolve_parents(data)
        self.fix_paths(data)


        res = self.client.index(**kwargs)

        data['id'] = res['_id']

        self.fix_children(data)
        # self.normalize([data])

        return data