Re: Documentation gesucht
Hanno Schulz <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
Hi,
also. Erst mal ein kurze abgespecktes Script zum Import per zopectl
import os, sys, traceback
import transaction
from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.User import system
from Products.CMFPlone.utils import normalizeString
from Products.CMFPlone.utils import _createObjectByType
from Products.CMFCore.utils import getToolByName
from zope.component import getMultiAdapter, queryUtility
from plone.i18n.normalizer.interfaces import IIDNormalizer
def import_documents(self):
# do the import
# plone id normalization
# idnormalizer = queryUtility(IIDNormalizer)
# id = idnormalizer.normalize(title)
def importPresse(self):
newSecurityManager(None,system)
# get the plone
plone = self.demoimport
import_documents(plone)
transaction.commit()
if __name__ == '__main__':
print "starting import..."
from Testing.makerequest import makerequest
app = makerequest(app)
importPresse(app)
print "import ready."
Komplexere Beispiele findest du irgendwo auf Andreas Jungs Webseite
> Wie kann ich einer Kollektion ein neues Dokument hinzufügen?
Gar nicht. Dies geschieht über die Suche automatisch.
> Wie kann ich eine Kollektion mit allen beinhalteten Dokumenten löschen?
Garnicht. Durch das löschen der Kollektion wird nur die Kollektion und evtl.
vorhandene Unterkollektionen gelöscht. Du könntest allerdings das Suchergebnis
der Kollektion nutzen um die Dokumente im Portal zu entfernen.
> Gibt es ein HowTo, das mir diese beiden Operationen erklärt, am
> besten noch in einem Kontext?
siehe oben
> Wo bekomme ich denn wohl diesen Request her? Ich nehme an, das ich
> innerhalb der Session schon irgendwo einen Request initiiert habe,
> aber wie komme ich da dran? Wieso finde ich mit Google nix?
>
Der Trick ist es sich den Request zu bauen
app = makerequest(app)
Obwohl es einige wenige Ecken gibt, an dem dies auch nicht reicht, der Requst
scheint nicht "komplett gebnug" zu sein. Aber im großen und ganzen
funktionierts. Vielleicht hat ja jemand anders noch Tipps dazu.
Am 13.08.2010 13:14, schrieb Andreas Sliwka:
> Hallo zusammen,
> ich mühe mich gerade durch die mit Google gefundene Dokumentation zu
> "zopectl run", aber vieles scheint so veraltet zu sein, das ich es
> nicht zum Laufen bringe.
>
> Hier nochmal mein ursprüngliches Problem:
> Ich möchte einen vorhandene Dokumentenbaum an einer bestimmten Stelle
> in eine Plone-Instanz einfügen. Dies möchte ich notfalls mehrmals tun
> können und dabei die bisher importierten Daten jeweils vorher
> entfernen.
>
> Der erste Versuch war per WebDAV. Es hat mich einige Stunden gekostet
> herauszufinden, das die HTML Fragmente auch mit <!DOCTYPE HTML>
> beginnen müssen, damit der Content-type richtig geraten wird.
> Ausserdem habe ich keine Möglichkeit gefunden, über WebDAV einzelne
> Dokumente oder Kollektionen zu veröffentlichen. Und laaaaangsaaaam ist
> es auch, deshalb würde ich gern einen direkteren Ansatz wählen, und
> zwar "zopectl run"
>
> Nun kann ich zwar ein Skript im Kontext meiner Zope Instanz starten, aber ...
>
> Wenn ich versuche, wie folgt ein Dokument einzufügen
> app.site.collection.invokeFactory(id='document_1', type_name='Document')
> dann erfahre ich, dass ich das nicht darf:
> AccessControl.unauthorized.Unauthorized: Cannot create Document
>
> Also muss ich mich als irgend ein User ausgeben. Das unter
> http://www.redcor.ch/web/intranet_zope_plone/tutorial/faq/ScriptMitZopectlRunAusfuehren
> beschriebene Verfahren funktioniert nicht, den newSecurityManager ist
> nicht nur in ein anderes Modul gewandert, sondern erwartet jetzt auch
> zwei Argumente:
> AccessControl.SecurityManagement.newSecurityManager(request, user):
> Set up a new security context for a request for a user
>
> Und wenn ich denn dann alles darf, bleiben folgende Fragen:
>
> Eigentlich dachte ich, mich durch den Kauf von "Zope3, Developers
> Handbook" und "The Definitive Guide to Plone" mit genug Dokumentation
> versorgt zu haben, tja ... da sind viele Bilder drin, und das ZMI wird
> auch sehr explizit erklärt. Nur mir Kommandozeilen-Junky hilft das
> nicht :-/
>
> So. Genug gemeckert. Schöne Grüße aus dem ungemütlichen Zeitraum
> zwischen Deadline und Wochenende :-)
>
> Andreas Sliwka
>
>
> _______________________________________________
> zope mailing list
> [email protected]
> https://mail.dzug.org/mailman/listinfo/zope
>
-
Diese Information ist ausschliesslich fuer den Adressaten bestimmt und kann
vertraulich oder gesetzlich geschuetzte Informationen enthalten. Wenn Sie nicht
der bestimmungsgemaesse Adressat sind, unterrichten Sie bitte den Absender und
vernichten Sie diese Mail.
Anderen als dem bestimmungsgemaessen Adressaten ist es untersagt, diese E-Mail
weiterzuleiten oder ihren Inhalt auf welche Weise auch immer zu verwenden. Wir
verwenden aktuelle Virenschutzprogramme und Content-Filter.
Fuer Schaeden, die dem Empfaenger gleichwohl durch von uns zugesandte mit Viren
befallene E-Mails entstehen, schliessen wir jede Haftung aus.
-
This e-mail and any attachments is confidential and solely intended for the
indicated addressee. If you are not the intended recipient or an authorized
person, please note, that any form of notice, disclosure, reproduction or
circulation of the contents of this mail is prohibited. In this case, please
immediately inform the sender of the e-mail an destroy this e-mail. We use
updated antivirus protection software. We do not accept any responsibility for
damages caused anyhow by viruses.
-
catWorkX GmbH: Sitz der Gesellschaft in Hamburg, HRB: 71494, USt-IdNr.:
DE201625856, Geschaeftsfuehrung: Dipl. Kfm. Andreas Girnuweit, Dipl.-Ing. Oliver
Groht, Dr. Wolfgang Tank
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope