Ejemplo n.º 1
0
    # TODO: Move to model logic
    blocks_uuids = exp.get_all_block_uuids(redis_instance=r)
    blocks = exp.get_blocks(blocks_uuids, redis_instance=r)

    blocks_by_bscope = defaultdict(list)
    for uuid, block in blocks:
        blocks_by_bscope[block.scope_name].append(uuid)

    aliases_map = exp.get_block_aliases_map(redis_instance=r)

    variables = []
    for scope_name, _ in exp.get_all_scopes_with_block_uuids(redis_instance=r).iteritems():
        scope = Scope(exp, scope_name)
        scope.load(redis_instance=r)
        scope.update_scope_vars_by_block_aliases(aliases_map)

        variables.extend(scope.scope_vars)

    result = {
        "blocks_uuids": blocks_uuids,

        "blocks_by_bscope": blocks_by_bscope,
        "blocks_by_group": blocks_by_group,

        "vars": [var.to_dict() for var in variables],
        "vars_by_key": {var.pk: var.to_dict() for var in variables},

        "new_block_uuid": new_block.uuid if new_block else "",
    }
Ejemplo n.º 2
0
    # TODO: Move to model logic
    blocks_uuids = exp.get_all_block_uuids(redis_instance=r)
    blocks = exp.get_blocks(blocks_uuids, redis_instance=r)

    blocks_by_bscope = defaultdict(list)
    for uuid, block in blocks:
        blocks_by_bscope[block.scope_name].append(uuid)

    aliases_map = exp.get_block_aliases_map(redis_instance=r)

    variables = []
    for scope_name, _ in exp.get_all_scopes_with_block_uuids(
            redis_instance=r).iteritems():
        scope = Scope(exp, scope_name)
        scope.load(redis_instance=r)
        scope.update_scope_vars_by_block_aliases(aliases_map)

        variables.extend(scope.scope_vars)

    result = {
        "blocks_uuids": blocks_uuids,
        "blocks_by_bscope": blocks_by_bscope,
        "blocks_by_group": blocks_by_group,
        "vars": [var.to_dict() for var in variables],
        "vars_by_key": {var.pk: var.to_dict()
                        for var in variables},
        "new_block_uuid": new_block.uuid if new_block else "",
    }

    resp = HttpResponse(content_type="application/json")
    json.dump(result, resp)