changeset 4651:beb8d43f4d9d

issue2550765: Don't show links in calendar that will fail. Found and fixed by Cédric Krier.
author Bernhard Reiter <bernhard@intevation.de>
date Wed, 01 Aug 2012 08:49:41 +0200
parents 0485b47a39a8
children f0ef4f436542
files CHANGES.txt roundup/cgi/templating.py
diffstat 2 files changed, 38 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.txt	Sun Jul 29 21:16:12 2012 +0200
+++ b/CHANGES.txt	Wed Aug 01 08:49:41 2012 +0200
@@ -11,6 +11,8 @@
 
 Fixed:
 
+- issue2550765: Don't show links in calendar that will fail.
+  Found and fixed by Cédric Krier. (Bernhard)
 - "BaseException.with_traceback" is not available on Python 2, so use
   "raise E, V, T" instead of "raise E(V).with_traceback(T)".  This change was
   originally introduced in 74476eaac38a. (Ezio Melotti)
--- a/roundup/cgi/templating.py	Sun Jul 29 21:16:12 2012 +0200
+++ b/roundup/cgi/templating.py	Wed Aug 01 08:49:41 2012 +0200
@@ -2811,10 +2811,22 @@
         day       = display.day
 
         # for navigation
-        date_prev_month = display + date.Interval("-1m")
-        date_next_month = display + date.Interval("+1m")
-        date_prev_year  = display + date.Interval("-1y")
-        date_next_year  = display + date.Interval("+1y")
+        try:
+            date_prev_month = display + date.Interval("-1m")
+        except ValueError:
+            date_prev_month = None
+        try:
+            date_next_month = display + date.Interval("+1m")
+        except ValueError:
+            date_next_month = None
+        try:
+            date_prev_year = display + date.Interval("-1y")
+        except ValueError:
+            date_prev_year = None
+        try:
+            date_next_year = display + date.Interval("+1y")
+        except ValueError:
+            date_next_year = None
 
         res = []
 
@@ -2826,19 +2838,31 @@
         res.append('<table class="calendar"><tr><td>')
         res.append(' <table width="100%" class="calendar_nav"><tr>')
         link = "&display=%s"%date_prev_month
-        res.append('  <td><a href="%s&display=%s">&lt;</a></td>'%(base_link,
-            date_prev_month))
+        if date_prev_month:
+            res.append('  <td><a href="%s&display=%s">&lt;</a></td>'
+                    % (base_link, date_prev_month))
+        else:
+            res.append('  <td></td>')
         res.append('  <td>%s</td>'%calendar.month_name[display.month])
-        res.append('  <td><a href="%s&display=%s">&gt;</a></td>'%(base_link,
-            date_next_month))
+        if date_next_month:
+            res.append('  <td><a href="%s&display=%s">&gt;</a></td>'
+                    % (base_link, date_next_month))
+        else:
+            res.append('  <td></td>')
         # spacer
         res.append('  <td width="100%"></td>')
         # year
-        res.append('  <td><a href="%s&display=%s">&lt;</a></td>'%(base_link,
-            date_prev_year))
+        if date_prev_year:
+            res.append('  <td><a href="%s&display=%s">&lt;</a></td>'
+                    % (base_link, date_prev_year))
+        else:
+            res.append('  <td></td>')
         res.append('  <td>%s</td>'%display.year)
-        res.append('  <td><a href="%s&display=%s">&gt;</a></td>'%(base_link,
-            date_next_year))
+        if date_next_year:
+            res.append('  <td><a href="%s&display=%s">&gt;</a></td>'
+                    % (base_link, date_next_year))
+        else:
+            res.append('  <td></td>')
         res.append(' </tr></table>')
         res.append(' </td></tr>')
 

Roundup Issue Tracker: http://roundup-tracker.org/