from easyrec.utils import get_gateway from django import template from django.db.models import get_model Product = get_model('catalogue', 'Product') easyrec = get_gateway() register = template.Library() @register.assignment_tag def most_viewed( time_range=None, max_results=None, requested_item_type=None, ): """ Usage: {% most_viewed as [var] %} Sets [var] to contain a list of most viewed titles for the passed in user """ try: return easyrec.get_most_viewed_items(time_range, max_results, requested_item_type) except: return Product.objects.none()
from easyrec.utils import get_gateway from django import template from django.db.models import get_model Product = get_model('catalogue', 'Product') easyrec = get_gateway() register = template.Library() @register.assignment_tag def user_recommendations( user, max_results=None, requested_item_type=None, action_type=None ): """ Usage: {% user_recommendations [user] as [var] %} Sets [var] to contain a list of recommended titles for the passed in user """ if not user.is_authenticated(): return Product.objects.none() if action_type: action_type = action_type.upper()
from celery import task from easyrec import utils gateway = utils.get_gateway() @task def add_view(*args, **kwargs): return gateway.add_view(*args, **kwargs) @task def add_buy(*args, **kwargs): return gateway.add_buy(*args, **kwargs) @task def add_rating(*args, **kwargs): return gateway.add_rating(*args, **kwargs)
from django.core.management.base import BaseCommand from django.db.models import get_model from easyrec.utils import get_gateway from easyrec.receivers import EasyRecListeners Order = get_model('order', 'Order') listeners = EasyRecListeners(get_gateway()) class Command(BaseCommand): help = "Import all existing orders into EasyRec" def handle(self, *args, **options): self.stdout.write('Starting order import') self.stdout.write('Found %d orders to import', Order.objects.count()) imported = 0 skipped = 0 for order in Order.objects.all(): if order.is_anonymous: skipped += 1 continue user = order.user listeners.on_order_placed(self, order, user) imported += 1 self.stdout.write('Import completed (%d imports, %d skipped)', (imported, skipped))