def deploy_ask(request, pid): try: project = Project_Config.objects.get(id=pid) if project.project_repertory == 'git': version = GitTools() elif project.project_repertory == 'svn': version = SvnTools() except: return render_to_response('deploy/deploy_ask.html', { "user": request.user, "errorInfo": "项目不存在,可能已经被删除." }, context_instance=RequestContext(request)) if request.method == "GET": vList = None version.pull(path=project.project_repo_dir) if project.project_model == 'branch': #获取最新版本 bList = version.branch(path=project.project_repo_dir) vList = version.log(path=project.project_repo_dir, number=50) elif project.project_model == 'tag': bList = version.tag(path=project.project_repo_dir) audit_group = Group.objects.get(id=project.project_audit_group) userList = [u.get('username') for u in audit_group.user_set.values()] return render_to_response('deploy/deploy_ask.html', { "user": request.user, "project": project, "userList": userList, "bList": bList, "vList": vList }, context_instance=RequestContext(request)) elif request.method == "POST": try: order = Project_Order.objects.create( order_user=request.user, order_project=project, order_subject=request.POST.get('order_subject'), order_audit=request.POST.get('order_audit'), order_status=request.POST.get('order_status', 2), order_level=request.POST.get('order_level'), order_content=request.POST.get('order_content'), order_branch=request.POST.get('order_branch', None), order_comid=request.POST.get('order_comid', None), order_tag=request.POST.get('order_tag', None)) sendEmail.delay(order_id=order.id, mask='【申请中】') except Exception, e: return render_to_response('deploy/deploy_ask.html', { "user": request.user, "errorInfo": "项目部署申请失败:%s" % str(e) }, context_instance=RequestContext(request)) return HttpResponseRedirect('/deploy_ask/{id}/'.format(id=pid))
def deploy_ask(request,pid): try: project = Project_Config.objects.get(id=pid) if project.project_repertory == 'git':version = GitTools() elif project.project_repertory == 'svn':version = SvnTools() except: return render_to_response('deploy/deploy_ask.html',{"user":request.user, "errorInfo":"项目不存在,可能已经被删除."}, context_instance=RequestContext(request)) if request.method == "GET": vList = None version.pull(path=project.project_repo_dir) if project.project_model == 'branch': #获取最新版本 bList = version.branch(path=project.project_repo_dir) vList = version.log(path=project.project_repo_dir, number=50) elif project.project_model == 'tag': bList = version.tag(path=project.project_repo_dir) audit_group = Group.objects.get(id=project.project_audit_group) userList = [ u.get('username') for u in audit_group.user_set.values()] return render_to_response('deploy/deploy_ask.html',{"user":request.user,"project":project, "userList":userList,"bList":bList,"vList":vList}, context_instance=RequestContext(request)) elif request.method == "POST": try: order = Project_Order.objects.create( order_user = request.user, order_project = project, order_subject = request.POST.get('order_subject'), order_audit = request.POST.get('order_audit'), order_status = request.POST.get('order_status',2), order_level = request.POST.get('order_level'), order_content = request.POST.get('order_content'), order_branch = request.POST.get('order_branch',None), order_comid = request.POST.get('order_comid',None), order_tag = request.POST.get('order_tag',None) ) sendEmail.delay(order_id=order.id,mask='【申请中】') except Exception,e: return render_to_response('deploy/deploy_ask.html',{"user":request.user,"errorInfo":"项目部署申请失败:%s" % str(e)}, context_instance=RequestContext(request)) return HttpResponseRedirect('/deploy_ask/{id}/'.format(id=pid))
def deploy_order(request): if request.method == "GET": orderList = Project_Order.objects.filter(Q(order_user=User.objects.get(username=request.user)) | Q(order_audit=User.objects.get(username=request.user))).order_by("id")[0:150] totalOrder = Project_Order.objects.all().count() doneOrder = Project_Order.objects.filter(order_status=3).count() authOrder = Project_Order.objects.filter(order_status=2).count() rejectOrder = Project_Order.objects.filter(order_status=1).count() deploy_nmuber = Project_Order.objects.values('order_user').annotate(dcount=Count('order_user')) deploy_project = Project_Order.objects.values('order_project').annotate(dcount=Count('order_project')) for ds in deploy_project: ds['order_project'] = Project_Config.objects.get(id=ds.get('order_project')).project_name return render_to_response('deploy/deploy_order.html',{"user":request.user,"orderList":orderList, "totalOrder":totalOrder,"doneOrder":doneOrder, "authOrder":authOrder,"rejectOrder":rejectOrder, "deploy_nmuber":deploy_nmuber,"deploy_project":deploy_project}, context_instance=RequestContext(request)) elif request.method == "POST" and request.user.has_perm('OpsManage.can_add_project_order'): if request.POST.get('model') in ['disable','auth','finish']: try: Project_Order.objects.filter(id=request.POST.get('id')).update( order_status = request.POST.get('order_status'), order_cancel = request.POST.get('order_cancel',None), ) if request.POST.get('model') == 'auth': sendEmail.delay(order_id=request.POST.get('id'),mask='【已授权】') elif request.POST.get('model') == 'finish': sendEmail.delay(order_id=request.POST.get('id'),mask='【已部署】') elif request.POST.get('model') == 'disable': sendEmail.delay(order_id=request.POST.get('id'),mask='【已取消】') except Exception,e: return JsonResponse({'msg':"操作失败:"+str(e),"code":500,'data':[]}) return JsonResponse({'msg':"操作成功","code":200,'data':[]}) else:return JsonResponse({'msg':"非法操作","code":500,'data':[]})