[Plone-IT] Re: help con template di edit

Yuri yurj a alfa.it
Mar 3 Feb 2009 08:36:24 UTC


Luca ha scritto:
> La chiave è tutta in queste due righe che hai incollato:
>
>  edit_template python:'%s_edit' % portal_type;
>  edit_macros python:path('here/%s/macros | nothing' % edit_template);
>
> Se ti fai un template che si chiama "nomedeltuocontenttype_edit.pt"
> con dentro tutte le macro che trovi in edit_macros (customizzando
> quello che ti pare) hai risolto la cosa nel modo più elegante
> possibile (almeno per archetype).
>   

Prova a postarlo e vediamo, visto che è così semplice... :)

Cioè di tutto questo template posso togliere tutto e resterebbe solo:

=========

       <metal:prova fill-slot="widgets">
          <tal:tabbed tal:condition="allow_tabbing | nothing">
            <fieldset tal:define="sole_fieldset python:len(fieldsets) == 1"
                      tal:repeat="fieldset fieldsets"
                      tal:attributes="id string:fieldset-${fieldset}"
                      tal:omit-tag="sole_fieldset">
              <legend id=""
                      tal:content="python:
view.getTranslatedSchemaLabel(fieldset)"
                      tal:attributes="id string:fieldsetlegend-${fieldset}"
                      tal:condition="not:sole_fieldset" />
              <tal:fields repeat="field
python:schematas[fieldset].editableFields(here, visible_only=True)">
<tal:block tal:condition="python:field.getName() <> 'referee'">
                <metal:fieldMacro
use-macro="python:here.widget(field.getName(), mode='edit')" />
</tal:block>
              </tal:fields>
            </fieldset>
          </tal:tabbed>
          <tal:nottabbed tal:condition="not: allow_tabbing | nothing">
              <tal:fields repeat="field
python:schematas[fieldset].editableFields(here, visible_only=True)">
                <metal:fieldMacro
use-macro="python:here.widget(field.getName(), mode='edit')" />
              </tal:fields>
          </tal:nottabbed>

       </metal:prova>

====================

immagino che al posto del fill ci vada un define, giusto?


