From 1f863847110e1e0b6724280cff1ad3c255dd800f Mon Sep 17 00:00:00 2001 From: Nikita Karetnikov Date: Mon, 23 Apr 2012 15:38:08 +0400 Subject: Custom manage.py commands for peers. Subclass for non-human users in models.py --- gstudio/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index d793db0..a9d6928 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -1950,5 +1950,10 @@ post_save.connect(ping_directories_handler, sender=Nodetype, post_save.connect(ping_external_urls_handler, sender=Nodetype, dispatch_uid='gstudio.nodetype.post_save.ping_external_urls') +class Peer(User): + """Subclass for non-human users""" + def __unicode__(self): + return self.ip - + ip = models.IPAddressField("Peer's IP address") + pkey = models.CharField(("Peer's public-key"), max_length=255) -- cgit v1.1 From eebf47e459a51288494ca2a3c8ae19a0ffbf4eac Mon Sep 17 00:00:00 2001 From: Anuja Date: Thu, 26 Apr 2012 15:45:13 +0530 Subject: Modified Relation and Attribute admin forms --- gstudio/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index a9d6928..4fa9380 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -1319,10 +1319,10 @@ class Relationtype(Nodetype): ''' inverse = models.CharField(_('inverse name'), help_text=_('when subjecttypes are interchanged, what should be the name of the relation type? This is mandatory field. If the relation is symmetric, same name will do.'), max_length=255,db_index=True ) left_subjecttype = models.ForeignKey(NID,related_name="left_subjecttype_of", verbose_name='left role') - left_applicable_nodetypes = models.CharField(max_length=2,choices=NODETYPE_CHOICES,default='OT', verbose_name='Node types for left role') + left_applicable_nodetypes = models.CharField(max_length=2,choices=NODETYPE_CHOICES,default='OT', verbose_name='Applicable node types for left role') left_cardinality = models.IntegerField(null=True, blank=True, verbose_name='cardinality for the left role') right_subjecttype = models.ForeignKey(NID,related_name="right_subjecttype_of", verbose_name='right role') - right_applicable_nodetypes = models.CharField(max_length=2,choices=NODETYPE_CHOICES,default='OT', verbose_name='Node types for right role') + right_applicable_nodetypes = models.CharField(max_length=2,choices=NODETYPE_CHOICES,default='OT', verbose_name='Applicable node types for right role') right_cardinality = models.IntegerField(null=True, blank=True, verbose_name='cardinality for the right role') is_symmetrical = models.NullBooleanField(verbose_name='Is symmetrical?') is_reflexive = models.NullBooleanField(verbose_name='Is reflexive?') -- cgit v1.1 From 7f28aafd641a500474bd078e9cb2d5baf593a0fb Mon Sep 17 00:00:00 2001 From: Kabir Date: Thu, 26 Apr 2012 17:57:50 +0530 Subject: save method added in models to enable registration in reversion --- gstudio/models.py | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index a9d6928..3e036f5 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -106,6 +106,7 @@ import json import reversion from reversion.models import Version from django.core import serializers +from reversion.models import * NODETYPE_CHOICES = ( ('ND', 'Nodes'), @@ -319,6 +320,11 @@ class Node(NID): class Meta: abstract=False + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Node, self).save(*args, **kwargs) # Call the "real" save() method. + + class Edge(NID): @@ -327,6 +333,11 @@ class Edge(NID): class Meta: abstract=False + @reversion.create_revision() + # Save for edge + def save(self, *args, **kwargs): + super(Edge, self).save(*args, **kwargs) # Call the "real" save() method. + class Metatype(Node): @@ -508,6 +519,12 @@ class Metatype(Node): verbose_name = _('metatype') verbose_name_plural = _('metatypes') + # Save for metatype + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Metatype, self).save(*args, **kwargs) # Call the "real" save() method. + + @@ -1131,6 +1148,12 @@ class Nodetype(Node): verbose_name_plural = _('node types') permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + + # Save for nodetype + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Nodetype, self).save(*args, **kwargs) # Call the "real" save() method. + class Objecttype(Nodetype): @@ -1310,6 +1333,12 @@ class Objecttype(Nodetype): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + # Save for Objecttype + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method. + + @@ -1351,6 +1380,12 @@ class Relationtype(Nodetype): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + # Save for Relationtype + @reversion.create_revision() + def save(self, *args, **kwargs): + super(RelationType, self).save(*args, **kwargs) # Call the "real" save() method. + + class Attributetype(Nodetype): ''' @@ -1394,6 +1429,12 @@ class Attributetype(Nodetype): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + # Save for Attributetype + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Attributetype, self).save(*args, **kwargs) # Call the "real" save() method. + + class Relation(Edge): @@ -1484,6 +1525,13 @@ class Relation(Edge): function that composes the right_subject and relation name, as in "x as a friend", "y as a sibling" ''' return '%s as a %s' % (self.right_subject, self.relationtype) + + + # Save for Relation + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Relation, self).save(*args, **kwargs) # Call the "real" save() method. + class Attribute(Edge): @@ -1560,6 +1608,12 @@ class Attribute(Edge): for each in Objecttype.objects.all(): if attr.subjecttype.id == each.id: return each.get_members + + # Save for Attribute + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Attribute, self).save(*args, **kwargs) # Call the "real" save() method. + @@ -1570,12 +1624,23 @@ class AttributeCharField(Attribute): def __unicode__(self): return self.title + + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeCharField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeTextField(Attribute): value = models.TextField(verbose_name='text') def __unicode__(self): return self.title + + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeTextField, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeIntegerField(Attribute): value = models.IntegerField(max_length=100, verbose_name='Integer') @@ -1583,6 +1648,12 @@ class AttributeIntegerField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + + + class AttributeCommaSeparatedIntegerField(Attribute): value = models.CommaSeparatedIntegerField(max_length=100, verbose_name='integers separated by comma') @@ -1590,6 +1661,10 @@ class AttributeCommaSeparatedIntegerField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeCommaSeparatedIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeBigIntegerField(Attribute): value = models.BigIntegerField(max_length=100, verbose_name='big integer') @@ -1604,12 +1679,19 @@ class AttributePositiveIntegerField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributePositiveIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeDecimalField(Attribute): value = models.DecimalField(max_digits=3, decimal_places=2, verbose_name='decimal') def __unicode__(self): return self.title + def save(self, *args, **kwargs): + super(AttributeDecimalField, self).save(*args, **kwargs) # Call the "real" save() method. class AttributeFloatField(Attribute): @@ -1618,12 +1700,20 @@ class AttributeFloatField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeFloatField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeBooleanField(Attribute): value = models.BooleanField(verbose_name='boolean') def __unicode__(self): return self.title + def save(self, *args, **kwargs): + super(AttributeBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeNullBooleanField(Attribute): @@ -1632,6 +1722,11 @@ class AttributeNullBooleanField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeNullBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeDateField(Attribute): value = models.DateField(max_length=100, verbose_name='date') @@ -1639,12 +1734,22 @@ class AttributeDateField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeDateField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeDateTimeField(Attribute): value = models.DateTimeField(max_length=100, verbose_name='date time') def __unicode__(self): return self.title + + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeDateTimeField, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeTimeField(Attribute): @@ -1653,6 +1758,11 @@ class AttributeTimeField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeTimeField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeEmailField(Attribute): value = models.CharField(max_length=100,verbose_name='value') @@ -1660,6 +1770,11 @@ class AttributeEmailField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeEmailField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeFileField(Attribute): value = models.FileField(upload_to='/media', verbose_name='file') @@ -1667,6 +1782,11 @@ class AttributeFileField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeFileField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeFilePathField(Attribute): value = models.FilePathField(verbose_name='path of file') @@ -1674,6 +1794,11 @@ class AttributeFilePathField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeFilePathField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeImageField(Attribute): value = models.ImageField(upload_to='/media', verbose_name='image') @@ -1681,6 +1806,11 @@ class AttributeImageField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeImageField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeURLField(Attribute): value = models.URLField(max_length=100, verbose_name='url') @@ -1688,6 +1818,11 @@ class AttributeURLField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeURLField, self).save(*args, **kwargs) # Call the "real" save() method. + + class AttributeIPAddressField(Attribute): value = models.IPAddressField(max_length=100, verbose_name='ip address') @@ -1695,6 +1830,11 @@ class AttributeIPAddressField(Attribute): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeIPAddressField, self).save(*args, **kwargs) # Call the "real" save() method. + + class Processtype(Nodetype): @@ -1718,6 +1858,10 @@ class Processtype(Nodetype): verbose_name_plural = _('process types') permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Processtype, self).save(*args, **kwargs) # Call the "real" save() method. + @@ -1749,6 +1893,11 @@ class Systemtype(Nodetype): verbose_name_plural = _('system types') permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Systemtype, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeSpecification(Node): @@ -1782,6 +1931,12 @@ class AttributeSpecification(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + @reversion.create_revision() + def save(self, *args, **kwargs): + super(AttributeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + + + class RelationSpecification(Node): """ @@ -1805,11 +1960,17 @@ class RelationSpecification(Node): return self.composed_subject + class Meta: verbose_name = _('relation specification') permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + @reversion.create_revision() + def save(self, *args, **kwargs): + super(RelationSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + + class NodeSpecification(Node): """ @@ -1841,6 +2002,12 @@ class NodeSpecification(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + @reversion.create_revision() + def save(self, *args, **kwargs): + super(NodeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + + + class Expression(Node): """ @@ -1868,6 +2035,11 @@ class Expression(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Expression, self).save(*args, **kwargs) # Call the "real" save() method. + + class Union(Node): @@ -1879,6 +2051,11 @@ class Union(Node): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Union, self).save(*args, **kwargs) # Call the "real" save() method. + + class Complement(Node): @@ -1890,6 +2067,11 @@ class Complement(Node): def __unicode__(self): return self.title + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Complement, self).save(*args, **kwargs) # Call the "real" save() method. + + class Intersection(Node): """ Intersection of classes @@ -1898,6 +2080,11 @@ class Intersection(Node): def __unicode__(self): return self.title + + @reversion.create_revision() + def save(self, *args, **kwargs): + super(Intersection, self).save(*args, **kwargs) # Call the "real" save() method. + reversion.register(NID) -- cgit v1.1 From 82c7268e82bc3b7155e198d42d7edfd5efad3d9b Mon Sep 17 00:00:00 2001 From: Kabir Date: Fri, 27 Apr 2012 11:56:51 +0530 Subject: Small bug ( due to a spelling mistake ) in models fixed --- gstudio/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index f3d2fe1..3432920 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -1383,7 +1383,7 @@ class Relationtype(Nodetype): # Save for Relationtype @reversion.create_revision() def save(self, *args, **kwargs): - super(RelationType, self).save(*args, **kwargs) # Call the "real" save() method. + super(Relationtype, self).save(*args, **kwargs) # Call the "real" save() method. -- cgit v1.1 From 45fb5f2bdda2bbe5fd6bae887a6dfa230e69bb62 Mon Sep 17 00:00:00 2001 From: shefali shetty Date: Thu, 3 May 2012 12:01:36 +0530 Subject: a gnowsys-studio/ --- gstudio/models.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index d793db0..8952bde 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -168,6 +168,10 @@ STATUS_CHOICES = ((DRAFT, _('draft')), (HIDDEN, _('hidden')), (PUBLISHED, _('published'))) + +counter = 1 +attr_counter = -1 + class Author(User): """Proxy Model around User""" @@ -691,6 +695,9 @@ class Nodetype(Node): return attrs + + + def get_graph_json(self): @@ -698,20 +705,21 @@ class Nodetype(Node): g_json = {} g_json["node_metadata"]= [] g_json["relations"]=[] - + global counter + global attr_counter nbh = self.get_nbh predicate_id = {} - counter = 1 + for key in nbh.keys(): - val = "a" + str(counter) + val = str(counter)+"a" predicate_id[key] = val counter = counter + 1 #print predicate_id - attr_counter = -1 + - this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url()} + this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"expanded":"true"} g_json["node_metadata"].append(this_node) for key in predicate_id.keys(): @@ -728,7 +736,7 @@ class Nodetype(Node): if not isinstance(nbh[key],basestring): for item in nbh[key]: #create nodes - g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url()}) + g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false"}) # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 }) #create links @@ -738,14 +746,15 @@ class Nodetype(Node): #value={nbh["plural"]:"a4",nbh["altnames"]:"a5"} #this_node[str(key)]=nbh[key] key, nbh[key] #for item in value.keys(): - g_json["node_metadata"].append({"_id":attr_counter,"screen_name":nbh[key]}) + g_json["node_metadata"].append({"_id":(str(attr_counter)+"a"),"screen_name":nbh[key]}) #g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 }) - g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":attr_counter }) + g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":(str(attr_counter)+"a") }) attr_counter-=1 except: pass #print g_json + return json.dumps(g_json) @property @@ -1141,7 +1150,7 @@ class Objecttype(Nodetype): def __unicode__(self): return self.title - #def get_graph_json(self): + @@ -1243,7 +1252,7 @@ class Objecttype(Nodetype): nbh['posterior_nodes'] = self.posterior_nodes.all() - nbh['authors'] = self.authors.all() + #nbh['authors'] = self.authors.all() return nbh -- cgit v1.1 From be7765e07e626c8be1e3d433ddb2e4f84259cf59 Mon Sep 17 00:00:00 2001 From: shefali shetty Date: Wed, 9 May 2012 11:24:16 +0530 Subject: bug related to 'relation' is rectified --- gstudio/models.py | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index 65262cc..0b6886d 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -729,7 +729,7 @@ class Nodetype(Node): predicate_id = {} for key in nbh.keys(): - val = str(counter)+"a" + val = str(counter) + "a" predicate_id[key] = val counter = counter + 1 #print predicate_id @@ -750,14 +750,30 @@ class Nodetype(Node): #g_json[str(key)].append({"from":self.id , "to":predicate_id[key],"value":1, "level":1 }) g_json["relations"].append({"from":self.id ,"type":str(key),"value":1,"to":predicate_id[key] }) + if not isinstance(nbh[key],basestring): for item in nbh[key]: - #create nodes - g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false"}) - - # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 }) - #create links - g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id }) + if item.reftype!="Relation": + # create nodes + + g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false"}) + + # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 }) + #create links + g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id }) + + else: + + if item.left_subject.id==self.id: + item1=item.right_subject + elif item.right_subject.id==self.id: + item1=item.left_subject + + g_json["node_metadata"].append({"_id":str(item1.id),"screen_name":item1.title,"title":self.title, "url":item1.get_absolute_url(),"expanded":"false"}) + + # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 }) + #create links + g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item1.id }) else: #value={nbh["plural"]:"a4",nbh["altnames"]:"a5"} @@ -765,7 +781,7 @@ class Nodetype(Node): #for item in value.keys(): g_json["node_metadata"].append({"_id":(str(attr_counter)+"a"),"screen_name":nbh[key]}) #g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 }) - g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":(str(attr_counter)+"a") }) + g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":(str(attr_counter)+"a")}) attr_counter-=1 except: -- cgit v1.1 From 06db97bafe284e9d974a869db4cb2b6bd86f39de Mon Sep 17 00:00:00 2001 From: shefali shetty Date: Wed, 9 May 2012 14:16:09 +0530 Subject: Arrow marker added to the links --- gstudio/models.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index 0b6886d..f4715a5 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -722,7 +722,8 @@ class Nodetype(Node): g_json = {} g_json["node_metadata"]= [] g_json["relations"]=[] - + g_json["relset"]=[] + global counter global attr_counter nbh = self.get_nbh @@ -737,7 +738,8 @@ class Nodetype(Node): this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"expanded":"true"} - g_json["node_metadata"].append(this_node) + g_json["node_metadata"].append(this_node) + g_json["relset"].append(self.id) for key in predicate_id.keys(): if nbh[key]: @@ -757,6 +759,8 @@ class Nodetype(Node): # create nodes g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false"}) + g_json["relset"].append(item.id) + # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 }) #create links -- cgit v1.1 From 0ea8ff7c34af66f2c8028ea51950f9415537c4ee Mon Sep 17 00:00:00 2001 From: Kabir Date: Fri, 11 May 2012 13:22:27 +0530 Subject: Code modified to enable reversion disable feature --- gstudio/models.py | 334 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 256 insertions(+), 78 deletions(-) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index 65262cc..4e047fc 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -93,6 +93,7 @@ from gstudio.settings import NODETYPE_TEMPLATES from gstudio.settings import NODETYPE_BASE_MODEL from gstudio.settings import MARKDOWN_EXTENSIONS from gstudio.settings import AUTO_CLOSE_COMMENTS_AFTER +from gstudio.settings import GSTUDIO_VERSIONING from gstudio.managers import nodetypes_published from gstudio.managers import NodetypePublishedManager from gstudio.managers import NodePublishedManager @@ -103,11 +104,13 @@ from gstudio.url_shortener import get_url_shortener from gstudio.signals import ping_directories_handler from gstudio.signals import ping_external_urls_handler import json -import reversion +if GSTUDIO_VERSIONING: + import reversion from reversion.models import Version from django.core import serializers from reversion.models import * + NODETYPE_CHOICES = ( ('ND', 'Nodes'), ( 'OB' ,'Objects'), @@ -210,6 +213,9 @@ class NID(models.Model): slug = models.SlugField(help_text=_('used for publication'), unique_for_date='creation_date', max_length=255) + nodemodel = models.CharField(_('nodemodel'),max_length=255) + + def get_serialized_dict(self): @@ -241,22 +247,25 @@ class NID(models.Model): @property def ref(self): - """ - Returns the object reference the id belongs to. - """ - try: - """ - ALGO: get object id, go to version model, return for the given id. - """ - - # Retrieving only the relevant tupleset for the versioned objects - vrs = Version.objects.filter(type=0 , object_id=self.id) - # Returned value is a list, so splice it. - vrs = vrs[0] - except: - return None + return eval(self.nodemodel).objects.get(id=self.id) - return vrs.object + # """ + # Returns the object reference the id belongs to. + # """ + # try: + # """ + # ALGO: get object id, go to version model, return for the given id. + # """ + + # # Retrieving only the relevant tupleset for the versioned objects + # # vrs = Version.objects.filter(type=0 , object_id=self.id) + # # Returned value is a list, so splice it. + # vrs = vrs[0] + # except: + # return None + + # return vrs.object + @property def reftype(self): @@ -266,9 +275,11 @@ class NID(models.Model): try: """ ALGO: simple wrapper for the __class__.__name__ so that it can be used in templates + """ - obj = self.ref - return obj.__class__.__name__ + return self.__class__.__name__ + # obj = self.ref + # return obj.__class__.__name__ except: return None @@ -317,6 +328,8 @@ class Node(NID): sites = models.ManyToManyField(Site, verbose_name=_('sites publication'), related_name='nodetypes') + nbhood = models.TextField(help_text="The neighbourhood of the model.") + published = NodePublishedManager() def __unicode__(self): return self.title @@ -324,11 +337,16 @@ class Node(NID): class Meta: abstract=False - @reversion.create_revision() + def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Node, self).save(*args, **kwargs) # Call the "real" save() method. super(Node, self).save(*args, **kwargs) # Call the "real" save() method. + + class Edge(NID): @@ -337,9 +355,11 @@ class Edge(NID): class Meta: abstract=False - @reversion.create_revision() - # Save for edge def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Edge, self).save(*args, **kwargs) # Call the "real" save() method. + super(Edge, self).save(*args, **kwargs) # Call the "real" save() method. @@ -524,8 +544,12 @@ class Metatype(Node): verbose_name_plural = _('metatypes') # Save for metatype - @reversion.create_revision() + def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Metatype, self).save(*args, **kwargs) # Call the "real" save() method. + super(Metatype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1159,8 +1183,10 @@ class Nodetype(Node): ('can_change_author', 'Can change author'), ) # Save for nodetype - @reversion.create_revision() def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Nodetype, self).save(*args, **kwargs) # Call the "real" save() method. super(Nodetype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1343,8 +1369,13 @@ class Objecttype(Nodetype): ('can_change_author', 'Can change author'), ) # Save for Objecttype - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method. + super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1390,8 +1421,14 @@ class Relationtype(Nodetype): ('can_change_author', 'Can change author'), ) # Save for Relationtype - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + self.nodemodel = self.__class__.__name__ + + super(Relationtype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1439,8 +1476,13 @@ class Attributetype(Nodetype): ('can_change_author', 'Can change author'), ) # Save for Attributetype - @reversion.create_revision() + def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Attributetype, self).save(*args, **kwargs) # Call the "real" save() method. super(Attributetype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1537,8 +1579,12 @@ class Relation(Edge): # Save for Relation - @reversion.create_revision() + def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Relation, self).save(*args, **kwargs) # Call the "real" save() method. super(Relation, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1619,8 +1665,13 @@ class Attribute(Edge): return each.get_members # Save for Attribute - @reversion.create_revision() + def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Attribute, self).save(*args, **kwargs) # Call the "real" save() method. + super(Attribute, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1634,8 +1685,13 @@ class AttributeCharField(Attribute): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeCharField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeCharField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1646,8 +1702,12 @@ class AttributeTextField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeTextField, self).save(*args, **kwargs) # Call the "real" save() method. super(AttributeTextField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1657,10 +1717,15 @@ class AttributeIntegerField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): - super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. + class AttributeCommaSeparatedIntegerField(Attribute): @@ -1670,8 +1735,12 @@ class AttributeCommaSeparatedIntegerField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeCommaSeparatedIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. super(AttributeCommaSeparatedIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. class AttributeBigIntegerField(Attribute): @@ -1688,8 +1757,12 @@ class AttributePositiveIntegerField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributePositiveIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. super(AttributePositiveIntegerField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1700,6 +1773,12 @@ class AttributeDecimalField(Attribute): def __unicode__(self): return self.title def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeDecimalField, self).save(*args, **kwargs) # Call the "real" save() method. + + super(AttributeDecimalField, self).save(*args, **kwargs) # Call the "real" save() method. class AttributeFloatField(Attribute): @@ -1709,8 +1788,13 @@ class AttributeFloatField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeFloatField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeFloatField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1721,6 +1805,11 @@ class AttributeBooleanField(Attribute): def __unicode__(self): return self.title def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1731,8 +1820,12 @@ class AttributeNullBooleanField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeNullBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. super(AttributeNullBooleanField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1743,8 +1836,12 @@ class AttributeDateField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeDateField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeDateField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1755,8 +1852,13 @@ class AttributeDateTimeField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeDateTimeField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeDateTimeField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1767,8 +1869,13 @@ class AttributeTimeField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeTimeField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeTimeField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1779,8 +1886,12 @@ class AttributeEmailField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeEmailField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeEmailField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1791,8 +1902,13 @@ class AttributeFileField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeFileField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeFileField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1803,8 +1919,13 @@ class AttributeFilePathField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeFilePathField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeFilePathField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1815,8 +1936,9 @@ class AttributeImageField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ super(AttributeImageField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1827,8 +1949,13 @@ class AttributeURLField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeURLField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeURLField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1839,8 +1966,13 @@ class AttributeIPAddressField(Attribute): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeIPAddressField, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeIPAddressField, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1867,8 +1999,13 @@ class Processtype(Nodetype): verbose_name_plural = _('process types') permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Processtype, self).save(*args, **kwargs) # Call the "real" save() method. + super(Processtype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1903,8 +2040,13 @@ class Systemtype(Nodetype): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Systemtype, self).save(*args, **kwargs) # Call the "real" save() method. + super(Systemtype, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1932,6 +2074,7 @@ class AttributeSpecification(Node): def __unicode__(self): + self.nodemodel = self.__class__.__name__ return self.composed_subject @@ -1940,8 +2083,13 @@ class AttributeSpecification(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(AttributeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + super(AttributeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. @@ -1975,8 +2123,13 @@ class RelationSpecification(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(RelationSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + super(RelationSpecification, self).save(*args, **kwargs) # Call the "real" save() method. @@ -2011,8 +2164,13 @@ class NodeSpecification(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(NodeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. + super(NodeSpecification, self).save(*args, **kwargs) # Call the "real" save() method. @@ -2044,8 +2202,13 @@ class Expression(Node): permissions = (('can_view_all', 'Can view all'), ('can_change_author', 'Can change author'), ) - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Expression, self).save(*args, **kwargs) # Call the "real" save() method. + super(Expression, self).save(*args, **kwargs) # Call the "real" save() method. @@ -2060,8 +2223,13 @@ class Union(Node): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Union, self).save(*args, **kwargs) # Call the "real" save() method. + super(Union, self).save(*args, **kwargs) # Call the "real" save() method. @@ -2076,8 +2244,13 @@ class Complement(Node): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Complement, self).save(*args, **kwargs) # Call the "real" save() method. + super(Complement, self).save(*args, **kwargs) # Call the "real" save() method. @@ -2090,48 +2263,53 @@ class Intersection(Node): def __unicode__(self): return self.title - @reversion.create_revision() + # @reversion.create_revision() def save(self, *args, **kwargs): + self.nodemodel = self.__class__.__name__ + if GSTUDIO_VERSIONING: + with reversion.create_revision(): + super(Intersection, self).save(*args, **kwargs) # Call the "real" save() method. + super(Intersection, self).save(*args, **kwargs) # Call the "real" save() method. +if GSTUDIO_VERSIONING == True: + reversion.register(NID) -reversion.register(NID) - -if not reversion.is_registered(Systemtype): - reversion.register(Systemtype) + if not reversion.is_registered(Systemtype): + reversion.register(Systemtype) -if not reversion.is_registered(Objecttype): - reversion.register(Objecttype , follow=["nodetype_ptr"]) + if not reversion.is_registered(Objecttype): + reversion.register(Objecttype , follow=["nodetype_ptr"]) -if not reversion.is_registered(Node): - reversion.register(Node , follow=["nid_ptr"]) + if not reversion.is_registered(Node): + reversion.register(Node , follow=["nid_ptr"]) -if not reversion.is_registered(Edge): - reversion.register(Edge , follow=["nid_ptr"]) + if not reversion.is_registered(Edge): + reversion.register(Edge , follow=["nid_ptr"]) -if not reversion.is_registered(Processtype): - reversion.register(Processtype, follow=["changing_attributetype_set", "changing_relationtype_set"]) + if not reversion.is_registered(Processtype): + reversion.register(Processtype, follow=["changing_attributetype_set", "changing_relationtype_set"]) -if not reversion.is_registered(Nodetype): - reversion.register(Nodetype, follow=["node_ptr","parent", "metatypes","prior_nodes", "posterior_nodes"]) + if not reversion.is_registered(Nodetype): + reversion.register(Nodetype, follow=["node_ptr","parent", "metatypes","prior_nodes", "posterior_nodes"]) -if not reversion.is_registered(Metatype): - reversion.register(Metatype, follow=["node_ptr","parent"]) + if not reversion.is_registered(Metatype): + reversion.register(Metatype, follow=["node_ptr","parent"]) -if not reversion.is_registered(Relationtype): - reversion.register(Relationtype, follow=["left_subjecttype", "right_subjecttype"]) + if not reversion.is_registered(Relationtype): + reversion.register(Relationtype, follow=["left_subjecttype", "right_subjecttype"]) -if not reversion.is_registered(Attributetype): - reversion.register(Attributetype, follow=["subjecttype"]) + if not reversion.is_registered(Attributetype): + reversion.register(Attributetype, follow=["subjecttype"]) -if not reversion.is_registered(Attribute): - reversion.register(Attribute, follow=["subject", "attributetype"]) + if not reversion.is_registered(Attribute): + reversion.register(Attribute, follow=["subject", "attributetype"]) -if not reversion.is_registered(Relation): - reversion.register(Relation, follow=["left_subject", "right_subject", "relationtype"]) + if not reversion.is_registered(Relation): + reversion.register(Relation, follow=["left_subject", "right_subject", "relationtype"]) moderator.register(Nodetype, NodetypeCommentModerator) mptt.register(Metatype, order_insertion_by=['title']) -- cgit v1.1 From 25e512e5397bfc9a8c9d253d31cd1e0a4a2251d6 Mon Sep 17 00:00:00 2001 From: Kabir Date: Fri, 11 May 2012 15:45:27 +0530 Subject: Error related to graphs not showing up for objects corrected --- gstudio/models.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gstudio/models.py') diff --git a/gstudio/models.py b/gstudio/models.py index c28b81c..e3e9fbb 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -103,6 +103,7 @@ from gstudio.moderator import NodetypeCommentModerator from gstudio.url_shortener import get_url_shortener from gstudio.signals import ping_directories_handler from gstudio.signals import ping_external_urls_handler + import json if GSTUDIO_VERSIONING: import reversion @@ -247,6 +248,7 @@ class NID(models.Model): @property def ref(self): + from objectapp.models import * return eval(self.nodemodel).objects.get(id=self.id) # """ -- cgit v1.1