diff options
author | Anuja <anujag@anujag-Latitude-D630.(none)> | 2012-03-19 16:38:01 +0530 |
---|---|---|
committer | Anuja <anujag@anujag-Latitude-D630.(none)> | 2012-03-19 16:38:01 +0530 |
commit | 33e34a918490dab6a34ddfc0748297241a043291 (patch) | |
tree | 82d31140d236763b999a29f7488165c25af1d091 /gstudio/models.py | |
parent | 7a4f561e851fdc7246d804c3abb6748b8a4199a6 (diff) | |
download | gnowsys-33e34a918490dab6a34ddfc0748297241a043291.tar.gz |
Changes made on urls,models,base,skeleton etc
Diffstat (limited to 'gstudio/models.py')
-rw-r--r-- | gstudio/models.py | 132 |
1 files changed, 124 insertions, 8 deletions
diff --git a/gstudio/models.py b/gstudio/models.py index 8e42807f..a1ddf941 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -753,6 +753,97 @@ class Nodetype(Node): return relations @property + def get_relations1(self): + """ + Returns all the relations of the nodetype + """ + relations={} + reltype={} + left_relations=Relation.objects.filter(left_subject=self.id) + if left_relations: + for each in left_relations: + relation=each.relationtype.title + predicate=each.right_subject + predicate_values=[] + if reltype: + fl=0 + for key,value in reltype.items(): + if type(value) <> list: + t=[] + t.append(value) + predicate_values=t + else: + predicate_values=value + if each.relationtype.title==key: + fl=1 + predicate_values.append(predicate) + reltype[key]=predicate_values + if fl==0: + predicate_values=predicate + reltype[relation]=predicate_values + else: + predicate_values.append(predicate) + reltype[relation]=predicate_values + relations['lrelations']=reltype + + right_relations=Relation.objects.filter(right_subject=self.id) + reltype={} + if right_relations: + for each in right_relations: + relation=each.relationtype.inverse + predicate=each.left_subject + predicate_values=[] + if reltype: + fl=0 + for key,value in reltype.items(): + if type(value) <> list: + t=[] + t.append(value) + prdicate_values=t + else: + predicate_values=value + if each.relationtype.inverse==key: + fl=1 + predicate_values.append(predicate) + reltype[key]=predicate_values + + if fl==0: + predicate_values=predicate + reltype[relation]=predicate_values + + else: + predicate_values.append(predicate) + reltype[relation]=predicate_values + relations['rrelations']=reltype + return relations + + @property + def get_attributes(self): + attributes_dict = {} + all_attributes=self.subject_of.all() + for attributes in all_attributes: + val=[] + atr_key=attributes.attributetype.title + val.append(attributes.svalue) + + if attributes_dict: + fl=0 + itms=attributes_dict + + for key,value in itms.items(): + if atr_key in key: + fl=1 + if type(value) <> list: + t=[] + t.append(value) + val.extend(t) + + else: + val.extend(value) + attributes_dict[atr_key]=val + return attributes_dict + + @property def get_rendered_nbh(self): """ Returns the neighbourhood of the nodetype @@ -803,15 +894,40 @@ class Nodetype(Node): nbh['siblings']=siblings #get Relations relns={} - relnvalue={} - if self.get_relations: - NTrelns=self.get_relations - for value in NTrelns: - relnvalue[NTrelns[value].title]=NTrelns[value].ref.get_absolute_url() - relns[value]=relnvalue - nbh['relations']=relns + rellft={} + relrgt={} + if self.get_relations1: + NTrelns=self.get_relations1 + for key,value in NTrelns.items(): + if key=="rrelations": + relrgt={} + for rgtkey,rgtvalue in value.items(): + relnvalue={} + if isinstance(rgtvalue,list): + for items in rgtvalue: + relnvalue[items]=items.get_absolute_url() + else: + relnvalue[rgtvalue]=rgtvalue.get_absolute_url() + + relrgt[rgtkey]=relnvalue + + else: + rellft={} + relns['left']=rellft + for lftkey,lftvalue in value.items(): + relnvalue={} + if isinstance(lftvalue,list): + for items in lftvalue: + relnvalue[items]=items.get_absolute_url() + else: + relnvalue[lftvalue]=lftvalue.get_absolute_url() + + rellft[lftkey]=relnvalue + + nbh['relations']=relrgt + nbh['relations'].update(rellft) #get Attributes - attributes = self.subject_of.all() + attributes =self.get_attributes nbh['attributes']=attributes #get ATs attributetypes={} |