From ba2ea672443ac18d4693ad28d2cd4982a4c98458 Mon Sep 17 00:00:00 2001 From: helmutm Date: Thu, 10 Feb 2011 07:06:03 +0000 Subject: [PATCH] provide generic 'create concept' actions based on qualifier setting or assigned subtypes git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@4161 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/action.py | 22 +++++++++++++++++++++- browser/form.py | 19 ++++++++++++++++++- locales/de/LC_MESSAGES/loops.mo | Bin 13602 -> 14004 bytes locales/de/LC_MESSAGES/loops.po | 26 ++++++++++++++++++++++---- organize/process/configure.zcml | 2 +- 5 files changed, 62 insertions(+), 7 deletions(-) diff --git a/browser/action.py b/browser/action.py index 20420d2..e7ab214 100644 --- a/browser/action.py +++ b/browser/action.py @@ -19,7 +19,7 @@ """ Base classes (sort of views) for action portlet items. -$Id: action.py 2313 2008-01-15 13:00:34Z helmutm $ +$Id$ """ from urllib import urlencode @@ -145,3 +145,23 @@ actions.register('edit_concept', 'portlet', DialogAction, dialogName='edit', prerequisites=['registerDojoEditor'], ) + +actions.register('create_concept', 'portlet', DialogAction, + title=_(u'Create Concept...'), + description=_(u'Create a new concept.'), + viewName='create_concept.html', + dialogName='createConcept', + qualifier='create_concept', + #typeToken='.loops/concepts/topic', + #fixedType=True, + innerForm='inner_concept_form.html', +) + +actions.register('create_subtype', 'portlet', DialogAction, + title=_(u'Create Concept...'), + description=_(u'Create a new concept.'), + viewName='create_concept.html', + dialogName='createConcept', + qualifier='subtype', + innerForm='inner_concept_form.html', +) diff --git a/browser/form.py b/browser/form.py index 83fd72c..e4f8c5e 100644 --- a/browser/form.py +++ b/browser/form.py @@ -62,7 +62,7 @@ from loops.query import ConceptQuery, IQueryConcept from loops.resource import Resource from loops.schema.field import relation_macros from loops.security.common import canAccessObject, canListObject, canWriteObject -from loops.type import ITypeConcept +from loops.type import ITypeConcept, ConceptTypeInfo from loops import util from loops.util import _ from loops.versioning.interfaces import IVersionable @@ -375,6 +375,23 @@ class CreateConceptForm(CreateObjectForm): defaultTitle = u'Create Concept, Type = ' form_action = 'create_concept' + @Lazy + def defaultTypeToken(self): + return None + + def getTypesVocabulary(self, include=None): + types = [] + if 'subtype' in include: + include = list(include) + include.remove('subtype') + parentType = self.target.conceptType + subtypePred = self.conceptManager['issubtype'] + types = [dict(token=ConceptTypeInfo(t).token, title=t.title) + for t in parentType.getChildren([subtypePred])] + if include: + return util.KeywordVocabulary(types + self.listTypes(include, ('hidden',))) + return util.KeywordVocabulary(types) + @Lazy def dialog_name(self): return self.request.get('dialog', 'createConcept') diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index b8b74988d43ecf681dce2f8be7c82c521762b6f2..1b4fa12976f5c927ba611d815102a6cdcc94e261 100644 GIT binary patch delta 5858 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 NIV;3}rse0szXFb)7()O6 diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 4eb5f03..57cb762 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: $Id$\n" "POT-Creation-Date: 2007-05-22 12:00 CET\n" -"PO-Revision-Date: 2010-08-22 12:00 CET\n" +"PO-Revision-Date: 2011-02-09 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -29,6 +29,12 @@ msgstr "Anlegen" msgid "Edit Concept Map" msgstr "Concept Map bearbeiten" +msgid "Create Concept..." +msgstr "Begriff anlegen..." + +msgid "Create a new concept." +msgstr "Einen neuen Begriff erzeugen." + msgid "Create Resource..." msgstr "Ressource anlegen..." @@ -44,6 +50,12 @@ msgstr "Ordner anlegen..." msgid "Create a new folder." msgstr "Einen neuen Ordner anlegen" +msgid "Edit Concept..." +msgstr "Begriff bearbeiten..." + +msgid "Modify concept." +msgstr "Begriff ändern." + msgid "Edit Folder..." msgstr "Ordner bearbeiten..." @@ -134,6 +146,9 @@ msgstr "Adresse bearbeiten..." msgid "Modify address." msgstr "Adresse bearbeiten" +msgid "Create Concept, Type = " +msgstr "Begriff anlegen, Typ = " + msgid "Create Resource, Type = " msgstr "Ressource anlegen, Typ = " @@ -149,9 +164,6 @@ msgstr "Diese Ressource bearbeiten." msgid "Edit Concept" msgstr "Begriff bearbeiten" -msgid "Edit Concept..." -msgstr "Begriff bearbeiten..." - msgid "Create Event..." msgstr "Termin anlegen..." @@ -479,6 +491,12 @@ msgstr "Beginn" msgid "End date" msgstr "Ende" +msgid "Knowledge" +msgstr "Wissen" + +msgid "The knowledge elements for this person." +msgstr "Die Wissenselemente für diese Person." + msgid "Create loops Note" msgstr "loops-Notiz anlegen" diff --git a/organize/process/configure.zcml b/organize/process/configure.zcml index 71c2583..3e39fcf 100644 --- a/organize/process/configure.zcml +++ b/organize/process/configure.zcml @@ -9,7 +9,7 @@