Bugfixes in appyObj.dump and in master/slave relationships.
This commit is contained in:
parent
74d28a76c0
commit
309ea921fa
|
@ -217,13 +217,18 @@ class AbstractMixin:
|
|||
else: params = '?' + params
|
||||
return rq.RESPONSE.redirect(url+params)
|
||||
|
||||
def getAppyValue(self, name, appyType=None, useParamValue=False,value=None):
|
||||
def getAppyValue(self, name, appyType=None, useParamValue=False,
|
||||
value=None, forMasterId=False):
|
||||
'''Returns the value of field (or method) p_name for this object
|
||||
(p_self). If p_appyType (the corresponding Appy type) is provided,
|
||||
it gives additional information about the way to render the value.
|
||||
If p_useParamValue is True, the method uses p_value instead of the
|
||||
real field value (useful for rendering a value from the object
|
||||
history, for example).'''
|
||||
history, for example).
|
||||
|
||||
If p_forMasterId is True, it returns the value as will be needed to
|
||||
produce an identifier used within HTML pages for master/slave
|
||||
relationships.'''
|
||||
# Which value will we use ?
|
||||
if useParamValue: v = value
|
||||
else:
|
||||
|
@ -243,7 +248,7 @@ class AbstractMixin:
|
|||
res += ' %s' % v.strftime('%H:%M')
|
||||
return res
|
||||
elif vType == 'String':
|
||||
if not v: return v
|
||||
if not v or forMasterId: return v
|
||||
if appyType['isSelect']:
|
||||
validator = appyType['validator']
|
||||
if isinstance(validator, Selection):
|
||||
|
|
|
@ -72,6 +72,7 @@
|
|||
|
||||
<div metal:define-macro="showComputedField">
|
||||
<span class="appyLabel" tal:condition="showLabel" tal:content="label"></span>
|
||||
<span class="formHelp" tal:content="structure description"></span>
|
||||
<tal:showValue define="theValue python: contextObj.getComputedValue(appyType)">
|
||||
<span tal:condition="appyType/plainText" tal:replace="theValue"/>
|
||||
<span tal:condition="not: appyType/plainText" tal:replace="structure theValue"/>
|
||||
|
@ -80,7 +81,7 @@
|
|||
|
||||
<div metal:define-macro="showInfoField">
|
||||
<span class="appyLabel" tal:content="structure label"></span>
|
||||
<span tal:content="structure description"></span>
|
||||
<span class="formHelp" tal:content="structure description"></span>
|
||||
</div>
|
||||
|
||||
<div metal:define-macro="showActionField">
|
||||
|
@ -122,7 +123,7 @@
|
|||
<tal:simpleString condition="python: fmt in (0, 3)">
|
||||
<span tal:condition="showLabel" tal:content="label" class="appyLabel"
|
||||
tal:attributes="class python: 'appyLabel ' + contextObj.getCssClasses(appyType, asSlave=False);
|
||||
id python: v"></span>
|
||||
id python: contextObj.getAppyValue(field.getName(), appyType, forMasterId=True)"></span>
|
||||
<ul class="appyList" tal:condition="python: v and severalValues">
|
||||
<li class="appyBullet" tal:repeat="sv v"><i tal:content="structure sv"></i></li>
|
||||
</ul>
|
||||
|
@ -223,7 +224,7 @@
|
|||
<tal:masterString condition="python: isEdit and (appyType['type'] in ('String', 'Boolean')) and (appyType['slaves'])">
|
||||
<metal:mf use-macro="here/skyn/macros/macros/editField" />
|
||||
</tal:masterString>
|
||||
<tal:infoField condition="python: (not isEdit) and (appyType['type'] == 'Info')">
|
||||
<tal:infoField condition="python: appyType['type'] == 'Info'">
|
||||
<metal:af use-macro="here/skyn/macros/macros/showInfoField" />
|
||||
</tal:infoField>
|
||||
<tal:podField condition="python: (not isEdit) and (appyType['type'] == 'Pod')">
|
||||
|
|
|
@ -421,7 +421,7 @@ class FileWrapper:
|
|||
OpenOffice in server mode.'''
|
||||
if not filePath:
|
||||
filePath = '%s/file%f.%s' % (getOsTempFolder(), time.time(),
|
||||
self.name)
|
||||
normalizeString(self.name))
|
||||
f = file(filePath, 'w')
|
||||
if self.content.__class__.__name__ == 'Pdata':
|
||||
# The file content is splitted in several chunks.
|
||||
|
|
|
@ -91,7 +91,7 @@ def normalizeString(s, usage='fileName'):
|
|||
elif not isinstance(s, unicode): s = unicode(s)
|
||||
if usage == 'fileName':
|
||||
# Remove any char that can't be found within a file name under
|
||||
# Windows.
|
||||
# Windows or that could lead to problems with OpenOffice.
|
||||
res = ''
|
||||
for char in s:
|
||||
if char not in unwantedChars:
|
||||
|
|
Loading…
Reference in a new issue