[Checkins] SVN: CMF/trunk/CMFCalendar/ - Forward-port from the 2.0
branch:
Jens Vagelpohl
jens at dataflake.org
Sat Apr 8 07:55:57 EDT 2006
Log message for revision 66664:
- Forward-port from the 2.0 branch:
Log message for revision 66663:
- Continuing work on CMFCalendar Fiveification:
- Change CalendarView class methods and the calendar_day view to
allow replacing python: expressions in the template with simple
path expressions. The desired efficiency of the previous
implementation is retained by relying on the @memoize decorator.
- Fix a flaw in the EventEditView class which might result in
incorrect property values being shown.
- remove Zope 2 interfaces for the Event and CalendarTool classes.
There were none before so they are not needed for BBB purposes.
Changed:
U CMF/trunk/CMFCalendar/CalendarTool.py
U CMF/trunk/CMFCalendar/Event.py
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/interfaces/__init__.py
U CMF/trunk/CMFCalendar/tests/test_Calendar.py
U CMF/trunk/CMFCalendar/tests/test_Event.py
-=-
Modified: CMF/trunk/CMFCalendar/CalendarTool.py
===================================================================
--- CMF/trunk/CMFCalendar/CalendarTool.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/CalendarTool.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -28,7 +28,6 @@
from Products.CMFCore.utils import UniqueObject
from interfaces import ICalendarTool
-from interfaces.portal_calendar import portal_calendar as z2ICalendarTool
from permissions import ManagePortal
class CalendarTool (UniqueObject, SimpleItem):
@@ -38,7 +37,6 @@
security = ClassSecurityInfo()
implements(ICalendarTool)
- __implements__ = (z2ICalendarTool,)
calendar_types = ('Event',)
calendar_states = ('published',)
Modified: CMF/trunk/CMFCalendar/Event.py
===================================================================
--- CMF/trunk/CMFCalendar/Event.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/Event.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -37,8 +37,6 @@
from exceptions import ResourceLockedError
from interfaces import IEvent
from interfaces import IMutableEvent
-from interfaces.Event import IEvent as z2IEvent
-from interfaces.Event import IMutableEvent as z2IMutableEvent
from permissions import ChangeEvents
from permissions import ModifyPortalContent
from permissions import View
@@ -104,9 +102,7 @@
security.declareObjectProtected(View)
implements(IMutableEvent, IEvent, IDAVAware)
- __implements__ = ( z2IMutableEvent
- , z2IEvent
- , PortalContent.__implements__
+ __implements__ = ( PortalContent.__implements__
, DefaultDublinCoreImpl.__implements__
)
Modified: CMF/trunk/CMFCalendar/browser/calendar.py
===================================================================
--- CMF/trunk/CMFCalendar/browser/calendar.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/browser/calendar.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -33,9 +33,10 @@
"""
@decode
- def getStartAsString(self, day, event_brain):
+ def getStartAsString(self, event_brain):
""" Retrieve formatted start string
"""
+ day = self.viewDay()
event_start = event_brain.getObject().start()
first_date = DateTime(day.Date()+" 00:00:00")
@@ -45,9 +46,10 @@
return event_start.TimeMinutes()
@decode
- def getEndAsString(self, day, event_brain):
+ def getEndAsString(self, event_brain):
""" Retrieve formatted end string
"""
+ day = self.viewDay()
event_end = event_brain.getObject().end()
last_date = DateTime(day.Date()+" 23:59:59")
@@ -64,46 +66,50 @@
return DateTime(date)
- def formattedDate(self, day):
+ def formattedDate(self):
""" Return a simple formatted date string
"""
- return day.aCommon()[:12]
+ return self.viewDay().aCommon()[:12]
- def eventsForDay(self, day):
+ def eventsForDay(self):
""" Get all event catalog records for a specific day
"""
caltool = self._getTool('portal_calendar')
- return caltool.getEventsForThisDay(day)
+ return caltool.getEventsForThisDay(self.viewDay())
@memoize
- def previousDayURL(self, day):
+ def previousDayURL(self):
""" URL to the previous day's view
"""
+ day = self.viewDay()
view_url = self._getViewURL()
return '%s?date=%s' % (view_url, (day-1).Date())
@memoize
- def nextDayURL(self, day):
+ def nextDayURL(self):
""" URL to the next day's view
"""
+ day = self.viewDay()
view_url = self._getViewURL()
return '%s?date=%s' % (view_url, (day+1).Date())
@decode
- def getNextDayLink(self, base_url, day):
+ def getNextDayLink(self, base_url):
""" Return URL for the next day link
"""
+ day = self.viewDay()
day += 1
return '%s?date=%s' % (base_url, day.Date())
@decode
- def getPreviousDayLink(self, base_url, day):
+ def getPreviousDayLink(self, base_url):
""" Return URL for the previous day link
"""
+ day = self.viewDay()
day -= 1
return '%s?date=%s' % (base_url, day.Date())
Modified: CMF/trunk/CMFCalendar/browser/event.py
===================================================================
--- CMF/trunk/CMFCalendar/browser/event.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/browser/event.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -103,51 +103,83 @@
@memoize
@decode
def title(self):
- form = self.request.form
- return form.get('title', None) or self.context.Title()
+ title = self.request.form.get('title', None)
+ if title is None:
+ title = self.context.Title()
+
+ return title
+
@memoize
@decode
def description(self):
- form = self.request.form
- return form.get('description', None) or self.context.Description()
+ description = self.request.form.get('description', None)
+ if description is None:
+ description = self.context.Description()
+
+ return description
+
@memoize
@decode
def contact_name(self):
- form = self.request.form
- return form.get('contact_name', None) or self.context.contact_name
+ contact_name = self.request.form.get('contact_name', None)
+ if contact_name is None:
+ contact_name = self.context.contact_name
+
+ return contact_name
+
@memoize
@decode
def location(self):
- form = self.request.form
- return form.get('location', None) or self.context.location
+ location = self.request.form.get('location', None)
+ if location is None:
+ location = self.context.location
+
+ return location
+
@memoize
@decode
def contact_email(self):
- form = self.request.form
- return form.get('contact_email', None) or self.context.contact_email
+ contact_email = self.request.form.get('contact_email', None)
+ if contact_email is None:
+ contact_email = self.context.contact_email
+
+ return contact_email
+
@memoize
@decode
def event_type(self):
- form = self.request.form
- return form.get('event_type', None) or self.context.Subject()
+ event_type = self.request.form.get('event_type', None)
+ if event_type is None:
+ event_type = self.context.Subject()
+
+ return event_type
+
@memoize
@decode
def contact_phone(self):
- form = self.request.form
- return form.get('contact_phone', None) or self.context.contact_phone
+ contact_phone = self.request.form.get('contact_phone', None)
+ if contact_phone is None:
+ contact_phone = self.context.contact_phone
+
+ return contact_phone
+
@memoize
@decode
def event_url(self):
- form = self.request.form
- return form.get('event_url', None) or self.context.event_url
+ event_url = self.request.form.get('event_url', None)
+ if event_url is None:
+ event_url = self.context.event_url
+
+ return event_url
+
@memoize
@decode
def start_time(self):
@@ -193,45 +225,63 @@
@memoize
@decode
def effectiveYear(self):
- eff_year = self.request.form.get('effectiveYear', None)
+ effective_year = self.request.form.get('effectiveYear', None)
- return eff_year or self.context.getStartStrings()['year']
+ if effective_year is None:
+ effective_year = self.context.getStartStrings()['year']
+ return effective_year
+
@memoize
@decode
def effectiveMo(self):
- eff_month = self.request.form.get('effectiveMo', None)
+ effective_month = self.request.form.get('effectiveMo', None)
- return eff_month or self.context.getStartStrings()['month']
+ if effective_month is None:
+ effective_month = self.context.getStartStrings()['month']
+ return effective_month
+
@memoize
@decode
def effectiveDay(self):
- eff_day = self.request.form.get('effectiveDay', None)
+ effective_day = self.request.form.get('effectiveDay', None)
- return eff_day or self.context.getStartStrings()['day']
+ if effective_day is None:
+ effective_day = self.context.getStartStrings()['day']
+ return effective_day
+
@memoize
@decode
def expirationYear(self):
- exp_year = self.request.form.get('expirationYear', None)
+ expiration_year = self.request.form.get('expirationYear', None)
- return exp_year or self.context.getEndStrings()['year']
+ if expiration_year is None:
+ expiration_year = self.context.getEndStrings()['year']
+ return expiration_year
+
@memoize
@decode
def expirationMo(self):
- exp_month = self.request.form.get('expirationMo', None)
+ expiration_month = self.request.form.get('expirationMo', None)
- return exp_month or self.context.getEndStrings()['month']
+ if expiration_month is None:
+ expiration_month = self.context.getEndStrings()['month']
+ return expiration_month
+
@memoize
@decode
def expirationDay(self):
- exp_day = self.request.form.get('expirationDay', None)
+ expiration_day = self.request.form.get('expirationDay', None)
- return exp_day or self.context.getEndStrings()['day']
+ if expiration_day is None:
+ expiration_day = self.context.getEndStrings()['day']
+ return expiration_day
+
# controllers
def edit_control( self
@@ -266,3 +316,4 @@
return True, _(u'Event changed.')
except ResourceLockedError, errmsg:
return False, errmsg
+
Modified: CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt
===================================================================
--- CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/browser/templates/calendar_day.pt 2006-04-08 11:55:57 UTC (rev 66664)
@@ -12,21 +12,20 @@
<div class="dayViewBox" metal:define-macro="dayViewBox">
<table class="dayView" cellpadding="0" cellspacing="0" border="0"
- tal:define="thisDay view/viewDay;
- events python: view.eventsForDay(thisDay)">
+ tal:define="events view/eventsForDay">
<tr>
<th>
<a href="#"
- tal:attributes="href python: view.previousDayURL(thisDay)">«</a>
+ tal:attributes="href view/previousDayURL">«</a>
</th>
<th colspan="3" nowrap="nowrap"
- tal:content="python: view.formattedDate(thisDay)">Date Heading</th>
+ tal:content="view/formattedDate">Date Heading</th>
<th>
<a href="#"
- tal:attributes="href python: view.nextDayURL(thisDay)">»</a>
+ tal:attributes="href view/nextDayURL">»</a>
</th>
</tr>
- <tal:loop tal:repeat="item_info python: view.eventsForDay(thisDay)">
+ <tal:loop tal:repeat="item_info view/eventsForDay">
<tr>
<td class="heading" colspan="5" nowrap="nowrap">
<a href="#" tal:attributes="href item_info/getURL"
@@ -35,11 +34,11 @@
</tr>
<tr>
<td class="startDate" colspan="2" nowrap="nowrap"
- tal:content="python: view.getStartAsString(thisDay, item_info)"
+ tal:content="python: view.getStartAsString(item_info)"
>Event Start</td>
<td nowrap="nowrap"> -- </td>
<td class="endDate" colspan="2" nowrap="nowrap"
- tal:content="python: view.getEndAsString(thisDay, item_info)"
+ tal:content="python: view.getEndAsString(item_info)"
>Event End</td>
</tr>
</tal:loop>
Modified: CMF/trunk/CMFCalendar/interfaces/__init__.py
===================================================================
--- CMF/trunk/CMFCalendar/interfaces/__init__.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/interfaces/__init__.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -17,15 +17,3 @@
from _content import *
from _tools import *
-
-# BBB: will be removed in CMF 2.2
-# create zope2 interfaces
-from Interface.bridge import createZope3Bridge
-import Event
-import portal_calendar
-
-createZope3Bridge(IEvent, Event, 'IEvent')
-createZope3Bridge(IMutableEvent, Event, 'IMutableEvent')
-createZope3Bridge(ICalendarTool, portal_calendar, 'portal_calendar')
-
-del createZope3Bridge
Modified: CMF/trunk/CMFCalendar/tests/test_Calendar.py
===================================================================
--- CMF/trunk/CMFCalendar/tests/test_Calendar.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/tests/test_Calendar.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -40,14 +40,6 @@
return CalendarTool(*args, **kw)
- def test_z2interfaces(self):
- from Interface.Verify import verifyClass
- from Products.CMFCalendar.interfaces.portal_calendar \
- import portal_calendar as ICalendarTool
- from Products.CMFCalendar.CalendarTool import CalendarTool
-
- verifyClass(ICalendarTool, CalendarTool)
-
def test_z3interfaces(self):
from zope.interface.verify import verifyClass
from Products.CMFCalendar.interfaces import ICalendarTool
Modified: CMF/trunk/CMFCalendar/tests/test_Event.py
===================================================================
--- CMF/trunk/CMFCalendar/tests/test_Event.py 2006-04-08 11:45:47 UTC (rev 66663)
+++ CMF/trunk/CMFCalendar/tests/test_Event.py 2006-04-08 11:55:57 UTC (rev 66664)
@@ -43,16 +43,12 @@
from Products.CMFCore.interfaces.Dynamic \
import DynamicType as IDynamicType
from Products.CMFCalendar.Event import Event
- from Products.CMFCalendar.interfaces.Event import IEvent
- from Products.CMFCalendar.interfaces.Event import IMutableEvent
verifyClass(ICatalogableDublinCore, Event)
verifyClass(IContentish, Event)
verifyClass(IDublinCore, Event)
verifyClass(IDynamicType, Event)
verifyClass(IMutableDublinCore, Event)
- verifyClass(IEvent, Event)
- verifyClass(IMutableEvent, Event)
def test_z3interfaces(self):
from zope.interface.verify import verifyClass
More information about the Checkins
mailing list