def project_details(request, slug, template_name='projects/details.html'): project_key = ndb.Key('Project', slug) project = project_key.get() if project is None: raise Http404("Project Not Found.") limit = 100 cursor = request.GET.get('cursor') if cursor: cursor = Cursor(urlsafe=cursor) # TODO: pagination user_future = User.query().filter(ndb.GenericProperty('projects') == project.url).fetch_async(100) query = Commit.query().filter(Commit.project_slug == slug).order(-Commit.timestamp) commit_future = query.fetch_page_async(limit, start_cursor=cursor) commits, next_cursor, more = commit_future.get_result() users = user_future.get_result() if next_cursor is not None: next_cursor = next_cursor.urlsafe() return render_to_response(template_name, {'project': project, 'users': users, 'commits': commits, 'next': next_cursor, 'more': more}, context_instance=RequestContext(request))
def fix_counts(): """Fix the global totals of points. Do a bunch of count querys.""" ranges = _get_date_ranges() for start, end in ranges: count = Commit.query().filter(Commit.timestamp >= start, Commit.timestamp < end).count(1000) Accumulator.add_count('global', start, count, reset=True)
def fix_player_counts(auth_id): """Fix a single user counts.""" user = User.get_by_auth_id(auth_id) ranges = _get_date_ranges() for start, end in ranges: count = Commit.query(ancestor=user.key).filter(Commit.timestamp >= start, Commit.timestamp < end).count(1000) Accumulator.add_count('own:%s' % user.username, start, count, reset=True)
def user_profile(request, username): user = User.get_by_auth_id('own:%s' % username) if user == None: raise Http404("User not found") commits = Commit.query(ancestor=user.key).order(-Commit.timestamp).fetch(100) return render_to_response('people/profile.html', {"commits":commits, 'profile':user}, context_instance=RequestContext(request))
def user_profile(request, username): user = User.get_by_auth_id('twitter:%s' % username) if user == None: raise Http404("User not found") commits = Commit.query(ancestor=user.key).order(-Commit.timestamp).fetch(100) return render_to_response('people/profile.html', {"commits":commits, 'profile':user}, context_instance=RequestContext(request))
def fix_player_counts(auth_id): """Fix a single user counts.""" user = User.get_by_auth_id(auth_id) ranges = _get_date_ranges() for start, end in ranges: count = Commit.query(ancestor=user.key).filter( Commit.timestamp >= start, Commit.timestamp < end).count(1000) Accumulator.add_count('own:%s' % user.username, start, count, reset=True)
def fix_orphans(cursor=None): if cursor: cursor = Cursor(urlsafe=cursor) query = Commit.query() models, next_cursor, more = query.fetch_page(500, keys_only=True, start_cursor=cursor) for commit in models: if commit.parent() is None: logging.info("Found orphan commit: %s", commit) deferred.defer(fix_commit, commit.urlsafe()) # if we have more keep looping if more: deferred.defer(fix_orphans, cursor=next_cursor.urlsafe())
def fix_orphans(cursor=None, email=None): if cursor: cursor = Cursor(urlsafe=cursor) query = Commit.query() if email: logging.info("Fixing orphans by email") query = query.filter(Commit.email == email) models, next_cursor, more = query.fetch_page(500, keys_only=True, start_cursor=cursor) for commit in models: if commit.parent() is None: logging.info("Found orphan commit: %s", commit) deferred.defer(fix_commit, commit.urlsafe()) # if we have more keep looping if more: deferred.defer(fix_orphans, cursor=next_cursor.urlsafe())