updated scaffolding
This commit is contained in:
parent
71b847ba70
commit
5d370e36d0
1 changed files with 42 additions and 9 deletions
|
@ -18,31 +18,64 @@ from models import GHUser, Repo
|
||||||
class Graph(object):
|
class Graph(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.nodes = set()
|
self.nodes = set()
|
||||||
self.edges = defaultdict(list)
|
self.edges = {}
|
||||||
self.distances = {}
|
self.distances = {}
|
||||||
|
|
||||||
def add_node(self, value):
|
def add_node(self, value):
|
||||||
self.nodes.add(value)
|
self.nodes.add(value)
|
||||||
|
|
||||||
def add_edge(self, from_node, to_node, distance):
|
def add_edge(self, from_node, to_node, distance):
|
||||||
|
self._add_edge(from_node, to_node, distance)
|
||||||
|
self._add_edge(to_node, from_node, distance)
|
||||||
|
|
||||||
|
def _add_edge(self, from_node, to_node, distance):
|
||||||
|
self.edges.setdefault(from_node, [])
|
||||||
self.edges[from_node].append(to_node)
|
self.edges[from_node].append(to_node)
|
||||||
self.edges[to_node].append(from_node)
|
|
||||||
self.distances[(from_node, to_node)] = distance
|
self.distances[(from_node, to_node)] = distance
|
||||||
|
|
||||||
|
|
||||||
class UserNetworkView(DetailView):
|
class NetworkView(DetailView):
|
||||||
context_object_name = 'ghuser'
|
#example list of edges
|
||||||
model = GHUser
|
# nodes just in a list
|
||||||
|
[
|
||||||
|
{'from': 'node1',
|
||||||
|
'to' : 'node2',
|
||||||
|
'distance' : 'weight'},
|
||||||
|
]
|
||||||
|
|
||||||
|
def create_graph(self, nodes, edges):
|
||||||
|
graph = Graph()
|
||||||
|
graph.nodes = set(nodes)
|
||||||
|
for edge in edges:
|
||||||
|
graph.add_edge(edge['from'], edge['to'], edge['distance'])
|
||||||
|
return graph
|
||||||
|
|
||||||
|
|
||||||
def get_user(self):
|
def get_user(self):
|
||||||
self.user = User.objects.get(username=self.kwargs.get('username'))
|
self.user = User.objects.get(username=self.kwargs.get('username'))
|
||||||
self.person = self.user.get_profile()
|
self.person = self.user.get_profile()
|
||||||
return self.person
|
return
|
||||||
|
|
||||||
|
def get_repos(self):
|
||||||
|
self.repos = Repo.objects.get(user=self.get_user())
|
||||||
|
return repos
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
self.get_user()
|
||||||
|
if self.get_repos:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
queryset = kwargs.pop('object_list')
|
||||||
|
page_size = self.get_paginate_by(queryset)
|
||||||
|
context_object_name = self.get_context_object_name(queryset)
|
||||||
|
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
self.object_list = self.get_queryset()
|
self.object_list = self.get_queryset()
|
||||||
context = self.get_context_data(object_list=self.object_list)
|
context = self.get_context_data(object_list=self.object_list)
|
||||||
context.update({'user': self.user})
|
context.update({'xxx': 'what should go here'})
|
||||||
return self.render_to_response(context)
|
return self.render_to_response(context)
|
||||||
|
|
||||||
@method_decorator(login_required)
|
@method_decorator(login_required)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue