summaryrefslogtreecommitdiff
path: root/gstudio/models.py
diff options
context:
space:
mode:
authorcsitifr <csitifr@gmail.com>2012-05-11 16:31:53 +0530
committercsitifr <csitifr@gmail.com>2012-05-11 16:31:53 +0530
commitffa1efc1acfc176c1dbf659210b41a51eb4d4cad (patch)
tree65f2e9ba8073f153673701c7a829a261e92b0612 /gstudio/models.py
parent850672379e02b758d89ed609e7f8a9c009853104 (diff)
downloadgnowsys-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.py56
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