From: Guillaume Pellerin Date: Mon, 15 Apr 2013 22:14:10 +0000 (+0200) Subject: cleanup X-Git-Tag: 1.4.5~28 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=9d0b7f1f07359eb435af4322a0e01c1d5199cf9d;p=telemeta.git cleanup Conflicts: telemeta/models/query.py --- diff --git a/telemeta/models/query.py b/telemeta/models/query.py index 0fd1df34..12aa7e10 100644 --- a/telemeta/models/query.py +++ b/telemeta/models/query.py @@ -206,13 +206,14 @@ class MediaItemQuerySet(CoreQuerySet): def by_instrument(self, name): "Find items by instrument" from telemeta.models.instrument import Instrument - instruments = Instrument.objects.filter(name=name) - items = [] - for instrument in instruments: - performances = instrument.performances.all() + from telemeta.models.media import MediaItemPerformance + instruments = Instrument.objects.filter(name__contains=name) + perf = [] + if instruments: + performances = MediaItemPerformance.objects.filter(instrument__in=instruments) for performance in performances: - items.append(performance.media_item) - return items + perf.append(performance) + return self.filter(performances__in=perf).distinct() class MediaItemManager(CoreManager): "Manage media items queries"