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
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)