commit
cec2d56338
3 changed files with 38 additions and 37 deletions
|
@ -82,11 +82,22 @@ class NetworkView(DetailView):
|
||||||
return super(ProtectedView, self).dispatch(*args, **kwargs)
|
return super(ProtectedView, self).dispatch(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def _sorted_repos(request):
|
||||||
|
'''Get a list of repos for the currently authorized user, sort it, and
|
||||||
|
return it.'''
|
||||||
|
repos = [r for r in request.github.get_iter('users/%s/repos' %
|
||||||
|
request.user.username)]
|
||||||
|
repos.sort(key=lambda x: x['name'])
|
||||||
|
return repos
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def me(request):
|
def me(request):
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context['followers'] = simplejson.dumps(
|
context['followers'] = simplejson.dumps(
|
||||||
[{'name': unicode(follower), 'avatar': follower.avatar_url} for follower in GHUser.objects.filter(following=request.gh_user)])
|
[{'name': unicode(follower), 'avatar': follower.avatar_url}
|
||||||
|
for follower in GHUser.objects.filter(following=request.gh_user)])
|
||||||
|
context['repos'] = _sorted_repos(request)
|
||||||
return render_to_response('me.html', context)
|
return render_to_response('me.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,5 +106,6 @@ def get_user_followers(request):
|
||||||
name = request.GET.get('user', None)
|
name = request.GET.get('user', None)
|
||||||
if not name:
|
if not name:
|
||||||
raise HttpResponseBadRequest()
|
raise HttpResponseBadRequest()
|
||||||
names = simplejson.dumps([user['login'] for user in request.github.get_iter('users/%s/followers' % name)])
|
names = simplejson.dumps([user['login']
|
||||||
|
for user in request.github.get_iter('users/%s/followers' % name)])
|
||||||
return HttpResponse(names, content_type='application/json')
|
return HttpResponse(names, content_type='application/json')
|
||||||
|
|
|
@ -2,32 +2,28 @@
|
||||||
<div class="navbar navbar-fixed-top">
|
<div class="navbar navbar-fixed-top">
|
||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<a class="brand" href="">Cool name</a>
|
<a class="brand" href="">Cool name</a>
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
<li class="dropdown">
|
<li><a href="{% url me %}">Me</a></li>
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">My Repos</a>
|
<li class="dropdown">
|
||||||
<ul class="dropdown-menu">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">My Repos</a>
|
||||||
{% for r in repos %}
|
<ul class="dropdown-menu">
|
||||||
<li><a href="#">{{ r.name }}</a></li>
|
{% for r in repos %}
|
||||||
{% endfor %}
|
<li><a href="#">{{ r.name }}</a></li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
</li>
|
</ul>
|
||||||
<li><a href="{% url index %}">Followers</a></li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav pull-right">
|
<ul class="nav pull-right">
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
{{ request.user.username }}
|
{{ request.user.username }}
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="#">Logout</a></li>
|
<li><a href="#">Logout</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="{% url index %}">Followers</a></li>
|
</ul>
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li><a href="">Logout</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
11
views.py
11
views.py
|
@ -22,7 +22,7 @@ def login(request):
|
||||||
# Make sure the user can accept cookies.
|
# Make sure the user can accept cookies.
|
||||||
if request.session.test_cookie_worked():
|
if request.session.test_cookie_worked():
|
||||||
request.session.delete_test_cookie()
|
request.session.delete_test_cookie()
|
||||||
return redirect('/login/github/')
|
return redirect('socialauth_begin', backend='github')
|
||||||
else:
|
else:
|
||||||
# During development, I've landed here a lot, despite having cookies
|
# During development, I've landed here a lot, despite having cookies
|
||||||
# enabled. So, set the test cookie so that trying to login from here
|
# enabled. So, set the test cookie so that trying to login from here
|
||||||
|
@ -33,17 +33,10 @@ def login(request):
|
||||||
{ 'error': "Fix your damn cookies!" })
|
{ 'error': "Fix your damn cookies!" })
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def graph_followers(request):
|
|
||||||
return render_to_response('graph_followers.html', {
|
|
||||||
'repos': request.github.get_iter('users/%s/repos' % request.user.username)
|
|
||||||
}, RequestContext(request))
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def graph_repo(request, user=None, repo=None):
|
def graph_repo(request, user=None, repo=None):
|
||||||
return render_to_response('graph_repo.html', {
|
return render_to_response('graph_repo.html', {
|
||||||
'graph_user': user,
|
'graph_user': user,
|
||||||
'graph_repo': repo,
|
'graph_repo': repo,
|
||||||
'repos': request.github.get_iter('users/%s/repos' % request.user.username)
|
'repos': _sorted_repos(request)
|
||||||
}, RequestContext(request))
|
}, RequestContext(request))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue