work in progress: follow-up events, i.e. events that are connected to a previous event

This commit is contained in:
Helmut Merz 2012-05-31 09:02:36 +02:00
parent 009d91ffee
commit 3aa6649f11
4 changed files with 101 additions and 3 deletions

Binary file not shown.

View file

@ -236,16 +236,31 @@ msgstr "Termin anlegen..."
msgid "Create a new event."
msgstr "Einen neuen Termin anlegen."
msgid "Create Follow-up Event..."
msgstr "Folgetermin anlegen..."
msgid "Create an event that is linked to this one."
msgstr "Einen neuen Termin anlegen, der mit diesem verknüpft ist."
msgid "Edit Event..."
msgstr "Termin bearbeiten..."
msgid "Modify event."
msgstr "Termin bearbeiten"
msgid "Modify follow-up event."
msgstr "Folgetermin bearbeiten"
msgid "Create Task..."
msgstr "Aufgabe anlegen..."
msgid "Create a new task"
msgid "Create a new task."
msgstr "Eine neue Aufgabe anlegen."
msgid "Edit Task..."
msgstr "Aufgabe bearbeiten..."
msgid "Modify task"
msgid "Modify task."
msgstr "Aufgabe bearbeiten"
msgid "Create Project..."

View file

@ -83,6 +83,32 @@
class="loops.organize.browser.party.EditPersonForm"
permission="zope.View" />
<browser:page
name="create_followup_event.html"
for="loops.interfaces.INode"
class="loops.organize.browser.event.CreateFollowUpEventForm"
permission="zope.View" />
<zope:adapter
name="create_followup_event"
for="loops.browser.node.NodeView
zope.publisher.interfaces.browser.IBrowserRequest"
factory="loops.organize.browser.event.CreateFollowUpEvent"
permission="zope.View" />
<browser:page
name="edit_followup_event.html"
for="loops.interfaces.INode"
class="loops.organize.browser.event.EditFollowUpEventForm"
permission="zope.View" />
<zope:adapter
name="edit_followup_event"
for="loops.browser.node.NodeView
zope.publisher.interfaces.browser.IBrowserRequest"
factory="loops.organize.browser.event.EditFollowUpEvent"
permission="zope.View" />
<!-- authentication -->
<browser:addform

View file

@ -29,8 +29,10 @@ from zope.cachedescriptors.property import Lazy
from cybertools.browser.action import actions
from cybertools.meta.interfaces import IOptions
from loops.browser.action import DialogAction
from loops.browser.action import DialogAction, TargetAction
from loops.browser.concept import ConceptView
from loops.browser.form import CreateConceptPage, CreateConcept
from loops.browser.form import EditConceptPage, EditConcept
from loops.browser.node import NodeView
from loops.common import adapted
from loops.util import _
@ -49,6 +51,28 @@ actions.register('createEvent', 'portlet', DialogAction,
prerequisites=['registerDojoDateWidget'],
)
actions.register('editEvent', 'portlet', DialogAction,
title=_(u'Edit Event...'),
description=_(u'Modify event.'),
viewName='edit_concept.html',
dialogName='editEvent',
prerequisites=['registerDojoDateWidget'],
)
actions.register('createFollowUpEvent', 'portlet', TargetAction,
title=_(u'Create Follow-up Event...'),
description=_(u'Create an event that is linked to this one.'),
viewName='create_followup_event.html',
prerequisites=['registerDojoDateWidget'],
)
actions.register('editFollowUpEvent', 'portlet', TargetAction,
title=_(u'Edit Event...'),
description=_(u'Modify follow-up event.'),
viewName='edit_followup_event.html',
prerequisites=['registerDojoDateWidget'],
)
class Events(ConceptView):
@ -219,3 +243,36 @@ class CalendarInfo(NodeView):
def getEventTitles(self, day):
events = self.events[day-1]
return '; '.join(ev.title for ev in events)
# special forms
class CreateFollowUpEventForm(CreateConceptPage):
fixedType = True
typeToken = '.loops/concepts/event'
form_action = 'create_followup_event'
showAssignments = True
class EditFollowUpEventForm(EditConceptPage, CreateFollowUpEventForm):
pass
# form controllers
class BaseFollowUpController(object):
pass
class CreateFollowUpEvent(CreateConcept, BaseFollowUpController):
defaultTypeToken = '.loops/concepts/event'
class EditFollowUpEvent(EditConcept, BaseFollowUpController):
pass