def change_member(request, stugroup_form, origin): student_id = stugroup_form.cleaned_data["student_id"] student_name = stugroup_form.cleaned_data["student_name"] try: project = ProjectSingle.objects.get(student__user_id=request.user) except: raise Http404 group = project.student_group_set managerid=StudentProfile.objects.get(id=project.student_id) #得到负责人的信息 teammanager = User.objects.get(id=managerid.user_id) if filter(lambda x:x==student_id, [student.studentId for student in group.all()]): return {'status': '1', 'message': u"替换成员已存在队伍中,请选择删除"} loginfo(p=teammanager.first_name,label="teammanager.first_name") loginfo(p=student_name,label="student_name") for student in group.all(): if student.studentId == origin: # 如果是更改负责人的信息时需要将first_name内容更新 if student.studentName == teammanager.first_name: teammanager.first_name = student_name student.studentName = student_name student.studentId = student_id student.save() table = refresh_member_table(request) ret = {'status': '0', 'message': u"人员变更成功", 'table':table} break else: # new student ret = {'status': '1', 'message': u"输入有误,请刷新后重新输入"} return ret
def finalReportView(request, pid, is_submited=False): context = finalReportViewWork(request, pid, is_submited[SUBMIT_STATUS_FINAL]) loginfo(p=is_submited, label="is_submited") # if context['redirect']: # return HttpResponseRedirect('/teacher/finalinfo') return render(request, "college/final.html", context)
def MemberChangeInfo(request, form, origin): loginfo(p=origin, label="origin") try: project = ProjectSingle.objects.get(student__user_id=request.user) except: raise Http404 stugroup_form = StudentGroupInfoForm(deserialize_form(form)) loginfo(p=stugroup_form, label="stugroup_form") if not stugroup_form.is_valid(): ret = {'status': '1', 'message': u"输入有误,请重新输入"} else: email = stugroup_form.cleaned_data["email"] telephone = stugroup_form.cleaned_data["telephone"] classInfo = stugroup_form.cleaned_data["classInfo"] student_id= stugroup_form.cleaned_data["student_id"] group = project.student_group_set for student in group.all(): if student.studentId == origin : print "save successfully" student.email = email student.telephone = telephone student.classInfo = classInfo student.studentId = student_id student.save() table = refresh_member_table(request) ret = {'status': '0', 'message': u"人员变更成功", 'table':table} break else: ret = {'status': '1', 'message': u"该成员不存在,请刷新页面"} return simplejson.dumps(ret)
def fundBudgetView(request,pid,is_submited): context = fundBudgetViewWork(request,pid,is_submited[SUBMIT_STATUS_BUDGET]) if context['redirect']: return HttpResponseRedirect('/teacher/finalinfo') context['role'] = 'teacher' loginfo(is_submited[SUBMIT_STATUS_TASK]) return render(request,"teacher/fundbudget.html",context)
def Release_News(request): ''' Release_News ''' unsubjected = False subject_list = ProjectSingle.objects.all().order_by('school').exclude( school__schoolName=u'测试用学校') for project in subject_list: if project.project_grade.grade == GRADE_UN: unsubjected = False break if unsubjected: release = False else: html = refresh_member_table(subject_list) release = True title = datetime.datetime.today().year data = News(news_title=title.__str__() + '年创新项目级别汇总', news_content=html, news_category=NewsCategory.objects.get( category=NEWS_CATEGORY_ANNOUNCEMENT)) data.save() loginfo(p=release, label="release") return simplejson.dumps({'release': release})
def FileDeleteConsistence(request, fid): """ Delete files in history file list """ logger.info("sep delete files" + "**" * 10) # check mapping relation f = get_object_or_404(HomePagePic, id=fid) if request.method == "POST": try: os.remove(f.pic_obj.url) f.delete() loginfo("delete success") except: pass return simplejson.dumps({ "is_deleted": True, "message": "delete it successfully!", "fid": str(fid) }) else: return simplejson.dumps({ "is_deleted": False, "message": "Warning! Only POST accepted!" })
def show_index_get_search_context(request, project_page, new_show=False): search_school = request.GET.get('search_school') or "" search_year = request.GET.get('search_year') or "" search_grade = request.GET.get('search_grade') or "" search_keywords = request.GET.get('search_keywords') or "" pro_type = ShowProjectSingle if new_show else ProjectSingle q1 = (search_year and Q(year=search_year)) or None q2 = (search_school and Q(school=search_school)) or None q3 = (search_grade and Q(project_grade=search_grade)) or None q4 = (search_keywords and (Q(keywords__icontains=search_keywords) | \ Q(title__icontains=search_keywords) | Q(background__icontains=search_keywords) \ | Q(result_overview__icontains=search_keywords))) or None qset = filter(lambda x: x != None, [q1, q2, q3, q4]) loginfo(p=q4, label="in q4") loginfo(p=qset, label="in qset") if qset: qset = reduce(lambda x, y: x & y, qset) project_list = pro_type.objects.filter(qset) else: project_list = pro_type.objects.all() context = getContext(project_list, project_page, 'project', page_elems=9) context["search_school"] = search_school context["search_year"] = search_year context["search_grade"] = search_grade return context
def change_member(request, stugroup_form, origin): student_id = stugroup_form.cleaned_data["student_id"] student_name = stugroup_form.cleaned_data["student_name"] try: project = ProjectSingle.objects.get(student__user_id=request.user) except: raise Http404 group = project.student_group_set managerid = StudentProfile.objects.get(id=project.student_id) #得到负责人的信息 teammanager = User.objects.get(id=managerid.user_id) if filter(lambda x: x == student_id, [student.studentId for student in group.all()]): return {'status': '1', 'message': u"替换成员已存在队伍中,请选择删除"} loginfo(p=teammanager.first_name, label="teammanager.first_name") loginfo(p=student_name, label="student_name") for student in group.all(): if student.studentId == origin: # 如果是更改负责人的信息时需要将first_name内容更新 if student.studentName == teammanager.first_name: teammanager.first_name = student_name student.studentName = student_name student.studentId = student_id student.save() table = refresh_member_table(request) ret = {'status': '0', 'message': u"人员变更成功", 'table': table} break else: # new student ret = {'status': '1', 'message': u"输入有误,请刷新后重新输入"} return ret
def fundBudgetViewWork(request,pid,is_submited,redirect=False): fundbudget = ProjectFundBudget.objects.get(project_id = pid) project = ProjectSingle.objects.get(project_id = pid) # if fundbudget.finance_staff:finance_staff=fundbudget.finance_staff # else:finance_staff="未填写" # if fundbudget.finance_checktime:finance_checktime=fundbudget.finance_checktime # else:finance_checktime="未填写" if request.method == "POST": fundbudget_form = ProFundBudgetForm(request.POST, instance=fundbudget) fundbudgetremarkment_form = ProFundBudgetRemarkmentForm(request.POST,instance=fundbudget) if fundbudget_form.is_valid() and fundbudgetremarkment_form.is_valid(): fundbudgetremarkment_form.save() fundbudget_form.save() # redirect = True status_confirm(request,project) loginfo(p=project.project_status,label="status") else: logger.info("ProFundBudgetForm Valid Failed"+"**"*10) logger.info(fundbudget_form.errors) logger.info(fundbudgetremarkment_form.errors) else: fundbudget_form = ProFundBudgetForm(instance=fundbudget) fundbudgetremarkment_form=ProFundBudgetRemarkmentForm(instance=fundbudget) context = { 'redirect':redirect, 'fundbudget_form':fundbudget_form, 'fundbudgetremarkment_form':fundbudgetremarkment_form, 'pid':pid, 'is_submited':is_submited, 'projectbudget':project.project_budget_max, 'project':project, 'fundbudget':fundbudget, 'showseal':project.project_status.status>=PROJECT_STATUS_TASK_FINANCE_OVER, } return context
def MemberChangeInfo(request, form, origin): loginfo(p=origin, label="origin") try: project = ProjectSingle.objects.get(student__user_id=request.user) except: raise Http404 stugroup_form = StudentGroupInfoForm(deserialize_form(form)) loginfo(p=stugroup_form, label="stugroup_form") if not stugroup_form.is_valid(): ret = {'status': '1', 'message': u"输入有误,请重新输入"} else: email = stugroup_form.cleaned_data["email"] telephone = stugroup_form.cleaned_data["telephone"] classInfo = stugroup_form.cleaned_data["classInfo"] student_id = stugroup_form.cleaned_data["student_id"] group = project.student_group_set for student in group.all(): if student.studentId == origin: print "save successfully" student.email = email student.telephone = telephone student.classInfo = classInfo student.studentId = student_id student.save() table = refresh_member_table(request) ret = {'status': '0', 'message': u"人员变更成功", 'table': table} break else: ret = {'status': '1', 'message': u"该成员不存在,请刷新页面"} return simplejson.dumps(ret)
def status_confirm(request, project): identity = request.session.get("auth_role", "") loginfo('status_confirm' * 50) status_dict = PROGRESS_REVIEW_DICT[project.project_status.status] # if project.project_special.review_status: # status_dict = PROGRESS_REVIEW_DICT[project.project_status.status] # else: # status_dict = PROGRESS_NOT_REVIEW_DICT[project.project_status.status] loginfo(NEXT_PROGRESS_PERMISSION_DICT[identity]) print "cat" * 10 print NEXT_STATUS print "dog" * 10 print status_dict[NEXT_STATUS] if status_dict[NEXT_STATUS] in NEXT_PROGRESS_PERMISSION_DICT[identity]: project.submit_date = time.strftime('%Y-%m-%d', time.localtime(time.time())) print "insert" * 100 set_status(project, status_dict[NEXT_STATUS]) if PROGRESS_FILE_DICT.get( project.project_status.status, None) != None and getattr( project, PROGRESS_FILE_DICT[project.project_status.status]): status_confirm(request, project) print "heheheh" * 100 print project.project_status.status print PROJECT_STATUS_APPLICATION_COMMIT_OVER if project.project_special.name == u"引进人才科研专题" and project.project_status.status == PROJECT_STATUS_APPLICATION_COMMIT_OVER: status_confirm(request, project) return
def userauth_settings(request): """ The context processor will add user authorities variables into all template """ loginfo(request.META['HTTP_USER_AGENT']) userauth = { "is_adminstaff": False, "is_schooler": False, "is_colleger":False, "is_experter": False, "is_teacher": False, "is_finance":False, } auth_choices= { "adminStaff":ADMINSTAFF_USER, "school":SCHOOL_USER, "college":COLLEGE_USER, "teacher":TEACHER_USER, "expert":EXPERT_USER, "finance":FINANCE_USER, } identity = request.session.get('auth_role', "") userauth["user"]=identity if identity == ADMINSTAFF_USER and check_auth(user=request.user, authority=ADMINSTAFF_USER): userauth["is_adminstaff"] = True try: userauth["adminstaff"] = AdminStaffProfile.objects.get(userid=request.user) except AdminStaffProfile.DoesNotExist, err: loginfo(p=err, label="context AdminStaffProfile")
def ProjInsituteChange(request, cate): try: project = ProjectSingle.objects.get(student__user=request.user) new_cate = InsituteCategory.objects.get(category=cate) except Exception, err: loginfo(p=err, label="change project insitute") raise Http404
def ProjInsituteChange(request, cate): try: project = ProjectSingle.objects.get(student__user=request.user) new_cate = InsituteCategory.objects.get(category=cate) except Exception, err: loginfo(p=err, label="change project insitute") raise Http404
def __init__(self,*args,**kwargs): request = kwargs.get("request",None) if request != None: del kwargs['request'] super(ScheduleBaseForm, self).__init__(*args, **kwargs) if request != None: identity = request.session.get('auth_role', "") if identity == SCHOOL_USER: obj_list = Special.objects.filter(school_user__userid = request.user) choice_list=[] choice_list.append((-1,"专题类型")) for obj in obj_list: choice_list.append((obj.id, obj.name)) obj_choice = tuple(choice_list) loginfo(obj_choice) self.fields["special"].choices = obj_choice elif identity == COLLEGE_USER: obj_list = College.objects.filter(college_user__userid = request.user) choice_list=[] choice_list.append((-1,"学院")) for obj in obj_list: choice_list.append((obj.id, obj.name)) obj_choice = tuple(choice_list) self.fields["college"].choices = obj_choice college_status_choices=get_status_choice() #college_status_choices = tuple( [(-1, u"项目状态")] + college_status_choices) self.fields["status"].choices=college_status_choices
def finalReportViewWork(request, pid, is_submited, redirect=False): final = FinalSubmit.objects.get(project_id=pid) loginfo(pid) project = ProjectSingle.objects.get(project_id=pid) achivement_list = ProjectAchivement.objects.filter(project_id=pid) datastatics_list = ProjectStatistics.objects.filter(project_id=pid) projfundsummary = ProjectFundSummary.objects.get(project_id=pid) projfundbudget = ProjectFundBudget.objects.get(project_id=pid) projachivementform = ProjectAchivementForm() projdatastaticsform = ProjectDatastaticsForm() profundsummaryform = ProFundSummaryForm(instance=projfundsummary) profundsummaryremarkmentform = ProFundSummaryRemarkmentForm( instance=projfundsummary) profundbudgetform = ProFundBudgetForm(instance=projfundbudget) profundbudgetremarkmentform = ProFundBudgetRemarkmentForm( instance=projfundbudget) reports = ProgressReport.objects.filter(project_id=pid).order_by("-year") progress_form = ProgressForm() if not projfundbudget.finance_staff: projfundbudget.finance_staff = u"未填写" if not projfundbudget.finance_checktime: projfundbudget.finance_checktime = u"未填写" if not projfundsummary.finance_staff: projfundsummary.finance_staff = u"未填写" if not projfundsummary.finance_checktime: projfundsummary.finance_checktime = "未填写" final_form = FinalReportForm(instance=final) page = request.GET.get('page') page2 = request.GET.get('page2') if page == None: page = 1 if page2 == None: page2 = 1 loginfo(p=redirect, label="redirect") context = { 'projachivementform': projachivementform, 'projdatastaticsform': projdatastaticsform, 'final': final_form, 'pid': pid, 'redirect': redirect, 'achivement_list': achivement_list, 'datastatics_list': datastatics_list, 'projfundsummary': projfundsummary, 'profundsummaryform': profundsummaryform, 'fundbudget_form': profundbudgetform, 'fundbudgetremarkment_form': profundbudgetremarkmentform, 'profundsummaryremarkmentform': profundsummaryremarkmentform, 'is_submited': is_submited, 'projectbudget': project.project_budget_max, 'project': project, 'reports': reports, 'progress_form': progress_form, 'pro': project, 'page': page, 'page2': page2, 'fundbudget': projfundbudget, } return context
def refreshObjectAlloc(request, object): if object == "special": user_special_info = {} for i in SchoolProfile.objects.all(): user_special_info[i] = [] for i in Special.objects.all(): if i.school_user: user_special_info[i.school_user].append(i.name) instance = { 'object_name':object, 'object_chinese_name':'专题', 'user_object_info':user_special_info, } return render_to_string("adminStaff/widgets/object_alloc.html", {'instance': instance}) elif object == "college": user_college_info = {} for i in CollegeProfile.objects.all(): user_college_info[i] = [] for i in College.objects.all(): if i.college_user: user_college_info[i.college_user].append(i.name) instance = { 'object': object, 'object_chinese_name':'学院', 'user_object_info':user_college_info, } return render_to_string("adminStaff/widgets/object_alloc.html", {'instance': instance}) else: loginfo("error in refreshObjectAlloc")
def AllocEmail(request,form,param): form = EmailForm(deserialize_form(form),request=request) if form.is_valid(): try: if param in TYPE_ALLOC: proj_list = ProjectSingle.objects.filter(Q(project_special=form.cleaned_data['special']) & Q(project_status__status = PROJECT_STATUS_APPLICATION_EXPERT_SUBJECT)) elif param in TYPE_FINAL_ALLOC: proj_list = ProjectSingle.objects.filter(Q(project_special=form.cleaned_data['special']) & Q(project_status__status = PROJECT_STATUS_FINAL_EXPERT_SUBJECT)) else: raise ValueError('') except: return simplejson.dumps({ 'status':'2', 'message':u"发送失败"}) if 1: recipient_list=[] expert_group=[] for project in proj_list: print project p_e_group=Re_Project_Expert.objects.filter(project=project) expert_group.extend([item.expert for item in p_e_group]) loginfo(len(expert_group)) expert_group=list(set(expert_group)) loginfo(len(expert_group)) recipient_list.extend([item.userid.email for item in expert_group]) send_mail(form.cleaned_data["mail_title"],form.cleaned_data["mail_content"],settings.DEFAULT_FROM_EMAIL,recipient_list) return simplejson.dumps({ 'status':'1', 'message':u"专家发送完成"}) else: return simplejson.dumps({ 'status':'0', 'message':u"发送失败",'table':refresh_alloc_email_form(form)})
def info_result_xls(request,project_list): """ """ # def _format_index(i): # i = str(i) # i = '0' * (3-len(i)) + i # return i def _format_number(i): i = str(i) i = '0' * (4-len(i)) + i return i # name_code = '2013' + request.user.username # loginfo(p=teammanager.first_name, label="get first_name") # school_prof = SchoolProfile.objects.get(userid=request.user) proj_set = project_list xls_obj, workbook = info_xls_province_gen() # _index = 1 _number= 1 for proj_obj in proj_set: teammember = get_studentmessage(proj_obj) pro_type = PreSubmit if proj_obj.project_category.category == CATE_INNOVATION else PreSubmitEnterprise fin_type = ("15000", "5000", "10000") if proj_obj.financial_category.category == FINANCIAL_CATE_A else ("10000", "0", "10000") try: innovation = pro_type.objects.get(project_id=proj_obj.project_id) except Exception, err: loginfo(p=err, label="get innovation") loginfo(p=proj_obj.project_category.category, label="project category") # if _index==1: # schoolname = proj_obj.school # name_code = get_shcoolcode(schoolname) # if schoolname!=proj_obj.school: # _index=1 # schoolname = proj_obj.school # name_code = get_shcoolcode(schoolname) row = 4 + _number xls_obj.write(row, 0, "%s" % _format_number(_number)) xls_obj.write(row, 1, unicode(proj_obj.school)) xls_obj.write(row, 2, unicode(proj_obj.project_code)) xls_obj.write(row, 3, unicode(proj_obj.title)) xls_obj.write(row, 4, unicode(proj_obj.financial_category)) xls_obj.write(row, 5, unicode(proj_obj.project_category)) xls_obj.write(row, 6, unicode(teammember['manager_name']))# 负责人 xls_obj.write(row, 7, unicode(teammember['manager_studentid'])) # 学号 xls_obj.write(row, 8, unicode(teammember['member_number'])) # 学生人数 xls_obj.write(row, 9, unicode(teammember['othermember'])) # 项目其他成员 xls_obj.write(row, 10, unicode(proj_obj.inspector)) xls_obj.write(row, 11, unicode(proj_obj.inspector_title)) # 指导老师职称 xls_obj.write(row, 12, fin_type[0]) # 经费 xls_obj.write(row, 13, fin_type[1]) # 经费 xls_obj.write(row, 14, fin_type[2]) # 经费 xls_obj.write(row, 15, unicode(proj_obj.insitute)) xls_obj.write_merge(row, row, 16, 18, unicode(innovation.proj_introduction)) # both enterprise and innovation has innovation attr # _index += 1 _number+= 1
def login_redirect(request, identity): """ When the user login, it will decide to jump the according page, in other words, school user will be imported /school/ page, if the user have many authorities, the system will jump randomly """ #TODO: I will use reverse function to redirect, like school and expert loginfo(identity) if check_auth(request.user, identity): loginfo(request.user) pass else: try: del request.session['auth_role'] except: pass logout(request) return HttpResponseRedirect('/identityerror') if identity == ADMINSTAFF_USER: redirect_url = '/' + identity + '/' + "studentmanage" else: redirect_url = '/' + identity + '/' + "homepage" request.session['auth_role'] = identity return HttpResponseRedirect(redirect_url)
def show_index_get_search_context(request, project_page,new_show = False): search_school = request.GET.get('search_school') or "" search_year = request.GET.get('search_year') or "" search_grade = request.GET.get('search_grade') or "" search_keywords=request.GET.get('search_keywords') or "" pro_type = ShowProjectSingle if new_show else ProjectSingle q1 = (search_year and Q(year=search_year)) or None q2 = (search_school and Q(school=search_school)) or None q3 = (search_grade and Q(project_grade=search_grade)) or None q4 = (search_keywords and (Q(keywords__icontains=search_keywords) | \ Q(title__icontains=search_keywords) | Q(background__icontains=search_keywords) \ | Q(result_overview__icontains=search_keywords))) or None qset = filter(lambda x: x != None, [q1, q2, q3,q4]) loginfo(p=q4, label="in q4") loginfo(p=qset, label="in qset") if qset: qset = reduce(lambda x, y: x & y, qset) project_list = pro_type.objects.filter(qset) else: project_list = pro_type.objects.all() context = getContext(project_list, project_page, 'project', page_elems=9) context["search_school"] = search_school context["search_year"] = search_year context["search_grade"] = search_grade return context
def achivementChange(request,form,achivementid,pid,is_submited): achivementform = ProjectAchivementForm(deserialize_form(form)) projectsingle = ProjectSingle.objects.get(project_id=pid) finalsubmit = FinalSubmit.objects.get(project_id = projectsingle) message="" if achivementform.is_valid(): achivementtitle = achivementform.cleaned_data["achivementtitle"] mainmember = achivementform.cleaned_data["mainmember"] introduction = achivementform.cleaned_data["introduction"] remarks = achivementform.cleaned_data["remarks"] achivementtype = achivementform.cleaned_data["achivementtype"] achivementtype=AchivementTypeDict.objects.get(achivementtype=achivementtype) if achivementid == 0: new_achivement = ProjectAchivement(achivementtitle=achivementtitle,mainmember=achivementtitle,introduction=introduction,remarks=remarks, achivementtype=achivementtype,project_id=projectsingle) new_achivement.save() message = u"新的研究成果添加成功" loginfo(p=achivementtitle,label="achivementtitle") else: old_achivement = ProjectAchivement.objects.get(content_id=achivementid) old_achivement.achivementtitle = achivementtitle old_achivement.mainmember = mainmember old_achivement.introduction = introduction old_achivement.remarks = remarks old_achivement.achivementtype = achivementtype old_achivement.save() message = u"修改成功" else: logger.info("achivementform Valid Failed"+"**"*10) logger.info(achivementform.errors) message = u"数据没有填完整,请重新填写" table = refresh_achivement_table(request,pid,is_submited) ret={'table':table,'message':message,} return simplejson.dumps(ret)
def login_redirect(request,identity): """ When the user login, it will decide to jump the according page, in other words, school user will be imported /school/ page, if the user have many authorities, the system will jump randomly """ #TODO: I will use reverse function to redirect, like school and expert loginfo(identity) if check_auth(request.user,identity): loginfo(request.user) pass else: try: del request.session['auth_role'] except: pass logout(request) return HttpResponseRedirect('/identityerror') if identity==ADMINSTAFF_USER: redirect_url = '/'+identity+'/'+"studentmanage" else: redirect_url = '/'+identity+'/'+"homepage" request.session['auth_role'] = identity return HttpResponseRedirect(redirect_url)
def __init__(self,*args,**kwargs): request = kwargs.get("request",None) if request != None: del kwargs['request'] super(ScheduleBaseForm, self).__init__(*args, **kwargs) if request != None: identity = request.session.get('auth_role', "") if identity == SCHOOL_USER: obj_list = Special.objects.filter(school_user__userid = request.user) choice_list=[] choice_list.append((-1,"专题类型")) for obj in obj_list: choice_list.append((obj.id, obj.name)) obj_choice = tuple(choice_list) loginfo(obj_choice) self.fields["special"].choices = obj_choice elif identity == COLLEGE_USER: obj_list = College.objects.filter(college_user__userid = request.user) choice_list=[] choice_list.append((-1,"学院")) for obj in obj_list: choice_list.append((obj.id, obj.name)) obj_choice = tuple(choice_list) self.fields["college"].choices = obj_choice college_status_choices=get_status_choice() college_status_choices = tuple( [(-1, u"项目状态")] + college_status_choices) self.fields["status"].choices=college_status_choices
def login_redirect(request,identity=5): """ When the user login, it will decide to jump the according page, in other words, school user will be imported /school/ page, if the user have many authorities, the system will jump randomly """ #TODO: I will use reverse function to redirect, like school and expert ''' loginfo(identity) if identity == "adminUser": if check_auth(request.user,ADMINSTAFF_USER): identity = ADMINSTAFF_USER elif check_auth(request.user,FINANCE_USER): identity = FINANCE_USER elif check_auth(request.user,SCHOOL_USER): identity = SCHOOL_USER else: logout(request) return render_to_response('registration/logentry_error.html', context_instance=RequestContext(request)) ''' if check_auth(request.user,identity): loginfo(request.user) pass else: try: del request.session['auth_role'] except: pass logout(request) return render_to_response('registration/logentry_error.html', context_instance=RequestContext(request)) redirect_url = '/'+identity+'/' request.session['auth_role'] = identity loginfo(redirect_url) return HttpResponseRedirect(redirect_url)
def allocObject(request, object, user, alloced): filter_user = user if object == "special": user = SchoolProfile.objects.filter(userid__username = filter_user)[0] elif object == "college": user = CollegeProfile.objects.filter(userid__username = filter_user)[0] else: loginfo("error in allocObject") Object = getObject(object) objs = Object.objects.all() for o in objs: if object == "special": if alloced.count(o.name): o.school_user = user elif o.school_user == user: o.school_user = None o.save() elif object == "college": if alloced.count(o.name): o.college_user = user elif o.college_user == user: o.college_user = None o.save() else: loginfo("error in allocObject") return simplejson.dumps({'status':'1' , 'object_alloc': refreshObjectAlloc(request, object), 'object_table': refreshObjectTable(request, object), })
def fundBudgetViewWork(request,pid,is_submited,redirect=False): fundbudget = ProjectFundBudget.objects.get(project_id = pid) project = ProjectSingle.objects.get(project_id = pid) # if fundbudget.finance_staff:finance_staff=fundbudget.finance_staff # else:finance_staff="未填写" # if fundbudget.finance_checktime:finance_checktime=fundbudget.finance_checktime # else:finance_checktime="未填写" if request.method == "POST": fundbudget_form = ProFundBudgetForm(request.POST, instance=fundbudget) fundbudgetremarkment_form = ProFundBudgetRemarkmentForm(request.POST,instance=fundbudget) if fundbudget_form.is_valid() and fundbudgetremarkment_form.is_valid(): fundbudgetremarkment_form.save() fundbudget_form.save() # redirect = True status_confirm(request,project) loginfo(p=project.project_status,label="status") else: logger.info("ProFundBudgetForm Valid Failed"+"**"*10) logger.info(fundbudget_form.errors) logger.info(fundbudgetremarkment_form.errors) else: fundbudget_form = ProFundBudgetForm(instance=fundbudget) fundbudgetremarkment_form=ProFundBudgetRemarkmentForm(instance=fundbudget) context = { 'redirect':redirect, 'fundbudget_form':fundbudget_form, 'fundbudgetremarkment_form':fundbudgetremarkment_form, 'pid':pid, 'is_submited':is_submited, 'projectbudget':project.project_budget_max, 'project':project, 'fundbudget':fundbudget, 'showseal':project.project_status.status>=PROJECT_STATUS_TASK_FINANCE_OVER, } return context
def fileUploadManageView(request, pid, is_submited): print "haha"*100 context = fileUploadManage(request, pid, is_submited) context['user'] = "******" # is_submited = False context['is_submited'] = is_submited loginfo(p=context['files'],label="files") return render(request, "college/file_upload.html", context)
def fileUploadManageView(request, pid, is_submited): print "haha" * 100 context = fileUploadManage(request, pid, is_submited) context['user'] = "******" # is_submited = False context['is_submited'] = is_submited loginfo(p=context['files'], label="files") return render(request, "college/file_upload.html", context)
def student_view(request): try: student = get_object_or_404(StudentProfile, user=request.user) project = student.projectsingle except Exception, err: loginfo(p=err, label="student home view") raise Http404
def info_xls(request): """ """ def _format_index(i): i = str(i) i = '0' * (4 - len(i)) + i return i # loginfo(p=teammanager.first_name, label="get first_name") school_prof = SchoolProfile.objects.get(userid=request.user) proj_set = get_current_project_query_set().filter( school=school_prof.school, year=get_current_year()).order_by('project_code') xls_obj, workbook = info_xls_school_gen(school_prof) _index = 1 for proj_obj in proj_set: teammember = get_studentmessage(proj_obj) pro_type = PreSubmit if proj_obj.project_category.category == CATE_INNOVATION else PreSubmitEnterprise fin_type = ( "15000", "5000", "10000" ) if proj_obj.financial_category.category == FINANCIAL_CATE_A else ( "10000", "0", "10000") try: innovation = pro_type.objects.get(project_id=proj_obj.project_id) except Exception, err: loginfo(p=err, label="get innovation") loginfo(p=proj_obj.project_category.category, label="project category") row = 4 + _index # pro_code = name_code+_format_index(_index) #保存项目编号 # project_temp = ProjectSingle.objects.get(project_id = proj_obj.project_id) # project_temp.project_code = pro_code # project_temp.save() xls_obj.write(row, 0, unicode(proj_obj.project_code)) xls_obj.write(row, 1, unicode(proj_obj.title)) xls_obj.write(row, 2, unicode(proj_obj.project_grade)) xls_obj.write(row, 3, unicode(proj_obj.project_category)) xls_obj.write(row, 4, unicode(teammember['manager_name'])) # 负责人 xls_obj.write(row, 5, unicode(teammember['manager_studentid'])) # 学号 xls_obj.write(row, 6, unicode(teammember['member_number'])) # 学生人数 xls_obj.write(row, 7, unicode(teammember['othermember'])) # 项目其他成员 xls_obj.write(row, 8, unicode(proj_obj.inspector)) xls_obj.write(row, 9, unicode(proj_obj.inspector_title)) # 指导老师职称 xls_obj.write(row, 10, fin_type[0]) # 经费 xls_obj.write(row, 11, fin_type[1]) # 经费 xls_obj.write(row, 12, fin_type[2]) # 经费 xls_obj.write(row, 13, unicode(proj_obj.insitute)) xls_obj.write_merge( row, row, 14, 17, unicode(innovation.proj_introduction) ) # both enterprise and innovation has innovation attr _index += 1
def finalReportViewWork(request,pid,is_submited,redirect=False): final = FinalSubmit.objects.get( project_id = pid) loginfo(pid) project = ProjectSingle.objects.get( project_id = pid) achivement_list = ProjectAchivement.objects.filter( project_id = pid ) datastatics_list = ProjectStatistics.objects.filter( project_id = pid ) projfundsummary = ProjectFundSummary.objects.get( project_id = pid ) projfundbudget = ProjectFundBudget.objects.get( project_id = pid) projachivementform = ProjectAchivementForm() projdatastaticsform = ProjectDatastaticsForm() profundsummaryform = ProFundSummaryForm(instance=projfundsummary) profundsummaryremarkmentform = ProFundSummaryRemarkmentForm(instance=projfundsummary) profundbudgetform = ProFundBudgetForm( instance =projfundbudget ) profundbudgetremarkmentform = ProFundBudgetRemarkmentForm(instance = projfundbudget) reports = ProgressReport.objects.filter(project_id = pid).order_by("-year") progress_form = ProgressForm() if not projfundbudget.finance_staff: projfundbudget.finance_staff = u"未填写" if not projfundbudget.finance_checktime: projfundbudget.finance_checktime = u"未填写" if not projfundsummary.finance_staff: projfundsummary.finance_staff = u"未填写" if not projfundsummary.finance_checktime: projfundsummary.finance_checktime="未填写" final_form = FinalReportForm(instance=final) page = request.GET.get('page') page2 = request.GET.get('page2') if page == None: page = 1 if page2 == None: page2 = 1 loginfo(p=redirect, label="redirect") context = { 'projachivementform':projachivementform, 'projdatastaticsform':projdatastaticsform, 'final': final_form, 'pid':pid, 'redirect':redirect, 'achivement_list':achivement_list, 'datastatics_list':datastatics_list, 'projfundsummary':projfundsummary, 'profundsummaryform':profundsummaryform, 'fundbudget_form':profundbudgetform, 'fundbudgetremarkment_form':profundbudgetremarkmentform, 'profundsummaryremarkmentform':profundsummaryremarkmentform, 'is_submited':is_submited, 'projectbudget':project.project_budget_max, 'project':project, 'reports': reports, 'progress_form': progress_form, 'pro':project, 'page':page, 'page2':page2, 'fundbudget':projfundbudget, } return context
def get_xls_path(request, exceltype, proj_set, specialname="", eid=""): """ exceltype = EXCELTYPE_DICT 导出表类型 proj_set 筛选出导出的项目集 specialtype 基本科研业务经费科研专题项目的 """ loginfo(p=proj_set, label="get_xls_path") loginfo(p=exceltype, label="exceltype") print exceltype EXCELTYPE_DICT = EXCELTYPE_DICT_OBJECT() if exceltype == EXCELTYPE_DICT.INFO_COLLECTION: file_path = xls_info_collection(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_FUNDSUMMARY: file_path = xls_info_fundsummay(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_SUMMARY: file_path = xls_info_summary(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_FUNDBUDGET: file_path = xls_info_fundbudget(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_TEACHERINFO: file_path = xls_info_teacherinfo(request, eid) #初审表 elif exceltype == EXCELTYPE_DICT.INFO_BASESUMMARYSCIENCE_PREVIEW: file_path = xls_info_basesummary_preview(request, proj_set, 1, specialname, eid) elif exceltype == EXCELTYPE_DICT.INFO_FRONT_PREVIEW: file_path = xls_info_basesummary_preview(request, proj_set, 2, specialname, eid) elif exceltype == EXCELTYPE_DICT.INFO_OUTSTANDING_PREVIEW: file_path = xls_info_basesummary_preview(request, proj_set, 3, specialname, eid) elif exceltype == EXCELTYPE_DICT.INFO_HUMANITY_PREVIEW: file_path = xls_info_humanity_preview(request, proj_set, eid, 1) elif exceltype == EXCELTYPE_DICT.INFO_IMPORTANTPROJECT_PREVIEW: file_path = xls_info_importantproject_preivew(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_LABORATORY_PREVIEW: file_path = xls_info_laboratory_preview(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_BASESUMMARY_PREVIEW: file_path = xls_info_humanity_preview(request, proj_set, eid, 2) #终审表 elif exceltype == EXCELTYPE_DICT.INFO_FINAL_BASESUMMARY_PREVIEW: file_path = xls_info_humanity_preview(request, proj_set, eid, 2) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_HUMANITY_PREVIEW: file_path = xls_info_humanity_preview(request, proj_set, eid, 1) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_IMPORTANTPROJECT_PREVIEW: file_path = xls_info_importantproject_preivew(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_LABORATORY_PREVIEW: file_path = xls_info_laboratory_preview(request, proj_set, eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_BASESUMMARYSCIENCE_PREVIEW: file_path = xls_info_basesummary_preview(request, proj_set, 1, specialname, eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_FRONT_PREVIEW: #前沿交叉终审表 file_path = xls_info_final_front_preview(request, proj_set) else: #EXCELTYPE_DICT.INFO_FINAL_OUTSTANDING_PREVIEW file_path = xls_info_basesummary_preview(request, proj_set, 3, specialname, eid) return MEDIA_URL + "tmp" + file_path[len(TMP_FILES_PATH):]
def create_newproject(request, new_user, managername,financial_cate=FINANCIAL_CATE_UN, pid=None): """ create a new project for this usr, it is student profile """ #TODO: add some necessary decorators student = get_object_or_404(StudentProfile, user=new_user) try: if pid == None: pid = uuid.uuid4() project = ProjectSingle() project.project_id = pid project.adminuser = request.user project.student = student project.school = student.school.school project.year = get_current_year() project.project_grade = ProjectGrade.objects.get(grade=GRADE_UN) project.project_status = ProjectStatus.objects.get(status=STATUS_FIRST) project.project_category = ProjectCategory.objects.all()[0] project.insitute = InsituteCategory.objects.all()[0] project.financial_category= FinancialCategory.objects.get(category=financial_cate) project.save() #create team manager new_student = Student_Group(studentName = managername, project=project) new_student.save() # create presubmit and final report pre = PreSubmit() pre.content_id = uuid.uuid4() pre.project_id = project pre.save() # create presubmit and final report enterpriseTeacher = Teacher_Enterprise() enterpriseTeacher.save() pre = PreSubmitEnterprise() pre.enterpriseTeacher = enterpriseTeacher pre.content_id = uuid.uuid4() pre.project_id = project pre.save() # create midsubmit mid = MidSubmit() mid.content_id = uuid.uuid4() mid.project_id = project mid.save() #create final report final = FinalSubmit() final.content_id = uuid.uuid4() final.project_id = project final.save() except Exception, err: loginfo(p=err, label="creat a project for the user") return False
def finalReportView(request,pid,is_submited): context = finalReportViewWork(request,pid,is_submited[SUBMIT_STATUS_FINAL]) context = dict(context, **fileUploadManage(request, pid, is_submited)) context['is_submited'] = is_submited context['user'] = "******" loginfo(p=is_submited,label="is_submited") if context['redirect']: return HttpResponseRedirect('/teacher/finalinfo') return render(request,"school/final.html",context)
def DispatchDelete(request,username,identity,page,search_form): user = User.objects.get(username=username) loginfo(user) if not user.is_active: user.delete() table = refresh_user_table(request,identity,search_form,page) return simplejson.dumps({'status':'1', 'message':u"删除用户成功",'table':table}) else: return simplejson.dumps({'status':'0', 'message':u"用户已激活,不能删除"})
def wrappered_method(request, *args, **kwargs): #check time control identity = request.session.get('auth_role', "") is_submited = False if identity == ADMINSTAFF_USER and check_auth(user=request.user, authority=ADMINSTAFF_USER): is_submited={SUBMIT_STATUS_APPLICATION:True, SUBMIT_STATUS_TASK:True, SUBMIT_STATUS_PROGRESS:True, SUBMIT_STATUS_FINAL:True, SUBMIT_STATUS_REVIEW:True, SUBMIT_STATUS_BUDGET:True, SUBMIT_STATUS_AUDITE:True, } elif identity == FINANCE_USER and check_auth(user=request.user, authority=FINANCE_USER): is_submited={SUBMIT_STATUS_APPLICATION:True, SUBMIT_STATUS_TASK:True, SUBMIT_STATUS_PROGRESS:True, SUBMIT_STATUS_FINAL:True, SUBMIT_STATUS_REVIEW:True, SUBMIT_STATUS_BUDGET:True, SUBMIT_STATUS_AUDITE:True, } elif identity == SCHOOL_USER and check_auth(user=request.user, authority=SCHOOL_USER): is_submited={SUBMIT_STATUS_APPLICATION:True, SUBMIT_STATUS_TASK:True, SUBMIT_STATUS_PROGRESS:True, SUBMIT_STATUS_FINAL:True, SUBMIT_STATUS_REVIEW:True, SUBMIT_STATUS_BUDGET:False, SUBMIT_STATUS_AUDITE:False, } elif identity == COLLEGE_USER and check_auth(user=request.user, authority=COLLEGE_USER): is_submited={SUBMIT_STATUS_APPLICATION:True, SUBMIT_STATUS_TASK:True, SUBMIT_STATUS_PROGRESS:True, SUBMIT_STATUS_FINAL:True, SUBMIT_STATUS_REVIEW:True, SUBMIT_STATUS_BUDGET:False, SUBMIT_STATUS_AUDITE:False, } elif identity == EXPERT_USER and check_auth(user=request.user, authority=EXPERT_USER): is_submited={SUBMIT_STATUS_APPLICATION:True, SUBMIT_STATUS_TASK:True, SUBMIT_STATUS_PROGRESS:True, SUBMIT_STATUS_FINAL:True, SUBMIT_STATUS_REVIEW:True, SUBMIT_STATUS_BUDGET:False, SUBMIT_STATUS_AUDITE:False, } elif identity == TEACHER_USER and check_auth(user=request.user, authority=TEACHER_USER): pro = ProjectSingle.objects.get(project_id = kwargs["pid"]) is_submited = self.get_submit_status(pro); loginfo(p=is_submited, label="check_submit_status decorator, is_submited") kwargs["is_submited"] = is_submited response = method(request, *args, **kwargs) return response
def finalReportView(request, pid, is_submited): context = finalReportViewWork(request, pid, is_submited[SUBMIT_STATUS_FINAL]) context = dict(context, **fileUploadManage(request, pid, is_submited)) context['is_submited'] = is_submited context['user'] = "******" loginfo(p=is_submited, label="is_submited") if context['redirect']: return HttpResponseRedirect('/teacher/finalinfo') return render(request, "school/final.html", context)
def __call__(self, request, *args, **kwargs): loginfo(p=kwargs, label="only_user_required args") pid = kwargs.get("pid", None) is_passed = self.check_auth_op(pid, request) loginfo(p=is_passed, label="only_user_required decorator") if is_passed: response = self.method(request, *args, **kwargs) return response else: return HttpResponseRedirect(reverse('school.views.home_view'))
def get_established_time(self): """ Get estabilshed time from database """ control = ProjectControl.objects.all() loginfo(p=control, label="get_established_time") if len(control) == 0: return None else: return control[0]
def wrappered_method(request, *args, **kwargs): is_passed = self.check_auth_op(request) loginfo(p=is_passed, label="authority_required decorator") if is_passed: response = method(request, *args, **kwargs) return response else: # TODO: add a custom 403 page return HttpResponseRedirect( reverse('backend.errorviews.error403'))
def finalReportView(request,pid,is_submited={}): print "YYA" * 10 context = finalReportViewWork(request,pid,is_submited[SUBMIT_STATUS_FINAL]) context = dict(context, **fileUploadManage(request, pid,is_submited)) context['is_submited'] = is_submited context['user'] = "******" loginfo(p=is_submited,label="is_submited") # if context['redirect']: # return HttpResponseRedirect('/teacher/finalinfo') return render(request,"adminStaff/final.html",context)
def xls_info_collection(request,proj_set,eid): """ """ xls_obj, workbook = xls_info_collection_gen() _number= 1 for proj_obj in proj_set: try: teacher = TeacherProfile.objects.get(id = proj_obj.teacher.id) manager = teacher.teacherinfosetting projectMembers = ProjectMember.objects.filter(project=proj_obj) loginfo(p=manager,label="manager") row = 1 + _number xls_obj.write(row, 0, unicode(proj_obj.title)) xls_obj.write(row, 1, unicode(proj_obj.project_code)) xls_obj.write(row, 2, unicode(proj_obj.science_type)) xls_obj.write(row, 3, unicode(proj_obj.trade_code).split()[0]) xls_obj.write(row, 4, unicode(proj_obj.subject).split()[1]) xls_obj.write(row, 5, unicode(proj_obj.subject).split()[0]) xls_obj.write(row, 6, unicode(proj_obj.start_time)) xls_obj.write(row, 7, unicode(proj_obj.end_time)) xls_obj.write(row, 8, unicode(proj_obj.approval_year)) xls_obj.write(row, 9, proj_obj.project_status.get_export_str()) xls_obj.write(row, 10, unicode(proj_obj.project_special)) xls_obj.write(row, 11, unicode(BasisContent.objects.get(project=proj_obj).basis)) xls_obj.write(row, 12, unicode(manager.name)) xls_obj.write(row, 13, unicode(manager.get_sex_display())) xls_obj.write(row, 14, unicode(manager.birth)) xls_obj.write(row, 15, unicode(manager.get_target_type_display())) xls_obj.write(row, 16, unicode(manager.get_degree_display())) xls_obj.write(row, 17, unicode(manager.get_title_display())) xls_obj.write(row, 18, unicode(manager.get_position_display())) xls_obj.write(row, 19, unicode(manager.get_base_type_display())) xls_obj.write(row, 20, unicode(manager.base_name)) if proj_obj.project_status.status >= PROJECT_STATUS_FINAL_SCHOOL_OVER: xls_obj.write(row, 25, unicode(proj_obj.finalsubmit.project_summary)) else: try: xls_obj.write(row, 25, unicode(ProgressReport.objects.filter(project_id = proj_obj).order_by("-year")[0].summary)) except: pass for i,member in enumerate(projectMembers): xls_obj.write(row+i, 21, unicode(member.name)) xls_obj.write(row+i, 22, unicode(member.birth_year)) xls_obj.write(row+i, 23, unicode(member.professional_title)) xls_obj.write(row+i, 24, unicode(member.executive_position)) pass except: pass _number+= projectMembers.count() if projectMembers.count()!=0 else 1 # write xls file save_path = os.path.join(TMP_FILES_PATH, "%s%s.xls" % (str(datetime.date.today().year), "年大连理工大学教育部项目信息采集填报表")) workbook.save(save_path) return save_path
def xls_info_collection(request,proj_set,eid): """ """ xls_obj, workbook = xls_info_collection_gen() _number= 1 for proj_obj in proj_set: try: teacher = TeacherProfile.objects.get(id = proj_obj.teacher.id) manager = teacher.teacherinfosetting projectMembers = ProjectMember.objects.filter(project=proj_obj) loginfo(p=manager,label="manager") row = 1 + _number xls_obj.write(row, 0, unicode(proj_obj.title)) xls_obj.write(row, 1, unicode(proj_obj.project_code)) xls_obj.write(row, 2, unicode(proj_obj.science_type)) xls_obj.write(row, 3, unicode(proj_obj.trade_code).split()[0]) xls_obj.write(row, 4, unicode(proj_obj.subject).split()[1]) xls_obj.write(row, 5, unicode(proj_obj.subject).split()[0]) xls_obj.write(row, 6, unicode(proj_obj.start_time)) xls_obj.write(row, 7, unicode(proj_obj.end_time)) xls_obj.write(row, 8, unicode(proj_obj.approval_year)) xls_obj.write(row, 9, proj_obj.project_status.get_export_str()) xls_obj.write(row, 10, unicode(proj_obj.project_special)) xls_obj.write(row, 11, unicode(BasisContent.objects.get(project=proj_obj).basis)) xls_obj.write(row, 12, unicode(manager.name)) xls_obj.write(row, 13, unicode(manager.get_sex_display())) xls_obj.write(row, 14, unicode(manager.birth)) xls_obj.write(row, 15, unicode(manager.get_target_type_display())) xls_obj.write(row, 16, unicode(manager.get_degree_display())) xls_obj.write(row, 17, unicode(manager.get_title_display())) xls_obj.write(row, 18, unicode(manager.get_position_display())) xls_obj.write(row, 19, unicode(manager.get_base_type_display())) xls_obj.write(row, 20, unicode(manager.base_name)) if proj_obj.project_status.status >= PROJECT_STATUS_FINAL_SCHOOL_OVER: xls_obj.write(row, 25, unicode(proj_obj.finalsubmit.project_summary)) else: try: xls_obj.write(row, 25, unicode(ProgressReport.objects.filter(project_id = proj_obj).order_by("-year")[0].summary)) except: pass for i,member in enumerate(projectMembers): xls_obj.write(row+i, 21, unicode(member.name)) xls_obj.write(row+i, 22, unicode(member.birth_year)) xls_obj.write(row+i, 23, unicode(member.professional_title)) xls_obj.write(row+i, 24, unicode(member.executive_position)) pass except: pass _number+= projectMembers.count() if projectMembers.count()!=0 else 1 # write xls file save_path = os.path.join(TMP_FILES_PATH, "%s%s.xls" % (str(datetime.date.today().year), "年大连理工大学教育部项目信息采集填报表")) workbook.save(save_path) return save_path
def Send_email_to_student(request, username, person_firstname,password, email, identity, financial_cate=FINANCIAL_CATE_UN): #判断用户名是否存在,存在的话直接返回 loginfo(p=person_firstname, label="person_firstname") if not AuthStudentExist(request, email): user,send_mail_flag = RegistrationManager().create_inactive_user( request,username,person_firstname,password, email,identity,send_email=False) result = create_newproject(request=request, new_user=user, financial_cate=financial_cate,managername=person_firstname) return (True and result and send_mail_flag, '') else: return (False, u'该邮箱已被激活,请勿重复激活')
def check_auth_op(self, pid, request): if pid is None: return False #ISSUE: we should check get operation! try: project = ProjectSingle.objects.get(project_id=pid) except ProjectSingle.DoesNotExist, err: loginfo(p=err, label="only_user_required -> get projectsingle") project = None return False
def wrappered_method(request, *args, **kwargs): #check time control pid = kwargs.get("pid", None) is_expired = not self.check_day(pid) loginfo(p=is_expired, label="time_controller decorator, is_expired") #Here, we should use history view strategy to replace forbidden kwargs["is_expired"] = is_expired response = method(request, *args, **kwargs) return response
def finalReportView(request, pid, is_submited={}): print "YYA" * 10 context = finalReportViewWork(request, pid, is_submited[SUBMIT_STATUS_FINAL]) context = dict(context, **fileUploadManage(request, pid, is_submited)) context['is_submited'] = is_submited context['user'] = "******" loginfo(p=is_submited, label="is_submited") # if context['redirect']: # return HttpResponseRedirect('/teacher/finalinfo') return render(request, "adminStaff/final.html", context)
def get_finance_serial_year_choices(): project_group=ProjectSingle.objects.filter(project_status__status__gte = PROJECT_STATUS_APPROVAL) year = [('-1',u"财务流水号年度")] year_has=[] for item in project_group: year_has.append(item.approval_year) year_has=list(set(year_has)) for y in year_has: loginfo(y) year.append((y,y)) return tuple(year)
def ChangeControlStatus(request,special_id,type_id,type_name): special = getSpecial(request).get(id = special_id) if special: type=(type_id,type_name) loginfo(type_id) if type in CONTROL_TYPE_CHOICES or type_id=="review": bValue = not getattr(special,type_id+"_status") setattr(special,type_id+"_status",bValue) special.save() return simplejson.dumps({'status':'1','type_id':type_id,'type_name':type_name,'value':bValue}) return simplejson.dumps({'status':'0'})
def check_history_readonly(pid): """ Check whether the project is real current year Arguments: In: pid, project_id history, "current" or "history" Out:a tuple readonly, True or False """ project = get_object_or_404(ProjectSingle, project_id=pid) loginfo(p=project.is_over,label="is_over") return project.is_past
def expert_assigned(): """ project assigned """ experts = ExpertProfile.objects.filter(numlimit=600) loginfo(p="A 600", label="Start") assigned_by_category_all(project_category_const[0], experts) experts = ExpertProfile.objects.filter(numlimit_b=80) loginfo(p="B 60", label="Start") assigned_by_category_all(project_category_const[1], experts)
def get_xls_path(request,exceltype,proj_set,specialname="",eid=""): """ exceltype = EXCELTYPE_DICT 导出表类型 proj_set 筛选出导出的项目集 specialtype 基本科研业务经费科研专题项目的 """ loginfo(p=proj_set,label="get_xls_path") loginfo(p = exceltype,label = "exceltype") print exceltype EXCELTYPE_DICT = EXCELTYPE_DICT_OBJECT() if exceltype == EXCELTYPE_DICT.INFO_COLLECTION: file_path = xls_info_collection(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_FUNDSUMMARY: file_path = xls_info_fundsummay(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_SUMMARY: file_path = xls_info_summary(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_FUNDBUDGET: file_path = xls_info_fundbudget(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_TEACHERINFO: file_path = xls_info_teacherinfo(request,eid) #初审表 elif exceltype == EXCELTYPE_DICT.INFO_BASESUMMARYSCIENCE_PREVIEW: file_path = xls_info_basesummary_preview(request,proj_set,1,specialname,eid) elif exceltype == EXCELTYPE_DICT.INFO_FRONT_PREVIEW: file_path = xls_info_basesummary_preview(request,proj_set,2,specialname,eid) elif exceltype == EXCELTYPE_DICT.INFO_OUTSTANDING_PREVIEW: file_path = xls_info_basesummary_preview(request,proj_set,3,specialname,eid) elif exceltype == EXCELTYPE_DICT.INFO_HUMANITY_PREVIEW: file_path = xls_info_humanity_preview(request,proj_set,eid,1) elif exceltype == EXCELTYPE_DICT.INFO_IMPORTANTPROJECT_PREVIEW: file_path = xls_info_importantproject_preivew(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_LABORATORY_PREVIEW: file_path = xls_info_laboratory_preview(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_BASESUMMARY_PREVIEW: file_path = xls_info_humanity_preview(request,proj_set,eid,2) #终审表 elif exceltype == EXCELTYPE_DICT.INFO_FINAL_BASESUMMARY_PREVIEW: file_path = xls_info_humanity_preview(request,proj_set,eid,2) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_HUMANITY_PREVIEW: file_path = xls_info_humanity_preview(request,proj_set,eid,1) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_IMPORTANTPROJECT_PREVIEW: file_path = xls_info_importantproject_preivew(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_LABORATORY_PREVIEW: file_path = xls_info_laboratory_preview(request,proj_set,eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_BASESUMMARYSCIENCE_PREVIEW: file_path = xls_info_basesummary_preview(request,proj_set,1,specialname,eid) elif exceltype == EXCELTYPE_DICT.INFO_FINAL_FRONT_PREVIEW: #前沿交叉终审表 file_path = xls_info_final_front_preview(request,proj_set) else:#EXCELTYPE_DICT.INFO_FINAL_OUTSTANDING_PREVIEW file_path = xls_info_basesummary_preview(request,proj_set,3,specialname,eid) return MEDIA_URL + "tmp" + file_path[len(TMP_FILES_PATH):]
def get_finance_serial_year_choices(): project_group = ProjectSingle.objects.filter( project_status__status__gte=PROJECT_STATUS_APPROVAL) year = [('-1', u"财务流水号年度")] year_has = [] for item in project_group: year_has.append(item.approval_year) year_has = list(set(year_has)) for y in year_has: loginfo(y) year.append((y, y)) return tuple(year)
def send_mail(subject, message, recipient_list, **kwargs): auth_user, auth_password = choice(settings.EMAIL_POOL) loginfo(p='Send with ' + auth_user, label='send_mail') try: flag = _send_mail( subject, message, auth_user, recipient_list, auth_user=auth_user, auth_password=auth_password, **kwargs) except Exception as e: logger.error(e) flag = False return flag
def fundBudget(request, form, remarkmentform,pid,max_budget,projectcode,is_submited = False): profundbudget = ProjectFundBudget.objects.get(project_id = pid) profundbudgetform = ProFundBudgetForm(deserialize_form(form),instance = profundbudget) profundbudgetremarkmentform = ProFundBudgetRemarkmentForm(deserialize_form(remarkmentform),instance = profundbudget) project = ProjectSingle.objects.get(project_id = pid ) flag = False identity = request.session.get('auth_role', "") accessList = [ADMINSTAFF_USER,SCHOOL_USER,FINANCE_USER] if not check_input(max_budget) or not check_input(projectcode): message = "" if not check_input(max_budget): message += u"项目最大预算不能为空 " if not check_input(projectcode): message += u"项目编号不能为空 " #if not check_input(finance_account): # message += u"项目财务编号不能为空 " ret = {'message':message,'flag':flag,} return simplejson.dumps(ret) if identity in accessList: project.project_budget_max = max_budget project.project_code = projectcode #project.finance_account = finance_account project.save() if profundbudgetform.is_valid(): total_budget = float(profundbudgetform.cleaned_data["total_budget"]) if total_budget < 0: message = u"数据未填写完整或数据格式不对,保存失败" else: laborcosts_budget = float(profundbudgetform.cleaned_data["laborcosts_budget"]) if laborcosts_budget <= total_budget * 0.3: if total_budget <= project.project_budget_max: profundbudgetform.save() copyBudgetToFundsummary(pid) if is_submited: if profundbudgetremarkmentform.is_valid(): profundbudgetremarkmentform.save() flag = True message=u"保存成功" status_confirm(request,project) else: message="预算说明为必填项" else: message=u"保存成功" else: message = u"经费预算表总结额应低于项目最大预算金额,请仔细核实" else: message = u"劳务费应低于总结额的30%,请仔细核实" else: loginfo(p=profundbudgetform.errors,label='profundbudgetform.errors') message = u"数据未填写完整或数据格式不对,保存失败" # table = refresh_fundsummary_table(request,profundsummaryform,pid) ret = {'message':message,'flag':flag,'project_code':project.project_code,'project_budget_max':project.project_budget_max,} return simplejson.dumps(ret)