provide list field instance for schema.List, use for Person.phoneNumbers; add actions for creating Person and Address objects
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2660 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
e07afbccb0
commit
580838acb8
7 changed files with 79 additions and 6 deletions
|
@ -21,7 +21,7 @@
|
|||
|
||||
<metal:fields define-macro="conceptfields">
|
||||
<fieldset class="box"
|
||||
tal:define="data item/data;
|
||||
tal:define="data item/getData;
|
||||
values python: [v for v in data.values() if v];
|
||||
fields item/fields"
|
||||
tal:condition="values">
|
||||
|
|
|
@ -314,6 +314,8 @@
|
|||
name="email" />
|
||||
<adapter factory="cybertools.composer.schema.field.BooleanFieldInstance"
|
||||
name="boolean" />
|
||||
<adapter factory="cybertools.composer.schema.field.ListFieldInstance"
|
||||
name="list" />
|
||||
<adapter factory="cybertools.composer.schema.field.FileUploadFieldInstance"
|
||||
name="fileupload" />
|
||||
|
||||
|
|
|
@ -37,8 +37,7 @@ from loops.browser.common import BaseView
|
|||
from loops.browser.concept import ConceptView
|
||||
from loops.knowledge.interfaces import IPerson, ITask
|
||||
from loops.organize.party import getPersonForUser
|
||||
|
||||
_ = MessageFactory('zope')
|
||||
from loops.util import _
|
||||
|
||||
|
||||
actions.register('createTopic', 'portlet', DialogAction,
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
"""
|
||||
$Id$
|
||||
"""
|
||||
|
||||
# make sure actions get registered
|
||||
import party
|
||||
|
|
68
organize/browser/party.py
Normal file
68
organize/browser/party.py
Normal file
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
"""
|
||||
Definition of view classes and other browser related stuff (e.g. actions) for
|
||||
loops.organize.party.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope import interface, component
|
||||
from zope.cachedescriptors.property import Lazy
|
||||
|
||||
from cybertools.browser.action import actions
|
||||
from loops.browser.action import DialogAction
|
||||
from loops.util import _
|
||||
|
||||
|
||||
actions.register('createPerson', 'portlet', DialogAction,
|
||||
title=_(u'Create Person...'),
|
||||
description=_(u'Create a new person.'),
|
||||
viewName='create_concept.html',
|
||||
dialogName='createPerson',
|
||||
typeToken='.loops/concepts/person',
|
||||
fixedType=True,
|
||||
innerForm='inner_concept_form.html',
|
||||
prerequisites=['registerDojoDateWidget'],
|
||||
)
|
||||
|
||||
actions.register('editPerson', 'portlet', DialogAction,
|
||||
title=_(u'Edit Person...'),
|
||||
description=_(u'Modify person.'),
|
||||
viewName='edit_concept.html',
|
||||
dialogName='editPerson',
|
||||
prerequisites=['registerDojoDateWidget'],
|
||||
)
|
||||
|
||||
actions.register('createAddress', 'portlet', DialogAction,
|
||||
title=_(u'Create Address...'),
|
||||
description=_(u'Create a new address.'),
|
||||
viewName='create_concept.html',
|
||||
dialogName='createAddress',
|
||||
typeToken='.loops/concepts/address',
|
||||
fixedType=True,
|
||||
innerForm='inner_concept_form.html',
|
||||
)
|
||||
|
||||
actions.register('editAddress', 'portlet', DialogAction,
|
||||
title=_(u'Edit Address...'),
|
||||
description=_(u'Modify address.'),
|
||||
viewName='edit_concept.html',
|
||||
dialogName='editAddress',
|
||||
)
|
|
@ -37,8 +37,8 @@ class PersonSchemaFactory(SchemaFactory):
|
|||
|
||||
def __call__(self, interface, **kw):
|
||||
schema = super(PersonSchemaFactory, self).__call__(interface, **kw)
|
||||
if 'phoneNumbers' in schema.fields.keys():
|
||||
schema.fields.phoneNumbers.instance_name ='simplelist'
|
||||
#if 'phoneNumbers' in schema.fields.keys():
|
||||
# schema.fields.phoneNumbers.instance_name ='simplelist'
|
||||
if 'birthDate' in schema.fields.keys():
|
||||
schema.fields.birthDate.display_format = ('date', 'long')
|
||||
return schema
|
||||
|
|
|
@ -32,7 +32,7 @@ from cybertools.catalog.keyword import KeywordIndex
|
|||
from cybertools.composer.schema.factory import SchemaFactory
|
||||
from cybertools.composer.schema.field import FieldInstance, NumberFieldInstance
|
||||
from cybertools.composer.schema.field import DateFieldInstance, BooleanFieldInstance
|
||||
from cybertools.composer.schema.field import EmailFieldInstance
|
||||
from cybertools.composer.schema.field import EmailFieldInstance, ListFieldInstance
|
||||
from cybertools.composer.schema.instance import Instance, Editor
|
||||
from cybertools.relation.tests import IntIdsStub
|
||||
from cybertools.relation.registry import RelationRegistry
|
||||
|
@ -131,6 +131,7 @@ class TestSite(object):
|
|||
component.provideAdapter(DateFieldInstance, name='date')
|
||||
component.provideAdapter(EmailFieldInstance, name='email')
|
||||
component.provideAdapter(BooleanFieldInstance, name='boolean')
|
||||
component.provideAdapter(ListFieldInstance, name='list')
|
||||
component.provideAdapter(SchemaFactory)
|
||||
component.provideAdapter(ResourceSchemaFactory)
|
||||
component.provideAdapter(FileSchemaFactory)
|
||||
|
|
Loading…
Add table
Reference in a new issue