template vorlage für "dokument"

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

normal ist es so, das ich bisher alle templates wie z.B. "search_for_members", "personalize_form" usw. im container plone/portal_skins/... gefunden hab und verändern konnte.

Jetzt kann man doch Ordner erstellen auf der Hauptseite von Plone und da kann man doch wählen z.B. "neuen Artikel hinzufügen" da wähle ich "Seite" aus und da öffnet sich ja so eine Seite wo ich den Titel, Beschreibung, Haupttext und referenz und so eintragen kann. Aber das Template will ich jetzt verändern, ein Feld einfügen und allgemein das Template anpassen aber wo liegt das ? Oder ist das etwas besonderes ?

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:das Template will ich jetzt verändern, ein Feld einfügen und allgemein das Template anpassen aber wo liegt das? Oder ist das etwas besonderes?
Hi mitch!

Erstens -- bitte verwende einen weniger animierten und evt. auch kleineren Banner für deine Signatur.

Zweitens -- jetzt wirds komplizierter :)

Seit den letzten Plone-Versionen (auch Plone 2.5) werden die Standard-Contenttypen mit **Archetypes** erstellt.

Du kannst also einen eigenen Archetypes-Contenttypen erstellen, also ein eigenes Plone-Produkt programmieren und damit neue Content-Typen erstellen.

- http://plone.org/products/archetypes/do ... loperGuide
- http://plone.org/products/archetypes/do ... l/quickref
- http://www.derstappen-it.de/dokumentati ... /ch13.rst/
- (deutsch) http://docs.neuroinf.de/PloneBook/ch13.rst

Die andere Variante ist, eine Seite (Pagetemplate) über das ZMI zu erstellen. Diese Seite ist dann aber von Plone aus nicht bearbeitbar. Es ist aber die einfachste Art, benutzerdefinierte Seiten ins Plone einzufügen.

Dafür kannst du dir einfach den Code aus der Pagetemplate ``portal_skins/plone_content/document_view`` kopieren und anpassen.

Willst du einen eigenen Content-Type erstellen, damit die Plone-Benutzer ohne dein Zutun neue (benutzerdefinierte) Seiten erstellen können, dann solltest du dich mit Archetypes anfreunden. -- Allerdings ist das nicht so einfach wie das Erstellen einer einzelnen Pagetemplate.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi gerold,

hab mir schon so was gedacht mit archtypes...

also ich hab mir Archetypes-1.4.0-final-Bundle.tar.gz runtergeladen und in den Products ordner entpackt... aber gebracht hat es nicht viel..

Der Seite zu folge, die du mir geschickt hast ist da irgendwo ein Beispiel namens "Article.py" dabei. Das hab ich irgendwie nicht gefunden bzw. war nicht dabei. Aber das sei ja auch mal dahin gestellt... ich will ja nur dieses Dokument "Seite" bearbeiten aber ich finde einfach diesen Archtyp nicht ...
Wo kann den der sein ? Ich steh da irgendwie voll auf dem Schlauch und komm nicht weiter! Kann mir da jemand helfen?

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:also ich hab mir Archetypes-1.4.0-final-Bundle.tar.gz runtergeladen und in den Products ordner entpackt...
Hi mitch!

Archetypes ist bei Plone schon mit dabei. Das darfst/solltest du nicht überschreiben. Es ist besser, wenn du das wieder rückgängig machst.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:Der Seite zu folge, die du mir geschickt hast ist da irgendwo ein Beispiel namens "Article.py" dabei.
Hi mitch!

Das ändert sich ständig. Das Beispiel an sich finde ich auch nicht, aber im Ordner (im Dateisystem) ``Products\Archetypes\docs`` befindet sich die HTML-Seite ``archetypes_paper.html``. In dieser wird ein komplettes Beispiel erklärt. Mit dieser Hilfe sollte es nicht mehr so schwer sein, einen eigenen Archetypes-Contenttype zu erstellen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:ich will ja nur dieses Dokument "Seite" bearbeiten aber ich finde einfach diesen Archtyp nicht ...
Hi mitch!

