[damned-lies] Change URL format for dynamic po
- From: Claude Paroz <claudep src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [damned-lies] Change URL format for dynamic po
- Date: Mon, 26 Sep 2011 20:55:05 +0000 (UTC)
commit 8e334f1bd203951bacb7fbac593300bff0e2e3a6
Author: Claude Paroz <claude 2xlibre net>
Date: Mon Sep 26 22:53:09 2011 +0200
Change URL format for dynamic po
Fixes bug #660109
The previous format containing dots instead of slashes was problematic
for example when a branch name contained dots. Splitting of components
could not properly happen.
stats/models.py | 2 +-
stats/tests/__init__.py | 4 ++--
stats/views.py | 12 ++++++------
urls.py | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/stats/models.py b/stats/models.py
index 9af6212..d5a76e2 100644
--- a/stats/models.py
+++ b/stats/models.py
@@ -1691,7 +1691,7 @@ class FakeLangStatistics(object):
locale = self.language.locale
return reverse(
'dynamic_po',
- args=("%s.%s.%s.%s.po" % (self.branch.module.name, self.domain.name, self.branch.name, locale),)
+ args=(self.branch.module.name, self.domain.name, self.branch.name, "%s.po" % locale)
)
class FakeSummaryStatistics(object):
diff --git a/stats/tests/__init__.py b/stats/tests/__init__.py
index 3a6ec91..9e60e4e 100644
--- a/stats/tests/__init__.py
+++ b/stats/tests/__init__.py
@@ -181,13 +181,13 @@ class ModuleTestCase(TestCase):
""" Test the creation of a blank po file for a new language """
lang = Language.objects.create(name="Tamil", locale="ta")
self.branch.update_stats(force=False) # At least POT stats needed
- response = self.client.get('/module/po/gnome-hello.po.master.ta.po')
+ response = self.client.get('/module/po/gnome-hello/po/master/ta.po')
self.assertContains(response, """# Tamil translation for gnome-hello.
# Copyright (C) %s gnome-hello's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-hello package.
# FIRST AUTHOR <EMAIL ADDRESS>, YEAR.""" % date.today().year)
self.assertContains(response, "Language-Team: Tamil <ta li org>")
- response = self.client.get('/module/po/gnome-hello.po.master.ta-reduced.po')
+ response = self.client.get('/module/po/gnome-hello/po/master/ta-reduced.po')
self.assertContains(response, """# Tamil translation for gnome-hello.""")
@test_scratchdir
diff --git a/stats/views.py b/stats/views.py
index 8c32eb0..4a6c781 100644
--- a/stats/views.py
+++ b/stats/views.py
@@ -168,10 +168,10 @@ def docimages(request, module_name, potbase, branch_name, langcode):
}
return render(request, 'module_images.html', context)
-def dynamic_po(request, filename):
+def dynamic_po(request, module_name, domain, branch_name, filename):
""" Generates a dynamic po file from the POT file of a branch """
try:
- module, domain, branch, locale, ext = filename.split(".")
+ locale, ext = filename.split(".")
if locale.endswith('-reduced'):
locale, reduced = locale[:-8], True
else:
@@ -180,8 +180,8 @@ def dynamic_po(request, filename):
except:
raise Http404
potfile = get_object_or_404(Statistics,
- branch__module__name=module,
- branch__name=branch,
+ branch__module__name=module_name,
+ branch__name=branch_name,
domain__name=domain,
language=None)
file_path = potfile.po_path(reduced=reduced).encode('ascii')
@@ -192,7 +192,7 @@ def dynamic_po(request, filename):
# Copyright (C) %(year)s %(pack)s's COPYRIGHT HOLDER
# This file is distributed under the same license as the %(pack)s package.\n""" % {
'lang': language.name,
- 'pack': module,
+ 'pack': module_name,
'year': date.today().year
}
if request.user.is_authenticated():
@@ -216,7 +216,7 @@ def dynamic_po(request, filename):
continue
# Transformations
new_line = {
- '"Project-Id-': u"\"Project-Id-Version: %s %s\\n\"" % (module, branch),
+ '"Project-Id-': u"\"Project-Id-Version: %s %s\\n\"" % (module_name, branch_name),
'"Last-Transl': u"\"Last-Translator: FULL NAME <EMAIL ADDRESS>\\n\"",
'"Language-Te': u"\"Language-Team: %s <%s>\\n\"" % (
language.name, language.team and language.team.mailing_list or "%s li org" % locale),
diff --git a/urls.py b/urls.py
index 02730f5..ac8fb5c 100644
--- a/urls.py
+++ b/urls.py
@@ -61,7 +61,7 @@ urlpatterns += patterns('stats.views',
view = 'modules',
name = 'modules'),
url(
- regex = r'^module/po/(?P<filename>.*)$',
+ regex = r'^module/po/(?P<module_name>[\w\-\+]+)/(?P<domain>\w+)/(?P<branch_name>[\w\-\.]+)/(?P<filename>.*)$',
view = 'dynamic_po',
name = 'dynamic_po'),
url(
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]