|
|
|
@ -157,7 +157,12 @@ class Field(DataVarsSerializer):
|
|
|
|
|
uncompatible = String # message for uncompatibility variable
|
|
|
|
|
comments = Array(String) # comments for choice
|
|
|
|
|
|
|
|
|
|
def __init__(self,dv=None,varObj=None,expert=False,**kwargs):
|
|
|
|
|
def __init__(self,dv=None,varObj=None,expert=False,briefmode=False,
|
|
|
|
|
inbrief=False,**kwargs):
|
|
|
|
|
"""
|
|
|
|
|
dv - datavars, varObj - current variable, expert - expert variable flag,
|
|
|
|
|
briefmode - view request for brief, inbrief - variable palced in brief,
|
|
|
|
|
"""
|
|
|
|
|
if dv:
|
|
|
|
|
super(Field,self).__init__()
|
|
|
|
|
self.name = varObj.name
|
|
|
|
@ -168,11 +173,15 @@ class Field(DataVarsSerializer):
|
|
|
|
|
self.help = varObj.help
|
|
|
|
|
self.element = varObj.element or \
|
|
|
|
|
self.elementByType(self.type)
|
|
|
|
|
self.uncompatible = dv.Uncompatible(varObj.name)
|
|
|
|
|
if inbrief:
|
|
|
|
|
self.uncompatible = ""
|
|
|
|
|
else:
|
|
|
|
|
self.uncompatible = dv.Uncompatible(varObj.name)
|
|
|
|
|
if self.uncompatible:
|
|
|
|
|
dv.Invalidate(varObj.name,onlySet=True)
|
|
|
|
|
if expert:
|
|
|
|
|
self.default = not varObj.wasSet
|
|
|
|
|
self.choice, self.comments = self.getChoice(varObj)
|
|
|
|
|
if self.type == "table":
|
|
|
|
|
self.tablevalue = Table(dv=dv,varObj=varObj)
|
|
|
|
|
if self.tablevalue.writable:
|
|
|
|
@ -182,10 +191,12 @@ class Field(DataVarsSerializer):
|
|
|
|
|
if type(value) == list:
|
|
|
|
|
self.listvalue = self.arrayString(value)
|
|
|
|
|
else:
|
|
|
|
|
self.value = value
|
|
|
|
|
if briefmode and not "choice" in self.type:
|
|
|
|
|
self.value = dv.Get(varObj.name,humanreadable=True)
|
|
|
|
|
else:
|
|
|
|
|
self.value = value
|
|
|
|
|
#if self.value:
|
|
|
|
|
# self.default = self.value
|
|
|
|
|
self.choice, self.comments = self.getChoice(varObj)
|
|
|
|
|
else:
|
|
|
|
|
super(Field,self).__init__(**kwargs)
|
|
|
|
|
|
|
|
|
@ -199,7 +210,7 @@ class GroupField(DataVarsSerializer):
|
|
|
|
|
|
|
|
|
|
def __init__(self,name="",fields=[],prevlabel="",
|
|
|
|
|
nextlabel="",last=False,dv=None,info=None,
|
|
|
|
|
expert=False):
|
|
|
|
|
expert=False,brief=False):
|
|
|
|
|
super(GroupField,self).__init__()
|
|
|
|
|
self.last = last
|
|
|
|
|
if dv:
|
|
|
|
@ -209,7 +220,10 @@ class GroupField(DataVarsSerializer):
|
|
|
|
|
self.fields = []
|
|
|
|
|
|
|
|
|
|
for varname in info['normal']:
|
|
|
|
|
self.fields.append(Field(dv=dv,varObj=dv.getInfo(varname)))
|
|
|
|
|
inbrief = brief and varname in info['brief']
|
|
|
|
|
self.fields.append(Field(dv=dv,inbrief=inbrief,
|
|
|
|
|
briefmode = brief,
|
|
|
|
|
varObj=dv.getInfo(varname)))
|
|
|
|
|
|
|
|
|
|
if info['expert']:
|
|
|
|
|
for varname in info['expert']:
|
|
|
|
@ -220,7 +234,10 @@ class GroupField(DataVarsSerializer):
|
|
|
|
|
label=info['expert_label'],
|
|
|
|
|
value="open"))
|
|
|
|
|
for varname in info['expert']:
|
|
|
|
|
inbrief = brief and varname in info['brief']
|
|
|
|
|
self.fields.append(Field(dv=dv,expert=True,
|
|
|
|
|
inbrief=inbrief,
|
|
|
|
|
briefmode = brief,
|
|
|
|
|
varObj=dv.getInfo(varname)))
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
@ -252,7 +269,8 @@ class ViewInfo(DataVarsSerializer):
|
|
|
|
|
for i, groupInfo in enumerate(varGroups):
|
|
|
|
|
if step in (None,-1) or step == i:
|
|
|
|
|
self.groups.append(GroupField(dv=datavars,info=groupInfo,
|
|
|
|
|
last=(lastGroup==i),expert=expert))
|
|
|
|
|
last=(lastGroup==i),expert=expert,
|
|
|
|
|
brief=brief))
|
|
|
|
|
else:
|
|
|
|
|
self.groups = groups
|
|
|
|
|
|
|
|
|
|