Wenn du diesen Standard-Contenttyp änderst, dann wird ein Update auf eine neue Plone-Version mehr als schwierig.

Wenn du nur die Anzeige der Daten ändern möchtest, dann ist das ein relativ simples Unterfangen. Möchtest du aber zusätzliche Daten mit der "Seite" (Page) speichern, dann müsstest du direkt in den Plone-Quellcode eingreifen. Glaube mir -- das möchtest du nicht!!!

Mit Archetypes kannst du Content-Typen erstellen, die sich gleich oder ähnlich wie der Content-Typ "Document" verhält. Damit schießt du dir nicht bei jedem Plone-Update ins Bein.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

danke gerold für deine Antworten. Hab mir schon gedacht, dass dieses unterfangen mit viel Problemen behaftet sein wird! :P
Okay, ich hab mir mal so ein ArchExample runtergeladen und versuche das jetzt so zu gestallten wie ich das brauche! Da muss ich zumindest kein Standard Dokument verändern!
Die Datei nennt sich Article.py ! Da versuche ich jetzt ein dropdown feld zu mache, wo alle members drin stehen! Aber das klappt nicht so wie ich will ! Ich bin ja noch ein frischling, was Archetypes angeht, vielleicht kannst du mir da auch helfen, wenn du eine Methode kennst die mir die Members ausliest! Die article.py liegt im Verzeichniss C:\programme\plone 2\data\products\archexamples\article.py falls dir/euch das hilft! Bin nur am rum probieren, weil es da kaum ordentliche aktuelle seiten drüber gibt! Das nervt mich mittlerweile!

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:weil es da kaum ordentliche aktuelle seiten drüber gibt!
Hi Mitch!

Wenn du etwas am Code änderst, dann musst du Zope neu starten, das Produkt, welches du verändert hast, im ``portal_quickinstaller`` neu installieren und erst dann siehst du das Ergebnis der Änderung.

Ich schreibe gerade an einer kleinen Anleitung. Allerdings ist sie noch nicht ganz fertig, aber hier ist schon mal das was ich bis jetzt zusammengeschrieben habe:

http://gelb.bcom.at/trac/misc/wiki/Tuto ... tErstellen

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben:Ich schreibe gerade an einer kleinen Anleitung. Allerdings ist sie noch nicht ganz fertig
So langsam beginnt die Anleitung Form anzunehmen. Es sollte ab jetzt schon recht deutlich hervorkommen, wie man ein Archetypes-Produkt für Plone erstellen und die Anzeige anpassen kann.

http://gelb.bcom.at/trac/misc/wiki/Tuto ... tErstellen

Es fehlt zwar noch die Listenanzeige, aber das ist nicht mehr notwendig um AT zu verstehen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi gerold,

dank, ich hab dein tutorial mal durch gearbeitet aber leider konnte ich damit meine Frage auch nicht beantworten.

Wie oben schon geschrieben, will ich in ein archetype (bei mir ist das die article.py) so ein listen Feld erstellen, wo automatisch beim öffnen des dokumentes alle Mitarbeiter ausgelesen werden und in so ein listen Feld rein geschrieben werden.

Mein wille ist es ja, ein Ordner namens "Projekt" zu erstellen und darin werden dann Projekte erstellt (vorzugsweiße mit der article.py die ich auch später noch umbennen werde). Nun soll es möglich sein, dass pro projekt 5 Mitarbeiter beschäftig sein können und deshalb auch 5 solche listenfelder wo jeweils alle mitarbeiter drin stehen.
Wenn ich dann das projekt speichere, sollen der Name des Projektes auch noch bei dem jeweiligen Mitarbeiter eingetragen werden! Daran geh ich zur Zeit ein bisschen kaputt dran. :?

Deshalb will ich erstmal die Mitarbeiter da rein lesen und dann weiter sehen!

Ich wäre sehr froh über jede Hilfe!

mfg mitch ...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:alle Mitarbeiter ausgelesen werden
Hi mitch!

Das mit dem Auslesen der in Plone eingetragenen Mitglieder funktioniert so:

Code: Alles auswählen

## Script (Python) "get_members"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
ms = container.portal_membership

