Beiträge von Pumukel

    Hallo,

    Du hast PloneFormGen deinem Plone zwar bekannt gemacht, aber nicht installiert. In der Konfigurationsseite git es einen Link Erweiterungen, dort musst du jetzt erst PloneFormGen installieren.

    Wenn es da nicht auftaucht melde dich nochmal.

    Gruss Pumukel

    Hallo Daniel,

    auf dem Link gibt es die Info warum es nicht immer funktioniert:

    Zitat

    Note

    Products.Archetypes.interfaces.IObjectEditedEvent is fired after reindexObject() is called. If you manipulate your content object in a handler for this event, you need to manually reindex new values, or the changes will not be reflected in the portal_catalog.

    verwende deswegen vielleicht besser das generischere / höhere zope.lifecycleevent.IObjectModifiedEvent da deine Änderungen scheinbar kein reindex auslösen.

    Gruss Pumukel

    - - - Aktualisiert - - -

    Nachtrag zu deiner Frage des Content aus einer externen Quelle mittels invokeFactory einzubringen: Es ist halt nicht die effizienteste Methode dies zu machen. Die Factory erzeugt dir zuerst ein themporäres Objekt, das du dann beschreibst und es dann formal zu echtem Content transferiert werden. Man erzeugt damit halt sehr umständlich Content, es geht halt auch direkt, du hast ja eine Transaktionale Datenbank drunter mit ZODB.

    Gruss Pumukel

    Hallo,

    deine Ratlosigkeit ist verständlich. Du lässt die Funktion bei aufruf von IObjectEditedEvent ausführen. IObjectEditedEvent ist eine der IObjectModifiedEvents, Erstellen / Anlegen eines Objekts ist aber unter IObjectCreateEvent. Somit musst du deinen handler halt auch für das Products.Archetypes.interfaces.IObjectInitializedEvent als Subscriber registrieren.

    Zum Verständnis die Events in Zope/Plone/Archetypes: http://collective-docs.readthedocs.org/en/latest/comp…tml#event-types

    Gruss Pumukel

    Hallo,

    gut das es geklappt hat. Eine erklärung dafür gibt es natürlich, dieser Fehler hat etwas mit Objektorientierung in Javascript zu tun und nichts mit Plone.

    Wenn du zwei Funktionen in JS hast die den identischen Namen haben, überschreiben diese sich gegenseitig. Da in Plone das form_tabbing allgemein für Plone umgesetzt ist, aber durch eine identische Funktion in der Reihenfolge des ausgelieferten JS durch die Bibliothek von JQuery UI überschrieben wird, kann das orginal form_tabbing diese Funktionalitäten nicht ausführen.

    Gruss Pumukel

    Hallo,

    es ist ein JavaScript Problem, die Frage ist welches. Bitte schau dir mit Firebug oder vergleichbaren DeveloperTools an was der Browser als Fehler sieht.

    Manchmal kann es passieren das Zope sich "verschluckt" und ein JavaScript nicht ausliefert oder falsch durch ein minify und group schickt, hier kann ein reboot/neustart des Zope helfen, muss aber nicht zwingend zur lösung führen.

    Gruss Pumukel

    Hallo,

    vielleicht einmal ausführlich:

    Zope2 ist ein Applikations-Server für die Scriptsprache Python
    Plone ist ein in Python geschriebenes Content Management System was in Zope läuft.

    Die ZMI ist das Zope Management Interface, mit welchem du auf Interna der Produkte zugreifen kannst, eine Entwicklung innerhalb der ZMI ist nicht zu empfehlen, da du hier etliche Beschränkungen hast und auch keine echte Versions-Kontrolle für deinen Code.
    Saubere Entwicklung in Zope ist heute vollkommen unabhängig von der ZMI. Es wird auf dem Dateisystem entwickelt. Hier kann man dann z.B. SVN oder GIT einsetzten.

    Schau dir bitte die Dokumentation zu Plone an um zu verstehen wie Zope Entwicklung heute geht:
    http://collective-docs.plone.org/en/latest/index.html ist das englisch sprachige Entwicklerhandbuch,
    Martin Aspeli's Buch http://www.packtpub.com/professional-p…evelopment/book ist das gedruckte Referenzwerk

    Fazit, Man entwickelt im File-System mit Zope/Plone Techniken.

    Viele Grüße
    Pumukel

    Hallo,

    saubere Entwicklung in Zope ist heute vollkommen unabhängig von der ZMi, da es sehr gefährlich ist dort zu entwickeln. Da Plone das Tool auf Zope ist, wäre es sinnvoll auf dessen Basis / Herangehensweise zu entwickeln. http://collective-docs.plone.org/en/latest/index.html ist das englisch sprachige Entwicklerhandbuch, Martin Aspeli's Buch http://www.packtpub.com/professional-p…evelopment/book ist das gedruckte Referenzwerk zurzeit.

    Unter https://github.com/collective findest du sehr viele third-party add-ons zu plone und zope, unter https://github.com/plone findest du die gesamte Plone Core Bibliothek.

    Schau dir diese Sachen an und wenn dann noch fragen sind, kannst du diese gerne Stellen.

    Viele Grüße
    Pumukel

    Hallo,

    die Frage hier, was machst du? Entwickelst du natives Zope? Entwickelst du nur in der ZMI?

    Python Scripts in der ZMI sind genau eine Methode, also wird es schwer da eine Unter-Methode aufzurufen.
    Entwickelst du im File-System ist das ein echtes Python Program, welches du als view zur verfügung haben solltest, wenn du BrowserLayer verwendest, da musst du einfach nur den Methodennamen an die Variable view oder context hängen um sie aufzurufen.

    Gruss Pumukel

    Hallo,

    kurze Frage, was willst du überhaupt machen? Der weg via DTML ist nicht gerade sinnvoll da es veraltet und kaum mehr genutzt ist. Wenn du in Zope Programmierst, wähle besser ZCA oder Zope BrowserLayer Techniken um deine PageTemplates mit deinen Scripten zu verbinden.

    Wenn du aber einen sehr speziellen Use-Case hast, so das du eigetlich auch moderne Zope-Techniken verzichten musst, beschrieb die bitte, Ansonsten schau dir die Arbeitsweise von Plone-Produkten an, die sind State of Art der Zope Entwicklung.

    Gruss Pumukel

    Hallo Steffen,

    ich bin mir nicht sicher ob du dich falsch ausgedrückt hast oder du jedes Objekt in Zope/Plone als Ordner fehldeutest.
    Jeder Ordner hat natürlich den Reiter Inhalte, aber Objekte die kein Ordner sind haben dies natürlich nicht.
    Der Reiter Freigabe kommt aus den Permission und Workflows, wenn du einen Workflow ohne Permissions hast, wie bei Dateien und Bilder als Standard eingestellt, ist eine Freigabe nicht nötig, weil jeder angemeldete alles damit machen kann.

    Ich hoffe deine Frage ist damit beantwortet.

    Gruss Pumukel

    Hallo,

    da es heute schon spät ist keine lange Antwort.

    das mit dem vocabulary ist ein Übertragungsfehler bei dir, das Vocabulary muss im Field nicht im widget definiert sein.

    Das mit dem SchemaExtender und einem Feld zu überschreiben geht nicht so ohne weiteres, der Trick ist entweder das ursprüngliche Feld zu holen und zu überschreiben, dazu muss du dir das Schema der zu veränderenden Klasse nehmen und dann das Feld manipulieren.

    Einfacher:

    IATDocument.schema()['description'].widget.visible = {"edit": "invisible", "view": "invisible"}
    und dein neues Feld an die Stelle schieben.

    schema.moveField('newfield', before = 'description')
    Ich hoffe es hilft weiter, nur nicht verzagen, irgendwann wird es was.

    Gruss Pumukel

    Hallo,

    entschuldige bitte die lange Zeit für eine Antwort.

    Natürlich ist damit die Migration nicht gescheitert, wobei man aber erstmal spezifischer werden muss. Du sprichst nur von einer Migration, es sind aber zwei Sachen die du machst, du hast ein Upgrade des Systems und der Add'ons durchgeführt und eine Migration der Daten angefangen, die Migration ist nicht gescheitert, das kann man sogar sehr leicht belegen, häng einfach an eine der nicht funtionierenden Seiten ein /base_view an und du siehst das alle Daten vorhanden sind, nur die Darstellung (ein TTW Add'on) nicht funktioniert. Ich würde frech behaupten die Migration ist bereits erfolgreich durchgeführt, dein Upgrade ist es noch nicht.

    Wie muss man jetzt vorgehen um es zu lösen, es gibt zwei Möglichkeiten, eine jetzt schnelle die beim nächsten Upgrade das gleiche Problem wiederverursacht oder eine langsame aber bessere.
    Die schnelle ist genau die gleichen Anpassungen die im Alten System TTW gemacht wurden nachzuvollziehen und im neuen System von Scratch zu machen. Wie gesagt das wäre die dummste aber schnellste Lösung.

    Zweite und besserer Weg wäre wie schon angedeutet eigene Add'ons im File-System zu erstellen udn die Änderungen da einzubauen. Da es nach meinem Verständnis bei dir nur um Darstellungsanpassungen geht, sollte das eine eher triviale aber zeitraubende Arbeit sein (ein Profi, benötigt wahrscheinlich ein paar Tage, ohne Erfahrung kann das Wochen bis Monate dauern).

    Gruss Pumukel

    PS: nicht den Kopf hängen lassen, man bekommt das hin, stell dir das mal in einem anderen CMS vor, da würde garnichts mehr funktionieren.

    Hallo,

    also die Customizations sind dein Problem. Hier hat jemand versucht Design-Anpassungen Through The Web (TTW) zu implementieren. Dies ist zwar möglich und zum mal kurz etwas auszuprobieren auch gut, aber für ein Produktiv-System absolut gefährlich.

    View-Customizations bestehen in der regel aus zwei Elementen der View-Class einem Python-Skript und einem Page-Template, in dem Element siehst du aber nur die Page-Templates. Wenn jetzt Funktionen der View-Class aufgerufen werden, die aber bei einem Update sich geaendert haben, funktioniert das nicht mehr. Deswegen sollte man Anpassungen immer in einem eigenen Theme-Package machen, dann kann man sowohl eigene View-Classes erstellen als auch bei einem Update viel einfacher die Unterschiede sehen.

    Der Fehler ist normal da ab Python 2.6 andere Techniken wegen dem Restricted Python eingestezt werden, damit niemand das ystem korrumieren kann.

    Gruss Pumukel

    Hallo,

    also der Fehler sieht so aus, das du eine eingestellte View für ein Objekt hast, das auf eine View-Class geht die du nicht zur verfügung hast. Da du sagst das Seiten den Flowplayer benutzen kann das natürlich das sein. Bitte installier alle Add'ons die im Orginal sind auch in der Migration.

    Außerdem schau bitte in der ZMi ob du in portal_skins/custom etwas hast, sowie unter portal_view_customizations bei content TTW Anpassungen hast.

    Gruss Pumukel

    Hallo,

    Die Navigation von Plone ist dynamisch. Plone zeigt per default immer die Veröffentlichten Objekte(gem. Einstellungen) der gleichen Hirachieebene und bei Foldish-Objekten der direkten Kindelemente an. In der Admin-Seite und bei den Portlets im Plone-Root sind Einstellungsmöglichkeiten für Navigation möglich.

    Sollen zusätzliche Ebenen angezeigt werden oder Drowdown genutzt werden ist das durch Installation von webcouturier.dropdownmenu (http://plone.org/products/webcouturier-dropdownmenuhttp://pypi.python.org/pypi/webcouturier.dropdownmenu) möglich.

    Gruss Pumukel

    Hallo Don83,

    dieses Unterforum ist leider sehr träge, da fast alle sich an die Englischen Listen wenden und nur sehr wenige Profies hier mitlesen und auch noch antworten. Ab und zu muss man einfach mal ein zwei Tage warten.

    Zu deiner Frage:
    Die Migration von Plone Daten ist Trivial, der Upgrade eines Plone-Setupups ist es leider nicht immer, aber Plone 3.3 sollte es aber eigentlich sehr viel einfacher gehen, als vorher.


    1. Schritt Analyse des alten Setups:
    * ist es schon buildout Basiert (wenn ja perfekt)
    * ist das buildout unter Versionsverwaltung? (ist für Pflege deutlich besser)
    * welche Zusatz-Produkte wurden installiert (nur dann kann eine Migration sauber funktionieren)
    * wie sieht die Zope-Konfiguration aus, (bei Buildout wird die generiert, ansonsten gibt es in den Instanzen ein etc/zope.conf oder etc/zeo.conf)
    * welche Storage-Layer wurden benutzt (File-Storage, Blob-Storage, ggf. RelStorage, ...) (du hast zusätzliche Filestorages, die müssen wo abgebildet sein)
    2. Errichtung einer Migrations-Instanz:
    * niemals auf einer Life-Instanz ungeprüfte Updates durchführen
    * Beste Startbasis ist der UnifiedInstaller von Plone (aktuell 4.2.rc2) da der alles mitbringt (Python, Versions-Pins, ...)
    * externen Version-Pin, ggf. aktualisieren (im buildout die Version.cfg auskommentieren und die externe Referenz auf 4.2-latest änderen und einkommentieren
    * Kopie des File-Storage und des Blob-Storage (die Migration erstmal auf dieser Kopie testen)
    * Anpassung des Buildout an das existierende Setup, (Zusatz-Produkte, Instanz-Konfiguration, Speicherpfade)
    * ggf. zusätzliche Debug und Development-Tools in einer debug-instance installieren (Um ggf. die Migration besser überwachen zu können)
    3. Setup der Migrations-Instanz
    * wenn buildout Konfiguration gem. Schritt 2 fertig, dann buildout durchführen, dabei niemals die option -n für newest verwenden, sonst kannst du im schlimmsten fall das System nicht mehr verwenden danach. Plone und Zope arbeiten mit sogenannten "Knowen Good Versions" jede Abhängigkeit ist mit einer explizieten Version.
    * Warnungen des buildouts ignorieren, wenn das buildout nicht abbricht ist es in Ordnung, das sind alles nur informationen für geübte Entwickler
    * debug-instance im Vordergrund starten (./bin/debug-instance fg), Warnungen studieren, ob bei Zusatzprodukten Meldungen kommen
    * Startet die instanz sauber, einloggen und in der ZMI schuaen ob alles vorhanden ist
    * via ZMI/portal_migration für jede Plone-Site eine Test-Migration durchführen. dabei die Debug-Ausgaben auf der Kommandorzeile beobachten.
    4. Bei problemloser Test-Migration, ein neues Life-System aufsetzten, Migration durchführen und altes System ersetzten.

    Ich hoffe das hilft, wenn nicht einfach nochmal melden.

    Gruss Pumukel

    Hallo driver,

    hier gibt es extrem viele Fehlerquellen, deswegen kann man nur ein paar möglichkeiten durchgehen und mal sehen wie deine Einstellungen sind.
    Ich gehe davon aus, das du die Vererbten Zugriffsrechte der Protal gecheckt hast und dort kein Anonumous drin ist.
    Gruppenrechte für Anonumous sind auch gecheckt.

    Verwendest du caching, Loadbalancing? da kann manchmal eine authentifikation passieren wenn man etwas falsch einstellt.
    Wie sind in der ZMI die Rechte?

    schau mal mit tools wie cassandra die Rechte einstellungen durch, das mit dem Editor kannst du auch mal als anhaltspunkt in der portal_memberdata und portal_membership suchen.
    Gruss Pumukel

    Hallo,

    Barrierefreiheit ist eine Sache die durch Konventionen und den konsequenten einsatz von Standards lebt.
    Die Optionen zum vergrößeren der Schrift ist eine Sache die man auf zei weisen lösen kann. 1. Die Browserhersteller haben für properitäre Seiten eine eigene Zoomfunktion eingeführt, die immer funktioniert. 2. die Webseite stelt einen JavaScript-Basierten Web bereit der die Schriftgröße verändert. Plone bietet die zweite Option an. in dem Barrierefrei gibt es die drei links die die Javascript aufrufen.

    Eine Zweite Sache sind die Accesskeys, die durch jeden Browser anderst angesprochen werden: http://en.wikipedia.org/wiki/Access_key

    Plone definiert dir die Zahlen, wie sie aufgerufen werden wird durch den Browser definiert. In Plone muss man da nichts mehr extra einstellen, wenn man einfach den default verwendet.

    Gruss Pumukel

    Hallo,

    erstmal, das was MrMurphy hier vorschlägt macht keinen sinn, da Ihr ja Plone benutzt.

    zu eurem eigenen Problem:
    Eine Webseite die sinnvoll konzipiert ist, lässt sich natürlich nachträglich mobil machen. Was ich meinte ist, eine für mobile Geräte optimierte Seite sollte auch von den inhalten von anfang an konzipiert werden.

    Wie geht ihr jetzt am besten vor:
    1. Hier nochmal Infornmationen geben, ob Ihr bereits ein Theme für eure Plone Seite erstellt habt.
    2. Wenn noch Basis Skin von Plone, installiert euch den plonetheme.responsive der schon sehr viele grundlegende optimierungen für mobil drin hat.
    3. macht euch ein Konzept, wie die Seite Mobil aussehen soll, am besten auf dem Papier.
    4. Lernt CSS-Media-Queries, und die Skalierung machen zu können. (hier einfach googlen)
    5. Passt das Theme so an das es euren Wünschen entspricht.

    Tutorial, gibt es auf Plone.org Plone.de und collective-docs.plone.org

    Gruss Pumukel

    PS wenn ihr noch mehr informationen benötigt, einfach mit präzieseren Fragen nachfragen.