[Checkins] SVN: CMF/trunk/CMFCalendar/browser/ - forward-port from
the 2.0 branch:
Jens Vagelpohl
jens at dataflake.org
Tue Apr 4 17:30:06 EDT 2006
Log message for revision 66452:
- forward-port from the 2.0 branch:
Log message for revision 66451:
- cleanups and improvements to the CMFCalendar views following suggestions
from Yvo Schubbe
Changed:
U CMF/trunk/CMFCalendar/browser/TODO.txt
U CMF/trunk/CMFCalendar/browser/calendar.py
U CMF/trunk/CMFCalendar/browser/event.py
U CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt
U CMF/trunk/CMFCalendar/browser/templates/event_edit.pt
-=-
Modified: CMF/trunk/CMFCalendar/browser/TODO.txt
===================================================================
--- CMF/trunk/CMFCalendar/browser/TODO.txt 2006-04-04 21:19:31 UTC (rev 66451)
+++ CMF/trunk/CMFCalendar/browser/TODO.txt 2006-04-04 21:30:05 UTC (rev 66452)
@@ -2,7 +2,11 @@
[x] @@calendar_day.html:
- [x] calendar_day_view.py -> CalendarView.dayInfo
+ [x] calendar_day_view.py -> CalendarView.viewDay
+ CalendarView.formattedDate
+ CalendarView.eventsForDay
+ CalendarView.previousDayURL
+ CalendarView.nextDayURL
[x] calendar_day_view_template.pt -> templates/calendar_day.pt
[x] getEndAsString.py -> CalendarView.getEndAsString
[x] getStartAsString.py -> CalendarView.getStartAsString
Modified: CMF/trunk/CMFCalendar/browser/calendar.py
===================================================================
--- CMF/trunk/CMFCalendar/browser/calendar.py 2006-04-04 21:19:31 UTC (rev 66451)
+++ CMF/trunk/CMFCalendar/browser/calendar.py 2006-04-04 21:30:05 UTC (rev 66452)
@@ -32,56 +32,66 @@
""" Helper class for calendar-related templates
"""
- @memoize
@decode
- def dayInfo(self):
- """ Event info for a specific day
- """
- info = {}
- caltool = self._getTool('portal_calendar')
- view_url = self._getViewURL()
- date_string = self.request.get('date',DateTime().aCommon()[:12])
- thisDay = DateTime(date_string)
-
- info['previous_url'] = '%s?date=%s' % (view_url, (thisDay-1).Date())
- info['date'] = thisDay.aCommon()[:12]
- info['next_url'] = '%s?date=%s' % (view_url, (thisDay+1).Date())
-
- items = [ {'title': item.Title,
- 'url': item.getURL(),
- 'start': self.getStartAsString(thisDay, item),
- 'stop': self.getEndAsString(thisDay, item)}
- for item in caltool.getEventsForThisDay(thisDay) ]
-
- info['listItemInfos'] = tuple(items)
-
- return info
-
- @memoize
- @decode
- def getStartAsString(self, day, event):
+ def getStartAsString(self, day, event_brain):
""" Retrieve formatted start string
"""
+ event_start = event_brain.getObject().start()
first_date = DateTime(day.Date()+" 00:00:00")
- if event.start < first_date:
- return event.start.aCommon()[:12]
+ if event_start < first_date:
+ return event_start.aCommon()[:12]
else:
- return event.start.TimeMinutes()
+ return event_start.TimeMinutes()
- @memoize
@decode
- def getEndAsString(self, day, event):
+ def getEndAsString(self, day, event_brain):
""" Retrieve formatted end string
"""
+ event_end = event_brain.getObject().end()
last_date = DateTime(day.Date()+" 23:59:59")
- if event.end > last_date:
- return event.end.aCommon()[:12]
+ if event_end > last_date:
+ return event_end.aCommon()[:12]
else:
- return event.end.TimeMinutes()
+ return event_end.TimeMinutes()
@memoize
+ def viewDay(self):
+ """ Return a DateTime for a passed-in date or today
+ """
+ date = self.request.get('date', None) or DateTime().aCommon()[:12]
+
+ return DateTime(date)
+
+ def formattedDate(self, day):
+ """ Return a simple formatted date string
+ """
+ return day.aCommon()[:12]
+
+ def eventsForDay(self, day):
+ """ Get all event catalog records for a specific day
+ """
+ caltool = self._getTool('portal_calendar')
+
+ return caltool.getEventsForThisDay(day)
+
+ @memoize
+ def previousDayURL(self, day):
+ """ URL to the previous day's view
+ """
+ view_url = self._getViewURL()
+
+ return '%s?date=%s' % (view_url, (day-1).Date())
+
+ @memoize
+ def nextDayURL(self, day):
+ """ URL to the next day's view
+ """
+ view_url = self._getViewURL()
+
+ return '%s?date=%s' % (view_url, (day+1).Date())
+
@decode
def getNextDayLink(self, base_url, day):
""" Return URL for the next day link
@@ -90,7 +100,6 @@
return '%s?date=%s' % (base_url, day.Date())
- @memoize
@decode
def getPreviousDayLink(self, base_url, day):
""" Return URL for the previous day link
Modified: CMF/trunk/CMFCalendar/browser/event.py
===================================================================
--- CMF/trunk/CMFCalendar/browser/event.py 2006-04-04 21:19:31 UTC (rev 66451)
+++ CMF/trunk/CMFCalendar/browser/event.py 2006-04-04 21:30:05 UTC (rev 66452)
@@ -18,7 +18,7 @@
from DateTime.DateTime import DateTime
from Products.CMFDefault.exceptions import ResourceLockedError
-from Products.CMFDefault.utils import Message as _
+from Products.CMFCalendar.utils import Message as _
from Products.CMFDefault.browser.utils import decode
from Products.CMFDefault.browser.utils import FormViewBase
@@ -103,109 +103,135 @@
@memoize
@decode
def title(self):
- return self.request.form.get('title', self.context.Title())
+ form = self.request.form
+ return form.get('title', None) or self.context.Title()
@memoize
@decode
def description(self):
- return self.request.form.get('description', self.context.Description())
+ form = self.request.form
+ return form.get('description', None) or self.context.Description()
@memoize
@decode
def contact_name(self):
- return self.request.form.get('contact_name', self.context.contact_name)
+ form = self.request.form
+ return form.get('contact_name', None) or self.context.contact_name
@memoize
@decode
def location(self):
- return self.request.form.get('location', self.context.location)
+ form = self.request.form
+ return form.get('location', None) or self.context.location
@memoize
@decode
def contact_email(self):
- return self.request.form.get( 'contact_email'
- , self.context.contact_email
- )
+ form = self.request.form
+ return form.get('contact_email', None) or self.context.contact_email
@memoize
@decode
def event_type(self):
- return self.request.form.get('event_type', self.context.Subject())
+ form = self.request.form
+ return form.get('event_type', None) or self.context.Subject()
@memoize
@decode
def contact_phone(self):
- return self.request.form.get( 'contact_phone'
- , self.context.contact_phone
- )
+ form = self.request.form
+ return form.get('contact_phone', None) or self.context.contact_phone
@memoize
@decode
def event_url(self):
- return self.request.form.get('event_url', self.context.event_url)
+ form = self.request.form
+ return form.get('event_url', None) or self.context.event_url
@memoize
@decode
def start_time(self):
- time_strings = self.context.getStartTimeString().split()
- return self.request.form.get('start_time', time_strings[0])
+ start_string = self.request.form.get('start_time', None)
+ if start_string is None:
+ start_string = self.context.getStartTimeString().split()[0]
+
+ return start_string
+
@memoize
@decode
def startAMPM(self):
- time_strings = self.context.getStartTimeString().split()
- AMPM = (len(time_strings) == 2 and time_strings[1] or 'pm')
- return self.request.form.get('startAMPM', AMPM)
+ start_ampm = self.request.form.get('startAMPM', None)
+ if start_ampm is None:
+ time_strings = self.context.getStartTimeString().split()
+ start_ampm = (len(time_strings) == 2 and time_strings[1] or 'pm')
+
+ return start_ampm
+
@memoize
@decode
def stop_time(self):
- time_strings = self.context.getStopTimeString().split()
- return self.request.form.get('stop_time', time_strings[0])
+ stop_string = self.request.form.get('stop_time', None)
+ if stop_string is None:
+ stop_string = self.context.getStopTimeString().split()[0]
+
+ return stop_string
+
@memoize
@decode
def stopAMPM(self):
- time_strings = self.context.getStopTimeString().split()
- AMPM = (len(time_strings) == 2 and time_strings[1] or 'pm')
- return self.request.form.get('stopAMPM', AMPM)
+ stop_ampm = self.request.form.get('stopAMPM', None)
+ if stop_ampm is None:
+ time_strings = self.context.getStopTimeString().split()
+ stop_ampm = (len(time_strings) == 2 and time_strings[1] or 'pm')
+
+ return stop_ampm
+
@memoize
@decode
def effectiveYear(self):
- date_strings = self.context.getStartStrings()
- return self.request.form.get('effectiveYear', date_strings['year'])
+ eff_year = self.request.form.get('effectiveYear', None)
+ return eff_year or self.context.getStartStrings()['year']
+
@memoize
@decode
def effectiveMo(self):
- date_strings = self.context.getStartStrings()
- return self.request.form.get('effectiveMo', date_strings['month'])
+ eff_month = self.request.form.get('effectiveMo', None)
+ return eff_month or self.context.getStartStrings()['month']
+
@memoize
@decode
def effectiveDay(self):
- date_strings = self.context.getStartStrings()
- return self.request.form.get('effectiveDay', date_strings['day'])
+ eff_day = self.request.form.get('effectiveDay', None)
+ return eff_day or self.context.getStartStrings()['day']
+
@memoize
@decode
def expirationYear(self):
- date_strings = self.context.getEndStrings()
- return self.request.form.get('expirationYear', date_strings['year'])
+ exp_year = self.request.form.get('expirationYear', None)
+ return exp_year or self.context.getEndStrings()['year']
+
@memoize
@decode
def expirationMo(self):
- date_strings = self.context.getEndStrings()
- return self.request.form.get('expirationMo', date_strings['month'])
+ exp_month = self.request.form.get('expirationMo', None)
+ return exp_month or self.context.getEndStrings()['month']
+
@memoize
@decode
def expirationDay(self):
- date_strings = self.context.getEndStrings()
- return self.request.form.get('expirationDay', date_strings['day'])
+ exp_day = self.request.form.get('expirationDay', None)
+ return exp_day or self.context.getEndStrings()['day']
+
# controllers
def edit_control( self
Modified: CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt
===================================================================
--- CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt 2006-04-04 21:19:31 UTC (rev 66451)
+++ CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt 2006-04-04 21:30:05 UTC (rev 66452)
@@ -12,29 +12,35 @@
<div class="dayViewBox" metal:define-macro="dayViewBox">
<table class="dayView" cellpadding="0" cellspacing="0" border="0"
- tal:define="day_info view/dayInfo">
+ tal:define="thisDay view/viewDay;
+ events python: view.eventsForDay(thisDay)">
<tr>
<th>
- <a href="#" tal:attributes="href day_info/previous_url">«</a>
+ <a href="#"
+ tal:attributes="href python: view.previousDayURL(thisDay)">«</a>
</th>
- <th colspan="3" nowrap="nowrap" tal:content="day_info/date">Date Heading</th>
+ <th colspan="3" nowrap="nowrap"
+ tal:content="python: view.formattedDate(thisDay)">Date Heading</th>
<th>
- <a href="#" tal:attributes="href day_info/next_url">»</a>
+ <a href="#"
+ tal:attributes="href python: view.nextDayURL(thisDay)">»</a>
</th>
</tr>
- <tal:loop tal:repeat="item_info day_info/listItemInfos">
+ <tal:loop tal:repeat="item_info python: view.eventsForDay(thisDay)">
<tr>
<td class="heading" colspan="5" nowrap="nowrap">
- <a href="#" tal:attributes="href item_info/url"
- tal:content="item_info/title">event title</a>
+ <a href="#" tal:attributes="href item_info/getURL"
+ tal:content="item_info/Title">event title</a>
</td>
</tr>
<tr>
<td class="startDate" colspan="2" nowrap="nowrap"
- tal:content="item_info/start">Event Start</td>
+ tal:content="python: view.getStartAsString(thisDay, item_info)"
+ >Event Start</td>
<td nowrap="nowrap"> -- </td>
<td class="endDate" colspan="2" nowrap="nowrap"
- tal:content="item_info/stop">Event End</td>
+ tal:content="python: view.getEndAsString(thisDay, item_info)"
+ >Event End</td>
</tr>
</tal:loop>
</table>
Modified: CMF/trunk/CMFCalendar/browser/templates/event_edit.pt
===================================================================
--- CMF/trunk/CMFCalendar/browser/templates/event_edit.pt 2006-04-04 21:19:31 UTC (rev 66451)
+++ CMF/trunk/CMFCalendar/browser/templates/event_edit.pt 2006-04-04 21:30:05 UTC (rev 66452)
@@ -5,8 +5,6 @@
<h1 i18n:translate="">Edit: <tal:span
tal:content="view/title" i18n:name="obj_title">Title</tal:span></h1>
-<div class="Desktop">
-
<form action="event_edit_form" method="post"
tal:attributes="action view/form_action">
<table class="FormLayout">
@@ -171,7 +169,6 @@
</table>
</form>
-</div>
</metal:slot>
</body>
More information about the Checkins
mailing list