retlist = []
members = ms.searchForMembers()
if members:
    for member in members:
        new = {"username": member.getUserName()}
        new["fullname"] = member.getProperty("fullname")
        retlist.append(new)

return retlist
Über den Rest denke ich noch nach bis ich ihn verstanden habe.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi mitch!

:-)

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Products.ATTest.config import PROJECTNAME

from Products.Archetypes.atapi import registerType
from Products.Archetypes.atapi import BaseContent, Schema
from Products.Archetypes.atapi import StringField
from Products.Archetypes.atapi import SelectionWidget


class Member5(BaseContent):
    """Member5"""
    
    portal_type = "Member5"
    meta_type = "Member5"
    archetype_name = "Member5"
    schema = BaseContent.schema.copy() + Schema(
        (
            StringField(
                "member1",
                required = True,
                vocabulary = "get_members",
                enforceVocabulary = True,
                index = "KeywordIndex", # erstellt autom. einen Index mit diesem Feld
                widget = SelectionWidget(
                    label = "Erster Mitarbeiter",
                    description = "Erster Mitarbeiter",
                    format = "select",
                ),
            ),
            StringField(
                "member2",
                required = False,
                vocabulary = "get_members",
                enforceVocabulary = True,
                index = "KeywordIndex", # erstellt autom. einen Index mit diesem Feld
                widget = SelectionWidget(
                    label = "Zweiter Mitarbeiter",
                    description = "Zweiter Mitarbeiter",
                    format = "select",
                ),
            ),
        ),
    )
    
    def get_members(self):
        ms = self.portal_membership
        
        retlist = []
        members = ms.searchForMembers()
        if members:
            for member in members:
                retlist.append(
                    (
                        member.getUserName(),
                        member.getProperty("fullname")
                    )
                )
        
        return retlist


# Klasse registrieren
registerType(Member5, PROJECTNAME)
``from Products.ATTest.config import PROJECTNAME`` --> ATTest ist der Ordner in dem das Produkt liegt. Das musst du natürlich an deine Gegebenheiten anpassen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Code: Alles auswählen

## Script (Python) "get_projects"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=username
##title=
##
cat = container.portal_catalog

return (
    cat.searchResults(getMember1 = username) + 
    cat.searchResults(getMember2 = username)
)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Code: Alles auswählen

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>

  <h1>Projekte bei denen Benutzer "aaaa" mitwirkt</h1>

  <tal:block tal:define="projects python:context.get_projects(username = 'aaaa')">
    <table border="1" tal:condition="projects">
      <tr>
        <th>Titel</th>
        <th>Id</th>
        <th>Url</th>
      </tr>
      <tal:block tal:repeat="project projects">
        <tr tal:define="project_object project/getObject">
          <td tal:content="project_object/Title" />
          <td tal:content="project_object/getId" />
          <td tal:content="project_object/absolute_url" />
        </tr>
      </tal:block>
    </table>
  </tal:block>
  
</body>
</html>
Ich glaube, so langsam kenne ich mich mit Archetypes ein wenig aus. :mrgreen:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi gerold,

das mit dem Benutzer hatte ich mir auch schon so gedacht wie du das gemacht hast aber ich wusste halt null wo und wie ich da anfangen sollte! :idea:

So jetzt speicher ich dieses Objekt in mein Ordner Projekte ab, der auf der gleichen Ebene wie der Membersordner liegt.
Bsp.: Titel = Projekt SEK 3
Kurz Beschreibung = Personalmanagement Tool
Lange Beschreibung = bla bla bla bla
Mitarbeiter1 = mike brune
Mitarbeiter2 = adriano blasa

Wenn ich das so abspeichern will drücke ich ja einfach nur auf den "speichern" Button. Ich will den Button aber jetzt so bearbeiten, dass er den Titel und die beiden Mitarbeiter ausließt und bei den Persönlichen Einstellungen der Mitarbeiter das Feld "Projektbeteiligung" mit dem "Title" des Projektes füllt! Aber welches Script ist dafür verantwortlich bzw. wo liegt das Script für den gewissen "Speicher- Button" und wie mache ich das, dass ich die Einstellungen von dem Mitarbeiter Objekt überschreibe?

