diff --git a/githubnetwork/views.py b/githubnetwork/views.py index 722c298..af02d18 100644 --- a/githubnetwork/views.py +++ b/githubnetwork/views.py @@ -18,31 +18,64 @@ from models import GHUser, Repo class Graph(object): def __init__(self): self.nodes = set() - self.edges = defaultdict(list) + self.edges = {} self.distances = {} - + def add_node(self, value): self.nodes.add(value) - + 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[to_node].append(from_node) self.distances[(from_node, to_node)] = distance -class UserNetworkView(DetailView): - context_object_name = 'ghuser' - model = GHUser +class NetworkView(DetailView): + #example list of edges + # 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): self.user = User.objects.get(username=self.kwargs.get('username')) 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): self.object_list = self.get_queryset() 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) @method_decorator(login_required)