From 9596248dc4733dabe6a54e22fcec67bd343c2019 Mon Sep 17 00:00:00 2001 From: j Date: Wed, 31 Jul 2019 11:53:30 +0200 Subject: [PATCH 1/2] use refresh_from_db --- pandora/archive/models.py | 5 ++--- pandora/archive/tasks.py | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pandora/archive/models.py b/pandora/archive/models.py index 306590b2..3b437fed 100644 --- a/pandora/archive/models.py +++ b/pandora/archive/models.py @@ -756,9 +756,8 @@ 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 = Stream.objects.get(id=self.id) - _self.update_status(ok, error) - return _self + self.refresh_from_db() + self.update_status(ok, error) def get_index(self): index = 1 diff --git a/pandora/archive/tasks.py b/pandora/archive/tasks.py index 2443149a..92446d58 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 = models.File.objects.get(id=fileId) + file.refresh_from_db() file.encoding = False file.save() file.item.update_selected() @@ -158,13 +158,12 @@ def extract_stream(fileId): if created: file.extract_frames() stream.media.name = stream.path(stream.name()) - stream = stream.encode() + stream.encode() if stream.available: stream.make_timeline() stream.extract_derivatives() file.extract_tracks() - # get current version from db - file = models.File.objects.get(id=fileId) + file.refresh_from_db() 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() From 02a2d00f9dcc8ebf629e839230cc0136eb6ae946 Mon Sep 17 00:00:00 2001 From: j Date: Thu, 1 Aug 2019 15:36:06 +0200 Subject: [PATCH 2/2] fix findPlace performance --- pandora/place/managers.py | 1 + pandora/place/views.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora/place/managers.py b/pandora/place/managers.py index ad824591..75d59b1d 100644 --- a/pandora/place/managers.py +++ b/pandora/place/managers.py @@ -141,4 +141,5 @@ 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 9b9ba72f..0b4c105a 100644 --- a/pandora/place/views.py +++ b/pandora/place/views.py @@ -239,7 +239,6 @@ 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: