Add brief support

master3.3
parent 03ee5c45a4
commit 50096d804a

@ -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

Loading…
Cancel
Save