def index(request): qry="select * from projects_iteration where project_id=%s order by cast(name as signed)" c = conn.cursor() c2 = conn.cursor(my.cursors.DictCursor) projectname = getprojectname(c) res = c.execute(qry,PROJECT_ID) iters = c.fetchall() #raise Exception('PROJECT %s iters: %s'%(PROJECT_ID,iters)) aspects = session.query(Aspect).all() return render_to_response('/index.html',{'aspects':aspects,'iterations':iters,'SCRUMDO_BASEURL':SCRUMDO_BASEURL,'projectname':projectname},request)
def aspect(request,aspect): ni = request.params.get('new_item') if ni: i = Item() i.name = ni session.add(i) ; session.commit() ns = request.params.get('new_situation') if ns: i = Situation() i.name = ns session.add(i) ; session.commit() a = session.query(Aspect).get(aspect) if request.params.get('view_all'): viewitems = [i.name for i in session.query(Item).all()] else: viewitems = request.params.getall('item') if len(viewitems): return Redirect("/support/%s/%s"%(a.name,",".join(viewitems))) items = session.query(Item).order_by(Item.name).all() situations = session.query(Situation).all() return render_to_response('/item_choice.html',{'aspect':a,'items':items,'situations':situations})
def iteration(request,iteration_id=None,how='bypoints'): if iteration_id=='None': iteration_id=None c2 = conn.cursor(my.cursors.DictCursor) if iteration_id=='current': res = c2.execute("select id from projects_iteration where project_id=%s and start_date<=now() and end_date>=now()",PROJECT_ID) fo = c2.fetchone() if fo: iteration_id = fo['id'] else: iteration_id=None if iteration_id: res = c2.execute("select start_date,end_date from projects_iteration where id=%s",iteration_id) start_date,end_date = c2.fetchone().values() else: start_date=None end_date=None print 'running for dates %s - %s'%(start_date,end_date) if how=='bydiff': commits = compile_report.run(start_date=start_date,end_date=end_date,makereport=False) else: commits ={'by_story':{}} likey= '%commited to github%' joinqry = "from projects_story s,auth_user u where u.id=s.assignee_id" if iteration_id: joinqry+=" and iteration_id=%s " qargs = [likey,iteration_id] qa2 = [iteration_id] else: joinqry+=" and iteration_id in (select id from projects_iteration where project_id=%s)" qargs= [likey,str(PROJECT_ID)] qa2 = [PROJECT_ID] fnames = 's.id,s.local_id,s.summary,s.status,s.points,s.rank,u.email' fqry = "select %s\n,(select count(*) from threadedcomments_threadedcomment where comment like TOKEN and object_id=s.id) commits,count(*) commits\n %s \n group by %s \n order by assignee_id,rank"%(fnames,joinqry,fnames) fqry=fqry.replace('TOKEN','%s') print fqry print qargs if iteration_id: res = c2.execute(fqry.replace('\n',''),qargs) else: res = c2.execute(fqry,qargs) stories = c2.fetchall() for st in stories: print('checking if story %s is in %s'%(st['local_id'],commits['by_story'].keys())) if unicode(st['local_id']) in commits['by_story'].keys(): st['diff']= commits['by_story'][unicode(st['local_id'])]['diff'] else: st['diff']=0 fqry2 = "select u.email,sum(s.points) points,count(*) stories %s group by u.email"%joinqry if iteration_id: res = c2.execute(fqry2,qa2) else: res = c2.execute(fqry2,qa2) points = c2.fetchall() try: if how=='bydiff': maxpoints=sum([df['diff'] for df in commits['by_story'].values()]) else: maxpoints=max([p['points'] for p in points]) except ValueError: maxpoints=0 c = conn.cursor() if iteration_id: itername = getiterationname(c,iteration_id) else: itername = 'all iterations' return render_to_response('/iteration.html',{'maxpoints':json.dumps(maxpoints),'points':json.dumps(points),'stories':json.dumps(stories),'SCRUMDO_BASEURL':SCRUMDO_BASEURL,'projectname':getprojectname(c),'iteration_id':iteration_id,'iteration_name':itername,'how':how},request)
if spl[0] == 'revoke': user = spl[1] cnt = int(spl[2]) ip = spl[3] assert ipre.search(ip) revoke_access(user, ip, cnt, admin, is_admin) users = get_users() rules, all_allowed = get_fw_rules(users) for u in users: if u not in rules: rules[u] = [] if admin == DEFAULT_ADMIN: #show all users' rules pass else: for k in rules.keys(): if k != admin: del rules[k] users = [admin] remote_addr = request.headers.get('X-Forwarded-For') if not remote_addr: raise AuthErr('no remote addr in X-Forwarded-For header') c = { 'users': users, 'rules': rules, 'remote_ip': remote_addr, 'is_admin': is_admin, 'user': admin } return render_to_response('index.html', c) #return Response('<h1>Hello, NoodlesFramework!</h1>')
assert ipre.search(aip) if request.params.get("add-ip-btn"): allow_access(admin, aip, note) for k in request.params: spl = k.split("-") if spl[0] == "revoke": user = spl[1] cnt = int(spl[2]) ip = spl[3] assert ipre.search(ip) revoke_access(user, ip, cnt, admin, is_admin) users = get_users() rules, all_allowed = get_fw_rules(users) for u in users: if u not in rules: rules[u] = [] if admin == DEFAULT_ADMIN: # show all users' rules pass else: for k in rules.keys(): if k != admin: del rules[k] users = [admin] remote_addr = request.headers.get("X-Forwarded-For") if not remote_addr: raise AuthErr("no remote addr in X-Forwarded-For header") c = {"users": users, "rules": rules, "remote_ip": remote_addr, "is_admin": is_admin, "user": admin} return render_to_response("index.html", c) # return Response('<h1>Hello, NoodlesFramework!</h1>')