damned-lies r1321 - in trunk: . stats templates/vertimus



Author: claudep
Date: Thu Jan  8 09:55:05 2009
New Revision: 1321
URL: http://svn.gnome.org/viewvc/damned-lies?rev=1321&view=rev

Log:
2009-01-08  Claude Paroz  <claude 2xlibre net>

	* stats/models.py: Use utils.url_join to create URLs. Make bugs_component
	optional.
	Fixes bugs #566960, #566961.
	* stats/utils.py: Add new url_join utility function.
	* templates/vertimus/vertimus_detail.html: Show doc images icon next to
	the string stats.

Modified:
   trunk/ChangeLog
   trunk/stats/models.py
   trunk/stats/utils.py
   trunk/templates/vertimus/vertimus_detail.html

Modified: trunk/stats/models.py
==============================================================================
--- trunk/stats/models.py	(original)
+++ trunk/stats/models.py	Thu Jan  8 09:55:05 2009
@@ -53,7 +53,7 @@
     comment = models.TextField(null=True, blank=True)
     bugs_base = models.CharField(max_length=50)
     bugs_product = models.CharField(max_length=50)
-    bugs_component = models.CharField(max_length=50)
+    bugs_component = models.CharField(max_length=50, null=True, blank=True)
     vcs_type = models.CharField(max_length=5, choices=VCS_TYPE_CHOICES)
     vcs_root = models.URLField(verify_exists=False)
     vcs_web = models.URLField()
@@ -84,13 +84,17 @@
     
     def get_bugs_i18n_url(self):
         if self.bugs_base.find("bugzilla") != -1 or self.bugs_base.find("freedesktop") != -1:
-            return "%sbuglist.cgi?product=%s&component=%s&keywords_type=anywords&keywords=I18N+L10N&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO" % (self.bugs_base, self.bugs_product, self.bugs_component)
+            return utils.url_join(self.bugs_base,
+                                    "buglist.cgi?product=%s&keywords_type=anywords&keywords=I18N+L10N&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO" % (self.bugs_product,))
         else:
             return None
 
     def get_bugs_enter_url(self):
         if self.bugs_base.find("bugzilla") != -1 or self.bugs_base.find("freedesktop") != -1:
-            return "%senter_bug.cgi?product=%s&component=%s" % (self.bugs_base, self.bugs_product, self.bugs_component)
+            if self.bugs_component:
+                return utils.url_join(self.bugs_base, "enter_bug.cgi?product=%s&component=%s" % (self.bugs_product, self.bugs_component))
+            else:
+                return utils.url_join(self.bugs_base, "enter_bug.cgi?product=%s" % (self.bugs_product,))
         else:
             return self.bugs_base 
     
@@ -182,19 +186,19 @@
            
     def get_vcs_url(self):
         if self.module.vcs_type in ('hg', 'git'):
-            return "%s/%s" % (self.module.vcs_root, self.module_name)
+            return utils.url_join(self.module.vcs_root, self.module_name)
         elif self.vcs_subpath:
-            return "%s/%s/%s" % (self.module.vcs_root, self.module.name, self.vcs_subpath)
+            return utils.url_join(self.module.vcs_root, self.module.name, self.vcs_subpath)
         elif self.is_head():
-            return "%s/%s/trunk" % (self.module.vcs_root, self.module.name)
+            return utils.url_join(self.module.vcs_root, self.module.name, "trunk")
         else:
-            return "%s/%s/branches/%s" % (self.module.vcs_root, self.module.name, self.name)
+            return utils.url_join(self.module.vcs_root, self.module.name, "branches", self.name)
 
     def get_vcs_web_url(self):
         if self.is_head():
-            return "%s/trunk" % (self.module.vcs_web)
+            return utils.url_join(self.module.vcs_web, "trunk")
         else:
-            return "%s/branches/%s" % (self.module.vcs_web, self.name)
+            return utils.url_join(self.module.vcs_web, "branches", self.name)
 
     def co_path(self):
         """ Returns the path of the local checkout for the branch """
@@ -968,11 +972,11 @@
             
     def vcs_path(self):
         """ Return the VCS path of file on remote vcs """
-        return os.path.join(self.branch.get_vcs_url(), self.domain.directory)
+        return utils.url_join(self.branch.get_vcs_url(), self.domain.directory)
         
     def vcs_web_path(self):
         """ Return the Web interface path of file on remote vcs """
-        return os.path.join(self.branch.get_vcs_web_url(), self.domain.directory)
+        return utils.url_join(self.branch.get_vcs_web_url(), self.domain.directory)
         
     def po_path(self):
         """ Return path of po file on local filesystem """
@@ -987,7 +991,7 @@
             subdir = "docs/"
         else:
             subdir = ""
-        return "/POT/%s.%s/%s%s" % (self.module_name(), self.branch.name, subdir, self.filename())
+        return utils.url_join("/POT/", self.module_name(), self.branch.name, subdir, self.filename())
         
     def most_important_message(self):
         """ Return a message of type 1.'error', or 2.'warn, or 3.'warn """

Modified: trunk/stats/utils.py
==============================================================================
--- trunk/stats/utils.py	(original)
+++ trunk/stats/utils.py	Thu Jan  8 09:55:05 2009
@@ -358,6 +358,15 @@
               from_email="GNOME Status Pages <%s>" % (settings.WHOAREWE),
               recipient_list=settings.NOTIFICATIONS_TO)
 
+def url_join(base, *args):
+    """ Create an url in joining base with arguments. A lot nicer than urlparse.urljoin! """
+    url = base
+    for arg in args:
+        if url[-1] != "/":
+            url += "/"
+        url += arg
+    return url
+
 class Profiler(object):
     def __init__(self):
         self.start = time.clock()

Modified: trunk/templates/vertimus/vertimus_detail.html
==============================================================================
--- trunk/templates/vertimus/vertimus_detail.html	(original)
+++ trunk/templates/vertimus/vertimus_detail.html	Thu Jan  8 09:55:05 2009
@@ -46,6 +46,12 @@
         <div class="untranslated" style="{{ LANGUAGE_BIDI|yesno:"right,left" }}:{{ stats.tr_percentage|add:stats.fu_percentage }}px; width: {{ stats.un_percentage }}px;"></div>
       </div>
     </td>
+    <td>
+    {% if stats.fig_count and stats.language %}
+    <a href="{% url stats.views.docimages module_name=module.name,potbase=stats.domain.name,branch_name=branch.name,langcode=stats.language.locale %}">
+        <img src="{{ MEDIA_URL }}img/figure.png" alt="{% trans "Display document figures" %}"></a>
+    {% endif %}
+    </td>
   </tr>
 </table>
 
@@ -61,12 +67,6 @@
 </table>
 {% endif %}
 
-{% if stats.fig_count and stats.language %}
-<p><a href="{% url stats.views.docimages module_name=module.name,potbase=stats.domain.name,branch_name=branch.name,langcode=stats.language.locale %}">
-    <img src="{{ MEDIA_URL }}img/figure.png" alt="{% trans "Display document figures" %}"></a>
-</p>
-{% endif %}
-
 {% if action_history %}
 <h2>{% trans "Action History" %}</h2>
 <div>



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