diff options
author | csitifr <csitifr@gmail.com> | 2012-05-11 16:31:53 +0530 |
---|---|---|
committer | csitifr <csitifr@gmail.com> | 2012-05-11 16:31:53 +0530 |
commit | ffa1efc1acfc176c1dbf659210b41a51eb4d4cad (patch) | |
tree | 65f2e9ba8073f153673701c7a829a261e92b0612 /gstudio/models.py | |
parent | 850672379e02b758d89ed609e7f8a9c009853104 (diff) | |
download | gnowsys-ffa1efc1acfc176c1dbf659210b41a51eb4d4cad.tar.gz |
Dynamic mapping for attribute types done.Dynamic form for relation types added for both types and tokens.Properties for getting ATs and RTs added into models
Diffstat (limited to 'gstudio/models.py')
-rw-r--r-- | gstudio/models.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/gstudio/models.py b/gstudio/models.py index d793db0..be39527 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -268,6 +268,55 @@ class NID(models.Model): except: return None + @property + def getat(self): + """This is will give the possible attributetypes """ + try: + attributetype = [] + ot = self.ref + attributetype.append(ot.subjecttype_of.all()) + attributetype = [num for elem in attributetype for num in elem] + return attributetype + except: + return None + + @property + def getrt(self): + pt =[] #contains parenttype + reltype =[] #contains relationtype + titledict = {} #contains relationtype's title + inverselist = [] #contains relationtype's inverse + finaldict = {} #contains either title of relationtype or inverse of relationtype + listval=[] #contains keys of titledict to check whether parenttype id is equals to listval's left or right subjecttypeid + # pt.append(Objecttype.objects.get(title = str(gbid))) + # name = NID.objects.get(title = str(gbid)) + pt.append(self.ref) + for i in range(len(pt)): + if Relationtype.objects.filter(left_subjecttype = pt[i].id): + reltype.append(Relationtype.objects.filter(left_subjecttype = pt[i].id)) + if Relationtype.objects.filter(right_subjecttype = pt[i].id): + reltype.append(Relationtype.objects.filter(right_subjecttype = pt[i].id)) + + # it converts 2 or more list as one list + reltype = [num for elem in reltype for num in elem] #this rqud for filtering + + for i in reltype: + titledict.update({i:i.id}) + + + for i in range(len(titledict)): + listval.append(Relationtype.objects.get(title = titledict.keys()[i])) + inverselist.append(str(titledict.keys()[i].inverse)) + + + for j in range(len(pt)): + for i in range(len(listval)): + if pt[j].id == listval[i].left_subjecttype_id : + finaldict.update({titledict.values()[i]:titledict.keys()[i]}) + elif pt[j].id == listval[i].right_subjecttype_id: + finaldict.update({titledict.values()[i]:inverselist[i]}) + + return finaldict.values() @property @@ -1385,6 +1434,13 @@ class Attributetype(Nodetype): def __unicode__(self): return self.title + + @property + def getdataType(self): + at = 'attribute'+str(self.get_dataType_display()) + at = at.lower() + return at + class Meta: """ attribute type's meta class |