instruments = Instrument.objects.filter(name__icontains=name)
aliases = InstrumentAlias.objects.filter(name__icontains=name)
perf = []
- if instruments or aliases:
- performances = MediaItemPerformance.objects.filter(Q(instrument__in=instruments) | Q(alias__in=aliases))
- for performance in performances:
- perf.append(performance)
+ performances = MediaItemPerformance.objects.filter(Q(instrument__in=instruments) | Q(alias__in=aliases))
+ for performance in performances:
+ perf.append(performance)
return self.filter(performances__in=perf).distinct()
class MediaItemManager(CoreManager):
return self.get_query_set().sound(*args, **kwargs)
sound.__doc__ = MediaItemQuerySet.sound.__doc__
- def sound_public(self, *args, **kwargs):
- return self.get_query_set().sound_public(*args, **kwargs)
- sound_public.__doc__ = MediaItemQuerySet.sound_public.__doc__
-
def by_instrument(self, *args, **kwargs):
return self.get_query_set().by_instrument(*args, **kwargs)
by_instrument.__doc__ = MediaItemQuerySet.by_instrument.__doc__
def by_instrument(self, name):
"Find collections by instrument"
- from telemeta.models.instrument import Instrument
+ from telemeta.models.media import MediaItemPerformance
+ from telemeta.models.instrument import Instrument, InstrumentAlias
instruments = Instrument.objects.filter(name__icontains=name)
+ aliases = InstrumentAlias.objects.filter(name__icontains=name)
items = []
- for instrument in instruments:
- performances = instrument.performances.all()
- for performance in performances:
- items.append(performance.media_item)
+ performances = MediaItemPerformance.objects.filter(Q(instrument__in=instruments) | Q(alias__in=aliases))
+ for performance in performances:
+ items.append(performance.media_item)
return self.filter(items__in=items).distinct()
-
class MediaCollectionManager(CoreManager):
"Manage collection queries"