[damned-lies] Fix dynamic_po view with multiple same-named domains



commit 36124965509a411ceac137bdb58d74b9d79b10df
Author: Claude Paroz <claude 2xlibre net>
Date:   Fri Oct 2 09:26:33 2015 +0200

    Fix dynamic_po view with multiple same-named domains

 stats/views.py |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/stats/views.py b/stats/views.py
index 6785e6c..244d0ae 100644
--- a/stats/views.py
+++ b/stats/views.py
@@ -200,14 +200,17 @@ def dynamic_po(request, module_name, domain, branch_name, filename):
             locale, reduced = locale[:-8], True
         else:
             reduced = False
-        language = Language.objects.select_related('team').get(locale=locale)
-    except:
+    except Exception:
         raise Http404
-    potfile = get_object_or_404(Statistics,
-                             branch__module__name=module_name,
-                             branch__name=branch_name,
-                             domain__name=domain,
-                             language=None)
+
+    language = get_object_or_404(Language.objects.select_related('team'), locale=locale)
+    branch = get_object_or_404(Branch, module__name=module_name, name=branch_name)
+    try:
+        domain = branch.get_domains()[domain]
+    except KeyError:
+        raise Http404
+    potfile = get_object_or_404(Statistics, branch=branch, domain=domain, language=None)
+
     file_path = potfile.po_path(reduced=reduced).encode('ascii')
     if not os.access(file_path, os.R_OK):
         raise Http404
@@ -257,7 +260,7 @@ def dynamic_po(request, module_name, domain, branch_name, filename):
             break
     response = HttpResponse(dyn_content, 'text/plain')
     response['Content-Disposition'] = 'inline; filename=%s' % (
-        ".".join([module_name, domain, branch_name, filename]))
+        ".".join([module_name, domain.name, branch_name, filename]))
     return response
 
 def releases(request, format='html'):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]