コード例 #1
0
ファイル: nodes.py プロジェクト: almereyda/historymesh
    def other_story_links(self, instance, story):
        edges = set()
        nodes = set()
        type_str = Edge._type_string_from_model(instance)
        outgoing = Edge.objects.filter(verb="primary", subject_id=instance.id, subject_type=type_str).exclude(story=story)
        second_out = Edge.objects.filter(verb="secondary", subject_id=instance.id, subject_type=type_str, story=story)
        incoming = Edge.objects.filter(verb="primary", object_id=instance.id, object_type=type_str).exclude(story=story)
        second_in = Edge.objects.filter(verb="secondary", object_id=instance.id, object_type=type_str, story=story)

        outgoing = outgoing or second_out
        incoming = incoming or second_in

        for edge in outgoing:
            node = edge.object
            node.horizontal_position = -self.node_separation
            node.story = edge.story

            nodes.add(node)
            edges.add(edge)

        for edge in incoming:
            # The incoming links kink the wrong way on the map. Reversing the link fixes this. We do it in the view
            edge.incoming = True

            node = edge.subject
            node.horizontal_position = self.node_separation
            node.story = edge.story
            nodes.add(node)
            edges.add(edge)
        return nodes,edges
コード例 #2
0
    def other_story_links(self, instance, story):
        edges = set()
        nodes = set()
        type_str = Edge._type_string_from_model(instance)
        outgoing = Edge.objects.filter(
            verb="primary", subject_id=instance.id,
            subject_type=type_str).exclude(story=story)
        second_out = Edge.objects.filter(verb="secondary",
                                         subject_id=instance.id,
                                         subject_type=type_str,
                                         story=story)
        incoming = Edge.objects.filter(
            verb="primary", object_id=instance.id,
            object_type=type_str).exclude(story=story)
        second_in = Edge.objects.filter(verb="secondary",
                                        object_id=instance.id,
                                        object_type=type_str,
                                        story=story)

        outgoing = outgoing or second_out
        incoming = incoming or second_in

        for edge in outgoing:
            node = edge.object
            node.horizontal_position = -self.node_separation
            node.story = edge.story

            nodes.add(node)
            edges.add(edge)

        for edge in incoming:
            # The incoming links kink the wrong way on the map. Reversing the link fixes this. We do it in the view
            edge.incoming = True

            node = edge.subject
            node.horizontal_position = self.node_separation
            node.story = edge.story
            nodes.add(node)
            edges.add(edge)
        return nodes, edges
コード例 #3
0
ファイル: edges.py プロジェクト: pythonthings/historymesh
    def test_type_string_generation(self):
        person = Person.objects.get(pk=1)
        self.assertEqual("core.person", Edge._type_string_from_model(person))

        concept = Concept.objects.get(pk=1)
        self.assertEqual("core.concept", Edge._type_string_from_model(concept))
コード例 #4
0
ファイル: edges.py プロジェクト: almereyda/historymesh
    def test_type_string_generation(self):
        person = Person.objects.get(pk=1)
        self.assertEqual("core.person", Edge._type_string_from_model(person))

        concept = Concept.objects.get(pk=1)
        self.assertEqual("core.concept", Edge._type_string_from_model(concept))