commit 331658438dc31b8ae1b4e487a4aeccfd373d1419 Author: Sherief Alaa sheriefalaa.w@gmail.com Date: Mon Jun 2 06:40:54 2014 +0300
added a new db column (visits) which acts as a counter for visits per token by users --- pups/settings.py.sample | 1 + webchat/models.py | 12 +++++++++++- webchat/views.py | 17 +++++++++++------ 3 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/pups/settings.py.sample b/pups/settings.py.sample index 97d4ab6..85607cf 100644 --- a/pups/settings.py.sample +++ b/pups/settings.py.sample @@ -98,6 +98,7 @@ INSTALLED_APPS = ( 'pups', 'webchat', 'stats', + 'south' )
TEMPLATE_CONTEXT_PROCESSORS = ( diff --git a/webchat/models.py b/webchat/models.py index b475a6d..375ba04 100644 --- a/webchat/models.py +++ b/webchat/models.py @@ -36,9 +36,10 @@ class Token(models.Model): created_at = models.DateTimeField(auto_now_add=True) expires_at = models.DateTimeField() comment = models.CharField(max_length=128) + visits = models.IntegerField(default=0)
def __unicode__(self): - return u'ID: %s Owner: %s' % (self.t_id, self.owner) + return u'ID: %s Owner: %s visits: %s' % (self.t_id, self.owner, self.visits)
def create_token(self, owner_id, expiration_days, comment): q = Token( @@ -73,3 +74,12 @@ class Token(models.Model): ''' return Token.objects.filter(owner=assistant).order_by('-t_id')\ .filter(expires_at__gt=timezone.now()) + + def increment_visits(self, id): + token = Token.objects.filter(t_id=id) + + if not token: + return False + + token.update(visits=F('visits')+1) + return True diff --git a/webchat/views.py b/webchat/views.py index aec8135..f5b9aad 100644 --- a/webchat/views.py +++ b/webchat/views.py @@ -86,20 +86,25 @@ def chat(request, token): and did not expire. '''
- t = Token() - t_obj = get_object_or_404(Token, token=token) + requested_token = get_object_or_404(Token, token=token)
# Make sure token didn't expire - if t_obj.expires_at < timezone.now(): + if requested_token.expires_at < timezone.now(): return render(request, "token_exp.html")
params = { 'server': settings.CONFIG['server'], 'bosh': settings.CONFIG['bosh'], - 'receiver': t_obj.owner.username + settings.CONFIG['receiver'], - 'receiver_name': t_obj.owner.username, - 'token': token + 'receiver': + requested_token.owner.username + settings.CONFIG['receiver'], + 'receiver_name': requested_token.owner.username, + 'token': token, + 'comment': requested_token.comment } + + # Count visits for metrics + requested_token.increment_visits(requested_token.pk) + return render(request, 'prodromus.html', params)
tor-commits@lists.torproject.org