@@ -147,7 +147,8 @@ def deploy2(request):
147147 if project .update_style == "tag" :
148148 return listTags (request , server )
149149 else :
150- return listCommits (request )
150+ filter = request .GET .get ("filter" ,None )
151+ return listCommits (request ,filter )
151152
152153@login_required (redirect_field_name = "redirect" )
153154def listTags (request , server ):
@@ -273,29 +274,43 @@ def checkServersStatus(request):
273274 return render_to_response ("base.html" , {"title" :"Servers Health" ,"function" :"checkServers" ,"dataType" :"JSON" ,"data" :"" ,"ajax" : True }, context_instance = RequestContext (request ))
274275
275276@login_required (redirect_field_name = "redirect" )
276- def listCommits (request ):
277+ def listCommits (request , filter = None ):
277278 #if request.method == "GET":
278279 res = None
280+ branches = []
281+ c = None
282+ server = None
283+ project = None
279284 print request .GET .get ("refresh" ,"False" )
280285 if request .GET .get ("refresh" ,"False" )== "True" :
281286 if "commits" in request .session :
282- del request .session ["commits" ]
287+ request .session .pop ("commits" ,"" )
288+ request .session .pop ("branchs" ,"" )
283289 return redirect ("./listCommits" )
284- if not "commits" in request .session :
290+ if filter or not "commits" in request .session :
285291 server = Server .objects .get (name = request .session ["deploy_server" ])
286292 project = Project .objects .get (name = request .session ["deploy_project" ])
287293 c = Client ("git" , server .ip , server .port ,key = project .sshKey .key )
288294 c .Pull (project .repo ,project .working_dir ,project .sshKey .key )
289- res = c .ListCommits (project .working_dir )
290- print res
295+ res = c .ListCommits (project .working_dir ,options = {"branch" :filter })
291296 request .session ["commits" ] = res
292297 else :
293298 res = request .session ["commits" ]
299+
300+ if not "branchs" in request .session :
301+ if not c :
302+ server = Server .objects .get (name = request .session ["deploy_server" ])
303+ project = Project .objects .get (name = request .session ["deploy_project" ])
304+ c = Client ("git" , server .ip , server .port , key = project .sshKey .key )
305+ branches = c .ListBranchs (project .working_dir )
306+ else :
307+ branches = request .session ["branchs" ]
308+ request .session ["branchs" ]= branches
294309 table = CommitTable (res )
295310 table_to_report = RequestConfig (request , paginate = {"per_page" : 15 }).configure (table )
296311 if table_to_report :
297312 return create_report_http_response (table_to_report , request )
298- return render_to_response ("deploy2.html" , {"mode" :"commits" ,"commits" : table }, context_instance = RequestContext (request ))
313+ return render_to_response ("deploy2.html" , {"mode" :"commits" ,"commits" : table , "branchs" : branches , "current_branch" : filter }, context_instance = RequestContext (request ))
299314
300315
301316@login_required (redirect_field_name = "redirect" )
0 commit comments