From c13e6a6d00d11a0f87ce9dc63f429ee48ddc3c07 Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 18 Feb 2011 07:58:44 +0000 Subject: [PATCH] allow also deletion of concepts via action query git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@4191 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/concept_macros.pt | 9 ++++++++- expert/browser/base.py | 16 +++++++++++----- expert/browser/query.pt | 8 ++++++-- locales/de/LC_MESSAGES/loops.mo | Bin 14061 -> 14362 bytes locales/de/LC_MESSAGES/loops.po | 14 +++++++++++++- 5 files changed, 38 insertions(+), 9 deletions(-) diff --git a/browser/concept_macros.pt b/browser/concept_macros.pt index 2445e8b..23e5db4 100644 --- a/browser/concept_macros.pt +++ b/browser/concept_macros.pt @@ -105,8 +105,10 @@ tal:condition="show_headline|python:True">Children
- +
+ @@ -124,6 +126,11 @@ t for t in (description, predicate) if t)"> +
  Title Type Modification Date
+ diff --git a/expert/browser/base.py b/expert/browser/base.py index 6a5d265..0b3b58e 100644 --- a/expert/browser/base.py +++ b/expert/browser/base.py @@ -30,7 +30,7 @@ from zope.traversing.api import getName, getParent from cybertools.browser.form import FormController from loops.browser.common import BaseView, concept_macros -from loops.browser.concept import ConceptView +from loops.browser.concept import ConceptView, ConceptRelationView from loops.browser.resource import ResourceView, ResourceRelationView from loops.common import adapted from loops import util @@ -44,7 +44,8 @@ queryTemplate = ViewPageTemplateFile('query.pt') class BaseQueryView(BaseView): template = queryTemplate - childViewFactory = ResourceRelationView + childViewFactory = ConceptRelationView + resourceViewFactory = ResourceRelationView showCheckboxes = True form_action = 'execute_query_action' @@ -77,10 +78,15 @@ class BaseQueryView(BaseView): return _(u'Selection using: $targets', mapping=dict(targets=targetNames)) - def results(self): + def resources(self): for t in self.targets: for r in t.getResourceRelations([self.defaultPredicate]): - yield self.childViewFactory(r, self.request, contextIsSecond=True) + yield self.resourceViewFactory(r, self.request, contextIsSecond=True) + + def children(self): + for t in self.targets: + for c in t.getChildRelations([self.defaultPredicate]): + yield self.childViewFactory(c, self.request, contextIsSecond=True) class ActionExecutor(FormController): @@ -92,7 +98,7 @@ class ActionExecutor(FormController): uids = form.get('selection', []) action = actions[0] if action == 'action.delete': - print '*** delete', uids + #print '*** delete', uids for uid in uids: obj = util.getObjectForUid(uid) parent = getParent(obj) diff --git a/expert/browser/query.pt b/expert/browser/query.pt index 44940dc..30462a9 100644 --- a/expert/browser/query.pt +++ b/expert/browser/query.pt @@ -1,18 +1,22 @@
+

Concepts

+ +

Resources


