def query_build_info_where_not_triggered_by_pull_request( cls, model, page_num, select_word): """ pull request 信息不存在时,页面加载表格信息查询 :param model: :param page_num: :param select_word: :return: """ start, end = Utils.page_rules(page_num) if select_word is not None: models = model.objects.filter( pull_request_id__exact=0, commit_msg__contains=select_word).values( "build_id").distinct().order_by('-build_id').all() else: models = model.objects.filter(pull_request_id__exact=0).values( "build_id").distinct().order_by('-build_id').all() total = len(models) models = list(models)[start:end] for i in range(len(models)): build_id = models[i].get(const.BUILD_ID_KEY) build_model = model.objects.filter( build_id__exact=build_id).order_by('-create_time').all() models[i] = Utils.model_objects_to_list(build_model)[0] return total, models
def query_market_info(cls, model, page_num, select_word, start_time, end_time): """ 市场部下载 vue 表格中信息获取 :param model: :param page_num: :param select_word: :param start_time: :param end_time: :return: """ start, end = Utils.page_rules(page_num) end_time = datetime.now() if end_time is None else end_time start_time = Utils.time_str_to_datetime_object( '1970-01-01T01:01:01') if start_time is None else start_time if select_word is None: release_info = model.objects.filter( test_result__exact="测试通过", is_tab__exact=1, is_report=1, update_time__range=(start_time, end_time)).order_by('-update_time').all() else: release_info = model.objects.filter( test_result__exact="测试通过", is_tab__exact=1, is_report=1, update_time__range=(start_time, end_time), apk_name__contains=select_word).order_by('-update_time').all() data = Utils.model_objects_to_list(release_info)[start:end] total = len(release_info) return total, data
def query_test_report(cls, model, apk_id): """ 查询测试报告信息,不返回 测试报告具体内容(具体内容为二进制文件,需下载查看) :param model: :param apk_id: :return: """ models = model.objects.filter(apk_id__exact=apk_id).all() for i in range(len(models)): models[ i].test_report_data = None # 测试报告内容为空,否则bytes 类型不能转化为json 格式 return Utils.model_objects_to_list(models)
def query_pull_request_items(cls, model, pull_request_items_str: str): """ 查看打标的 pull request 信息 :param model: :param pull_request_items_str: :return: """ pull_request_items_list = pull_request_items_str.split(",") data = model.objects.filter(pull_request_id__in=pull_request_items_list).order_by('-pull_request_id').all() for model in data: if model.complete_time is not None: model.complete_time = Utils.utc_to_local(model.complete_time) # utc 时间转为本地时间 return Utils.model_objects_to_list(data)
def query_apk_detail_where_pull_request_id_is_zero( cls, model, pull_request_query_data): """ pull request 信息不存在时, 查询对应的 apk detail 信息 :param model: :param pull_request_query_data: :return: """ for i in range(len(pull_request_query_data)): build_id = pull_request_query_data[i].get(const.BUILD_ID_KEY) models = model.objects.filter(build_id__exact=build_id, apk_type__in=[ "debug", "release" ]).order_by('-create_time').all() pull_request_query_data[i][ const.DATA_KEY] = Utils.model_objects_to_list(models) return pull_request_query_data
def query_pull_request_info(cls, model, page_num, select_word=None): """ 查询 pull request 信息 :param model: :param page_num: :param select_word: :return: """ start, end = Utils.page_rules(page_num) if select_word is not None: model_infos = model.objects.filter(title__contains=select_word).order_by('-pull_request_id').all() else: model_infos = model.objects.filter().order_by('-pull_request_id').all() for model in model_infos: if model.complete_time is not None: model.complete_time = Utils.utc_to_local(model.complete_time) # utc 时间转为本地时间 total = len(model_infos) return total, Utils.model_objects_to_list(model_infos[start: end])
def query_data_of_a_month_at_specific_time(cls, model, pull_request_id=None, end_time=None): """ 获取特定时间,一个月内的 pull request 信息 :param model: :param pull_request_id: :param end_time: :return: """ if end_time is None: end_time = model.objects.filter(pull_request_id__exact=pull_request_id).first().complete_time if end_time is None: # 如果complete time为None,直接返回空数据 return [] month = end_time - datetime.timedelta(weeks=4) pull_request_models = model.objects.filter(complete_time__gte=month, complete_time__lte=end_time).order_by( '-complete_time') for model in pull_request_models: if model.complete_time is not None: model.complete_time = Utils.utc_to_local(model.complete_time) # utc 时间转为本地时间 return Utils.model_objects_to_list(pull_request_models)
def get_full_info(cls, model, page_num, select_word): """ 获得模型和网络数据 :param model: :param page_num: :param select_word: :return: """ start, end = Util.page_rules(page_num) if select_word is not None: dl_model_info = model.objects.filter( models_name__contains=select_word).order_by( '-create_time').all() else: dl_model_info = model.objects.filter().order_by( '-create_time').all() total = len(dl_model_info) data = Util.model_objects_to_list(dl_model_info[start:end]) for i in range(len(data)): if len(data[i].get("flops_result_info")) > 0: data[i]["flops_result_info"] = json.loads( data[i].get("flops_result_info"), encoding="utf-8") return total, data