161 lines
8.4 KiB
Plaintext
Executable file
161 lines
8.4 KiB
Plaintext
Executable file
<tal:block metal:define-macro="master"
|
|
define="errors options/state/getErrors | nothing;
|
|
Iterator python:modules['Products.Archetypes'].IndexIterator;
|
|
schematas here/Schemata;
|
|
fieldsets python:[key for key in schematas.keys() if (key != 'metadata') and (schematas[key].editableFields(here, visible_only=True))];
|
|
default_fieldset python:(not schematas or schematas.has_key('default')) and 'default' or fieldsets[0];
|
|
fieldset request/fieldset|options/fieldset|default_fieldset;
|
|
fields python:schematas[fieldset].editableFields(here);
|
|
dummy python:here.at_isEditable(fields);
|
|
portal_type python:here.getPortalTypeName().lower().replace(' ', '_');
|
|
type_name here/getPortalTypeName|here/archetype_name;
|
|
lockable python:hasattr(here, 'wl_isLocked');
|
|
isLocked python:lockable and here.wl_isLocked();
|
|
tabindex tabindex|python:Iterator(pos=7000);
|
|
isEdit python:True;
|
|
contextObj python:context;
|
|
css python:here.getUniqueWidgetAttr(fields, 'helper_css');
|
|
js python:here.getUniqueWidgetAttr(fields, 'helper_js');
|
|
phaseInfo python: context.getAppyPhases(fieldset=fieldset, forPlone=True);
|
|
phase request/phase|phaseInfo/name;
|
|
pageName python: context.getAppyPage(isEdit, phaseInfo);">
|
|
|
|
<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">
|
|
|
|
<!-- Disable the Standard Plone green tab -->
|
|
<div metal:fill-slot="top_slot">
|
|
<metal:block metal:use-macro="here/global_defines/macros/defines" />
|
|
<div tal:define="dummy python:request.set('disable_border', 1)" />
|
|
</div>
|
|
|
|
<!-- Archetypes stuff for managing Javascript and CSS. If I remove this stuff,
|
|
Javascript popup for dates does not work anyore -->
|
|
<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">
|
|
<div metal:use-macro="here/<!macros!>/macros/showPagePrologue"/>
|
|
<div metal:use-macro="here/<!macros!>/macros/showPageHeader"/>
|
|
|
|
<form name="edit_form" method="post" enctype="multipart/form-data"
|
|
class="enableUnloadProtection atBaseEditForm"
|
|
tal:attributes="action python:here.absolute_url()+'/'+template.id;
|
|
id string:${portal_type}-base-edit">
|
|
|
|
<div metal:use-macro="here/<!macros!>/macros/listFields" />
|
|
|
|
<div class="formControls">
|
|
<input type="hidden" name="fieldset" tal:attributes="value fieldset"/>
|
|
<input type="hidden" name="form.submitted" value="1"/>
|
|
<input type="hidden" name="add_reference.field:record" value=""/>
|
|
<input type="hidden" name="add_reference.type:record" value=""/>
|
|
<input type="hidden" name="add_reference.destination:record" value=""/>
|
|
|
|
<tal:env define="env request/controller_state/kwargs">
|
|
<tal:loop repeat="varname python:('reference_source_url', 'reference_source_field', 'reference_source_fieldset')">
|
|
<tal:reference define="items python:env.get(varname, request.get(varname))"
|
|
condition="items">
|
|
<input tal:repeat="item items" type="hidden"
|
|
tal:attributes="value item;
|
|
name string:form_env.${varname}:list:record"/>
|
|
</tal:reference>
|
|
</tal:loop>
|
|
</tal:env>
|
|
|
|
<tal:comment replace="nothing">Turn 'persistent_' variables from controller_state persistent
|
|
</tal:comment>
|
|
<tal:env repeat="env request/controller_state/kwargs/items">
|
|
<input type="hidden"
|
|
tal:define="key python:env[0];
|
|
value python:env[1]"
|
|
tal:condition="python:key.startswith('persistent_')"
|
|
tal:attributes="name string:form_env.${key}:record;
|
|
value value"/>
|
|
</tal:env>
|
|
|
|
<tal:comment replace="nothing">Turn 'persistent_' variables from forms (GET/POST) persistent
|
|
</tal:comment>
|
|
<tal:env repeat="env request/form">
|
|
<input type="hidden"
|
|
tal:define="key env;
|
|
value request/?env"
|
|
tal:condition="python:key.startswith('persistent_')"
|
|
tal:attributes="name string:form_env.${key}:record;
|
|
value value"/>
|
|
</tal:env>
|
|
|
|
<tal:comment replace="nothing">Store referrer to remember where to go back
|
|
</tal:comment>
|
|
<input type="hidden" name="last_referer"
|
|
tal:define="last_referer python:here.session_restore_value('HTTP_REFERER', request.form.get('last_referer', request.get('HTTP_REFERER')))"
|
|
tal:attributes="value python:(last_referer and '%s/%s' % (here.absolute_url(), template.id) not in last_referer) and last_referer or (here.getParentNode() and here.getParentNode().absolute_url())"/>
|
|
|
|
<tal:comment replace="nothing">Buttons (Previous, Next, Save, etc)</tal:comment>
|
|
<metal:block define-slot="buttons"
|
|
tal:define="pages phaseInfo/pages;
|
|
pageIndex python:pages.index(fieldset);
|
|
numberOfPages python:len(pages)">
|
|
|
|
<tal:previousButton condition="python: pageIndex > 0">
|
|
<input class="context" type="submit" name="form_previous"
|
|
i18n:attributes="value label_previous;" i18n:domain="plone"
|
|
tal:attributes="tabindex tabindex/next;
|
|
disabled python:test(isLocked, 'disabled', None);"/>
|
|
<input type="hidden" name="previousPage" tal:attributes="value python: pages[pageIndex-1]"/>
|
|
</tal:previousButton>
|
|
<tal:nextButton condition="python: pageIndex < numberOfPages - 1">
|
|
<input class="context" type="submit" name="form_next" value="Next"
|
|
i18n:attributes="value label_next;" i18n:domain="plone"
|
|
tal:attributes="tabindex tabindex/next;
|
|
disabled python:test(isLocked, 'disabled', None);"/>
|
|
<input type="hidden" name="nextPage" tal:attributes="value python: pages[pageIndex+1]"/>
|
|
</tal:nextButton>
|
|
<input class="context" type="submit" name="form_submit"
|
|
i18n:attributes="value label_save;" i18n:domain="plone"
|
|
tal:attributes="tabindex tabindex/next;
|
|
disabled python:test(isLocked, 'disabled', None);"/>
|
|
<input class="standalone" type="submit" name="form.button.cancel"
|
|
i18n:attributes="value label_cancel;" i18n:domain="plone"
|
|
tal:attributes="tabindex tabindex/next"/>
|
|
</metal:block>
|
|
</div>
|
|
|
|
</form>
|
|
<div metal:use-macro="here/<!macros!>/macros/showPageFooter"/>
|
|
</metal:fill>
|
|
</body>
|
|
|
|
</html>
|
|
|
|
</tal:block>
|