+ i18n:attributes="value; onclick" />
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 34d4c5915dd4d27d20dc256220ccbcdc0854700b..6800bf39ee8e47c95adf232cfda6c3dedf39a853 100644 GIT binary patch delta 5960 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 delta 5666 zcmYk=3!Iiy0>|;wJ2lZoGhH=FQ!}O8FjLb7QLPdwm0H^t30<(IRFqZw+7?k%6ct*M zRB9umB%%;%R~EU1vSM9IvO<)W-|v0S`1E}I-|so+JNsX|8$s3!4u}kFCIq52&<9*!Yh1K$6e?JzCtJP12WfeB-XR*CGFL*2JN-ci4|gh zY>oE65i8+sneWpf%!*&k%QS@WAl9P8GOUTuq65E5(*By4*4&<7VDp5L+U@HE6U4DF4!8acR{!K0`$B= z=#EUliZ}(`xvA*0aeMrJHhRk!r?L_J>e4g?2fhmJcmw)$&Oo>5PIN*G(G!-UJMegH zUxQxwc`U`3WBqXaKE?fWLe=m@%)`cbDthbEgDH5y%cEDI1CB-qoEYmjq61AwPrMVI z=mK;_51>1_7=1RLLKn0p)^{LpYS@dJTgGhYpANYcY-ox;ou%l?d!aKQh(7fr&{if(;3bV9u_bIZ_vBQb>&(C;TUVgEg0G7WkYI`Hl2 zgchL_T#25r22;2meM>f=1H6Lv--)g93*>HwIt9rNwL`Dd30+Y4*nV!Bf*0zGu6$7Z zVkkPHk?4tI(0-H9iA+Veep>u~COUz6=ye{7E<^jRLa(<5vv32tBk4^Pyx=yp!&~Tp zA4ETm?fcNz>wC0+R$&OkE6^9aQNOxr2&ZEidg1-(z(1qc%W9T9Q`OKNJ05u^(&1zZ zzV{bl7EVB))=B7z)6l1NHfDZc&>xbg&dm4>=y|2+bvvO8 z>VfqbKMbPaAB%A|;2p8U67)4%7u|}k{6qAw;(=JN-XiH&h_<&!C)gJqXn1rII?);E z4lKa5TlgpiPuz&y&hS3+GaY_GC)TiKVn?*SKl+n=4f1y;Oh?aOiY{OidaHKeF}M$X z8-Bn_ShrQOLnpLi|D90*4c_|_^n`ZkLv$v(b?0Ff?2q;zf?jA8I^ek2J{|2hA6?jD zbOBGt`gU|j_Mkg?q!s&b$J)HKZdproC7scg{V~?BLsvW-y(P=hhx8frysgoX&*vhc}};GZ)?R73d$04d_nn!0PxF zI`Kp3gd6fV+W`x)8a7AIZ-+V91D)7FtnB+ggn|Q(K%R?mEjsWbbVcjX3vEIlu5Gb> z2cA!TH@c-ICCS5fD%PMr01I#!dW&ww%!1H~uE3hU|4&fx0-Mp->oxS@*=q-^&?Y{l z=vKExCsK-@*EzQLKrh@69dIDJuwm#z#-rDrjGliNrtP?pLQPzbo$y)oE%*tUL#Wj@ z8K^rtKyP&G2gLei(JRrnW-O-g4s?REqw}K=qT?-V%l_N(85&CQIc$apkl&t=N24?C zhOVFwX6_w2u_5RRXUFyj(Edv>7axz`zkrVO26~PUi`j`gq*%5S$tG7!! z)pAEJPCy54fljCcdR}L=f6rJS5Wl}9Iuc#+7<326N7L8G4(aGLwBsyv3+JHs zd`bL%B|4!eV|^n!@T=%fy@^g}H}cPez#|lXA|9+M{F~$xkF~!49;=Cix+Pzc&q(?4 zeJngz-hhh9c<4dy zB3F>PvOYR`Ik$1=|}9>(^7s)5&JL0jG{EwVt z#r;3T=d)y|RgPxlo=l1V^%MO=)E^#?oP=--&LFpw`D7gVCuvLGB_4$dVFw;0my*lK zRB}!H{mJ~4-c3URxt5$ljv@CGj~~cHGKF}{%8yDEwvl?|BC>*9K!y>Ir^q^TBYB>9 zTu7#q*;e|J?iM(@l1AhR`8(-Njz0c;RAui`<(`z+kpGiM%l6eNN|hBHza>?6IIlRn ztb5~ysX6(DFV$_|Hor}ANl8(0o1&89{NfI$m3BO>xZRvXg?%a%m-TFVO;*`U%}>uN T%W3^~<+3Af3$x}7>#+7$LfIN# diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 8d78f6b..2832082 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: 2011-02-10 12:00 CET\n" +"PO-Revision-Date: 2011-02-18 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -14,6 +14,9 @@ msgstr "" msgid "Concept" msgstr "Begriff" +msgid "Concepts" +msgstr "Begriffe" + msgid "Resource" msgstr "Ressource" @@ -554,6 +557,15 @@ msgstr "Kommentare" msgid "Add Comment" msgstr "Kommentar hinzufügen" +msgid "Selection using: $targets" +msgstr "Auswahl über: $targets" + +msgid "Delete objects" +msgstr "Objekte löschen" + +msgid "confirm('Do you really want to delete the selected objects?')" +msgstr "confirm('Wollen Sie die ausgewählten Objekte wirklich löschen?')" + # management interface msgid "label_type"