def get_blank_tile(sourcetilegroup): if len(sourcetilegroup[0]['data']) > 0: if sourcetilegroup[0]['data'][0] != {}: if sourcetilegroup[0]['data'][0].keys()[0] not in blanktilecache: blank_tile = Tile.get_blank_tile(tiles[0]['data'][0].keys()[0], resourceid=resourceinstanceid) cache(blank_tile) else: blank_tile = blanktilecache[tiles[0]['data'][0].keys()[0]] else: blank_tile = None else: blank_tile = None return blank_tile
def post(self, request): member_of_set_nodegroup_id = "63e49254-c444-11e9-afbe-a4d18cec433a" related_resource_id = request.POST.get("relatedresourceid") data = JSONDeserializer().deserialize(request.POST.get("data")) nodegroup_id = request.POST.get("nodegroupid", member_of_set_nodegroup_id) node_id = request.POST.get("node_id", member_of_set_nodegroup_id) transaction_id = request.POST.get("transactionid", None) try: with transaction.atomic(): for datum in data: action = datum["action"] resource_id = datum["resourceid"] if "resourceid" in datum else None tile_id = datum["tileid"] if "tileid" in datum else None related_resource_template = { "resourceId": "", "ontologyProperty": "", "resourceXresourceId": "", "inverseOntologyProperty": "", } if tile_id is not None: tile = Tile.objects.get(pk=tile_id) else: try: tile = Tile.objects.get(resourceinstance=resource_id, nodegroup=nodegroup_id) except ObjectDoesNotExist as e: tile = Tile.get_blank_tile(nodeid=node_id, resourceid=resource_id) tile.data[node_id] = [] list_of_rr_resources = [data["resourceId"] for data in tile.data[node_id]] if related_resource_id not in list_of_rr_resources and action == "add": related_resource_template["resourceId"] = related_resource_id tile.data[node_id].append(related_resource_template) tile.save(transaction_id=transaction_id) elif related_resource_id in list_of_rr_resources and action == "remove": rr_data = tile.data[node_id] tile.data[node_id] = [rr for rr in rr_data if rr["resourceId"] != related_resource_id] tile.save(transaction_id=transaction_id) return JSONResponse({"result": "success"}) except Exception as e: logger.exception(e) response = {"result": "failed", "message": [_("Request Failed"), _("Unable to save")]} return JSONResponse(response, status=500)
def get_blank_tile(source_data): if len(source_data) > 0: if source_data[0] != {}: key = str(source_data[0].keys()[0]) if key not in blanktilecache: blank_tile = Tile.get_blank_tile(key) cache(blank_tile) else: blank_tile = blanktilecache[key] else: blank_tile = None else: blank_tile = None # return deepcopy(blank_tile) return cPickle.loads(cPickle.dumps(blank_tile, -1))
def get_blank_tile(sourcetilegroup): if len(sourcetilegroup[0]['data']) > 0: if sourcetilegroup[0]['data'][0] != {}: if sourcetilegroup[0]['data'][0].keys( )[0] not in blanktilecache: blank_tile = Tile.get_blank_tile( tiles[0]['data'][0].keys()[0], resourceid=resourceinstanceid) cache(blank_tile) else: blank_tile = blanktilecache[ tiles[0]['data'][0].keys()[0]] else: blank_tile = None else: blank_tile = None return blank_tile
def get_blank_tile(self, sourcetilegroup, blanktilecache, tiles, resourceinstanceid): if len(sourcetilegroup[0]['data']) > 0: if sourcetilegroup[0]['data'][0] != {}: if sourcetilegroup[0]['data'][0].keys()[0] not in blanktilecache: blank_tile = Tile.get_blank_tile(tiles[0]['data'][0].keys()[0], resourceid=resourceinstanceid) if blank_tile.data != {}: for tile in blank_tile.tiles.values(): if isinstance(tile, Tile): for key in tile.data.keys(): blanktilecache[key] = blank_tile else: blank_tile = blanktilecache[tiles[0]['data'][0].keys()[0]] else: blank_tile = None else: blank_tile = None return blank_tile
def get_blank_tile(self, sourcetilegroup, blanktilecache, tiles, resourceinstanceid): if len(sourcetilegroup[0]["data"]) > 0: if sourcetilegroup[0]["data"][0] != {}: if list(sourcetilegroup[0]["data"][0].keys())[0] not in blanktilecache: blank_tile = Tile.get_blank_tile(list(tiles[0]["data"][0].keys())[0], resourceid=resourceinstanceid) if blank_tile.data != {}: for tile in blank_tile.tiles: if isinstance(tile, Tile): for key in list(tile.data.keys()): blanktilecache[key] = blank_tile else: blank_tile = blanktilecache[list(tiles[0]["data"][0].keys())[0]] else: blank_tile = None else: blank_tile = None return blank_tile