Plone und eigene Forms erstellen

  • Hallo zusammen,

    ich treffe hier auf was -für mich- sehr merkwürdiges :)

    Ich versuche mal mein Problem so verständlich wie möglich zu definieren:

    Situation:
    Im View-Modus gibt es die Möglichkeit über einen Link im Template auf ein eigenes Formular bzw. Template zuzugreifen. Dies funktioniert ohne Probleme. An dieses Formular werden GET-Variablen übergeben. Auf diese kann ich auch ohne Probleme zugreifen.

    Soll-Zustand:
    Nach abschicken des Formular soll eine eigen-definierte Methode aufgerufen werden.

    File-Struktur:
    view_template.pt
    my_ext_edit_form.pt
    my_ext_edit_form.cpt.metadata
    my_ext_edit_form_action.cpy


    Nun das Problem: :)
    Wenn ich das Formular abschicke, greift my_ext_edit_form.cpt.metadata auf my_ext_edit_form_action.cpy zu. Allerdings bekomme ich nur den Quellcode angezeigt. Also dieser Code wird nicht ausgeführt sondern 1:1 als HTML-Source ausgeben.


    Über jede Hilfe wäre ich sehr verbunden :)

    Noch eine Frage nebenbei, da ich es momentan nicht testen kann:
    Wäre meine Objekt-Instanz immernoch im Context, da ich auf einige dieser Variablen zugreifen müßte

    Grüße
    Methusalix

    P.S. Ich hoffe ich habe das Problem halbwegs verständlich erklärt. Wenn nicht, einfach nachhacken :)

  • Bitte gib den Inhalt der Datein mal an. Innerhalb von BBC code-Blöcken. Dann wirds vielleicht etwas klarer.

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Hallo,
    ich kann leider mometan mit BBC wenig anfangen, daher poste ich mal die kompletten Codes, außer die ...view:

    my_ext_edit_form.pt: (plonecvs_project_file_delete.pt)

    my_ext_edit_form.cpt.metadata: (plonecvs_project_file_delete.cpt.metadata)

    Code
    [default]
    title=Delete File
    
    
    [validators]
    
    
    [actions]
    action.success = traverse_to:string:plonecvs_project_file_delete_action

    my_ext_edit_form_action.cpy: (plonecvs_project_file_delete_action.cpy)

    Bitte nicht an den Dateinamen aufhängen. Ich hab hier nur zur Verdeutlichung Aliasse verwendet. Die Verlinkung sollte stimmen.

    Meine Ausgabe beim Durchführen der Aktion ist der Quellcode der my_ext_edit_form_action.cpy:

    Danke, dass du dir die Codes verinnerlichst.

    Grüße Methusalix


    @edit: Die Aliasse wurden mit den richtigen Dateinamen versehen

  • Von hieraus sieht es erstmal ok aus. Wobei ich mich frage:
    1.) wo wird die my_ext_edit_form_action.cpy aufgerufen?
    2.) verwendest du bewusst keinen Validator?
    3.) was steht in plonecvs_project_file_delete_action?

    Logisch würde mir folgender META-Eintrag vorschweben:

    Code
    [actions]
    action.success = traverse_to:string:my_ext_edit_form_action

    PS: Mit BBC-code meinte ich genau die Tags die du in deinem Post verwendet hast. Hab mich bestimmt n bissel blöd ausgedrückt.

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Hallo Torty,

    Ich habe meinen ersten Post abgeändert, und die richtigen Dateinamen in Klammern angefügt.

    Zitat

    1.) wo wird die my_ext_edit_form_action.cpy aufgerufen?


    my_ext_edit_form_action.cpy wird doch in der Metadatei aufgerufen, oder habe ich da ein grundlegendes Verständnisproblem?
    Mein Kenntnisstand ist der: Sobald das Dokument übermittelt wird, wird action auf success gesetzt und damit diese Action durchgeführt, bis man einen anderen State zurückliefert.

    Code
    action.success = traverse_to:string:plonecvs_project_file_delete_action


    Dies müßte dann der Aufruf für die ...._action.cpy sein, oder täusche ich mich da vollständig

    Zitat

    2.) verwendest du bewusst keinen Validator?


    Momentan ja, da ich zuerst den kompletten Use-Case initialisieren will und danach erst die Validatoren ergänzen will, um das Produkt konsistent zu machen.

    Zitat

    3.) was steht in plonecvs_project_file_delete_action?


    Nach Ergänzung der richtigen Namen bei den Codes, sollte dies nicht mehr vorkommen ;)
    my_ext_form_action.cpy == plonecvs_project_file_delete_action


    Zitat

    Logisch würde mir folgender META-Eintrag vorschweben:

    Code
    [actions] 
    action.success = traverse_to:string:my_ext_edit_form_action

    dies müßte nach Ergänzung der Namen so aussehen

    Code
    [actions] 
    action.success = traverse_to:string:plonecvs_project_file_delete_action


    Und dies ist exakt der Code, der bei mir drinsteht. Da bin ich ja froh, dass ich logisch gedacht habe, und wir theoretisch auf das Gleiche gekommen sind :)

    Hier ist noch der Aufruf zur plonecvs_project_file_delete.pt:
    Vielleicht mache ich auch hier Fehler

    Ich erklär nochmal schnell den Produktaufbau und Use-Case:
    Ich habe eine Klasse PloneCvsProject. Diese Klasse besitzt ein View-Template. Aus dieser wird der direkt oben angeführte Code ausgeführt.
    Nach Betätigen des Links wird das neue Template (plonecvs_project_file_delete.pt) aufgerufen. -Da stellt sich mir die Frage, generell besitzt dieses Template ja keine Rechte für die klasse. Könnte der Fehler daher ruhen? Wenn ja, wie könnte ich diesem Template dann Rechte zuordnen, da es ansich kein eigenes Recht für dieses Template gibt?- Nach Abschicken der Daten aus plonecvs_project_file_delete soll die Metadatei aufgerufen werden und durch action.success die Datei plonecvs_project_file_delete_action.cpy
    Dies alles scheint er 100%ig zu machen. Nur erhalte ich den Quell-Code der plonecvs_project_file_delete.cpy zurück.

    Grüße
    Methusalix

  • Hallo zusammen,

    ich habe das Problem gelöst, und ich muss sagen es war ein seeeehr grober Flüchtigkeitsfehler. Der mir auch lange nicht aufgefallen ist.
    Hier im Thread habe ich immer von "plonecvs_project_file_delete_action.cpy" gesprochen, allerdings bei mir auf dem Server folgenden Datei gehabt: "plonecvs_project_file_delete.cpt"

    Dadurch, dass er es als Template erkannt hat, ist es logisch wieso er nur den Quell-Code ausgeben hat. Alles andere funktioniert einwandfrei. Könnte man als HowTo aufnehmen :) Allerdings möchte ich niemanden zumuten, diesen "perfekten" Code zu übernehmen. ;) Ich kann selbst auch noch nicht den Code optimieren, da ich selbst in der Materie neu bin

    Danke für die Hilfe!

    Grüße Methusalix

  • Hehe - nice!
    Aber sieh es mal von der positiven Seite: wieder was gelernt und du hast dich nun tiefergehend mit Formularen beschäftigt.
    Das ist doch auch was...

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Zitat

    Aber sieh es mal von der positiven Seite


    muss ich so machen, sonst würd ich mir nur noch auf den Kopf hauen, und das würde mit der Zeit schmerzhaft :)

    Zitat

    wieder was gelernt und du hast dich nun tiefergehend mit Formularen beschäftigt


    das stimmt :) und der Fehler hat mir noch eine Möglichkeit augezeigt, die GUI zu optimieren ;) das kann man ja bis n machen :) juhu was neues zum spielen^^

    grüße