def committers_history(request, userid, slug): template = "repocontrol/graphs_history_bycommiters.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) return render_to_response(template, {'branches':branches,'reponame':obj.get('reponame') , 'activelink':'graphs', 'href':"/%d/%s/" % (obj.get('user_obj').id, slug)}, context_instance=RequestContext(request))
def viewfiles(request, userid, slug, branch="master"): template = "repocontrol/viewfiles.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) if branches and branch == "master": branch = branches[0] #teeeeest #if branches: # branch = branches[0] if not branch in branches: raise Http404 return render_to_response(template, {'chosenbranch':branch, 'reponame':obj.get('reponame'), 'branches':branches, 'href':"/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink':'files'}, context_instance=RequestContext(request))
def committers_history(request, userid, slug): template = "repocontrol/graphs_history_bycommiters.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) return render_to_response( template, { 'branches': branches, 'reponame': obj.get('reponame'), 'activelink': 'graphs', 'href': "/%d/%s/" % (obj.get('user_obj').id, slug) }, context_instance=RequestContext(request))
def viewrepo(request, userid, slug): template = "repocontrol/viewrepo.html" obj = func.getRepoObjorNone(userid, slug) userobj = User.objects.get(pk=userid) empty = False try: repo = Repository.objects.get(user=userobj, slug=slug) except: repo = None comm_date = None latest_commit = None latest_commit_ref = None branches = func.getBranches(obj.get('repoObj')) if not branches: empty = True if not repo: raise Http404 elif repo and obj: try: comm_date = datetime.datetime.fromtimestamp(obj.get('repoObj').commit().committed_date) latest_commit = obj.get('repoObj').commit() latest_commit_ref = str(obj.get('repoObj').head.ref) except: pass else: empty = True if empty: return render_to_response(template, {'slug':slug, 'userobj':userobj.username, 'empty':True}, context_instance=RequestContext(request)) latest_issues = Issue.objects.filter(repository=obj.get('repo')).order_by('-published')[:5] issues_latest_comments = Issue.objects.filter(repository=obj.get('repo'), last_action__isnull=False).order_by('-last_action')[:3] comments = [] if issues_latest_comments: for li in issues_latest_comments: com = li.issuecomment_set.all().order_by('-date')[:2] comments.append(com) return render_to_response(template, {'latest_commit_ref':latest_commit_ref, 'issues_latest_comments':comments, 'latest_issues':latest_issues, 'reponame':obj.get('reponame'), 'repodb':obj.get('repo'), 'latest_commit':latest_commit, 'date':comm_date, 'href':"/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink':''}, context_instance=RequestContext(request))
def showcommits(request, userid, slug, branch="master"): template = "repocontrol/viewcommits.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) if branches and branch == "master": branch = branches[0] #teeeeest if not branch in branches: raise Http404 page = request.GET.get("page", 1) try: page = int(page) except: page = 1 show_per_page = 8 commits = list(func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page) - show_per_page)) nextlist = list(func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page))) haspreviouslist = list(func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page) - 2 * show_per_page)) hasnext = True hasprevious = True if len(nextlist) == 0: hasnext = False if page == 1 or len(haspreviouslist) == 0: hasprevious = False comlist = [] if commits: for commit in commits: newcom = {'author':smart_str(commit.author), 'message':smart_str(commit.message), 'date':datetime.datetime.fromtimestamp(commit.committed_date), 'sha':commit.hexsha} comlist.append(newcom) return render_to_response(template, {'previouspage':page - 1, 'nextpage':page + 1, 'hasprevious':hasprevious, 'hasnext':hasnext, 'page':page, 'reponame':obj.get('reponame'), 'requestedbranch': branch, 'commits':comlist, 'branches':branches, 'repodb':obj.get('repo'), 'href':"/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink':'viewcommits'}, context_instance=RequestContext(request))
def viewfiles(request, userid, slug, branch="master"): template = "repocontrol/viewfiles.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) if branches and branch == "master": branch = branches[0] #teeeeest #if branches: # branch = branches[0] if not branch in branches: raise Http404 return render_to_response( template, { 'chosenbranch': branch, 'reponame': obj.get('reponame'), 'branches': branches, 'href': "/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink': 'files' }, context_instance=RequestContext(request))
def graphs(request, userid, slug, branch, graph, sk=0): obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) dajax = Dajax() if branch not in branches: branch = branches[0] skip = int(sk) num = 50 commits = list(func.getCommits(obj.get('repoObj'), branch, num, skip)) date_val = {} list_values = [] if commits: if graph == "commits": for index, c in enumerate(commits): skip = index if len(date_val) >= 5: break dt = datetime.datetime.fromtimestamp(c.committed_date) temp_val = date_val.get(str(dt.date())) if not temp_val: date_val[str(dt.date())] = 1 else: temp_val += 1 date_val[str(dt.date())] = temp_val elif graph == "committers": first_date = None last_date = None for index, c in enumerate(commits): skip = index dt = datetime.datetime.fromtimestamp(c.committed_date) if index == 0: first_date = dt.date() last_date = first_date - datetime.timedelta(7) if dt.date() >= last_date: temp_val = date_val.get(smart_str(c.author.name)) if not temp_val: date_val[smart_str(c.author.name)] = 1 else: temp_val += 1 date_val[smart_str(c.author.name)] = temp_val else: break for item in date_val: if graph == "commits": tmp_dict = {'date':item, 'value':date_val[item], 'sk':skip} list_values.append(tmp_dict) elif graph == "committers": tmp_dict = {'commiter':item, 'value': date_val[item], 'first':str(first_date), 'last':str(last_date), 'sk':skip} list_values.append(tmp_dict) dajax.add_data(sorted(list_values), "set_graph_data") return dajax.json()
def graphs(request, userid, slug, branch, graph, sk=0): obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) dajax = Dajax() if branch not in branches: branch = branches[0] skip = int(sk) num = 50 commits = list(func.getCommits(obj.get('repoObj'), branch, num, skip)) date_val = {} list_values = [] if commits: if graph == "commits": for index, c in enumerate(commits): skip = index if len(date_val) >= 5: break dt = datetime.datetime.fromtimestamp(c.committed_date) temp_val = date_val.get(str(dt.date())) if not temp_val: date_val[str(dt.date())] = 1 else: temp_val += 1 date_val[str(dt.date())] = temp_val elif graph == "committers": first_date = None last_date = None for index, c in enumerate(commits): skip = index dt = datetime.datetime.fromtimestamp(c.committed_date) if index == 0: first_date = dt.date() last_date = first_date - datetime.timedelta(7) if dt.date() >= last_date: temp_val = date_val.get(smart_str(c.author.name)) if not temp_val: date_val[smart_str(c.author.name)] = 1 else: temp_val += 1 date_val[smart_str(c.author.name)] = temp_val else: break for item in date_val: if graph == "commits": tmp_dict = {'date': item, 'value': date_val[item], 'sk': skip} list_values.append(tmp_dict) elif graph == "committers": tmp_dict = { 'commiter': item, 'value': date_val[item], 'first': str(first_date), 'last': str(last_date), 'sk': skip } list_values.append(tmp_dict) dajax.add_data(sorted(list_values), "set_graph_data") return dajax.json()
def viewrepo(request, userid, slug): template = "repocontrol/viewrepo.html" obj = func.getRepoObjorNone(userid, slug) userobj = User.objects.get(pk=userid) empty = False try: repo = Repository.objects.get(user=userobj, slug=slug) except: repo = None comm_date = None latest_commit = None latest_commit_ref = None branches = func.getBranches(obj.get('repoObj')) if not branches: empty = True if not repo: raise Http404 elif repo and obj: try: comm_date = datetime.datetime.fromtimestamp( obj.get('repoObj').commit().committed_date) latest_commit = obj.get('repoObj').commit() latest_commit_ref = str(obj.get('repoObj').head.ref) except: pass else: empty = True if empty: return render_to_response(template, { 'slug': slug, 'userobj': userobj.username, 'empty': True }, context_instance=RequestContext(request)) latest_issues = Issue.objects.filter( repository=obj.get('repo')).order_by('-published')[:5] issues_latest_comments = Issue.objects.filter( repository=obj.get('repo'), last_action__isnull=False).order_by('-last_action')[:3] comments = [] if issues_latest_comments: for li in issues_latest_comments: com = li.issuecomment_set.all().order_by('-date')[:2] comments.append(com) return render_to_response( template, { 'latest_commit_ref': latest_commit_ref, 'issues_latest_comments': comments, 'latest_issues': latest_issues, 'reponame': obj.get('reponame'), 'repodb': obj.get('repo'), 'latest_commit': latest_commit, 'date': comm_date, 'href': "/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink': '' }, context_instance=RequestContext(request))
def showcommits(request, userid, slug, branch="master"): template = "repocontrol/viewcommits.html" obj = func.getRepoObjorNone(userid, slug) func.objOr404(obj) branches = func.getBranches(obj.get('repoObj')) if branches and branch == "master": branch = branches[0] #teeeeest if not branch in branches: raise Http404 page = request.GET.get("page", 1) try: page = int(page) except: page = 1 show_per_page = 8 commits = list( func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page) - show_per_page)) nextlist = list( func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page))) haspreviouslist = list( func.getCommits(obj.get('repoObj'), branch, show_per_page, (page * show_per_page) - 2 * show_per_page)) hasnext = True hasprevious = True if len(nextlist) == 0: hasnext = False if page == 1 or len(haspreviouslist) == 0: hasprevious = False comlist = [] if commits: for commit in commits: newcom = { 'author': smart_str(commit.author), 'message': smart_str(commit.message), 'date': datetime.datetime.fromtimestamp(commit.committed_date), 'sha': commit.hexsha } comlist.append(newcom) return render_to_response( template, { 'previouspage': page - 1, 'nextpage': page + 1, 'hasprevious': hasprevious, 'hasnext': hasnext, 'page': page, 'reponame': obj.get('reponame'), 'requestedbranch': branch, 'commits': comlist, 'branches': branches, 'repodb': obj.get('repo'), 'href': "/%d/%s/" % (obj.get('user_obj').id, slug), 'activelink': 'viewcommits' }, context_instance=RequestContext(request))