Ergebnis 1 bis 3 von 3

Thema: Eigene Edit-Form statt base_edit für Archetypes-CT

  1. #1
    Teeny
    Registriert seit
    01.07.2007
    Ort
    Erzgebirge
    Beiträge
    30
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Eigene Edit-Form statt base_edit für Archetypes-CT

    Hallo zusammen,

    im Netz bin ich auf das Beispiel Personenverwaltung gestoßen, wie man eine eigene Edit-Form für Archetypes CTs erstellt.

    http://www.nabble.com/Re%3A-Seeking-...p10885580.html

    Dieses Beispiel habe ich bei mir probiert und komme nun leider nicht weiter.

    Als erstes der Code des Personen-Schemas/-Klasse. Um den CT zum Laufen zu bringen, musste ich im Vergleich zum Code auf obiger Seite noch einige Imports einfügen.
    Code:
    # CMF imports  
    from Products.CMFCore import CMFCorePermissions
    
    # Archetypes imports
    from Products.Archetypes.public import BaseSchema, Schema
    from Products.Archetypes.public import IntegerField, StringField
    from Products.Archetypes.public import IntegerWidget, StringWidget
    from Products.Archetypes.public import BaseContent, registerType
    from Products.Archetypes.Marshall import PrimaryFieldMarshaller
    from Products.Archetypes.TemplateMixin import TemplateMixin
    
    # Product imports
    from config import PROJECTNAME
    
    # Schema definition
    schema = BaseSchema.copy() +  Schema((
      IntegerField('person_id',
                    widget = IntegerWidget(label = "Person Id"),
                ),
      StringField('first_name',
                    widget = StringWidget(label = "First Name"),
                ),
      StringField('last_name',
                    widget = StringWidget(label = "Last Name"),
                ),
    ),           marshall=PrimaryFieldMarshaller(),
                                  )
    
    class Person(BaseContent):
        """An Archetype for a Person"""
    
        schema = schema
        portal_type = meta_type = 'Person'
        archetype_name = 'Person'
        _at_rename_after_creation = True
        actions = TemplateMixin.actions
        aliases = {
            '(Default)'  : 'person_view',
            'view'       : 'person_view',
            'edit'       : 'person_edit',
            'properties' : 'base_metadata',
            }
    
    registerType(Person, PROJECTNAME)
    An der person_edit.cpt habe ich nichts geändert:
    Code:
    <html metal&#58;use-macro="here/main_template/macros/master"
          i18n&#58;domain="plone" >
    <body>
    
    <div metal&#58;fill-slot="main">
    
            <form method="POST" tal&#58;attributes="action string&#58;$&#123;here/absolute_url&#125;/$&#123;template/id&#125;;">
                    <input type="hidden" name="form.submitted" value="1" />
                    <p class="error_message" tal&#58;define="err errors/n|nothing"
                    tal&#58;condition="err"></p>
                   
                    <div class="field">
                     <label i18n&#58;translate="">FIRST Name&#58;</label>
                     <div metal&#58;use-macro="python&#58; here.widget&#40;'first_name',mode='edit'&#41;" />
                    </div>
                   
                    <div class="field">
                     <label i18n&#58;translate="">LAST Name&#58;</label>
                     <div metal&#58;use-macro="python&#58; here.widget&#40;'last_name',mode='edit'&#41;" />
                    </div>
                   
                    <div class="field">
                     <label i18n&#58;translate="">PERSON Id&#58;</label>
                     <div metal&#58;use-macro="python&#58; here.widget&#40;'person_id',mode='edit'&#41;" />
                    </div>
                   
                    
    
    <input type="submit" name="form.button.submit" value="Save"
                            tal&#58;attributes="tabindex tabindex/next" /></p>
           
            </form>
    </div>
    </body>
    </html>
    Das Problem ist nun, dass statt der person_edit immer noch die base_edit aufgerufen wird. Allerdings steht auch bei /Plone/portal_types/Person unter Initial view name noch base_edit. Ändere ich dies nun auf person_edit, bekomme ich den Fehler Nameerror/name 'errors' is not defined. Irgendwo muss also noch ein Fehler sein. Allerdings wird im obigen Link auch gesagt, dass nachdem alle Fehler beseitigt wurden, trotzdem die base_edit aufgerufen wird.

    Lange Rede, kurzer Sinn... könnte bitte jemand mal dieses Beispiel ausprobieren und das person_edit zum Laufen bekommen?
    Tausend Dank!

    Greets, Moerz
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    08.12.2007
    Ort
    Tübingen
    Beiträge
    266
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Dein Ansatz für das Template ist naiv. In den generierten Templates von Plone steckt *viel mehr* Logik als Du erwartest. Du must schon base_edit.pt als Basis für das Customizing verwenden.

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    01.07.2007
    Ort
    Erzgebirge
    Beiträge
    30
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Mmh, das ist blöd. Du (bzw. ihr) kenn(s)t nicht zufällig ein Beispiel im Netz, wo dies realisiert wurde?! Vor allem habe ich Probleme ausgehend vom Base_edit ein spezielles Widget anzusprechen und nicht wie dort iterativ darauf zuzugreifen.

    Greets, Moerz

Ähnliche Themen

  1. ArcheTypes + ArgoUML
    Von Torty im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 7
    Letzter Beitrag: 27.05.2008, 18:00
  2. Eigenes Formular für eigenen Archetypes-Contenttype
    Von Moerz im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 2
    Letzter Beitrag: 31.10.2007, 19:03
  3. <form> innerhalb eines anderen <form> möglich?
    Von Ivanman im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 17.08.2007, 16:10
  4. Archetypes Produkt erscheint nicht in Plone
    Von jholzer im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 5
    Letzter Beitrag: 30.03.2006, 18:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •