def scored_result(request, forced=False): experts = ExpertProfile.objects.filter(group=2017) projs = [ map(lambda y: y.project, x.re_project_expert_set.all()) for x in experts ] if not forced: for index, projs in enumerate(projs): for proj in projs: review = proj.re_project_expert_set.all()[0] if review.pass_p is False: response = u'项目【{}】未审核,对应专家为:{}\n'.format( proj, review.expert) return simplejson.dumps({ 'status': 'ERROR', 'message': response }) sorted_project_groups = [ map(lambda proj: (proj, proj.re_project_expert_set.all()[0].score or \ not proj.re_project_expert_set.all()[0].pass_p), pg) for pg in projs] for spg in sorted_project_groups: spg.sort(key=lambda x: x[1], reverse=True) path = AdminStaffService.get_scored_result_xls_path( request, sorted_project_groups) return simplejson.dumps({'status': 'SUCCESS', 'path': path})
def get_subject_review_list(request, project_id): ''' to get subject evaluate list through project_id ''' #dajax = Dajax() review_list = AdminStaffService.GetSubjectReviewList(project_id) return simplejson.dumps({'review_list': review_list})
def change_subject_grade(request, project_id, changed_grade, page, school_name): ''' change subject grade secretly ''' AdminStaffService.SubjectGradeChange(project_id, changed_grade) table = refresh_to_table(page, school_name) return simplejson.dumps({'status': '1', 'table': table})
def show_result(request): message = "" path = "" try: project_list = get_current_project_query_set().filter( project_recommend_status__status=RECOMMEND_SECOND_ROUND_PASSED) path = AdminStaffService.get_show_result_xls_path( request, project_list) print project_list.count() print path message = "ok" except: message = "fail" return simplejson.dumps({"message": message, 'path': path})
def NumLimit(request, form): dajax = Dajax() form = NumLimitForm(deserialize_form(form)) if form.is_valid(): school = SchoolDict.objects.get(id=form.cleaned_data["school_name"]) a_limited_num = form.cleaned_data["a_limited_num"] b_limited_num = form.cleaned_data["b_limited_num"] try: school_obj = SchoolProfile.objects.get(school=school) if ProjectPerLimits.objects.filter(school=school_obj).count() == 0: projectlimit = ProjectPerLimits(school=school_obj, number=a_limited_num + b_limited_num, a_cate_number=a_limited_num) projectlimit.save() else: object = ProjectPerLimits.objects.get(school=school_obj) object.number = a_limited_num + b_limited_num object.a_cate_number = a_limited_num object.save() # num_limit_form = forms.NumLimitForm() school_limit_num_list = AdminStaffService.SchoolLimitNumList() page = request.GET.get('page') context = getContext(school_limit_num_list, page, 'item', 0) table = render_to_string( "adminStaff/widgets/projectlimitnumsettingsTable.html", context) return simplejson.dumps({ 'status': '1', 'table': table, 'message': u'更新成功' }) except SchoolProfile.DoesNotExist: return simplejson.dumps({ 'status': '0', 'message': u'更新失败,选定的学校没有进行注册' }) else: return simplejson.dumps({ 'status': '0', 'id': form.errors.keys(), 'message': u'输入错误' })
def _scored_result(request, group_num=20, expert_per_group=3, project_per_group=134, forced=False): experts = ExpertProfile.objects.exclude(Q(group=-1) | Q(group=0)) expert_groups = [experts.filter(group=i + 1) for i in xrange(group_num)] project_groups = [ map(lambda y: y.project, x[0].re_project_expert_set.all()) for x in expert_groups ] if not forced: for index, pg in enumerate(project_groups): for proj in pg: all_scores = proj.re_project_expert_set.all() scored_num = all_scores.filter(pass_p=True).count() unscored_experts = map(lambda x: x.expert.userid.username, all_scores.filter(pass_p=False)) if scored_num != expert_per_group: experts = reduce(lambda x, y: x + '\n' + y, unscored_experts) response = u'第 %d 组中项目<%s>存在未评分,对应专家为:\n'\ % (index+1, proj) response += experts + u'\n请查证。' return simplejson.dumps({ 'status': 'ERROR', 'message': response }) sorted_project_groups = [ map( lambda proj: (proj, proj.re_project_expert_set.all()[0].score, proj.re_project_expert_set.all()[1].score, proj.re_project_expert_set.all()[2].score, reduce(lambda i, j: i + j, map(lambda x: x.score, proj.re_project_expert_set.all()))), pg) for pg in project_groups ] for spg in sorted_project_groups: spg.sort(key=lambda x: x[4], reverse=True) sorted_project_groups = map(lambda x: x[:50], sorted_project_groups) path = AdminStaffService.get_scored_result_xls_path( request, sorted_project_groups) return simplejson.dumps({'status': 'SUCCESS', 'path': path})
def ExpertImport(request, form): """ Import Expert Profile directly without email """ expert_form = ExpertDispatchForm(deserialize_form(form)) if expert_form.is_valid(): password = expert_form.cleaned_data["expert_password"] email = expert_form.cleaned_data["expert_email"] insitute = expert_form.cleaned_data["expert_insitute"] name = email person_firstname = expert_form.cleaned_data["person_firstname"] if password == "": password = email.split('@')[0] flag = AdminStaffService.sendemail(request, name, person_firstname, password, email, EXPERT_USER, False, expert_insitute=insitute) if flag: message = u"导入成功" return simplejson.dumps({ 'field': expert_form.data.keys(), 'status': '1', 'message': message }) else: message = u"相同权限用户已经存在,中断导入" return simplejson.dumps({ 'field': expert_form.data.keys(), 'status': '1', 'message': message }) else: return simplejson.dumps({ 'field': expert_form.data.keys(), 'error_id': expert_form.errors.keys(), 'message': u"输入有误,请检查邮箱的合法性" })
def SchoolDispatch(request, form): #dajax = Dajax() school_form = SchoolDispatchForm(deserialize_form(form)) if school_form.is_valid(): password = school_form.cleaned_data["school_password"] email = school_form.cleaned_data["school_email"] name = email.split('@')[0] school_name = school_form.cleaned_data["school_name"] person_firstname = school_form.cleaned_data["person_firstname"] if password == "": password = email.split('@')[0] flag = AdminStaffService.sendemail(request, name, person_firstname, password, email, SCHOOL_USER, school_name=school_name) if flag: message = u"发送邮件成功" return simplejson.dumps({ 'field': school_form.data.keys(), 'status': '1', 'message': message }) else: message = u"相同邮件已经发送,中断发送" return simplejson.dumps({ 'field': school_form.data.keys(), 'status': '1', 'message': message }) else: return simplejson.dumps({ 'id': school_form.errors.keys(), 'message': u"输入有误,请检查邮箱的合法性" })
def Release_Excel(request): path = AdminStaffService.get_xls_path(request) return simplejson.dumps({'path': path})