def test_items_language_cache(self): """ [recommendation.filter.Language] Test item in language cache system """ for i in ITEMS: item = Item.objects.get(external_id=i["external_id"]) for loc in item.locales.all(): assert loc.locale_id in Locale.get_item_locales(item.pk), \ "Locale %s for item %s is not in cache (%s)" % (loc, item, Locale.get_item_locales(item.pk))
def __call__(self, user, early_recommendation, size=None, **kwargs): """ Call the filter """ unsupported_langs = Locale.get_user_locales(user.pk).symmetric_difference(Locale.get_all_locales()) #print list(Locale.items_by_locale[l] for l in unsupported_langs) unsupported_items = set(chain(*(Locale.get_items_by_locale(l) for l in unsupported_langs))) for item in unsupported_items: if not any(x in Locale.get_item_locales(item) for x in Locale.get_user_locales(user.pk)): early_recommendation[item-1] = -1000 return early_recommendation