Merge branch 'master' into bbmaster
This commit is contained in:
commit
2ecf05e5e9
7 changed files with 130 additions and 21 deletions
|
@ -83,7 +83,7 @@ class ObjectForm(NodeView):
|
||||||
def checkPermissions(self):
|
def checkPermissions(self):
|
||||||
obj = self.target
|
obj = self.target
|
||||||
if obj is None:
|
if obj is None:
|
||||||
obj = self.context
|
obj = self.containerext
|
||||||
return canWriteObject(obj)
|
return canWriteObject(obj)
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
@ -289,7 +289,9 @@ class CreateObjectForm(ObjectForm):
|
||||||
@Lazy
|
@Lazy
|
||||||
def title(self):
|
def title(self):
|
||||||
if self.fixedType:
|
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:
|
else:
|
||||||
return _(self.defaultTitle)
|
return _(self.defaultTitle)
|
||||||
|
|
||||||
|
|
|
@ -400,7 +400,7 @@ class ChildRelationSet(RelationSet):
|
||||||
self.context.assignChild(related, self.predicate, order, relevance)
|
self.context.assignChild(related, self.predicate, order, relevance)
|
||||||
|
|
||||||
def remove(self, related):
|
def remove(self, related):
|
||||||
related = baseObject(related.context)
|
related = baseObject(related)
|
||||||
self.context.deassignChild(related, [self.predicate])
|
self.context.deassignChild(related, [self.predicate])
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
|
|
|
@ -115,6 +115,7 @@ class ResultsConceptView(ConceptView):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
reportName = None # define in subclass if applicable
|
reportName = None # define in subclass if applicable
|
||||||
|
reportType = None # set for using special report instance adapter
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def result_macros(self):
|
def result_macros(self):
|
||||||
|
@ -143,8 +144,9 @@ class ResultsConceptView(ConceptView):
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def reportInstance(self):
|
def reportInstance(self):
|
||||||
|
reportType = self.reportType or self.report.reportType
|
||||||
ri = component.getAdapter(self.report, IReportInstance,
|
ri = component.getAdapter(self.report, IReportInstance,
|
||||||
name=self.report.reportType)
|
name=reportType)
|
||||||
ri.view = self.nodeView
|
ri.view = self.nodeView
|
||||||
return ri
|
return ri
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@ msgstr ""
|
||||||
|
|
||||||
"Project-Id-Version: $Id$\n"
|
"Project-Id-Version: $Id$\n"
|
||||||
"POT-Creation-Date: 2007-05-22 12:00 CET\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"
|
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -47,6 +47,9 @@ msgstr "Ressource anlegen..."
|
||||||
msgid "Create %s"
|
msgid "Create %s"
|
||||||
msgstr "%s anlegen"
|
msgstr "%s anlegen"
|
||||||
|
|
||||||
|
msgid "Create $type"
|
||||||
|
msgstr "$type anlegen"
|
||||||
|
|
||||||
msgid "Create a new resource object."
|
msgid "Create a new resource object."
|
||||||
msgstr "Eine neue Ressource erzeugen"
|
msgstr "Eine neue Ressource erzeugen"
|
||||||
|
|
||||||
|
@ -230,19 +233,34 @@ msgstr "Begriff bearbeiten"
|
||||||
msgid "Create Event..."
|
msgid "Create Event..."
|
||||||
msgstr "Termin anlegen..."
|
msgstr "Termin anlegen..."
|
||||||
|
|
||||||
msgid "Create a new event"
|
msgid "Create a new event."
|
||||||
msgstr "Einen neuen Termin anlegen."
|
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..."
|
msgid "Create Task..."
|
||||||
msgstr "Aufgabe anlegen..."
|
msgstr "Aufgabe anlegen..."
|
||||||
|
|
||||||
msgid "Create a new task"
|
msgid "Create a new task."
|
||||||
msgstr "Eine neue Aufgabe anlegen."
|
msgstr "Eine neue Aufgabe anlegen."
|
||||||
|
|
||||||
msgid "Edit Task..."
|
msgid "Edit Task..."
|
||||||
msgstr "Aufgabe bearbeiten..."
|
msgstr "Aufgabe bearbeiten..."
|
||||||
|
|
||||||
msgid "Modify task"
|
msgid "Modify task."
|
||||||
msgstr "Aufgabe bearbeiten"
|
msgstr "Aufgabe bearbeiten"
|
||||||
|
|
||||||
msgid "Create Project..."
|
msgid "Create Project..."
|
||||||
|
|
|
@ -83,6 +83,32 @@
|
||||||
class="loops.organize.browser.party.EditPersonForm"
|
class="loops.organize.browser.party.EditPersonForm"
|
||||||
permission="zope.View" />
|
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 -->
|
<!-- authentication -->
|
||||||
|
|
||||||
<browser:addform
|
<browser:addform
|
||||||
|
|
|
@ -27,9 +27,12 @@ from zope import interface, component
|
||||||
from zope.app.pagetemplate import ViewPageTemplateFile
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
|
|
||||||
|
from cybertools.browser.action import actions
|
||||||
from cybertools.meta.interfaces import IOptions
|
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.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.browser.node import NodeView
|
||||||
from loops.common import adapted
|
from loops.common import adapted
|
||||||
from loops.util import _
|
from loops.util import _
|
||||||
|
@ -38,6 +41,39 @@ from loops.util import _
|
||||||
organize_macros = ViewPageTemplateFile('view_macros.pt')
|
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):
|
class Events(ConceptView):
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
@ -45,19 +81,11 @@ class Events(ConceptView):
|
||||||
return organize_macros.macros['events']
|
return organize_macros.macros['events']
|
||||||
|
|
||||||
def getActions(self, category='object', page=None, target=None):
|
def getActions(self, category='object', page=None, target=None):
|
||||||
actions = []
|
acts = super(Events, self).getActions(category, page, target)
|
||||||
if category == 'portlet':
|
if category == 'portlet':
|
||||||
actions.append(DialogAction(self, title=_(u'Create Event...'),
|
acts.extend(actions.get(category, ['createEvent'],
|
||||||
description=_(u'Create a new event.'),
|
view=self, page=page, target=target))
|
||||||
viewName='create_concept.html',
|
return acts
|
||||||
dialogName='createEvent',
|
|
||||||
typeToken='.loops/concepts/event',
|
|
||||||
fixedType=True,
|
|
||||||
innerForm='inner_concept_form.html',
|
|
||||||
page=page,
|
|
||||||
target=target))
|
|
||||||
self.registerDojoDateWidget()
|
|
||||||
return actions
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def selectedDate(self):
|
def selectedDate(self):
|
||||||
|
@ -215,3 +243,36 @@ class CalendarInfo(NodeView):
|
||||||
def getEventTitles(self, day):
|
def getEventTitles(self, day):
|
||||||
events = self.events[day-1]
|
events = self.events[day-1]
|
||||||
return '; '.join(ev.title for ev in events)
|
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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue