diff --git a/pandora/archive/models.py b/pandora/archive/models.py index 3b437fed..306590b2 100644 --- a/pandora/archive/models.py +++ b/pandora/archive/models.py @@ -756,8 +756,9 @@ class Stream(models.Model): ok, error = extract.stream(media, target, self.name(), info, flags=self.flags) # file could have been moved while encoding # get current version from db and update - self.refresh_from_db() - self.update_status(ok, error) + _self = Stream.objects.get(id=self.id) + _self.update_status(ok, error) + return _self def get_index(self): index = 1 diff --git a/pandora/archive/tasks.py b/pandora/archive/tasks.py index 92446d58..2443149a 100644 --- a/pandora/archive/tasks.py +++ b/pandora/archive/tasks.py @@ -128,7 +128,7 @@ def process_stream(fileId): stream = streams[0] stream.make_timeline() stream.extract_derivatives() - file.refresh_from_db() + file = models.File.objects.get(id=fileId) file.encoding = False file.save() file.item.update_selected() @@ -158,12 +158,13 @@ def extract_stream(fileId): if created: file.extract_frames() stream.media.name = stream.path(stream.name()) - stream.encode() + stream = stream.encode() if stream.available: stream.make_timeline() stream.extract_derivatives() file.extract_tracks() - file.refresh_from_db() + # get current version from db + file = models.File.objects.get(id=fileId) if not file.item.rendered \ and not file.item.files.exclude(id=fileId).filter(Q(queued=True) | Q(encoding=True)).count(): file.item.update_timeline() diff --git a/pandora/place/managers.py b/pandora/place/managers.py index 75d59b1d..ad824591 100644 --- a/pandora/place/managers.py +++ b/pandora/place/managers.py @@ -141,5 +141,4 @@ class PlaceManager(Manager): user) if conditions: qs = qs.filter(conditions) - qs = qs.distinct() return qs diff --git a/pandora/place/views.py b/pandora/place/views.py index 0b4c105a..9b9ba72f 100644 --- a/pandora/place/views.py +++ b/pandora/place/views.py @@ -239,6 +239,7 @@ def findPlaces(request, data): qs = order_query(query['qs'], query['sort']) qs = qs.distinct() if 'keys' in data: + qs = qs.select_related('user__profile') qs = qs[query['range'][0]:query['range'][1]] response['data']['items'] = [p.json(data['keys'], request.user) for p in qs] elif 'position' in query: