diff --git a/pandora/archive/extract.py b/pandora/archive/extract.py index 1c952ffe0..fc841b721 100644 --- a/pandora/archive/extract.py +++ b/pandora/archive/extract.py @@ -294,7 +294,7 @@ def average_color(prefix, start=0, end=0): timelines = sorted(filter(lambda t: t!= '%s%sp.png'%(prefix,height), glob("%s%sp*.png"%(prefix, height)))) for image in timelines: start_offset = 0 - if start and frames + 1500 < start: + if start and frames + 1500 <= start: frames += 1500 continue timeline = Image.open(image) @@ -311,15 +311,15 @@ def average_color(prefix, start=0, end=0): p = np.asarray(timeline.convert('RGB'), dtype=np.float32) p = np.sum(p, axis=0) / height #average color per frame pixels.append(p) - if end and frames >= end: break if end: frames = end - start - for i in range(0, len(pixels)): - p = np.sum(pixels[i], axis=0) / frames - color += p + if frames: + for i in range(0, len(pixels)): + p = np.sum(pixels[i], axis=0) / frames + color += p color = list(map(float, color)) return ox.image.getHSL(color) diff --git a/pandora/clip/managers.py b/pandora/clip/managers.py index eae7e1f2a..82b02dec5 100644 --- a/pandora/clip/managers.py +++ b/pandora/clip/managers.py @@ -59,6 +59,9 @@ def parseCondition(condition, user): return ~q else: return q + if (not exclude and op == '=' or op in ('$', '^', '>=', '<')) and v == '': + return Q(True) + if k.endswith('__id'): v = decode_id(v) if isinstance(v, bool): #featured and public flag diff --git a/pandora/itemlist/models.py b/pandora/itemlist/models.py index fc8b47900..1a5986d82 100644 --- a/pandora/itemlist/models.py +++ b/pandora/itemlist/models.py @@ -34,8 +34,8 @@ class List(models.Model): icon = models.ImageField(default=None, blank=True, upload_to=lambda i, x: i.path("icon.jpg")) - view = models.TextField(default=lambda: settings.CONFIG['user']['ui']['listView']) - sort = TupleField(default=lambda: settings.CONFIG['user']['ui']['listSort'], editable=False) + view = models.TextField(default=lambda: tuple(settings.CONFIG['user']['ui']['listView'])) + sort = TupleField(default=lambda: tuple(settings.CONFIG['user']['ui']['listSort']), editable=False) poster_frames = TupleField(default=[], editable=False)