Commit ae79fede authored by Michal Čihař's avatar Michal Čihař

Remove some distinct calls, they just slow down things

parent 0b463950
......@@ -679,7 +679,7 @@ class Translation(models.Model):
checks = Check.objects.all()
else:
checks = Check.objects.filter(check = check)
checks = checks.filter(project = self.subproject.project, language = self.language, ignore = False).values_list('checksum', flat = True).distinct()
checks = checks.filter(project = self.subproject.project, language = self.language, ignore = False).values_list('checksum', flat = True)
return self.unit_set.filter(checksum__in = checks, translated = True).count()
class Unit(models.Model):
......
......@@ -82,7 +82,7 @@ def show_check_project(request, name, project):
langs = Check.objects.filter(check = name, project = prj, ignore = False).values_list('language', flat = True).distinct()
units = Unit.objects.none()
for lang in langs:
checks = Check.objects.filter(check = name, project = prj, language = lang, ignore = False).values_list('checksum', flat = True).distinct()
checks = Check.objects.filter(check = name, project = prj, language = lang, ignore = False).values_list('checksum', flat = True)
res = Unit.objects.filter(checksum__in = checks, translation__language = lang, translation__subproject__project = prj, translated = True).values('translation__subproject__slug', 'translation__subproject__project__slug').annotate(count = Count('id'))
units |= res
return render_to_response('check_project.html', RequestContext(request, {
......@@ -101,7 +101,7 @@ def show_check_subproject(request, name, project, subproject):
langs = Check.objects.filter(check = name, project = subprj.project, ignore = False).values_list('language', flat = True).distinct()
units = Unit.objects.none()
for lang in langs:
checks = Check.objects.filter(check = name, project = subprj.project, language = lang, ignore = False).values_list('checksum', flat = True).distinct()
checks = Check.objects.filter(check = name, project = subprj.project, language = lang, ignore = False).values_list('checksum', flat = True)
res = Unit.objects.filter(translation__subproject = subprj, checksum__in = checks, translation__language = lang, translated = True).values('translation__language__code').annotate(count = Count('id'))
units |= res
return render_to_response('check_subproject.html', RequestContext(request, {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment