def profile_view(request, user_id): user_node = Person.get_and_update(request.user) other_user = get_object_or_404(User, pk=user_id) other_user_node = Person.get_and_update(other_user) num_connections = len(other_user_node.connections()) already_requested = other_user.get_profile().is_connection_requested(request.user.pk) connection_requested = request.user.get_profile().is_connection_requested(user_id) status_content_type = ContentType.objects.get( app_label="opportunities", model="statusupdate" ) skills_content_type = ContentType.objects.get( app_label="opportunities", model="skillsupdate" ) return render(request, 'profile/profile_view.html', {'other_user_profile': other_user.get_profile(), 'other_user_jobs': other_user.modelbase_set.filter(ummeliopportunity__isnull=False)\ .exclude(content_type__in=[status_content_type, skills_content_type])\ .order_by('-created').count(), 'other_user_pk':other_user.pk, 'num_connections': num_connections, 'connected_to_user': user_node.is_connected_to(other_user_node), 'is_self': int(user_id) == request.user.pk, 'already_requested':already_requested, 'connection_requested':connection_requested, })
def add_connection_for_user(parent, child): if parent and child: parent_person = Person.get_and_update(parent) child_person = Person.get_and_update(child) parent_person.knows.add(child_person) parent_person.save() else: raise ValueError("Both parent and child cannont be null.")
def test_user_node_creation(self): tom = Person.get_and_update(self.tom) luke = Person.get_and_update(self.luke) self.assertEquals(len(tom.connections()), 0) add_connection_for_user(self.tom, self.luke) self.assertEquals(len(tom.connections()), 1) self.assertEquals(len(luke.connections()), 1) self.assertTrue(tom.is_connected_to(luke))
def connections(request, user_id): other_user = get_object_or_404(User, pk = user_id) other_user_node = Person.get_and_update(other_user) user_node = Person.get_and_update(request.user) connections = [(node, user_node.is_connected_to(node), \ request.user.connection_requests.filter(user__pk=node.user_id).exists(), \ request.user.get_profile().is_connection_requested(node.user_id)) \ for node in other_user_node.connections()] already_requested = other_user.get_profile().connection_requests.filter(pk=request.user.pk).exists() return render(request, 'profile/connections.html', {'user_node': user_node, 'other_user_node': other_user_node, 'connections': connections, 'is_self': int(user_id) == request.user.pk, 'already_requested':already_requested, })
def profile(request): user_node = Person.get_and_update(request.user) num_connections = len(user_node.connections()) return render(request, 'profile/profile.html', {'num_connections': num_connections})
def get_connection_node(self): from ummeli.graphing.models import Person user_node = Person.get_and_update(self.user) return user_node