def get_modules_json(records): module_group_index = vault.get_vault()['module_group_index'] module_id_index = vault.get_vault()['module_id_index'] tags = parameters.get_parameter({}, 'tag', 'tags') # all modules mentioned in records module_ids = set(record['module'] for record in records) # plus all module groups that hold these modules module_ids |= set(itertools.chain.from_iterable( module_group_index.get(module, []) for module in module_ids)) # keep only modules with specified tags if tags: module_ids = set(module_id for module_id in module_ids if module_id_index[module_id].get('tag') in tags) # keep only modules that are in project type completely pts = parameters.get_parameter({}, 'project_type', 'project_types') if pts: m = set(vault.resolve_project_types(pts)) module_ids = set(module_id for module_id in module_ids if module_id_index[module_id]['modules'] <= m) query = (flask.request.args.get('query') or '').lower() matched = [] for module_id in module_ids: if module_id.find(query) >= 0: module = dict([(k, v) for k, v in six.iteritems(module_id_index[module_id]) if k not in ['modules']]) matched.append(module) return sorted(matched, key=operator.itemgetter('text'))
def record_filter_decorated_function(*args, **kwargs): memory_storage_inst = vault.get_memory_storage() record_ids = set(memory_storage_inst.get_record_ids()) # a copy releases = [] if 'release' not in ignore: releases = parameters.get_parameter(kwargs, 'release', 'releases', use_default) if releases: if 'all' not in releases: record_ids &= ( memory_storage_inst.get_record_ids_by_releases( c.lower() for c in releases)) modules = parameters.get_parameter(kwargs, 'module', 'modules', use_default) if 'project_type' not in ignore: param = parameters.get_parameter(kwargs, 'project_type', 'project_types', use_default) if param: record_ids &= _filter_records_by_modules( memory_storage_inst, vault.resolve_project_types(param), releases) if 'module' not in ignore: if modules: record_ids &= _filter_records_by_modules( memory_storage_inst, modules, releases) if 'user_id' not in ignore: param = parameters.get_parameter(kwargs, 'user_id', 'user_ids') param = [u for u in param if vault.get_user_from_runtime_storage(u)] if param: record_ids &= ( memory_storage_inst.get_record_ids_by_user_ids(param)) if 'company' not in ignore: param = parameters.get_parameter(kwargs, 'company', 'companies') if param: record_ids &= ( memory_storage_inst.get_record_ids_by_companies(param)) if 'metric' not in ignore: metrics = parameters.get_parameter(kwargs, 'metric') if 'all' not in metrics: for metric in metrics: if metric in parameters.METRIC_TO_RECORD_TYPE: record_ids &= ( memory_storage_inst.get_record_ids_by_type( parameters.METRIC_TO_RECORD_TYPE[metric])) if 'tm_marks' in metrics: filtered_ids = [] review_nth = int(parameters.get_parameter( kwargs, 'review_nth')[0]) for record in memory_storage_inst.get_records(record_ids): parent = memory_storage_inst.get_record_by_primary_key( record['review_id']) if (parent and ('review_number' in parent) and (parent['review_number'] <= review_nth)): filtered_ids.append(record['record_id']) record_ids = filtered_ids if 'blueprint_id' not in ignore: param = parameters.get_parameter(kwargs, 'blueprint_id') if param: record_ids &= ( memory_storage_inst.get_record_ids_by_blueprint_ids( param)) time_filter = _get_time_filter(kwargs, ignore) kwargs['records'] = time_filter( memory_storage_inst.get_records(record_ids)) return f(*args, **kwargs)
def record_filter_decorated_function(*args, **kwargs): memory_storage_inst = vault.get_memory_storage() record_ids = set(memory_storage_inst.get_record_ids()) # a copy if 'module' not in ignore: param = parameters.get_parameter(kwargs, 'module', 'modules', use_default) if param: record_ids &= ( memory_storage_inst.get_record_ids_by_modules( vault.resolve_modules(param))) if 'project_type' not in ignore: param = parameters.get_parameter(kwargs, 'project_type', 'project_types', use_default) if param: record_ids &= ( memory_storage_inst.get_record_ids_by_modules( vault.resolve_project_types(param))) if 'user_id' not in ignore: param = parameters.get_parameter(kwargs, 'user_id', 'user_ids') param = [ u for u in param if vault.get_user_from_runtime_storage(u) ] if param: record_ids &= ( memory_storage_inst.get_record_ids_by_user_ids(param)) if 'company' not in ignore: param = parameters.get_parameter(kwargs, 'company', 'companies') if param: record_ids &= ( memory_storage_inst.get_record_ids_by_companies(param)) if 'release' not in ignore: param = parameters.get_parameter(kwargs, 'release', 'releases', use_default) if param: if 'all' not in param: record_ids &= ( memory_storage_inst.get_record_ids_by_releases( c.lower() for c in param)) if 'metric' not in ignore: metrics = parameters.get_parameter(kwargs, 'metric') if 'all' not in metrics: for metric in metrics: record_ids &= ( memory_storage_inst.get_record_ids_by_type( parameters.METRIC_TO_RECORD_TYPE[metric])) if 'tm_marks' in metrics: filtered_ids = [] review_nth = int( parameters.get_parameter(kwargs, 'review_nth')[0]) for record in memory_storage_inst.get_records(record_ids): parent = memory_storage_inst.get_record_by_primary_key( record['review_id']) if (parent and ('review_number' in parent) and (parent['review_number'] <= review_nth)): filtered_ids.append(record['record_id']) record_ids = filtered_ids if 'blueprint_id' not in ignore: param = parameters.get_parameter(kwargs, 'blueprint_id') if param: record_ids &= (memory_storage_inst. get_record_ids_by_blueprint_ids(param)) time_filter = _get_time_filter(kwargs) kwargs['records'] = time_filter( memory_storage_inst.get_records(record_ids)) return f(*args, **kwargs)
def record_filter_decorated_function(*args, **kwargs): memory_storage_inst = vault.get_memory_storage() record_ids = set(memory_storage_inst.get_record_ids()) # a copy params = _prepare_params(kwargs, ignore) release = params['release'] if release: if 'all' not in release: record_ids &= ( memory_storage_inst.get_record_ids_by_releases( c.lower() for c in release)) project_type = params['project_type'] if project_type: record_ids &= _filter_records_by_modules( memory_storage_inst, vault.resolve_project_types(project_type), release) module = params['module'] if module: record_ids &= _filter_records_by_modules( memory_storage_inst, module, release) user_id = params['user_id'] user_id = [ u for u in user_id if vault.get_user_from_runtime_storage(u) ] if user_id: record_ids &= ( memory_storage_inst.get_record_ids_by_user_ids(user_id)) company = params['company'] if company: record_ids &= ( memory_storage_inst.get_record_ids_by_companies(company)) metric = params['metric'] if 'all' not in metric: for metric in metric: if metric in parameters.METRIC_TO_RECORD_TYPE: record_ids &= ( memory_storage_inst.get_record_ids_by_type( parameters.METRIC_TO_RECORD_TYPE[metric])) if 'tm_marks' in metric: filtered_ids = [] review_nth = int( parameters.get_parameter(kwargs, 'review_nth')[0]) for record in memory_storage_inst.get_records(record_ids): parent = memory_storage_inst.get_record_by_primary_key( record['review_id']) if (parent and ('review_number' in parent) and (parent['review_number'] <= review_nth)): filtered_ids.append(record['record_id']) record_ids = filtered_ids blueprint_id = params['blueprint_id'] if blueprint_id: record_ids &= (memory_storage_inst. get_record_ids_by_blueprint_ids(blueprint_id)) start_date = params['start_date'] end_date = params['end_date'] if start_date or end_date: record_ids &= _filter_records_by_days(start_date, end_date, memory_storage_inst) kwargs['record_ids'] = record_ids kwargs['records'] = memory_storage_inst.get_records(record_ids) return f(*args, **kwargs)
def record_filter_decorated_function(*args, **kwargs): memory_storage_inst = vault.get_memory_storage() record_ids = set(memory_storage_inst.get_record_ids()) # a copy params = _prepare_params(kwargs, ignore) release = params['release'] if release: if 'all' not in release: record_ids &= ( memory_storage_inst.get_record_ids_by_releases( c.lower() for c in release)) project_type = params['project_type'] if project_type: record_ids &= _filter_records_by_modules( memory_storage_inst, vault.resolve_project_types(project_type), release) module = params['module'] if module: record_ids &= _filter_records_by_modules( memory_storage_inst, module, release) user_id = params['user_id'] user_id = [u for u in user_id if vault.get_user_from_runtime_storage(u)] if user_id: record_ids &= ( memory_storage_inst.get_record_ids_by_user_ids(user_id)) company = params['company'] if company: record_ids &= ( memory_storage_inst.get_record_ids_by_companies(company)) metric = params['metric'] if 'all' not in metric: for metric in metric: if metric in parameters.METRIC_TO_RECORD_TYPE: record_ids &= ( memory_storage_inst.get_record_ids_by_type( parameters.METRIC_TO_RECORD_TYPE[metric])) if 'tm_marks' in metric: filtered_ids = [] review_nth = int(parameters.get_parameter( kwargs, 'review_nth')[0]) for record in memory_storage_inst.get_records(record_ids): parent = memory_storage_inst.get_record_by_primary_key( record['review_id']) if (parent and ('review_number' in parent) and (parent['review_number'] <= review_nth)): filtered_ids.append(record['record_id']) record_ids = filtered_ids blueprint_id = params['blueprint_id'] if blueprint_id: record_ids &= ( memory_storage_inst.get_record_ids_by_blueprint_ids( blueprint_id)) start_date = params['start_date'] end_date = params['end_date'] if start_date or end_date: record_ids &= _filter_records_by_days(start_date, end_date, memory_storage_inst) kwargs['record_ids'] = record_ids kwargs['records'] = memory_storage_inst.get_records(record_ids) return f(*args, **kwargs)