Source code for recommends.managers

from recommends.utils import ctypes_dict


[docs]class CachedContentTypesMixin(object): _ctypes = None @property def ctypes(self): if self._ctypes is None: self._ctypes = ctypes_dict() return self._ctypes
[docs] def get_ctype_id_for_obj(self, obj): app_label = obj._meta.app_label module_name = obj._meta.model_name return self.ctypes["%s.%s" % (app_label, module_name)]
[docs]class DictStorageManager(CachedContentTypesMixin):
[docs] def similarity_for_objects(self, object_target, object_target_site, object_related, object_related_site): object_ctype_id = self.get_ctype_id_for_obj(object_target) object_id = object_target.id related_object_ctype_id = self.get_ctype_id_for_obj(object_related) related_object_id = object_related.id return dict( object_ctype=object_ctype_id, object_id=object_id, object_site=object_target_site.id, related_object_ctype=related_object_ctype_id, related_object_id=related_object_id, related_object_site=object_related_site.id, )
[docs] def suggestion_for_object(self, user, object_recommended, object_site): object_ctype_id = self.get_ctype_id_for_obj(object_recommended) object_id = object_recommended.id return dict( object_ctype=object_ctype_id, object_id=object_id, object_site=object_site.id, user=user.id, )