2012-08-27 30 views
7

Pracuję nad dodatkiem Plone, który wymaga alternatywnej wersji edytowanej dla treści Zręczności. Muszę być w stanie wyświetlić tylko część formularza edycji w nakładce AJAX (przy użyciu JQuery UI, a nie narzędzi JQuery, więc rozsądniej jest zrobić to po stronie serwera niż filtrować w JavaScript) **.Dostosowany szablon formularza edycji Zręczność w Plone?

Dokumentacja z Dexterity Developer's Guide wydaje się wskazywać, że mogę mieć niestandardowy szablon przy użyciu makr. Czego jednak brakuje w tej sekcji - może jest to krytyczny kontekst dla osób, które nie używają grok do wiązania widoków, ale może coś innego. Tworzenie widoku tylko z szablonem kończy się niepowodzeniem (oczywiście nie można znaleźć nazw z klasy widoku), a próba powiązania niestandardowego szablonu w ZCML z klasą widoku zasobu lub z podklasą obu zawodzi (szablon jest ignorowany na korzyść szablon zapasów).

Moje cele:

  1. Czy edit za to zapakowane jest w gołej szablonu, który zasadniczo obejmuje tylko zawartość wewnątrz div #content.
  2. Nie chcę jedynie nieopakowanego renderowania z3c.form, potrzebuję również minimalnego szablonu do jego zawijania - nie tylko menedżerów i menedżerów widoków Plone i furntiture.

Co nie działa:

from plone.dexterity.browser.edit import DefaultEditForm 
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile 

class MyEditForm(DefaultEditForm): 
    index = ViewPageTemplateFile('my_edit_template.pt') 

The ZCML odpowiednik (definiowanie indeks wykonawczego z magią) również nie działa tutaj.

Jak mogę wprowadzić niestandardowy szablon do formularza edycji?

** Pracuję nad zgodnością Solgema.fullcalendar z typem opartym na Zręczności.app.event. Solgema.fullcalendar używa interfejsu jQuery dla wyskakujących okienek, a nie pomocników nakładki plone.app.jquerytools; dla zachowania spójności sensowne jest posiadanie tego minimalnego widoku, a nie próba naśladowania mechanizmu filtrowania w JavaScript normalnych nakładek Plona.

+0

Z perspektywy czasu byłoby łatwiej odpowiedzieć na pytanie, czy dostarczyłeś próbkę kodu, o której sądziłeś, że powinna działać, ale nie. –

+1

Uzgodniony, dodany przykład kodu do OP i do odpowiedzi (oczekiwanie na sprawdzenie). – sdupton

Odpowiedz

9

z3c.form wygląda na szablonie jako atrybut template, więc trzeba przypisać swój własny szablon do atrybutu formularza edit podklasy template zamiast index (czyli tam, gdzie szablon ZCML atrybut umieszcza go).

from plone.dexterity.browser.edit import DefaultEditForm 
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile 

class MyEditForm(DefaultEditForm): 
    template = ViewPageTemplateFile('my_edit_template.pt')