Ejemplo n.º 1
0
def project(request, username, project_name):
    key = "project-%s-%s" % (username, project_name)
    context = cache.get(key)
    if context is None:
        profile = get_object_or_404(Profile, slug=slugify(username))
        try:
            project = Project.objects.get(url=get_github_repo_url(username, project_name))
        except Project.DoesNotExist:
            raise Http404
        commits_by_user = defaultdict(list)
        for c in project.commit_set.all():
            commits_by_user[c.user].append(c)
        commits = sorted(
            [(sum(c.points for c in commits), user) for user, commits in commits_by_user.iteritems()], reverse=True
        )
        context = {"profile": profile, "project": project, "commits": commits}
        cache.set(key, context, 3600)
    return render_to_response("gitawesome/project.html", context, context_instance=RequestContext(request))
Ejemplo n.º 2
0
def repo(request):
    repo_form = RepoForm()
    if request.method == "POST":
        repo_form = RepoForm(request.POST)
        if repo_form.is_valid():
            # queue repo analysis
            url = repo_form.cleaned_data["repo_url"]
            parts = urlparse.urlsplit(url)
            username, project_name = filter(None, parts[2].split("/"))
            User.objects.get_or_create(username=username)
            Project.objects.get_or_create(name=project_name, url=get_github_repo_url(username, project_name))
            analyze_repo.delay(username, project_name)
            return HttpResponseRedirect(
                "%s?%s"
                % (
                    reverse("gitawesome_repo_queued"),
                    urllib.urlencode({"username": username, "project_name": project_name}),
                )
            )
    context = {"repo_form": repo_form}
    return render_to_response("gitawesome/repo.html", context, context_instance=RequestContext(request))