allow for explicit setting of name when creating object; simple property to get instances of a type
This commit is contained in:
parent
9bc0c44e12
commit
343faaa603
2 changed files with 15 additions and 6 deletions
|
@ -668,6 +668,9 @@ class CreateObject(EditObject):
|
|||
def container(self):
|
||||
return self.loopsRoot.getResourceManager()
|
||||
|
||||
def getName(self):
|
||||
return None
|
||||
|
||||
def getNameFromData(self):
|
||||
data = self.request.form.get('data')
|
||||
if data and isinstance(data, FileUpload):
|
||||
|
@ -686,8 +689,9 @@ class CreateObject(EditObject):
|
|||
if not title:
|
||||
raise BadRequest('Title field is empty')
|
||||
obj = self.factory(title)
|
||||
name = self.getName()
|
||||
if name is None:
|
||||
name = self.getNameFromData()
|
||||
# TODO: validate fields
|
||||
name = INameChooser(container).chooseName(name, obj)
|
||||
container[name] = obj
|
||||
tc = form.get('form.type') or self.defaultTypeToken
|
||||
|
@ -695,6 +699,7 @@ class CreateObject(EditObject):
|
|||
notify(ObjectCreatedEvent(obj))
|
||||
#notify(ObjectAddedEvent(obj))
|
||||
self.object = obj
|
||||
# TODO: validate fields
|
||||
formState = self.updateFields() # TODO: suppress validation
|
||||
self.view.formState = formState
|
||||
# TODO: error handling
|
||||
|
|
10
type.py
10
type.py
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
|
||||
# Copyright (c) 2012 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
|
||||
|
@ -18,8 +18,6 @@
|
|||
|
||||
"""
|
||||
Type management stuff.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope import component, schema
|
||||
|
@ -36,6 +34,7 @@ from loops.interfaces import ILoopsObject, IConcept, IResource
|
|||
from loops.interfaces import ITypeConcept
|
||||
from loops.interfaces import IResourceAdapter, IFile, IExternalFile, IImage
|
||||
from loops.interfaces import ITextDocument, INote
|
||||
from loops.common import adapted
|
||||
from loops.concept import Concept
|
||||
from loops.resource import Resource, Document, MediaAsset
|
||||
from loops.common import AdapterBase
|
||||
|
@ -267,6 +266,11 @@ class TypeConcept(AdapterBase):
|
|||
self.context._options = value
|
||||
options = property(getOptions, setOptions)
|
||||
|
||||
@property
|
||||
def typeInstances(self):
|
||||
tp = self.context.getConceptManager().getTypePredicate()
|
||||
return [adapted(c) for c in self.context.getChildren([tp])]
|
||||
|
||||
|
||||
class TypeInterfaceSourceList(object):
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue