Merge branch 'master' into bbmaster

This commit is contained in:
Helmut Merz 2012-04-14 12:39:47 +02:00
commit ba108d4625
5 changed files with 39 additions and 18 deletions

View file

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

View file

@ -71,18 +71,19 @@
</form>
<metal:block define-macro="create" i18n:domain="loops">
<div dojoType="dijit.layout.BorderContainer"
<form metal:define-macro="create" i18n:domain="loops"
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"
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"
tal:omit-tag="not:view/isInnerHtml">
<input type="hidden" name="form.action" value="create"
@ -113,6 +114,7 @@
tal:condition="fixedType"
tal:attributes="value typeToken" />
<script type="text/javascript"
tal:condition="not:fixedType"
tal:content="string:replaceFieldsNode(
'form.fields', 'form.type',
'${view/virtualTargetUrl}/$innerForm')">
@ -135,9 +137,8 @@
</table>
</div>
<div metal:use-macro="view/template/macros/buttons" />
</form>
</div>
</metal:block>
</div>
</form>
<metal:assignments define-macro="assignments"

View file

@ -39,7 +39,17 @@ class TextField(Field):
def getDisplayValue(self, row):
value = self.getValue(row)
return row.parent.context.view.renderText(value, self.format)
text = row.parent.context.view.renderText(value, self.format)
text = self.removeTopSpacing(text)
return text
def removeTopSpacing(self, text):
styleInfo = u' style="margin-top: 0"'
for tag in (u'<p', u'<ol', u'<ul'):
if text.startswith(tag):
text = tag + styleInfo + text[len(tag):]
break
return text
class DecimalField(Field):
@ -207,4 +217,4 @@ class SubReportField(Field):
def getValue(self, row):
ri = self.getReportInstance(row)
return ri.getResults()

View file

@ -62,6 +62,10 @@ class LanguageInfo(object):
if len(available) == 1:
return available[0]
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:
return lang
return (negotiator.getLanguage(available, self.request)

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
# Copyright (c) 2012 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -29,6 +29,7 @@ from zope.schema.interfaces import IContextSourceBinder, IIterableSource
from cybertools.composer.schema.factory import SchemaFactory
from cybertools.composer.schema.grid.interfaces import KeyTable
from cybertools.composer.interfaces import IInstance
from loops.common import AdapterBase, adapted, baseObject
from loops.interfaces import IConcept, IConceptSchema, ILoopsAdapter
from loops.type import TypeInterfaceSourceList
@ -111,8 +112,10 @@ class DataTableSourceBinder(object):
self.tableName = tableName
def __call__(self, instance):
#context = baseObject(instance.context)
context = instance.view.nodeView.context
if IInstance.providedBy(instance):
context = instance.view.nodeView.context
else:
context = baseObject(instance.context)
dt = context.getLoopsRoot().getConceptManager()[self.tableName]
return DataTableSourceList(adapted(dt))