unify create and edit forms; i18n fix: check session

This commit is contained in:
Helmut Merz 2012-04-14 11:49:59 +02:00
parent a67bb15dd0
commit 738e82fb0b
3 changed files with 21 additions and 13 deletions

View file

@ -149,6 +149,9 @@ class ObjectForm(NodeView):
@Lazy @Lazy
def data(self): def data(self):
return self.getData()
def getData(self):
instance = self.instance instance = self.instance
data = instance.applyTemplate(mode='edit') data = instance.applyTemplate(mode='edit')
form = self.request.form form = self.request.form

View file

@ -71,18 +71,19 @@
</form> </form>
<metal:block define-macro="create" i18n:domain="loops"> <form metal:define-macro="create" i18n:domain="loops"
<div dojoType="dijit.layout.BorderContainer" method="post" enctype="multipart/form-data"
id="dialog_form" class="dialog"
dojoType="dijit.form.Form"
tal:define="qualifier request/qualifier|view/qualifier|string:resource;
innerForm request/inner_form|view/inner_form|string:inner_form.html;
typeToken view/typeToken;
fixedType view/fixedType;
langInfo view/languageInfo;
language langInfo/language">
<div dojoType="dijit.layout.BorderContainer"
style="width: 70em; height: 600px" style="width: 70em; height: 600px"
tal:omit-tag="not:view/isInnerHtml"> tal:omit-tag="not:view/isInnerHtml">
<form method="post" enctype="multipart/form-data"
id="dialog_form" class="dialog"
tal:define="qualifier request/qualifier|view/qualifier|string:resource;
innerForm request/inner_form|view/inner_form|string:inner_form.html;
typeToken view/typeToken;
fixedType view/fixedType;
langInfo view/languageInfo;
language langInfo/language">
<div dojoType="dijit.layout.ContentPane" region="center" <div dojoType="dijit.layout.ContentPane" region="center"
tal:omit-tag="not:view/isInnerHtml"> tal:omit-tag="not:view/isInnerHtml">
<input type="hidden" name="form.action" value="create" <input type="hidden" name="form.action" value="create"
@ -113,6 +114,7 @@
tal:condition="fixedType" tal:condition="fixedType"
tal:attributes="value typeToken" /> tal:attributes="value typeToken" />
<script type="text/javascript" <script type="text/javascript"
tal:condition="not:fixedType"
tal:content="string:replaceFieldsNode( tal:content="string:replaceFieldsNode(
'form.fields', 'form.type', 'form.fields', 'form.type',
'${view/virtualTargetUrl}/$innerForm')"> '${view/virtualTargetUrl}/$innerForm')">
@ -135,9 +137,8 @@
</table> </table>
</div> </div>
<div metal:use-macro="view/template/macros/buttons" /> <div metal:use-macro="view/template/macros/buttons" />
</form> </div>
</div> </form>
</metal:block>
<metal:assignments define-macro="assignments" <metal:assignments define-macro="assignments"

View file

@ -62,6 +62,10 @@ class LanguageInfo(object):
if len(available) == 1: if len(available) == 1:
return available[0] return available[0]
lang = self.request.get('loops.language') lang = self.request.get('loops.language')
if lang is not None and lang in available:
return lang
session = ISession(self.request)[packageId]
lang = session.get('language')
if lang is not None and lang in available: if lang is not None and lang in available:
return lang return lang
return (negotiator.getLanguage(available, self.request) return (negotiator.getLanguage(available, self.request)