> 2009/2/2 Yuri <yurj a alfa.it>:
>   
>> Yuri ha scritto:
>>     
>>> Salve,
>>>
>>> voglio cambiare il template di edit di un mio contenuto, ma senza
>>> ricopiare il base edit & c, cioè avere la modifica minimale.
>>>
>>> Ho provato per un pò ma non ne vengo a capo, potete postare un template di
>>> edit minimo per plone3? Vi ringrazio :)
>>>
>>>       
>> Per chiarire, volevo evitare un template del tipo:
>>
>> =================
>>
>> <tal:block metal:define-macro="master"
>>          define="view context/@@at_base_edit_view;
>>                  dummy python:view.isTemporaryObject() and
>> request.set('disable_border', True);
>>                  lifecycle context/@@at_lifecycle_view;
>>                  lock_info context/@@plone_lock_info;
>>                  dummy lifecycle/begin_edit;
>>                  errors options/state/getErrors | nothing;
>>                  Iterator
>> python:modules['Products.Archetypes'].IndexIterator;
>>                  schematas here/Schemata;
>>                  allow_tabbing python: not view.isMultiPageSchema();
>>                  fieldsets python:[key for key in schematas.keys() if
>> (schematas[key].editableFields(here, visible_only=True))];
>>                  default_fieldset python:(not fieldsets or 'default' in
>> fieldsets) and 'default' or fieldsets[0];
>>                  fieldset
>> request/fieldset|options/fieldset|default_fieldset;
>>                  fields python:[f for key in fieldsets for f in
>> schematas[key].editableFields(here)];
>>                  dummy python:here.at_isEditable(fields);
>>                  portal_type
>> python:here.getPortalTypeName().lower().replace(' ', '_');
>>                  type_name here/getPortalTypeName|here/archetype_name;
>>                  base_macros here/edit_macros/macros;
>>                  edit_template python:'%s_edit' % portal_type;
>>                  edit_macros python:path('here/%s/macros | nothing' %
>> edit_template);
>>                  header_macro edit_macros/header | header_macro |
>> base_macros/header;
>>                  typedescription_macro edit_macros/typedescription |
>> typedescription_macro | base_macros/typedescription;
>>                  body_macro edit_macros/body | body_macro |
>> base_macros/body;
>>                  footer_macro edit_macros/footer | footer_macro |
>> base_macros/footer;
>>                  isLocked isLocked | lock_info/is_locked_for_current_user;
>>                  css python:here.getUniqueWidgetAttr(fields, 'helper_css');
>>                  js python:here.getUniqueWidgetAttr(fields, 'helper_js');">
>>
>> <html xmlns="http://www.w3.org/1999/xhtml"
>>     xml:lang="en"
>>     lang="en"
>>     xmlns:tal="http://xml.zope.org/namespaces/tal"
>>     xmlns:metal="http://xml.zope.org/namespaces/metal"
>>     xmlns:i18n="http://xml.zope.org/namespaces/i18n"
>>     metal:use-macro="here/main_template/macros/master"
>>     i18n:domain="plone">
>>
>>  <metal:head fill-slot="top_slot">
>>   <tal:block define="macro edit_macros/topslot | nothing"
>>                   condition="macro">
>>     <metal:block use-macro="macro" />
>>   </tal:block>
>>  </metal:head>
>>
>>  <metal:javascript_head fill-slot="javascript_head_slot">
>>   <tal:block define="macro here/archetypes_custom_js/macros/javascript_head
>> | nothing"
>>              condition="macro">
>>     <metal:block use-macro="macro" />
>>   </tal:block>
>>   <tal:js condition="js"
>>           repeat="item js">
>>     <script type="text/javascript"
>>             charset="iso-8859-1"
>>             tal:condition="python:exists('portal/%s' % item)"
>>             tal:attributes="src string:$portal_url/$item">
>>     </script>
>>   </tal:js>
>>   <tal:block define="macro edit_macros/javascript_head | nothing"
>>                   condition="macro">
>>     <metal:block use-macro="macro" />
>>   </tal:block>
>>  </metal:javascript_head>
>>
>>  <metal:css fill-slot="css_slot">
>>   <tal:css condition="css"
>>            repeat="item css">
>>     <style type="text/css"
>>            media="all"
>>            tal:condition="python:exists('portal/%s' % item)"
>>            tal:content="structure string:<!-- @import
>> url($portal_url/$item); -->">
>>     </style>
>>   </tal:css>
>>   <tal:block define="macro edit_macros/css | nothing"
>>                   condition="macro">
>>     <metal:block use-macro="macro" />
>>   </tal:block>
>>  </metal:css>
>>   <body>
>>
>>   <metal:fill fill-slot="main">
>>     <metal:main define-macro="main">
>>       <metal:use_header use-macro="header_macro" />
>>       <metal:use_typedescription use-macro="typedescription_macro" />
>>       <metal:use_body use-macro="body_macro" >
>>        <metal:prova fill-slot="widgets">
>>           <tal:tabbed tal:condition="allow_tabbing | nothing">
>>             <fieldset tal:define="sole_fieldset python:len(fieldsets) == 1"
>>                       tal:repeat="fieldset fieldsets"
>>                       tal:attributes="id string:fieldset-${fieldset}"
>>                       tal:omit-tag="sole_fieldset">
>>               <legend id=""
>>                       tal:content="python:
>> view.getTranslatedSchemaLabel(fieldset)"
>>                       tal:attributes="id string:fieldsetlegend-${fieldset}"
>>                       tal:condition="not:sole_fieldset" />
>>               <tal:fields repeat="field
>> python:schematas[fieldset].editableFields(here, visible_only=True)">
>> <tal:block tal:condition="python:field.getName() <> 'referee'">
>>                 <metal:fieldMacro
>> use-macro="python:here.widget(field.getName(), mode='edit')" />
>> </tal:block>
>>               </tal:fields>
>>             </fieldset>
>>           </tal:tabbed>
>>           <tal:nottabbed tal:condition="not: allow_tabbing | nothing">
>>               <tal:fields repeat="field
>> python:schematas[fieldset].editableFields(here, visible_only=True)">
>>                 <metal:fieldMacro
>> use-macro="python:here.widget(field.getName(), mode='edit')" />
>>               </tal:fields>
>>           </tal:nottabbed>
>>
>>        </metal:prova>
>>       </metal:use_body>
>>       <metal:use_footer use-macro="footer_macro" />
>>     </metal:main>
>>   </metal:fill>
>>
>>  </body>
>>
>> </html>
>>
>> </tal:block>
>>
>> ==================
>>
>>
>>
>>
>> _______________________________________________
>> Plone-IT mailing list
>> Plone-IT a lists.plone.org
>> http://lists.plone.org/mailman/listinfo/plone-it
>> http://www.nabble.com/Plone---Italy-f21728.html
>>
>>     
>
>
>
>   





Maggiori informazioni sulla lista Plone-IT