[damned-lies] Better domain selection in vertimus view



commit 133720f5e73e6c799928e5410a6664760451f1f4
Author: Claude Paroz <claude 2xlibre net>
Date:   Thu Oct 1 21:48:31 2015 +0200

    Better domain selection in vertimus view

 stats/models.py      |    8 ++++----
 stats/tests/tests.py |   10 +++++-----
 vertimus/views.py    |    5 ++++-
 3 files changed, 13 insertions(+), 10 deletions(-)
---
diff --git a/stats/models.py b/stats/models.py
index 21fa040..46037f6 100644
--- a/stats/models.py
+++ b/stats/models.py
@@ -348,11 +348,11 @@ class Branch(models.Model):
         """
         Return all domains that this branch applies to.
         """
-        domains = []
+        domains = OrderedDict()
         for dom in Domain.objects.filter(module=self.module).select_related('branch_from', 
'branch_to').all():
             if (dom.branch_from and self > dom.branch_from) or (dom.branch_to and self < dom.branch_to):
                 continue
-            domains.append(dom)
+            domains[dom.name] = dom
         return domains
 
     def domain_path(self, domain):
@@ -421,7 +421,7 @@ class Branch(models.Model):
         with ModuleLock(self.module):
             if checkout:
                 self.checkout()
-            domains = [domain] if domain is not None else self.get_domains()
+            domains = [domain] if domain is not None else self.get_domains().values()
             string_frozen = self.has_string_frozen()
             for dom in domains:
                 # 1. Initial settings
@@ -710,7 +710,7 @@ class Domain(models.Model):
     # the domain, named <potbase()>.pot (e.g. /po/gnucash.pot).
     pot_method = models.CharField(max_length=100, null=True, blank=True,
         help_text="Leave blank for standard method (intltool for UI and gnome-doc-utils for DOC), "
-                  "or '<gettext>' for the pure xgettext-based extraction")
+                  "or '&lt;gettext&gt;' for the pure xgettext-based extraction")
     linguas_location = models.CharField(max_length=50, null=True, blank=True,
         help_text="""Use 'no' for no LINGUAS check, or path/to/file#variable for a non-standard location.
             Leave blank for standard location (ALL_LINGUAS in LINGUAS/configure.ac/.in for UI and 
DOC_LINGUAS in Makefile.am for DOC)""")
diff --git a/stats/tests/tests.py b/stats/tests/tests.py
index dac3e38..755805c 100644
--- a/stats/tests/tests.py
+++ b/stats/tests/tests.py
@@ -123,7 +123,7 @@ class ModuleTestCase(TestCase):
         based on the domain branch_form/branch_to fields.
         """
         domains = self.branch.get_domains()
-        self.assertEqual(set([d.name for d in domains]), {'po', 'help'})
+        self.assertEqual(list(domains.keys()), ['po', 'help'])
 
         b3 = Branch(name='gnome-3-3', module=self.mod)
         b3.save(update_statistics=False)
@@ -131,14 +131,14 @@ class ModuleTestCase(TestCase):
         b5.save(update_statistics=False)
         b7 = Branch(name='gnome-3-7', module=self.mod)
         b7.save(update_statistics=False)
-        help_domain = domains[0] if domains[0].name == 'help' else domains[1]
+        help_domain = domains['help']
         help_domain.branch_from = b5
         help_domain.save()
-        self.assertEqual(set([d.name for d in b3.get_domains()]), {'po'})
-        self.assertEqual(set([d.name for d in b5.get_domains()]), {'po', 'help'})
+        self.assertEqual(list(b3.get_domains().keys()), ['po'])
+        self.assertEqual(list(b5.get_domains().keys()), ['po', 'help'])
         help_domain.branch_to = b7
         help_domain.save()
-        self.assertEqual(set([d.name for d in self.branch.get_domains()]), {'po'})
+        self.assertEqual(list(self.branch.get_domains().keys()), ['po'])
 
     @test_scratchdir
     def test_branch_stats(self):
diff --git a/vertimus/views.py b/vertimus/views.py
index a2c309c..dfb2463 100644
--- a/vertimus/views.py
+++ b/vertimus/views.py
@@ -55,7 +55,10 @@ def vertimus_by_names(request, module_name, branch_name,
     branch = get_object_or_404(
         Branch.objects.select_related('module'), name=branch_name, module__id=module.id
     )
-    domain = get_object_or_404(Domain, name=domain_name, module__id=module.id)
+    try:
+        domain = branch.get_domains()[domain_name]
+    except KeyError:
+        raise Http404
     language = get_object_or_404(Language, locale=locale_name)
     return vertimus(request, branch, domain, language, level=level)
 


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