示例#1
0
    def add_associations(self, object, usage, association_data):
        """
        Add multiple ContentAssociations based on association_data.
        """
        usage_object = ContentUsage.objects.get_usage_object(usage)

            
        base_content_type = ContentType.objects.get_for_model(object.__class__)
        base_object_id = object.id
        
        parsed_associations = parse_relatedcontent_data(association_data)
        final_associations = []
        current_order = self.model.objects.get_max_usage_count(base_content_type, base_object_id, usage_object)
        for association in parsed_associations:
            current_order = current_order + 1
            selectable_content_type = ContentType.objects.get(id = int(association[0]))
            selectable_object_id = int(association[1])
            association_object = self.model.objects.add_association(base_content_type,
                                                                   base_object_id,
                                                                   selectable_content_type,
                                                                   selectable_object_id,
                                                                   usage_object,
                                                                   current_order)
            final_associations.append(association_object)
        return final_associations
示例#2
0
 def test_parse_relatedcontent_data(self):
     """
     Tests parsing of related content data.
     """
     data = "(1 1), (2 2), (3 3)"
     final_data = utils.parse_relatedcontent_data(data)
     self.assertEqual(len(final_data), 3)
     self.assertTrue(('1', '1') in final_data)
     self.assertTrue(('2', '2') in final_data)
     self.assertTrue(('3', '3') in final_data)