Ich hoffe du verstehst mein anliegen gerold ?!

mfg mitch

PS: Mein Chef versucht sich jetzt auch mal an deinem Tutorial! :wink:
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:das mit dem Benutzer hatte ich mir auch schon so gedacht wie du das gemacht hast aber ich wusste halt null wo und wie ich da anfangen sollte!
Hi Mitch!

Das kann ich dir erklären.

Ich suche mir im ZMI oder im Plone die Stelle, an der die Information die ich suche (oder ähnliche Informationen) bereits angezeigt werden. In diesem Fall ist das so, dass alle Mitglieder aufgelistet werden, wenn man im Plone auf den Tab "members" klickt und dann, ohne einen Suchbegriff einzugeben, auf die Schaltfläche ``suche`` klickt.

Wenn man sich den "Members"-Ordner im ZMI ansieht, dann findet man die Seite ``index_html``. In dieser Seite wird das Objekt ``member_search_form`` aufgerufen. Dieses Objekt findet man im ZMI unter ``portal_skins/plone_forms/member_search_form``.

Wenn man sich ``member_search_form`` ansieht, dann findet man die Formular-Aktion (action) ``member_search_results``. Also wird das was im Formular eingegeben wird, an ``member_search_results`` weitergereicht. Also suche ich nach ``member_search_results``. (Im Karteikartenreiter ``find`` findest du die Suche. ;-) )

Im Objekt ``member_search_results`` findet man die Zeile

Code: Alles auswählen

tal:define="results python:mtool.searchForMembers(request);
Jetzt muss man nur noch herausfinden was für ein Objekt mit ``mtool`` gemeint ist. Also suche ich im Dateisystem im CMFPlone-Ordner nach dem Wort ``mtool`` oder dem Wort ``searchForMembers``. Seit ich auf meinem Computer Windows XP installiert habe, kann man die Suche total vergessen. Zum Glück liegt Zope und die installierten Produkte auf einem Linux-Server. Dort suche ich mit ``findstring``, einem kleinen Shellskript. (http://gerold.bcom.at/codeschnipsel/tex ... indstring/)

Wie auch immer... So bin ich drauf gekommen, dass sich hinter der Variable ``mtool`` das Modul ``MembershipTool.py`` befindet. Dieses ist in Plone über ``portal_membership`` eingebunden. In einem Python-Skript kommt man mit ``context.portal_membership`` oder ``container.portal_membership`` zu diesem Tool. Der Rest war einfach.

lg
Gerold
:-)
Zuletzt geändert von gerold am Sonntag 15. Oktober 2006, 11:46, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:Bsp.: Titel = Projekt SEK 3
Kurz Beschreibung = Personalmanagement Tool
Lange Beschreibung = bla bla bla bla
Mitarbeiter1 = mike brune
Mitarbeiter2 = adriano blasa

Wenn ich das so abspeichern will drücke ich ja einfach nur auf den "speichern" Button. Ich will den Button aber jetzt so bearbeiten, dass er den Titel und die beiden Mitarbeiter ausließt und bei den Persönlichen Einstellungen der Mitarbeiter das Feld "Projektbeteiligung" mit dem "Title" des Projektes füllt!
Hi mitch!

In meinem Beispielcode habe ich den Hinweis gegeben, dass die zugewiesenen Mitarbeiter in einem Index, also im ``portal_catalog`` abgelegt werden. Somit ist eine Suche danach möglich. Wenn z.B. das Feld den namen "member1" hat, dann wird im ``portal_catalog`` der Index ``getMember1`` erzeugt. Du kannst also mit der normalen Katalogsuche

Code: Alles auswählen

container.portal_catalog.searchResults(getMember1 = "ein_benutzername")
nach allen Objekten suchen, bei denen der Index ``getMember1`` den Wert ``ein_benutzername`` hat. Du brauchst die Mitglieder der Projekte also nirgends mehr abzuspeichern. Führe dort wo du die Projekte, an denen der Mitarbeiter beteiligt ist, anzeigen möchtest, einfach die (wirklich schnelle) Indexsuche aus und zeige das Ergebnis an.

