1.1 --- a/htdocs/styles.css Thu Jan 29 20:34:56 2015 +0100
1.2 +++ b/htdocs/styles.css Thu Jan 29 22:55:29 2015 +0100
1.3 @@ -32,9 +32,17 @@
1.4 border: 2px solid #000;
1.5 }
1.6
1.7 +td.event.continued {
1.8 + border-top: 2px dotted #000;
1.9 +}
1.10 +
1.11 +td.event.continues {
1.12 + border-bottom: 2px dotted #000;
1.13 +}
1.14 +
1.15 td.event:target {
1.16 background-color: #5f4;
1.17 - border: 4px solid #000;
1.18 + border-width: 4px;
1.19 }
1.20
1.21 td.event a {
2.1 --- a/imip_manager.py Thu Jan 29 20:34:56 2015 +0100
2.2 +++ b/imip_manager.py Thu Jan 29 22:55:29 2015 +0100
2.3 @@ -33,7 +33,7 @@
2.4 get_item, get_uri, get_utc_datetime, get_value, \
2.5 get_value_map, get_values, parse_object, to_part
2.6 from imiptools.dates import format_datetime, get_datetime, get_start_of_day, \
2.7 - to_timezone
2.8 + ends_on_same_day, to_timezone
2.9 from imiptools.mail import Messenger
2.10 from imiptools.period import add_day_start_points, add_slots, convert_periods, \
2.11 get_freebusy_details, \
2.12 @@ -772,12 +772,20 @@
2.13
2.14 if point == start or continuation:
2.15
2.16 + has_continued = continuation and point != start
2.17 + will_continue = not ends_on_same_day(point, end)
2.18 + css = " ".join(
2.19 + ["event"] +
2.20 + (has_continued and ["continued"] or []) +
2.21 + (will_continue and ["continues"] or [])
2.22 + )
2.23 +
2.24 # Only anchor the first cell of events.
2.25
2.26 if point == start:
2.27 - page.td(class_="event", rowspan=span, id="%s-%s" % (group_type, uid))
2.28 + page.td(class_=css, rowspan=span, id="%s-%s" % (group_type, uid))
2.29 else:
2.30 - page.td(class_="event", rowspan=span)
2.31 + page.td(class_=css, rowspan=span)
2.32
2.33 obj = self._get_object(uid)
2.34
3.1 --- a/imiptools/dates.py Thu Jan 29 20:34:56 2015 +0100
3.2 +++ b/imiptools/dates.py Thu Jan 29 22:55:29 2015 +0100
3.3 @@ -19,7 +19,7 @@
3.4 this program. If not, see <http://www.gnu.org/licenses/>.
3.5 """
3.6
3.7 -from datetime import date, datetime
3.8 +from datetime import date, datetime, timedelta
3.9 from pytz import timezone, UnknownTimeZoneError
3.10 import re
3.11
3.12 @@ -101,4 +101,13 @@
3.13 def get_start_of_day(dt):
3.14 return datetime(dt.year, dt.month, dt.day, 0, 0, tzinfo=dt.tzinfo)
3.15
3.16 +def get_end_of_day(dt):
3.17 + return get_start_of_day(dt + timedelta(1))
3.18 +
3.19 +def ends_on_same_day(dt, end):
3.20 + return (
3.21 + dt.date() == end.date() or
3.22 + end == get_end_of_day(dt)
3.23 + )
3.24 +
3.25 # vim: tabstop=4 expandtab shiftwidth=4