示例#1
0
def add_view_for(request, content_type_id, object_id):
    ct = ContentType.objects.get(pk=content_type_id)
    myobject = ct.get_object_for_this_type(pk=object_id)

    logging.debug('Adding view for %s through web.', myobject)

    ViewTracker.add_view_for(myobject)

    return HttpResponse()
示例#2
0
def add_view_for(request, content_type_id, object_id):
    ct = ContentType.objects.get(pk=content_type_id)
    myobject = ct.get_object_for_this_type(pk=object_id)
    
    logging.debug('Adding view for %s through web.', myobject)
    
    ViewTracker.add_view_for(myobject)
    
    return HttpResponse()
    
示例#3
0
def mark_all_as_viewed(request, fallback_redirect_to='/'):
	"""Marks all objects as viewed for ViewTracker.  POST to this view and all objects will be marked as viewed.
	
	Redirects the user back to the page from whence they came when done, or if there is no referrer, then fallback_redirect_to.
	"""
	
	if request.method != 'POST':
		return HttpResponseNotAllowed(['POST'])
		
	tracking = ViewTracker(request.user)
	tracking.mark_all_viewed()
	
	if request.META.has_key('HTTP_REFERER'):
		return HttpResponseRedirect(request.META['HTTP_REFERER'])
	else:
		return HttpResponseRedirect(redirect_to)
示例#4
0
def mark_model_as_viewed(request, model, fallback_redirect_to='/'):
	"""Marks all objects of a particular type as viewed for ViewTracker.  POST to this view and all objects of that type will be marked as viewed.
	
	Redirects the user back to the page from whence they came when done, or if there is no referrer, then fallback_redirect_to.
	
	Specify the parameter model to set the model that is being marked as read.  This may be an instance of the model, the class of the model, or the name of the model's table.
	"""
	
	if request.method != 'POST':
		return HttpResponseNotAllowed(['POST'])
				
	tracking = ViewTracker(request.user)
	tracking.mark_model_viewed(model)
	
	if request.META.has_key('HTTP_REFERER'):
		return HttpResponseRedirect(request.META['HTTP_REFERER'])
	else:
		return HttpResponseRedirect(redirect_to)
示例#5
0
def post_save_handler(signal, sender, instance, created, raw, **kwargs):
    if created:
        ct = ContentType.objects.get_for_model(sender)
        if ViewTracker.objects.filter(content_type=ct,
                                      object_id=instance.pk).count() == 0:
            v = ViewTracker(content_type=ct, object_id=instance.pk).save()
            logging.debug('%s automatically created for object %s' %
                          (v, instance))
        else:
            logging.warn('A ViewTracker already existst for %s.' % instance)
示例#6
0
def view_handler(signal, sender, **kwargs):
    ViewTracker.add_view_for(sender)
示例#7
0
def view_handler(signal, sender, **kwargs):
    ViewTracker.add_view_for(sender)