diff --git a/pandora/clip/managers.py b/pandora/clip/managers.py index 729624d57..d69fb7c66 100644 --- a/pandora/clip/managers.py +++ b/pandora/clip/managers.py @@ -145,11 +145,7 @@ class ClipManager(Manager): keys = layer_ids + ['annotations', 'text', '*'] conditions = data.get('query', {}).get('conditions', []) conditions = flatten_conditions(conditions) - conditions_ = [] - for c in conditions: - if c.get('key') in keys and c not in conditions_: - conditions_.append(c) - conditions = conditions_ + conditions = list(filter(lambda c: c.get('key') in keys, conditions)) operator = data.get('query', {}).get('operator', '&') def parse(condition): diff --git a/pandora/clip/views.py b/pandora/clip/views.py index df2c9103f..b37427c26 100644 --- a/pandora/clip/views.py +++ b/pandora/clip/views.py @@ -95,7 +95,7 @@ def findClips(request, data): if 'keys' in data: qs = order_query(qs, query['sort']) qs = qs[query['range'][0]:query['range'][1]] - #qs = qs.select_related('item') + qs = qs.select_related('item') layers = settings.CONFIG['layers'] entity_layer_ids = [k['id'] for k in layers if k['type'] == 'entity'] diff --git a/pandora/edit/models.py b/pandora/edit/models.py index a407d69a3..2dfe2ee03 100644 --- a/pandora/edit/models.py +++ b/pandora/edit/models.py @@ -11,10 +11,9 @@ import tempfile from six.moves.urllib.parse import quote import ox from django.conf import settings -from django.contrib.auth import get_user_model -from django.core.cache import cache from django.db import models, transaction from django.db.models import Max +from django.contrib.auth import get_user_model from django.utils.encoding import python_2_unicode_compatible from oxdjango.fields import JSONField @@ -119,7 +118,7 @@ class Edit(models.Model): c = self.add_clip(data) if c: ids.insert(index, c.id) - added.append(c.json(user=user)) + added.append(c.json(user)) added[-1]['index'] = index index += 1 else: @@ -489,38 +488,32 @@ class Clip(models.Model): self.sortvolume = 0 def json(self, user=None): - cache_key = 'edit:clip:' + str(self.get_id()) - if user: - cache_key += ':' + user.username - data = cache.get(cache_key) - if not data: - data = { - 'id': self.get_id(), - 'index': self.index, - 'volume': self.volume, - } - if self.annotation: - data['annotation'] = self.annotation.public_id - data['item'] = self.item.public_id - data['in'] = self.annotation.start - data['out'] = self.annotation.end - data['parts'] = self.annotation.item.cache['parts'] - data['durations'] = self.annotation.item.cache['durations'] - else: - data['item'] = self.item.public_id - data['in'] = self.start - data['out'] = self.end - data['parts'] = self.item.cache['parts'] - data['durations'] = self.item.cache['durations'] - for key in ('title', 'director', 'year', 'videoRatio'): - value = self.item.cache.get(key) - if value: - data[key] = value - data['duration'] = data['out'] - data['in'] - data['cuts'] = tuple([c for c in self.item.get('cuts', []) if c > self.start and c < self.end]) - data['layers'] = self.get_layers(user) - data['streams'] = [s.file.oshash for s in self.item.streams()] - cache.set(cache_key, data, 180) + data = { + 'id': self.get_id(), + 'index': self.index, + 'volume': self.volume, + } + if self.annotation: + data['annotation'] = self.annotation.public_id + data['item'] = self.item.public_id + data['in'] = self.annotation.start + data['out'] = self.annotation.end + data['parts'] = self.annotation.item.cache['parts'] + data['durations'] = self.annotation.item.cache['durations'] + else: + data['item'] = self.item.public_id + data['in'] = self.start + data['out'] = self.end + data['parts'] = self.item.cache['parts'] + data['durations'] = self.item.cache['durations'] + for key in ('title', 'director', 'year', 'videoRatio'): + value = self.item.cache.get(key) + if value: + data[key] = value + data['duration'] = data['out'] - data['in'] + data['cuts'] = tuple([c for c in self.item.get('cuts', []) if c > self.start and c < self.end]) + data['layers'] = self.get_layers(user) + data['streams'] = [s.file.oshash for s in self.item.streams()] return data def get_annotations(self): diff --git a/pandora/settings.py b/pandora/settings.py index 4f24c8fc6..a8e59fed0 100644 --- a/pandora/settings.py +++ b/pandora/settings.py @@ -170,13 +170,6 @@ LOGGING = { } } -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', - 'LOCATION': 'cache', - } -} - AUTH_PROFILE_MODULE = 'user.UserProfile' AUTH_CHECK_USERNAME = True FFMPEG = 'ffmpeg' diff --git a/pandora/user/views.py b/pandora/user/views.py index d9639d70a..17ce76da6 100644 --- a/pandora/user/views.py +++ b/pandora/user/views.py @@ -785,7 +785,7 @@ def setUI(request, data): if isinstance(p, list): p = p[getPositionById(p, key)] else: - if key not in p or not isinstance(p[key], dict): + if key not in p: p[key] = {} p = p[key] if value == None and keys[0] in p: diff --git a/requirements.txt b/requirements.txt index a3b5c98f7..a3936b666 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,3 @@ requests==2.19.1 tornado<5 geoip2==2.9.0 youtube-dl -python-memcached diff --git a/update.py b/update.py index e5a41f06c..72ad1db8e 100755 --- a/update.py +++ b/update.py @@ -249,9 +249,6 @@ if __name__ == "__main__": update_service('pandora-tasks') if old < 5975: run('./bin/pip', 'install', '-r', 'requirements.txt') - if old <= 6064: - run('./bin/pip', 'install', '-r', 'requirements.txt') - run('./pandora/manage.py', 'createcachetable') else: if len(sys.argv) == 1: release = get_release()