Merge branch 'master' into bbmaster

This commit is contained in:
Helmut Merz 2012-06-01 08:28:11 +02:00
commit 2ecf05e5e9
7 changed files with 130 additions and 21 deletions

View file

@ -83,7 +83,7 @@ class ObjectForm(NodeView):
def checkPermissions(self):
obj = self.target
if obj is None:
obj = self.context
obj = self.containerext
return canWriteObject(obj)
@Lazy
@ -289,7 +289,9 @@ class CreateObjectForm(ObjectForm):
@Lazy
def title(self):
if self.fixedType:
return _(u'Create %s') % self.typeConcept.title
#return _(u'Create %s') % self.typeConcept.title
return _(u'Create $type',
mapping=dict(type=self.typeConcept.title))
else:
return _(self.defaultTitle)

View file

@ -400,7 +400,7 @@ class ChildRelationSet(RelationSet):
self.context.assignChild(related, self.predicate, order, relevance)
def remove(self, related):
related = baseObject(related.context)
related = baseObject(related)
self.context.deassignChild(related, [self.predicate])
def __iter__(self):

View file

@ -115,6 +115,7 @@ class ResultsConceptView(ConceptView):
"""
reportName = None # define in subclass if applicable
reportType = None # set for using special report instance adapter
@Lazy
def result_macros(self):
@ -143,8 +144,9 @@ class ResultsConceptView(ConceptView):
@Lazy
def reportInstance(self):
reportType = self.reportType or self.report.reportType
ri = component.getAdapter(self.report, IReportInstance,
name=self.report.reportType)
name=reportType)
ri.view = self.nodeView
return ri

Binary file not shown.

View file

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: $Id$\n"
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
"PO-Revision-Date: 2012-05-09 12:00 CET\n"
"PO-Revision-Date: 2012-05-30 12:00 CET\n"
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
"Language-Team: loops developers <helmutm@cy55.de>\n"
"MIME-Version: 1.0\n"
@ -47,6 +47,9 @@ msgstr "Ressource anlegen..."
msgid "Create %s"
msgstr "%s anlegen"
msgid "Create $type"
msgstr "$type anlegen"
msgid "Create a new resource object."
msgstr "Eine neue Ressource erzeugen"
@ -230,19 +233,34 @@ msgstr "Begriff bearbeiten"
msgid "Create Event..."
msgstr "Termin anlegen..."
msgid "Create a new event"
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

@ -27,9 +27,12 @@ from zope import interface, component
from zope.app.pagetemplate import ViewPageTemplateFile
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 _
@ -38,6 +41,39 @@ from loops.util import _
organize_macros = ViewPageTemplateFile('view_macros.pt')
actions.register('createEvent', 'portlet', DialogAction,
title=_(u'Create Event...'),
description=_(u'Create a new event.'),
viewName='create_concept.html',
dialogName='createEvent',
typeToken='.loops/concepts/event',
fixedType=True,
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):
@Lazy
@ -45,19 +81,11 @@ class Events(ConceptView):
return organize_macros.macros['events']
def getActions(self, category='object', page=None, target=None):
actions = []
acts = super(Events, self).getActions(category, page, target)
if category == 'portlet':
actions.append(DialogAction(self, title=_(u'Create Event...'),
description=_(u'Create a new event.'),
viewName='create_concept.html',
dialogName='createEvent',
typeToken='.loops/concepts/event',
fixedType=True,
innerForm='inner_concept_form.html',
page=page,
target=target))
self.registerDojoDateWidget()
return actions
acts.extend(actions.get(category, ['createEvent'],
view=self, page=page, target=target))
return acts
@Lazy
def selectedDate(self):
@ -215,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