Skip to content

Commit

Permalink
renamed classes to ObjectTracker; added import of model in __init__.py
Browse files Browse the repository at this point in the history
  • Loading branch information
dcramer committed Jul 29, 2008
1 parent cdd7156 commit 1d81ed5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
1 change: 1 addition & 0 deletions django_object_view_tracking/__init__.py
@@ -0,0 +1 @@
from django_object_view_tracking.models import ObjectTracker
8 changes: 4 additions & 4 deletions django_object_view_tracking/manager.py
Expand Up @@ -2,7 +2,7 @@

from django_object_view_tracking.constants import *

class ObjectTrackingHandler(object):
class ObjectTrackerHandler(object):
def mark_as_viewed(self, instance, commit=True):
objects = self.objects
if instance.pk not in objects:
Expand All @@ -22,7 +22,7 @@ def has_viewed(self, instance):
_has_viewed = self.date and getattr(instance, OBJECT_TRACKING_DATE_ATTRIBUTE) < self.date
return _has_viewed

class ObjectTrackingSession(ObjectTrackingHandler):
class ObjectTrackerSession(ObjectTrackerHandler):
def __init__(self, request):
self.session = request.session
self.user = request.user
Expand Down Expand Up @@ -50,7 +50,7 @@ def save(self):
# Handled automatically by Django's sessions
pass

class ObjectTrackingManager(models.Manager):
class ObjectTrackerManager(models.Manager):
def get_for_request(self, request, model_class):
ct = ContentType.objects.get_for_model(model_class)
if request.user.is_authenticated():
Expand All @@ -59,4 +59,4 @@ def get_for_request(self, request, model_class):
except self.model.DoesNotExist:
return self.model(user=request.user, content_type=ct)
else:
return ObjectTrackingSession(request)
return ObjectTrackerSession(request)
12 changes: 7 additions & 5 deletions django_object_view_tracking/models.py
Expand Up @@ -8,10 +8,12 @@
Example use:
from django_object_view_tracking import ObjectTracker
def view_forum_list(request):
categories = Category.objects.all()
tracking = ObjectTracking.objects.get_for_request(request, Thread)
tracking = ObjectTracker.objects.get_for_request(request, Thread)
# Don't forget you still need to update a date field when a new thread
# is added to the forum.
Expand All @@ -26,7 +28,7 @@ def view_forum_list(request):
def view_thread_list(request):
threads = Thread.objects.all()
tracking = ObjectTracking.objects.get_for_request(request, Thread)
tracking = ObjectTracker.objects.get_for_request(request, Thread)
# This isn't the *best* approach to checking if it's been viewed, but it works
for thread in threads:
Expand All @@ -37,7 +39,7 @@ def view_thread_list(request):
def view_thread(request, thread_id):
thread = Thread.objects.get(pk=thread_id)
tracking = ObjectTracking.objects.get_for_request(request, Thread)
tracking = ObjectTracker.objects.get_for_request(request, Thread)
tracking.mark_as_viewed(thread)
Expand All @@ -52,13 +54,13 @@ def view_thread(request, thread_id):
from django_object_view_tracking.constants import *
from django_object_view_tracking.manager import *

class ObjectTracking(models.Model, ObjectTrackingHandler):
class ObjectTracker(models.Model, ObjectTrackerHandler):
user = models.ForeignKey(User)
content_type = models.ForeignKey(ContentType)
date = models.DateTimeField(blank=True, null=True)
_objects = models.TextField(db_column='objects')

objects = ObjectTrackingManager()
objects = ObjectTrackerManager()

def _get_objects(self):
return self._objects.split(OBJECT_TRACKING_KEY_SEPARATOR)
Expand Down

0 comments on commit 1d81ed5

Please sign in to comment.