diff --git a/pandora/item/management/commands/rebuildcache.py b/pandora/item/management/commands/rebuildcache.py index 7bd8d83a..8600d02c 100644 --- a/pandora/item/management/commands/rebuildcache.py +++ b/pandora/item/management/commands/rebuildcache.py @@ -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 diff --git a/pandora/item/models.py b/pandora/item/models.py index 8bf2aa28..8d66115d 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -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: diff --git a/pandora/item/views.py b/pandora/item/views.py index cff82149..acf9d83f 100644 --- a/pandora/item/views.py +++ b/pandora/item/views.py @@ -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: diff --git a/pandora/settings.py b/pandora/settings.py index 16315ad4..59992bbe 100644 --- a/pandora/settings.py +++ b/pandora/settings.py @@ -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: diff --git a/pandora/user/views.py b/pandora/user/views.py index 388006e5..447a930a 100644 --- a/pandora/user/views.py +++ b/pandora/user/views.py @@ -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)