This commit is contained in:
rolux 2011-11-11 11:09:41 +00:00
commit 94757187fb
5 changed files with 11 additions and 9 deletions

View file

@ -3,6 +3,7 @@
import os
from os.path import join, dirname, basename, splitext, exists
import time
from django.core.management.base import BaseCommand, CommandError
from django.conf import settings
@ -20,11 +21,13 @@ class Command(BaseCommand):
def handle(self, **options):
offset = 0
chunk = 100
chunk = 50
count = pos = models.Item.objects.count()
while offset <= count:
for i in models.Item.objects.all().order_by('id')[offset:offset+chunk]:
print pos, i.itemId
i.save()
time.sleep(1) #dont overload db
pos -= 1
offset += chunk
time.sleep(30) #dont overload db

View file

@ -1206,6 +1206,8 @@ class Access(models.Model):
self.accessed = 0
self.accessed += 1
super(Access, self).save(*args, **kwargs)
timesaccessed = Access.objects.filter(item=self.item).aggregate(Sum('accessed'))['accessed__sum']
ItemSort.objects.filter(item=self.item).update(timesaccessed=timesaccessed)
def __unicode__(self):
if self.user:

View file

@ -53,7 +53,6 @@ def _order_query(qs, sort, prefix='sort__'):
key = {
'id': 'itemId',
'accessed': 'accessed__access',
'viewed': 'accessed__access',
}.get(e['key'], e['key'])
if key not in ('accessed__access', 'accessed__accessed'):
key = "%s%s" % (prefix, key)
@ -237,13 +236,10 @@ Positions
def only_p_sums(m):
r = {}
for p in _p:
if p == 'viewed' and request.user.is_authenticated():
value = m.accessed.filter(user=request.user).annotate(v=Max('access'))
r[p] = value.exists() and value[0].v or None
elif p == 'accessed':
if p == 'accessed':
r[p] = m.a
elif p == 'timesaccessed':
r[p] = m.sort.timesaccessed
r[p] = m.timesaccessed
else:
r[p] = m.json.get(p, '')
if 'clip_qs' in query:

View file

@ -24,7 +24,8 @@ MANAGERS = ADMINS
# although not all choices may be available on all operating systems.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'Europe/Berlin'
TIME_ZONE = 'UTC'
#TIME_ZONE = 'Asia/Kolkata'
# Language code for this installation. All choices can be found here:

View file

@ -690,7 +690,7 @@ def setUI(request):
else:
request.session['ui'] = json.dumps(ui)
if data.get('item', False):
if data.get('item'):
item = get_object_or_404_json(Item, itemId=data['item'])
if request.user.is_authenticated():
access, created = Access.objects.get_or_create(item=item, user=request.user)