Die Projekte des Mitarbeiters noch einmal irgendwo abzuspeichern ist doppelt gemoppelt und bringt keinen Vorteil.

Die Suche, die ich im Beispiel "get_projects" aufzeige, sucht genau so in den Indizes ``getMember1`` und ``getMember2`` nach den Projekten des übergebenen Mitarbeiters ``username``.

Such dir das Formular, mit dem ein Benutzer bearbeitet wird und arbeite dort den XHTML-Code ein, den ich weiter oben in einem anderen Beitrag schon aufgezeigt habe.
Das Formular, das zum Bearbeiten eines Benutzers verwendet wird ist wahrscheinlich ``portal_skins/plone_prefs/prefs_user_details``.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

ein riesengroßes DANKE gerold, jetzt funktionieren zumdinest mal alle Funktionen die für eine Prototypen gebraucht werden, denke ich mal, wenn mein chef nicht schon wieder noch mehr will ! :roll:

Bloß das mit dem getMember1 in den index schreiben hat irgendwie nicht funktioniert! Ich hab dann die dann selber in den Index eingetragen bei portal_catalog, ich hoffe das ist auch möglich, zumindest funktioniert es!

Code: Alles auswählen

StringField(
                "member2",
                required = False,
                vocabulary = "get_members",
                enforceVocabulary = True,
                index = "KeywordIndex", # erstellt autom. einen Index mit diesem Feld
                widget = SelectionWidget(
                    label = "Zweiter Mitarbeiter",
                    description = "Zweiter Mitarbeiter",
                    format = "select",
                ),
            ),
Tja und das hat irgendwie doch keinen Index autom. erzeugt, weißt du wieso?

Ach ja und nun soll es so sein, dass ein Mitarbeiter nicht in mehr als 5 Projekten gleichzeitig sein darf!
Kann ich mir da eine Methode in dem Archetype (neuesProjekt.py hab ich es mal genannt) erzeugen, welche beim Speichern abfragt in wievielen Projekten der Mitarbeiter zur Zeit arbeitet und sobald er in schon 5 Projekten ist und das 6. dazu kommt, soll die Seite neu aufgebaut werden und daruf hingewießen werden, dass der Mitarbeit schon ausgeplant ist.
Soll ungefähr so aussehen wie mit diesem:
"required = True"
wo doch das Feld zum "Mussfeld" wird und wenn nix eingetragen wird, es einen Fehler bringt.

mfg mitch
:)[/code]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:Bloß das mit dem getMember1 in den index schreiben hat irgendwie nicht funktioniert! Ich hab dann die dann selber in den Index eingetragen bei portal_catalog,
Hi mitch!

Was bringt es dir, wenn es sich nicht selber einträgt???

Gründe, warum es evt. nicht funktioniert haben könnte:
- Zope nicht neu gestartet
- Produkt nicht neu registriert
- Es wurden Projekte angelegt, noch bevor es den Schemaeintrag ``index = "KeywordIndex",`` gab.

Wie auch immer. Man kann den Katalog neu aufbauen lassen.
Im ``archetype_tool`` kannst du über den Reiter ``Catalogs`` die zugehörigen Kataloge auswählen und auch "Updaten". Dann
kannst du noch Template-Bindings neu aufbauen lassen, UID´s neu indizieren und alte Schemadefinitionen auf den neuesten Stand bringen.

Beim Entwickeln von Archetypes -- wenn irgendetwas nicht so wie gewünscht funktioniert, dann sollte man es mit dem ``archetype_tool`` versuchen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi,

ich glaube wir haben gerade aneinander vorbei geredet gerold.

Ich dachte, diese Methode "getMember1" automatisch in Index erzeugt wird aber dem war ja nicht so. Als hab ich die beiden Methoden getMember1 und getMember2 als Index erzeugt im portal_catalog.
Jetzt kann ich mit Hilfe der beiden Methoden auch auf die Member zugreifen die ich beim erstellen des Dokumentes gespeichert hab.

Nur ich hab halt gedacht, dass auch "getMember" dirket mit im Index erzeugt wurde! :P

mfg mitch
Gesperrt