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):
|
def container(self):
|
||||||
return self.loopsRoot.getResourceManager()
|
return self.loopsRoot.getResourceManager()
|
||||||
|
|
||||||
|
def getName(self):
|
||||||
|
return None
|
||||||
|
|
||||||
def getNameFromData(self):
|
def getNameFromData(self):
|
||||||
data = self.request.form.get('data')
|
data = self.request.form.get('data')
|
||||||
if data and isinstance(data, FileUpload):
|
if data and isinstance(data, FileUpload):
|
||||||
|
@ -686,15 +689,17 @@ class CreateObject(EditObject):
|
||||||
if not title:
|
if not title:
|
||||||
raise BadRequest('Title field is empty')
|
raise BadRequest('Title field is empty')
|
||||||
obj = self.factory(title)
|
obj = self.factory(title)
|
||||||
name = self.getNameFromData()
|
name = self.getName()
|
||||||
# TODO: validate fields
|
if name is None:
|
||||||
name = INameChooser(container).chooseName(name, obj)
|
name = self.getNameFromData()
|
||||||
|
name = INameChooser(container).chooseName(name, obj)
|
||||||
container[name] = obj
|
container[name] = obj
|
||||||
tc = form.get('form.type') or self.defaultTypeToken
|
tc = form.get('form.type') or self.defaultTypeToken
|
||||||
obj.setType(self.loopsRoot.loopsTraverse(tc))
|
obj.setType(self.loopsRoot.loopsTraverse(tc))
|
||||||
notify(ObjectCreatedEvent(obj))
|
notify(ObjectCreatedEvent(obj))
|
||||||
#notify(ObjectAddedEvent(obj))
|
#notify(ObjectAddedEvent(obj))
|
||||||
self.object = obj
|
self.object = obj
|
||||||
|
# TODO: validate fields
|
||||||
formState = self.updateFields() # TODO: suppress validation
|
formState = self.updateFields() # TODO: suppress validation
|
||||||
self.view.formState = formState
|
self.view.formState = formState
|
||||||
# TODO: error handling
|
# 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
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,8 +18,6 @@
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Type management stuff.
|
Type management stuff.
|
||||||
|
|
||||||
$Id$
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from zope import component, schema
|
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 ITypeConcept
|
||||||
from loops.interfaces import IResourceAdapter, IFile, IExternalFile, IImage
|
from loops.interfaces import IResourceAdapter, IFile, IExternalFile, IImage
|
||||||
from loops.interfaces import ITextDocument, INote
|
from loops.interfaces import ITextDocument, INote
|
||||||
|
from loops.common import adapted
|
||||||
from loops.concept import Concept
|
from loops.concept import Concept
|
||||||
from loops.resource import Resource, Document, MediaAsset
|
from loops.resource import Resource, Document, MediaAsset
|
||||||
from loops.common import AdapterBase
|
from loops.common import AdapterBase
|
||||||
|
@ -267,6 +266,11 @@ class TypeConcept(AdapterBase):
|
||||||
self.context._options = value
|
self.context._options = value
|
||||||
options = property(getOptions, setOptions)
|
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):
|
class TypeInterfaceSourceList(object):
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue