def index(self): """Bulk delete items and index trees.""" if request.method == 'PUT': # Do delete items inside the current index tree (maybe root tree) q = request.values.get('q') if q is not None and q.isdigit(): current_tree = Indexes.get_index(q) recursive_tree = Indexes.get_recursive_tree(q) if current_tree is not None: # Delete items in current_tree delete_records(current_tree.id) # If recursively, then delete all child index trees # and theirs items if request.values.get('recursively') == 'true'\ and recursive_tree is not None: # Delete recursively direct_child_trees = [] for index, obj in enumerate(recursive_tree): if obj[1] != current_tree.id: child_tree = Indexes.get_index(obj[1]) # Do delete items in child_tree delete_records(child_tree.id) # Add the level 1 child into the current_tree if obj[0] == current_tree.id: direct_child_trees.append(child_tree.id) # Then do delete child_tree inside current_tree for cid in direct_child_trees: # Delete this tree and children Indexes.delete(cid) return jsonify({'status': 1}) else: return jsonify({'status': 0, 'msg': 'Invalid tree'}) """Render view.""" detail_condition = get_search_detail_keyword('') return self.render( current_app.config['WEKO_THEME_ADMIN_ITEM_MANAGEMENT_TEMPLATE'], management_type='delete', detail_condition=detail_condition )
def index(self): """Index Search page ui.""" search_type = request.args.get('search_type', '0') getArgs = request.args community_id = "" ctx = {'community': None} cur_index_id = search_type if search_type not in ( '0', '1', ) else None if 'community' in getArgs: from weko_workflow.api import GetCommunity comm = GetCommunity.get_community_by_id( request.args.get('community')) ctx = {'community': comm} community_id = comm.id # Get index style style = IndexStyle.get( current_app.config['WEKO_INDEX_TREE_STYLE_OPTIONS']['id']) width = style.width if style else '3' detail_condition = get_search_detail_keyword('') height = style.height if style else None if 'item_management' in getArgs: management_type = request.args.get('item_management', 'sort') has_items = False has_child_trees = False if management_type == 'delete': # Does this tree has items or children? q = request.args.get('q') if q is not None and q.isdigit(): current_tree = Indexes.get_index(q) recursive_tree = Indexes.get_recursive_tree(q) if current_tree is not None: tree_items = get_tree_items(current_tree.id) has_items = len(tree_items) > 0 if recursive_tree is not None: has_child_trees = len(recursive_tree) > 1 return self.render( current_app. config['WEKO_THEME_ADMIN_ITEM_MANAGEMENT_TEMPLATE'], index_id=cur_index_id, community_id=community_id, width=width, height=height, management_type=management_type, fields=current_app.config['WEKO_RECORDS_UI_BULK_UPDATE_FIELDS'] ['fields'], licences=current_app. config['WEKO_RECORDS_UI_BULK_UPDATE_FIELDS']['licences'], has_items=has_items, has_child_trees=has_child_trees, detail_condition=detail_condition, **ctx) else: return abort(500)