def get_paths(my, file_type='main'): search_key = my.kwargs.get("search_key") search_keys = my.kwargs.get("search_keys") paths = my.kwargs.get("paths") if not paths: paths = [] """ if search_keys: sobjects = Search.get_by_search_keys(search_keys) snapshots = Snapshot.get_by_sobjects(sobjects, is_latest=True) file_objects = File.get_by_snapshots(snapshots, file_type='main') paths = [x.get_web_path() for x in file_objects] web_file_objects = File.get_by_snapshots(snapshots, file_type='web') web_paths = [x.get_web_path() for x in web_file_objects] #paths = web_paths for sobject, path in zip(sobjects, paths): my.sobject_data[path] = sobject """ if search_keys: sobjects = Search.get_by_search_keys(search_keys, keep_order=True) # return_dict=True defaults to return the first of each snapshot list # and so works well with is_latest=True if sobjects and sobjects[0].get_base_search_type( ) == "sthpw/snapshot": sobj_snapshot_dict = {} for sobject in sobjects: search_key = sobject.get_search_key() sobj_snapshot_dict[search_key] = sobject snapshots = sobjects else: sobj_snapshot_dict = Snapshot.get_by_sobjects(sobjects, is_latest=True, return_dict=True) snapshots = sobj_snapshot_dict.values() file_dict = Snapshot.get_files_dict_by_snapshots( snapshots, file_type=file_type) for sobject in sobjects: path = '' snapshot = sobj_snapshot_dict.get(sobject.get_search_key()) # it is supposed to get one (latest), just a precaution if isinstance(snapshot, list): snapshot = snapshot[0] if not snapshot: continue file_list = file_dict.get(snapshot.get_code()) if not file_list: continue for file_object in file_list: path = file_object.get_web_path() my.sobject_data[path] = sobject paths.append(path) # set the current path the user clicks on if not my.curr_path and sobject.get_search_key( ) == search_key and file_type == 'main': my.curr_path = path elif paths: return paths else: # TEST paths = [ '/assets/test/store/The%20Boxter_v001.jpg', '/assets/test/store/Another%20one_v001.jpg', '/assets/test/store/Whatever_v001.jpg' ] return paths
def get_paths(self, file_type='main'): # this is the selected one search_key = self.kwargs.get("search_key") search_keys = self.kwargs.get("search_keys") paths = self.kwargs.get("paths") if not paths: paths = [] if search_keys: sobjects = Search.get_by_search_keys(search_keys, keep_order=True) # return_dict=True defaults to return the first of each snapshot list # and so works well with is_latest=True if sobjects and sobjects[0].get_base_search_type() == "sthpw/snapshot": sobj_snapshot_dict = {} for sobject in sobjects: tmp_search_key = sobject.get_search_key() sobj_snapshot_dict[tmp_search_key] = sobject snapshots = sobjects else: sobj_snapshot_dict = Snapshot.get_by_sobjects(sobjects, is_latest=True, return_dict=True) snapshots = sobj_snapshot_dict.values() file_dict = Snapshot.get_files_dict_by_snapshots(snapshots, file_type=file_type) for sobject in sobjects: path = '' snapshot = sobj_snapshot_dict.get(sobject.get_search_key()) # it is supposed to get one (latest), just a precaution if isinstance(snapshot, list): snapshot = snapshot[0] if not snapshot: continue file_list = file_dict.get(snapshot.get_code()) if not file_list: paths.append("") continue # NOTE: there should only be one file tmp_paths = [] for file_object in file_list: path = file_object.get_web_path() if path.find("#") != -1: expanded_paths = snapshot.get_expanded_web_paths() path = "|".join(expanded_paths) tmp_paths.append(path) path = "|".join(tmp_paths) self.sobject_data[path] = sobject paths.append(path) # set the current path the user clicks on if not self.curr_path and sobject.get_search_key() == search_key and file_type=='main': self.curr_path = path elif paths: return paths else: # TEST paths = [ '/assets/test/store/The%20Boxter_v001.jpg', '/assets/test/store/Another%20one_v001.jpg', '/assets/test/store/Whatever_v001.jpg' ] """ for index,path in enumerate(paths): path = urllib.pathname2url(path) paths[index] = path """ return paths
def get_paths(my, file_type='main'): # this is the selected one search_key = my.kwargs.get("search_key") search_keys = my.kwargs.get("search_keys") paths = my.kwargs.get("paths") if not paths: paths = [] """ if search_keys: sobjects = Search.get_by_search_keys(search_keys) snapshots = Snapshot.get_by_sobjects(sobjects, is_latest=True) file_objects = File.get_by_snapshots(snapshots, file_type='main') paths = [x.get_web_path() for x in file_objects] web_file_objects = File.get_by_snapshots(snapshots, file_type='web') web_paths = [x.get_web_path() for x in web_file_objects] #paths = web_paths for sobject, path in zip(sobjects, paths): my.sobject_data[path] = sobject """ if search_keys: sobjects = Search.get_by_search_keys(search_keys, keep_order=True) # return_dict=True defaults to return the first of each snapshot list # and so works well with is_latest=True if sobjects and sobjects[0].get_base_search_type() == "sthpw/snapshot": sobj_snapshot_dict = {} for sobject in sobjects: tmp_search_key = sobject.get_search_key() sobj_snapshot_dict[tmp_search_key] = sobject snapshots = sobjects else: sobj_snapshot_dict = Snapshot.get_by_sobjects(sobjects, is_latest=True, return_dict=True) snapshots = sobj_snapshot_dict.values() file_dict = Snapshot.get_files_dict_by_snapshots(snapshots, file_type=file_type) for sobject in sobjects: path = '' snapshot = sobj_snapshot_dict.get(sobject.get_search_key()) # it is supposed to get one (latest), just a precaution if isinstance(snapshot, list): snapshot = snapshot[0] if not snapshot: continue file_list = file_dict.get(snapshot.get_code()) if not file_list: continue for file_object in file_list: path = file_object.get_web_path() my.sobject_data[path] = sobject paths.append(path) # set the current path the user clicks on if not my.curr_path and sobject.get_search_key() == search_key and file_type=='main': my.curr_path = path elif paths: return paths else: # TEST paths = [ '/assets/test/store/The%20Boxter_v001.jpg', '/assets/test/store/Another%20one_v001.jpg', '/assets/test/store/Whatever_v001.jpg' ] return paths
def query_sobjects(search_type, filters=[], order_bys=[], limit=None, offset=None): import json from pyasm.search import Search from pyasm.biz import Snapshot sobjects_list = server.query(search_type, filters=filters, order_bys=order_bys, limit=limit, offset=offset) total_sobjects_count = len(server.query(search_type)) total_sobjects_query_count = len(server.query(search_type, filters=filters)) result = { 'total_sobjects_count': total_sobjects_count, 'total_sobjects_query_count': total_sobjects_query_count, 'sobjects_list': sobjects_list, 'limit': limit, 'offset': offset, } have_search_code = False if sobjects_list: if sobjects_list[0].get('code'): have_search_code = True for sobject in sobjects_list: search = Search('sthpw/note') if have_search_code: search.add_op_filters([('process', 'publish'), ('search_type', search_type), ('search_code', sobject['code'])]) else: search.add_op_filters([('process', 'publish'), ('search_type', search_type), ('search_id', sobject['id'])]) sobject['__notes_count__'] = search.get_count() search = Search('sthpw/task') if have_search_code: search.add_op_filters([('search_type', search_type), ('search_code', sobject['code'])]) else: search.add_op_filters([('search_type', search_type), ('search_id', sobject['id'])]) sobject['__tasks_count__'] = search.get_count() search = Search('sthpw/snapshot') if have_search_code: search.add_op_filters([('process', ['icon', 'attachment', 'publish']), ('search_type', search_type), ('search_code', sobject['code'])]) else: search.add_op_filters([('process', ['icon', 'attachment', 'publish']), ('search_type', search_type), ('search_id', sobject['id'])]) # search.add_order_by('timestamp asc') snapshots = search.get_sobjects() snapshot_files = Snapshot.get_files_dict_by_snapshots(snapshots) snapshots_list = [] for snapshot in snapshots: snapshot_dict = server.server._get_sobject_dict(snapshot) files_list = [] files = snapshot_files.get(snapshot_dict['code']) if files: for fl in files: files_list.append(server.server._get_sobject_dict(fl)) snapshot_dict['__files__'] = files_list snapshots_list.append(snapshot_dict) sobject['__snapshots__'] = snapshots_list return json.dumps(result, separators=(',', ':'))
def get_paths(self, file_type='main'): # this is the selected one search_key = self.kwargs.get("search_key") search_keys = self.kwargs.get("search_keys") paths = self.kwargs.get("paths") if not paths: paths = [] if search_keys: sobjects = Search.get_by_search_keys(search_keys, keep_order=True) # return_dict=True defaults to return the first of each snapshot list # and so works well with is_latest=True if sobjects and sobjects[0].get_base_search_type( ) == "sthpw/snapshot": sobj_snapshot_dict = {} for sobject in sobjects: tmp_search_key = sobject.get_search_key() sobj_snapshot_dict[tmp_search_key] = sobject snapshots = sobjects else: sobj_snapshot_dict = Snapshot.get_by_sobjects(sobjects, is_latest=True, return_dict=True) snapshots = sobj_snapshot_dict.values() file_dict = Snapshot.get_files_dict_by_snapshots( snapshots, file_type=file_type) for sobject in sobjects: path = '' snapshot = sobj_snapshot_dict.get(sobject.get_search_key()) # it is supposed to get one (latest), just a precaution if isinstance(snapshot, list): snapshot = snapshot[0] if not snapshot: continue file_list = file_dict.get(snapshot.get_code()) if not file_list: paths.append("") continue # NOTE: there should only be one file tmp_paths = [] for file_object in file_list: path = file_object.get_web_path() if path.find("#") != -1: expanded_paths = snapshot.get_expanded_web_paths() path = "|".join(expanded_paths) tmp_paths.append(path) path = "|".join(tmp_paths) self.sobject_data[path] = sobject paths.append(path) # set the current path the user clicks on if not self.curr_path and sobject.get_search_key( ) == search_key and file_type == 'main': self.curr_path = path elif paths: return paths else: # TEST paths = [ '/assets/test/store/The%20Boxter_v001.jpg', '/assets/test/store/Another%20one_v001.jpg', '/assets/test/store/Whatever_v001.jpg' ] """ for index,path in enumerate(paths): path = urllib.pathname2url(path) paths[index] = path """ return paths