diff roundup/cgi/templating.py @ 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 11b6601629d7
children 57a64e591a00
line wrap: on
line diff
--- 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/