예제 #1
0
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))
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)) 
예제 #6
0
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)) 
예제 #7
0
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)
예제 #8
0
파일: cron.py 프로젝트: mattoc/julython.org
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())
예제 #9
0
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())