summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshefali shetty <sshefali44@gmail.com>2012-06-05 11:28:01 +0530
committershefali shetty <sshefali44@gmail.com>2012-06-05 11:28:01 +0530
commit8075ac70992db19a0d77b277f13af07f9f4f8b39 (patch)
treee2c3dc81dc1b5a000c8e8ab97aa3795a39b41c47
parent82e6b6a0535a9ffb202ed8c6bb786bdf41a7bb80 (diff)
parent909ba6f95a054a1bbec0045cbc9a64f34582529e (diff)
downloadgnowsys-8075ac70992db19a0d77b277f13af07f9f4f8b39.tar.gz
collapsing done with Ctrl+click event
-rw-r--r--demo/demo.db-oldbin467968 -> 0 bytes
-rw-r--r--demo/init.py17
-rw-r--r--demo/rdfstore/__db.001bin24576 -> 0 bytes
-rw-r--r--demo/rdfstore/__db.002bin3481600 -> 0 bytes
-rw-r--r--demo/rdfstore/__db.003bin65544192 -> 0 bytes
-rw-r--r--demo/rdfstore/__db.004bin802816 -> 0 bytes
-rw-r--r--demo/rdfstore/c^o^s^p^bin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/c^p^o^s^bin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/c^s^p^o^bin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/contextsbin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/i2kbin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/k2ibin12288 -> 0 bytes
-rw-r--r--demo/rdfstore/namespacebin8192 -> 0 bytes
-rw-r--r--demo/rdfstore/prefixbin8192 -> 0 bytes
-rw-r--r--demo/sampledata.json1
-rw-r--r--demo/settings.py4
-rw-r--r--demo/working-demo.dbbin466944 -> 0 bytes
-rw-r--r--dist/django_gstudio-0.3.dev-py2.7.eggbin2414692 -> 0 bytes
-rw-r--r--gstudio/TAGS2725
-rw-r--r--gstudio/admin/objecttype.py1
-rw-r--r--gstudio/models.py962
-rw-r--r--gstudio/settings.py2
-rw-r--r--gstudio/templates/gstudio/display.html261
-rw-r--r--gstudio/templates/gstudio/nodetype_detail.html3
-rw-r--r--gstudio/templates/gstudio/skeleton.html193
-rw-r--r--gstudio/templates/gstudio/version_diff.html333
-rw-r--r--gstudio/urls/history.py6
-rw-r--r--gstudio/views/history.py519
-rw-r--r--objectapp/TAGS1945
-rw-r--r--objectapp/models.py158
-rw-r--r--objectapp/settings.py2
-rw-r--r--objectapp/static/objectapp/js/savert.js2
-rw-r--r--objectapp/templates/objectapp/base.html14
-rw-r--r--objectapp/templates/objectapp/display.html609
-rw-r--r--objectapp/templates/objectapp/fillAT.html2
-rw-r--r--objectapp/templates/objectapp/gbobject_detail.html33
-rw-r--r--objectapp/templates/objectapp/gbobject_list.html2
-rw-r--r--objectapp/templates/objectapp/selectRT.html3
-rw-r--r--objectapp/templates/objectapp/skeleton.html170
-rw-r--r--objectapp/templates/objectapp/version_base.html129
-rw-r--r--objectapp/templates/objectapp/version_diff.html262
-rw-r--r--objectapp/urls/__init__.py1
-rw-r--r--objectapp/urls/history.py10
-rw-r--r--objectapp/views/dynamicAT.py51
-rw-r--r--objectapp/views/dynamicRT.py282
-rw-r--r--objectapp/views/history.py436
46 files changed, 3779 insertions, 5359 deletions
diff --git a/demo/demo.db-old b/demo/demo.db-old
deleted file mode 100644
index 76a326ba..00000000
--- a/demo/demo.db-old
+++ /dev/null
Binary files differ
diff --git a/demo/init.py b/demo/init.py
deleted file mode 100644
index 3df8dfc2..00000000
--- a/demo/init.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from gstudio.models import *
-from objectapp.models import *
-from reversion.models import *
-
-mts = Metatype.objects.all()
-ots = Objecttype.objects.all()
-ot = Objecttype.objects.get(title='person')
-ot2 = Objecttype.objects.get(title='city')
-ot3 = Objecttype.objects.get(title='country')
-ot4 = Objecttype.objects.get(title='place')
-rts = Relationtype.objects.all()
-rt1 = Relationtype.objects.get(title='capital of')
-rs= Relation.objects.all()
-#r1 = Relation.objects.get(relationtype=rt1.id)
-at1 = Attributetype.objects.get(title='population')
-o =Gbobject.objects.get(title='Mumbai')
-a = Attribute.objects.all()
diff --git a/demo/rdfstore/__db.001 b/demo/rdfstore/__db.001
deleted file mode 100644
index c30dd62f..00000000
--- a/demo/rdfstore/__db.001
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/__db.002 b/demo/rdfstore/__db.002
deleted file mode 100644
index 12a404df..00000000
--- a/demo/rdfstore/__db.002
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/__db.003 b/demo/rdfstore/__db.003
deleted file mode 100644
index 7599b34a..00000000
--- a/demo/rdfstore/__db.003
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/__db.004 b/demo/rdfstore/__db.004
deleted file mode 100644
index f5c6f0d2..00000000
--- a/demo/rdfstore/__db.004
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/c^o^s^p^ b/demo/rdfstore/c^o^s^p^
deleted file mode 100644
index 298ca221..00000000
--- a/demo/rdfstore/c^o^s^p^
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/c^p^o^s^ b/demo/rdfstore/c^p^o^s^
deleted file mode 100644
index 4e2d9397..00000000
--- a/demo/rdfstore/c^p^o^s^
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/c^s^p^o^ b/demo/rdfstore/c^s^p^o^
deleted file mode 100644
index 5eb631cf..00000000
--- a/demo/rdfstore/c^s^p^o^
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/contexts b/demo/rdfstore/contexts
deleted file mode 100644
index 8063f531..00000000
--- a/demo/rdfstore/contexts
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/i2k b/demo/rdfstore/i2k
deleted file mode 100644
index bf455a4c..00000000
--- a/demo/rdfstore/i2k
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/k2i b/demo/rdfstore/k2i
deleted file mode 100644
index 637056d4..00000000
--- a/demo/rdfstore/k2i
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/namespace b/demo/rdfstore/namespace
deleted file mode 100644
index 1bfa2de8..00000000
--- a/demo/rdfstore/namespace
+++ /dev/null
Binary files differ
diff --git a/demo/rdfstore/prefix b/demo/rdfstore/prefix
deleted file mode 100644
index 55593176..00000000
--- a/demo/rdfstore/prefix
+++ /dev/null
Binary files differ
diff --git a/demo/sampledata.json b/demo/sampledata.json
deleted file mode 100644
index ccb4fedc..00000000
--- a/demo/sampledata.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"pk": 1, "model": "gstudio.nid", "fields": {"title": "person"}}, {"pk": 2, "model": "gstudio.nid", "fields": {"title": "concept class"}}, {"pk": 3, "model": "gstudio.nid", "fields": {"title": "place"}}, {"pk": 4, "model": "gstudio.nid", "fields": {"title": "country"}}, {"pk": 5, "model": "gstudio.nid", "fields": {"title": "city"}}, {"pk": 6, "model": "gstudio.nid", "fields": {"title": "capital of"}}, {"pk": 7, "model": "gstudio.nid", "fields": {"title": "lives in"}}, {"pk": 8, "model": "gstudio.nid", "fields": {"title": "Charles Darwin"}}, {"pk": 9, "model": "gstudio.nid", "fields": {"title": "India"}}, {"pk": 10, "model": "gstudio.nid", "fields": {"title": "Mumbai"}}, {"pk": 11, "model": "gstudio.nid", "fields": {"title": "New Delhi"}}, {"pk": 12, "model": "gstudio.nid", "fields": {"title": " New Delhi capital of India"}}, {"pk": 13, "model": "gstudio.nid", "fields": {"title": "Nagarjuna"}}, {"pk": 14, "model": "gstudio.nid", "fields": {"title": " Nagarjuna mostly lives in Mumbai"}}, {"pk": 15, "model": "gstudio.nid", "fields": {"title": "population"}}, {"pk": 16, "model": "gstudio.nid", "fields": {"title": "lived in"}}, {"pk": 17, "model": "gstudio.nid", "fields": {"title": "London"}}, {"pk": 18, "model": "gstudio.nid", "fields": {"title": " Charles Darwin lived in several locations of London"}}, {"pk": 19, "model": "gstudio.nid", "fields": {"title": "the population of India is 1210193422"}}, {"pk": 20, "model": "gstudio.nid", "fields": {"title": "the population of Mumbai is 20245000"}}, {"pk": 21, "model": "gstudio.nid", "fields": {"title": "the population of London is 7825200"}}, {"pk": 22, "model": "gstudio.nid", "fields": {"title": "times"}}, {"pk": 23, "model": "gstudio.nid", "fields": {"title": " the population of Mumbai is 20245000 three times more than the population of London is 7825200"}}, {"pk": 24, "model": "gstudio.nid", "fields": {"title": "geographical collection"}}, {"pk": 25, "model": "gstudio.nid", "fields": {"title": "geographical facts of India"}}, {"pk": 26, "model": "gstudio.nid", "fields": {"title": "population change"}}, {"pk": 27, "model": "gstudio.nid", "fields": {"title": "the population of Mumbai is 21245000"}}, {"pk": 28, "model": "gstudio.nid", "fields": {"title": "population change of mumbai"}}, {"pk": 1, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "human being", "plural": "pesons", "rating_votes": 0}}, {"pk": 2, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "abstract term", "plural": null, "rating_votes": 0}}, {"pk": 3, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "location", "plural": "places", "rating_votes": 0}}, {"pk": 4, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "nation", "plural": "countries", "rating_votes": 0}}, {"pk": 5, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "metropolis", "plural": "cities", "rating_votes": 0}}, {"pk": 6, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 7, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "resides in", "plural": null, "rating_votes": 0}}, {"pk": 8, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 9, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "Bharat", "plural": null, "rating_votes": 0}}, {"pk": 10, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 11, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 13, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 15, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 16, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "had home in", "plural": null, "rating_votes": 0}}, {"pk": 17, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 22, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 24, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 25, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 26, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 28, "model": "gstudio.node", "fields": {"rating_score": 0, "altnames": "", "plural": null, "rating_votes": 0}}, {"pk": 12, "model": "gstudio.edge", "fields": {}}, {"pk": 14, "model": "gstudio.edge", "fields": {}}, {"pk": 18, "model": "gstudio.edge", "fields": {}}, {"pk": 19, "model": "gstudio.edge", "fields": {}}, {"pk": 20, "model": "gstudio.edge", "fields": {}}, {"pk": 21, "model": "gstudio.edge", "fields": {}}, {"pk": 23, "model": "gstudio.edge", "fields": {}}, {"pk": 27, "model": "gstudio.edge", "fields": {}}, {"pk": 2, "model": "gstudio.metatype", "fields": {"rght": 2, "description": "the class of all concepts", "parent": null, "level": 0, "lft": 1, "tree_id": 1, "slug": "concept-class"}}, {"pk": 26, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 05:41:16", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 05:45:08", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 5, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 05:41:16", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "population-change", "level": 0}}, {"pk": 24, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 04:34:03", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 04:36:18", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 4, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 04:34:03", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "geographical-collection", "level": 0}}, {"pk": 22, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 04:22:38", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [], "last_update": "2011-12-07 04:27:49", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 3, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 04:22:38", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "times", "level": 0}}, {"pk": 16, "model": "gstudio.nodetype", "fields": {"rght": 3, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 04:08:04", "lft": 2, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [], "last_update": "2011-12-07 04:09:46", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 2, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 04:08:04", "status": 2, "parent": 7, "tags": "", "authors": [1], "password": "", "slug": "lived", "level": 1}}, {"pk": 15, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 04:03:48", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 04:07:31", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 1, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 04:03:48", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "population", "level": 0}}, {"pk": 7, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 02:45:01", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [], "last_update": "2011-12-07 02:46:40", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 2, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 02:45:01", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "lives", "level": 0}}, {"pk": 6, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [], "excerpt": "", "creation_date": "2011-12-07 02:16:54", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [], "last_update": "2011-12-07 02:19:08", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 1, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 02:16:54", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "capital-of", "level": 0}}, {"pk": 5, "model": "gstudio.nodetype", "fields": {"rght": 3, "posteriornodes": [], "image": "", "metatypes": [2], "excerpt": "", "creation_date": "2011-12-07 02:10:54", "lft": 2, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 02:11:24", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 2, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 02:10:54", "status": 2, "parent": 3, "tags": "", "authors": [1], "password": "", "slug": "city", "level": 1}}, {"pk": 4, "model": "gstudio.nodetype", "fields": {"rght": 5, "posteriornodes": [], "image": "", "metatypes": [2], "excerpt": "", "creation_date": "2011-12-07 02:08:37", "lft": 4, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 02:10:44", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 2, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 02:08:37", "status": 2, "parent": 3, "tags": "", "authors": [1], "password": "", "slug": "country", "level": 1}}, {"pk": 3, "model": "gstudio.nodetype", "fields": {"rght": 6, "posteriornodes": [], "image": "", "metatypes": [2], "excerpt": "", "creation_date": "2011-12-07 02:07:58", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 02:08:28", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 2, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 02:07:58", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "place", "level": 0}}, {"pk": 1, "model": "gstudio.nodetype", "fields": {"rght": 2, "posteriornodes": [], "image": "", "metatypes": [2], "excerpt": "", "creation_date": "2011-12-07 01:38:11", "lft": 1, "featured": false, "pingback_enabled": true, "priornodes": [], "comment_enabled": true, "login_required": false, "sites": [1], "last_update": "2011-12-07 02:07:53", "content": "", "template": "gstudio/nodetype_detail.html", "tree_id": 1, "end_publication": "2042-03-15 00:00:00", "start_publication": "2011-12-07 01:38:11", "status": 2, "parent": null, "tags": "", "authors": [1], "password": "", "slug": "person", "level": 0}}, {"pk": 5, "model": "gstudio.objecttype", "fields": {"priornodes": [], "posteriornodes": [], "metatypes": [2], "sites": [1], "lft": 2, "authors": [1]}}, {"pk": 4, "model": "gstudio.objecttype", "fields": {"priornodes": [], "posteriornodes": [], "metatypes": [2], "sites": [1], "lft": 2, "authors": [1]}}, {"pk": 3, "model": "gstudio.objecttype", "fields": {"priornodes": [], "posteriornodes": [], "metatypes": [2], "sites": [1], "lft": 1, "authors": [1]}}, {"pk": 1, "model": "gstudio.objecttype", "fields": {"priornodes": [], "posteriornodes": [], "metatypes": [2], "sites": [1], "lft": 1, "authors": [1]}}, {"pk": 22, "model": "gstudio.edgetype", "fields": {"priornodes": [], "authors": [1], "posteriornodes": [], "sites": [], "metatypes": []}}, {"pk": 16, "model": "gstudio.edgetype", "fields": {"priornodes": [], "authors": [1], "posteriornodes": [], "sites": [], "metatypes": []}}, {"pk": 15, "model": "gstudio.edgetype", "fields": {"priornodes": [], "authors": [1], "posteriornodes": [], "sites": [1], "metatypes": []}}, {"pk": 7, "model": "gstudio.edgetype", "fields": {"priornodes": [], "authors": [1], "posteriornodes": [], "sites": [], "metatypes": []}}, {"pk": 6, "model": "gstudio.edgetype", "fields": {"priornodes": [], "authors": [1], "posteriornodes": [], "sites": [], "metatypes": []}}, {"pk": 22, "model": "gstudio.relationtype", "fields": {"rght": 2, "inverse": "portions of", "cardinalityLeft": null, "isTransitive": false, "cardinalityRight": null, "level": 0, "isSymmetrical": false, "sites": [], "metatypes": [], "lft": 1, "posteriornodes": [], "subjecttypeLeft": 15, "priornodes": [], "subjecttypeRight": 15, "applicablenodetypes1": "OT", "authors": [1], "applicablenodetypes2": "OT", "tree_id": 3, "isReflexive": false}}, {"pk": 16, "model": "gstudio.relationtype", "fields": {"rght": 3, "inverse": "had resident", "cardinalityLeft": null, "isTransitive": null, "cardinalityRight": null, "level": 1, "isSymmetrical": null, "sites": [], "metatypes": [], "lft": 2, "posteriornodes": [], "subjecttypeLeft": 1, "priornodes": [], "subjecttypeRight": 3, "applicablenodetypes1": "OT", "authors": [1], "applicablenodetypes2": "OT", "tree_id": 2, "isReflexive": null}}, {"pk": 7, "model": "gstudio.relationtype", "fields": {"rght": 4, "inverse": "living place of", "cardinalityLeft": null, "isTransitive": null, "cardinalityRight": null, "level": 0, "isSymmetrical": null, "sites": [], "metatypes": [], "lft": 1, "posteriornodes": [], "subjecttypeLeft": 1, "priornodes": [], "subjecttypeRight": 3, "applicablenodetypes1": "OT", "authors": [1], "applicablenodetypes2": "OT", "tree_id": 2, "isReflexive": null}}, {"pk": 6, "model": "gstudio.relationtype", "fields": {"rght": 2, "inverse": "has capital", "cardinalityLeft": 1, "isTransitive": false, "cardinalityRight": 1, "level": 0, "isSymmetrical": false, "sites": [], "metatypes": [], "lft": 1, "posteriornodes": [], "subjecttypeLeft": 5, "priornodes": [], "subjecttypeRight": 4, "applicablenodetypes1": "OT", "authors": [1], "applicablenodetypes2": "OT", "tree_id": 1, "isReflexive": false}}, {"pk": 15, "model": "gstudio.attributetype", "fields": {"rght": 2, "posteriornodes": [], "validators": [], "metatypes": [], "lft": 1, "max_digits": null, "blank": null, "help_text": "", "null": null, "priornodes": [], "subjecttype": 3, "upload_to": "", "sites": [1], "label": null, "auto_now": null, "tree_id": 1, "verbose_name": "", "verify_exists": null, "dataType": "6", "editable": null, "applicablenodetypes": "OT", "authors": [1], "auto_now_add": null, "path": "", "unique": null, "min_length": null, "decimal_places": null, "level": 0, "default": null, "required": null}}, {"pk": 12, "model": "gstudio.relation", "fields": {"subject1Scope": "", "relationTypeScope": "", "subject1": 11, "subject2": 9, "relationtype": 6, "objectScope": ""}}, {"pk": 14, "model": "gstudio.relation", "fields": {"subject1Scope": "", "relationTypeScope": "mostly", "subject1": 13, "subject2": 10, "relationtype": 7, "objectScope": ""}}, {"pk": 18, "model": "gstudio.relation", "fields": {"subject1Scope": "", "relationTypeScope": "", "subject1": 8, "subject2": 17, "relationtype": 16, "objectScope": "several locations of"}}, {"pk": 23, "model": "gstudio.relation", "fields": {"subject1Scope": "", "relationTypeScope": "three", "subject1": 20, "subject2": 21, "relationtype": 22, "objectScope": "more than"}}, {"pk": 19, "model": "gstudio.attribute", "fields": {"svalue": "1210193422", "attributeTypeScope": "", "valueScope": "", "attributeType": 15, "subjectScope": "", "subject": 9}}, {"pk": 20, "model": "gstudio.attribute", "fields": {"svalue": "20245000", "attributeTypeScope": "", "valueScope": "", "attributeType": 15, "subjectScope": "", "subject": 10}}, {"pk": 21, "model": "gstudio.attribute", "fields": {"svalue": "7825200", "attributeTypeScope": "", "valueScope": "", "attributeType": 15, "subjectScope": "", "subject": 17}}, {"pk": 27, "model": "gstudio.attribute", "fields": {"svalue": "21245000", "attributeTypeScope": "", "valueScope": "", "attributeType": 15, "subjectScope": "", "subject": 10}}, {"pk": 26, "model": "gstudio.processtype", "fields": {"priornodes": [], "posteriornodes": [], "relationtype_set": [], "metatypes": [], "sites": [1], "attributetype_set": [15], "lft": 1, "authors": [1]}}, {"pk": 24, "model": "gstudio.systemtype", "fields": {"priornodes": [], "posteriornodes": [], "relationtype_set": [], "metatype_set": [], "nodetype_set": [], "metatypes": [], "sites": [1], "processtype_set": [], "attributetype_set": [], "lft": 1, "authors": [1]}}, {"pk": 28, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [], "creation_date": "2011-12-07 05:47:16", "content": "", "featured": false, "start_publication": "2011-12-07 05:47:16", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 05:48:14", "slug": "population-change-mumbai"}}, {"pk": 25, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [], "creation_date": "2011-12-07 04:36:29", "content": "", "featured": false, "start_publication": "2011-12-07 04:36:29", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 04:38:45", "slug": "geographical-facts-india"}}, {"pk": 17, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [5], "creation_date": "2011-12-07 04:11:03", "content": "", "featured": false, "start_publication": "2011-12-07 04:11:03", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 04:11:34", "slug": "london"}}, {"pk": 13, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [1], "creation_date": "2011-12-07 02:53:25", "content": "", "featured": false, "start_publication": "2011-12-07 02:53:25", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 02:54:08", "slug": "nagarjuna"}}, {"pk": 11, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [5], "creation_date": "2011-12-07 02:51:24", "content": "", "featured": false, "start_publication": "2011-12-07 02:51:24", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 02:51:40", "slug": "new-delhi"}}, {"pk": 10, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [5], "creation_date": "2011-12-07 02:50:55", "content": "", "featured": false, "start_publication": "2011-12-07 02:50:55", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 02:51:11", "slug": "mu"}}, {"pk": 9, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [4], "creation_date": "2011-12-07 02:49:25", "content": "", "featured": false, "start_publication": "2011-12-07 02:49:25", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 02:50:25", "slug": "india"}}, {"pk": 8, "model": "objectapp.gbobject", "fields": {"status": 2, "priornodes": [], "password": "", "end_publication": "2042-03-15 00:00:00", "posteriornodes": [], "template": "objectapp/gbobject_detail.html", "comment_enabled": true, "tags": "", "image": "", "login_required": false, "excerpt": "", "sites": [1], "objecttypes": [1], "creation_date": "2011-12-07 02:47:35", "content": "", "featured": false, "start_publication": "2011-12-07 02:47:35", "pingback_enabled": true, "authors": [1], "last_update": "2011-12-07 02:48:29", "slug": "charles-darwin"}}, {"pk": 28, "model": "objectapp.process", "fields": {"priornodes": [], "poststate_relation_set": [], "posteriornodes": [], "objecttypes": [], "sites": [1], "poststate_attribute_set": [27], "priorstate_relation_set": [], "authors": [1], "processtypes": [26], "priorstate_attribute_set": [20]}}, {"pk": 25, "model": "objectapp.system", "fields": {"priornodes": [], "object_set": [11, 10, 9], "posteriornodes": [], "objecttypes": [], "sites": [1], "systemtypes": [24], "process_set": [], "attribute_set": [19, 20], "authors": [1], "system_set": [], "relation_set": [12, 23]}}, {"pk": 1, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 01:38:16", "manager_slug": "default", "user": 1}}, {"pk": 2, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:06:44", "manager_slug": "default", "user": 1}}, {"pk": 3, "model": "reversion.revision", "fields": {"comment": "Changed altnames, plural and metatypes.", "date_created": "2011-12-07 02:07:53", "manager_slug": "default", "user": 1}}, {"pk": 4, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:08:28", "manager_slug": "default", "user": 1}}, {"pk": 5, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:10:45", "manager_slug": "default", "user": 1}}, {"pk": 6, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:11:24", "manager_slug": "default", "user": 1}}, {"pk": 7, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:19:08", "manager_slug": "default", "user": 1}}, {"pk": 8, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:46:40", "manager_slug": "default", "user": 1}}, {"pk": 9, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:48:30", "manager_slug": "default", "user": 1}}, {"pk": 10, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:50:09", "manager_slug": "default", "user": 1}}, {"pk": 11, "model": "reversion.revision", "fields": {"comment": "Changed altnames.", "date_created": "2011-12-07 02:50:26", "manager_slug": "default", "user": 1}}, {"pk": 12, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:51:11", "manager_slug": "default", "user": 1}}, {"pk": 13, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:51:40", "manager_slug": "default", "user": 1}}, {"pk": 14, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:52:45", "manager_slug": "default", "user": 1}}, {"pk": 15, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:54:09", "manager_slug": "default", "user": 1}}, {"pk": 16, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 02:55:08", "manager_slug": "default", "user": 1}}, {"pk": 17, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:07:31", "manager_slug": "default", "user": 1}}, {"pk": 18, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:09:46", "manager_slug": "default", "user": 1}}, {"pk": 19, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:11:35", "manager_slug": "default", "user": 1}}, {"pk": 20, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:14:41", "manager_slug": "default", "user": 1}}, {"pk": 21, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:20:13", "manager_slug": "default", "user": 1}}, {"pk": 22, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:21:13", "manager_slug": "default", "user": 1}}, {"pk": 23, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:22:01", "manager_slug": "default", "user": 1}}, {"pk": 24, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:27:50", "manager_slug": "default", "user": 1}}, {"pk": 25, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:29:09", "manager_slug": "default", "user": 1}}, {"pk": 26, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:36:18", "manager_slug": "default", "user": 1}}, {"pk": 27, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 04:38:46", "manager_slug": "default", "user": 1}}, {"pk": 28, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 05:45:08", "manager_slug": "default", "user": 1}}, {"pk": 29, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 05:46:49", "manager_slug": "default", "user": 1}}, {"pk": 30, "model": "reversion.revision", "fields": {"comment": "Initial version.", "date_created": "2011-12-07 05:48:14", "manager_slug": "default", "user": 1}}, {"pk": 1, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 18, "object_id_int": 1, "type": 0, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.objecttype\", \"fields\": {\"lft\": 1}}]", "revision": 1}}, {"pk": 2, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 0, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 2}}, {"pk": 3, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 18, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.objecttype\", \"fields\": {\"lft\": 1}}]", "revision": 3}}, {"pk": 4, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 18, "object_id_int": 3, "type": 0, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.objecttype\", \"fields\": {\"lft\": 1}}]", "revision": 4}}, {"pk": 5, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 18, "object_id_int": 4, "type": 0, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.objecttype\", \"fields\": {\"lft\": 2}}]", "revision": 5}}, {"pk": 6, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 18, "object_id_int": 5, "type": 0, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.objecttype\", \"fields\": {\"lft\": 2}}]", "revision": 6}}, {"pk": 7, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 13, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"country\"}}]", "revision": 7}}, {"pk": 8, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 13, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"city\"}}]", "revision": 7}}, {"pk": 9, "model": "reversion.version", "fields": {"format": "json", "object_repr": "capital of", "object_id": "6", "content_type": 20, "object_id_int": 6, "type": 0, "serialized_data": "[{\"pk\": 6, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"has capital\", \"cardinalityLeft\": 1, \"isTransitive\": false, \"cardinalityRight\": 1, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 5, \"subjecttypeRight\": 4, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 1, \"isReflexive\": false}}]", "revision": 7}}, {"pk": 10, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 13, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"person\"}}]", "revision": 8}}, {"pk": 11, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 8}}, {"pk": 12, "model": "reversion.version", "fields": {"format": "json", "object_repr": "lives in", "object_id": "7", "content_type": 20, "object_id_int": 7, "type": 0, "serialized_data": "[{\"pk\": 7, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"living place of\", \"cardinalityLeft\": null, \"isTransitive\": null, \"cardinalityRight\": null, \"level\": 0, \"isSymmetrical\": null, \"lft\": 1, \"subjecttypeLeft\": 1, \"subjecttypeRight\": 3, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 2, \"isReflexive\": null}}]", "revision": 8}}, {"pk": 13, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Charles Darwin", "object_id": "8", "content_type": 52, "object_id_int": 8, "type": 0, "serialized_data": "[{\"pk\": 8, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 02:47:35\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:47:35\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 02:48:29\", \"slug\": \"charles-darwin\"}}]", "revision": 9}}, {"pk": 14, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 17, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 2, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 01:38:11\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:07:53\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 1, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 01:38:11\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"person\", \"level\": 0}}]", "revision": 9}}, {"pk": 15, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 9}}, {"pk": 16, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 52, "object_id_int": 9, "type": 0, "serialized_data": "[{\"pk\": 9, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 02:49:25\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:49:25\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 02:50:09\", \"slug\": \"india\"}}]", "revision": 10}}, {"pk": 17, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 10}}, {"pk": 18, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 10}}, {"pk": 19, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 17, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 5, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:08:37\", \"lft\": 4, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:10:44\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:08:37\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"country\", \"level\": 1}}]", "revision": 10}}, {"pk": 20, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 52, "object_id_int": 9, "type": 1, "serialized_data": "[{\"pk\": 9, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [1], \"objecttypes\": [4], \"creation_date\": \"2011-12-07 02:49:25\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:49:25\", \"pingback_enabled\": true, \"authors\": [1], \"last_update\": \"2011-12-07 02:50:25\", \"slug\": \"india\"}}]", "revision": 11}}, {"pk": 21, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 11}}, {"pk": 22, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 11}}, {"pk": 23, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 17, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 5, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:08:37\", \"lft\": 4, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:10:44\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:08:37\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"country\", \"level\": 1}}]", "revision": 11}}, {"pk": 24, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 52, "object_id_int": 10, "type": 0, "serialized_data": "[{\"pk\": 10, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 02:50:55\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:50:55\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 02:51:11\", \"slug\": \"mu\"}}]", "revision": 12}}, {"pk": 25, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 12}}, {"pk": 26, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 12}}, {"pk": 27, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 17, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 3, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:10:54\", \"lft\": 2, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:11:24\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:10:54\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"city\", \"level\": 1}}]", "revision": 12}}, {"pk": 28, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 13}}, {"pk": 29, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 13}}, {"pk": 30, "model": "reversion.version", "fields": {"format": "json", "object_repr": "New Delhi", "object_id": "11", "content_type": 52, "object_id_int": 11, "type": 0, "serialized_data": "[{\"pk\": 11, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 02:51:24\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:51:24\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 02:51:40\", \"slug\": \"new-delhi\"}}]", "revision": 13}}, {"pk": 31, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 17, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 3, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:10:54\", \"lft\": 2, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:11:24\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:10:54\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"city\", \"level\": 1}}]", "revision": 13}}, {"pk": 32, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 13, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"country\"}}]", "revision": 14}}, {"pk": 33, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 13, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"city\"}}]", "revision": 14}}, {"pk": 34, "model": "reversion.version", "fields": {"format": "json", "object_repr": "capital of", "object_id": "6", "content_type": 20, "object_id_int": 6, "type": 1, "serialized_data": "[{\"pk\": 6, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"has capital\", \"cardinalityLeft\": 1, \"isTransitive\": false, \"cardinalityRight\": 1, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 5, \"subjecttypeRight\": 4, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 1, \"isReflexive\": false}}]", "revision": 14}}, {"pk": 35, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 13, "object_id_int": 9, "type": 1, "serialized_data": "[{\"pk\": 9, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"India\"}}]", "revision": 14}}, {"pk": 36, "model": "reversion.version", "fields": {"format": "json", "object_repr": "New Delhi", "object_id": "11", "content_type": 13, "object_id_int": 11, "type": 1, "serialized_data": "[{\"pk\": 11, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"New Delhi\"}}]", "revision": 14}}, {"pk": 37, "model": "reversion.version", "fields": {"format": "json", "object_repr": " New Delhi capital of India", "object_id": "12", "content_type": 22, "object_id_int": 12, "type": 0, "serialized_data": "[{\"pk\": 12, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"\", \"subject1\": 11, \"subject2\": 9, \"relationtype\": 6, \"objectScope\": \"\"}}]", "revision": 14}}, {"pk": 38, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 17, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 2, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 01:38:11\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:07:53\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 1, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 01:38:11\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"person\", \"level\": 0}}]", "revision": 15}}, {"pk": 39, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 15}}, {"pk": 40, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Nagarjuna", "object_id": "13", "content_type": 52, "object_id_int": 13, "type": 0, "serialized_data": "[{\"pk\": 13, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 02:53:25\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:53:25\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 02:54:08\", \"slug\": \"nagarjuna\"}}]", "revision": 15}}, {"pk": 41, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 13, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"person\"}}]", "revision": 16}}, {"pk": 42, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 16}}, {"pk": 43, "model": "reversion.version", "fields": {"format": "json", "object_repr": "lives in", "object_id": "7", "content_type": 20, "object_id_int": 7, "type": 1, "serialized_data": "[{\"pk\": 7, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"living place of\", \"cardinalityLeft\": null, \"isTransitive\": null, \"cardinalityRight\": null, \"level\": 0, \"isSymmetrical\": null, \"lft\": 1, \"subjecttypeLeft\": 1, \"subjecttypeRight\": 3, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 2, \"isReflexive\": null}}]", "revision": 16}}, {"pk": 44, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 13, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Mumbai\"}}]", "revision": 16}}, {"pk": 45, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Nagarjuna", "object_id": "13", "content_type": 13, "object_id_int": 13, "type": 1, "serialized_data": "[{\"pk\": 13, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Nagarjuna\"}}]", "revision": 16}}, {"pk": 46, "model": "reversion.version", "fields": {"format": "json", "object_repr": " Nagarjuna mostly lives in Mumbai", "object_id": "14", "content_type": 22, "object_id_int": 14, "type": 0, "serialized_data": "[{\"pk\": 14, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"mostly\", \"subject1\": 13, \"subject2\": 10, \"relationtype\": 7, \"objectScope\": \"\"}}]", "revision": 16}}, {"pk": 47, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 17}}, {"pk": 48, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 0, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 17}}, {"pk": 49, "model": "reversion.version", "fields": {"format": "json", "object_repr": "lived in", "object_id": "16", "content_type": 20, "object_id_int": 16, "type": 0, "serialized_data": "[{\"pk\": 16, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 3, \"inverse\": \"had resident\", \"cardinalityLeft\": null, \"isTransitive\": null, \"cardinalityRight\": null, \"level\": 1, \"isSymmetrical\": null, \"lft\": 2, \"subjecttypeLeft\": 1, \"subjecttypeRight\": 3, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 2, \"isReflexive\": null}}]", "revision": 18}}, {"pk": 50, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 13, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"person\"}}]", "revision": 18}}, {"pk": 51, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 18}}, {"pk": 52, "model": "reversion.version", "fields": {"format": "json", "object_repr": "London", "object_id": "17", "content_type": 52, "object_id_int": 17, "type": 0, "serialized_data": "[{\"pk\": 17, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [], \"objecttypes\": [], \"creation_date\": \"2011-12-07 04:11:03\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 04:11:03\", \"pingback_enabled\": true, \"authors\": [], \"last_update\": \"2011-12-07 04:11:34\", \"slug\": \"london\"}}]", "revision": 19}}, {"pk": 53, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 19}}, {"pk": 54, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 19}}, {"pk": 55, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 17, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 3, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:10:54\", \"lft\": 2, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:11:24\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:10:54\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"city\", \"level\": 1}}]", "revision": 19}}, {"pk": 56, "model": "reversion.version", "fields": {"format": "json", "object_repr": "person", "object_id": "1", "content_type": 13, "object_id_int": 1, "type": 1, "serialized_data": "[{\"pk\": 1, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"person\"}}]", "revision": 20}}, {"pk": 57, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 20}}, {"pk": 58, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Charles Darwin", "object_id": "8", "content_type": 13, "object_id_int": 8, "type": 1, "serialized_data": "[{\"pk\": 8, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Charles Darwin\"}}]", "revision": 20}}, {"pk": 59, "model": "reversion.version", "fields": {"format": "json", "object_repr": "lived in", "object_id": "16", "content_type": 20, "object_id_int": 16, "type": 1, "serialized_data": "[{\"pk\": 16, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 3, \"inverse\": \"had resident\", \"cardinalityLeft\": null, \"isTransitive\": null, \"cardinalityRight\": null, \"level\": 1, \"isSymmetrical\": null, \"lft\": 2, \"subjecttypeLeft\": 1, \"subjecttypeRight\": 3, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 2, \"isReflexive\": null}}]", "revision": 20}}, {"pk": 60, "model": "reversion.version", "fields": {"format": "json", "object_repr": "London", "object_id": "17", "content_type": 13, "object_id_int": 17, "type": 1, "serialized_data": "[{\"pk\": 17, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"London\"}}]", "revision": 20}}, {"pk": 61, "model": "reversion.version", "fields": {"format": "json", "object_repr": " Charles Darwin lived in several locations of London", "object_id": "18", "content_type": 22, "object_id_int": 18, "type": 0, "serialized_data": "[{\"pk\": 18, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"\", \"subject1\": 8, \"subject2\": 17, \"relationtype\": 16, \"objectScope\": \"several locations of\"}}]", "revision": 20}}, {"pk": 62, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 21}}, {"pk": 63, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 13, "object_id_int": 9, "type": 1, "serialized_data": "[{\"pk\": 9, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"India\"}}]", "revision": 21}}, {"pk": 64, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of India is 1210193422", "object_id": "19", "content_type": 23, "object_id_int": 19, "type": 0, "serialized_data": "[{\"pk\": 19, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"1210193422\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 9}}]", "revision": 21}}, {"pk": 65, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 21}}, {"pk": 66, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 13, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Mumbai\"}}]", "revision": 22}}, {"pk": 67, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 22}}, {"pk": 68, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 20245000", "object_id": "20", "content_type": 23, "object_id_int": 20, "type": 0, "serialized_data": "[{\"pk\": 20, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"20245000\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 10}}]", "revision": 22}}, {"pk": 69, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 22}}, {"pk": 70, "model": "reversion.version", "fields": {"format": "json", "object_repr": "London", "object_id": "17", "content_type": 13, "object_id_int": 17, "type": 1, "serialized_data": "[{\"pk\": 17, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"London\"}}]", "revision": 23}}, {"pk": 71, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 23}}, {"pk": 72, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of London is 7825200", "object_id": "21", "content_type": 23, "object_id_int": 21, "type": 0, "serialized_data": "[{\"pk\": 21, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"7825200\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 17}}]", "revision": 23}}, {"pk": 73, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 23}}, {"pk": 74, "model": "reversion.version", "fields": {"format": "json", "object_repr": "times", "object_id": "22", "content_type": 20, "object_id_int": 22, "type": 0, "serialized_data": "[{\"pk\": 22, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"portions of\", \"cardinalityLeft\": null, \"isTransitive\": false, \"cardinalityRight\": null, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 15, \"subjecttypeRight\": 15, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 3, \"isReflexive\": false}}]", "revision": 24}}, {"pk": 75, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 13, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"population\"}}]", "revision": 24}}, {"pk": 76, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 13, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"population\"}}]", "revision": 25}}, {"pk": 77, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 20245000", "object_id": "20", "content_type": 13, "object_id_int": 20, "type": 1, "serialized_data": "[{\"pk\": 20, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"the population of Mumbai is 20245000\"}}]", "revision": 25}}, {"pk": 78, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of London is 7825200", "object_id": "21", "content_type": 13, "object_id_int": 21, "type": 1, "serialized_data": "[{\"pk\": 21, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"the population of London is 7825200\"}}]", "revision": 25}}, {"pk": 79, "model": "reversion.version", "fields": {"format": "json", "object_repr": "times", "object_id": "22", "content_type": 20, "object_id_int": 22, "type": 1, "serialized_data": "[{\"pk\": 22, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"portions of\", \"cardinalityLeft\": null, \"isTransitive\": false, \"cardinalityRight\": null, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 15, \"subjecttypeRight\": 15, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 3, \"isReflexive\": false}}]", "revision": 25}}, {"pk": 80, "model": "reversion.version", "fields": {"format": "json", "object_repr": " the population of Mumbai is 20245000 three times more than the population of London is 7825200", "object_id": "23", "content_type": 22, "object_id_int": 23, "type": 0, "serialized_data": "[{\"pk\": 23, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"three\", \"subject1\": 20, \"subject2\": 21, \"relationtype\": 22, \"objectScope\": \"more than\"}}]", "revision": 25}}, {"pk": 81, "model": "reversion.version", "fields": {"format": "json", "object_repr": "geographical collection", "object_id": "24", "content_type": 44, "object_id_int": 24, "type": 0, "serialized_data": "[{\"pk\": 24, \"model\": \"gstudio.systemtype\", \"fields\": {\"lft\": 1}}]", "revision": 26}}, {"pk": 82, "model": "reversion.version", "fields": {"format": "json", "object_repr": "concept class", "object_id": "2", "content_type": 16, "object_id_int": 2, "type": 1, "serialized_data": "[{\"pk\": 2, \"model\": \"gstudio.metatype\", \"fields\": {\"rght\": 2, \"description\": \"the class of all concepts\", \"parent\": null, \"level\": 0, \"lft\": 1, \"tree_id\": 1, \"slug\": \"concept-class\"}}]", "revision": 27}}, {"pk": 83, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 17, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 6, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:07:58\", \"lft\": 1, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:08:28\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:07:58\", \"status\": 2, \"parent\": null, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"place\", \"level\": 0}}]", "revision": 27}}, {"pk": 84, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 17, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 5, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:08:37\", \"lft\": 4, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:10:44\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:08:37\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"country\", \"level\": 1}}]", "revision": 27}}, {"pk": 85, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 17, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nodetype\", \"fields\": {\"rght\": 3, \"posteriornodes\": [], \"image\": \"\", \"metatypes\": [2], \"excerpt\": \"\", \"creation_date\": \"2011-12-07 02:10:54\", \"lft\": 2, \"featured\": false, \"pingback_enabled\": true, \"priornodes\": [], \"comment_enabled\": true, \"login_required\": false, \"sites\": [1], \"last_update\": \"2011-12-07 02:11:24\", \"content\": \"\", \"template\": \"gstudio/nodetype_detail.html\", \"tree_id\": 2, \"end_publication\": \"2042-03-15 00:00:00\", \"start_publication\": \"2011-12-07 02:10:54\", \"status\": 2, \"parent\": 3, \"tags\": \"\", \"authors\": [1], \"password\": \"\", \"slug\": \"city\", \"level\": 1}}]", "revision": 27}}, {"pk": 86, "model": "reversion.version", "fields": {"format": "json", "object_repr": "capital of", "object_id": "6", "content_type": 20, "object_id_int": 6, "type": 1, "serialized_data": "[{\"pk\": 6, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"has capital\", \"cardinalityLeft\": 1, \"isTransitive\": false, \"cardinalityRight\": 1, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 5, \"subjecttypeRight\": 4, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 1, \"isReflexive\": false}}]", "revision": 27}}, {"pk": 87, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 52, "object_id_int": 9, "type": 1, "serialized_data": "[{\"pk\": 9, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [1], \"objecttypes\": [4], \"creation_date\": \"2011-12-07 02:49:25\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:49:25\", \"pingback_enabled\": true, \"authors\": [1], \"last_update\": \"2011-12-07 02:50:25\", \"slug\": \"india\"}}]", "revision": 27}}, {"pk": 88, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 52, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [1], \"objecttypes\": [5], \"creation_date\": \"2011-12-07 02:50:55\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:50:55\", \"pingback_enabled\": true, \"authors\": [1], \"last_update\": \"2011-12-07 02:51:11\", \"slug\": \"mu\"}}]", "revision": 27}}, {"pk": 89, "model": "reversion.version", "fields": {"format": "json", "object_repr": "New Delhi", "object_id": "11", "content_type": 52, "object_id_int": 11, "type": 1, "serialized_data": "[{\"pk\": 11, \"model\": \"objectapp.gbobject\", \"fields\": {\"status\": 2, \"priornodes\": [], \"password\": \"\", \"end_publication\": \"2042-03-15 00:00:00\", \"posteriornodes\": [], \"template\": \"objectapp/gbobject_detail.html\", \"comment_enabled\": true, \"tags\": \"\", \"image\": \"\", \"login_required\": false, \"excerpt\": \"\", \"sites\": [1], \"objecttypes\": [5], \"creation_date\": \"2011-12-07 02:51:24\", \"content\": \"\", \"featured\": false, \"start_publication\": \"2011-12-07 02:51:24\", \"pingback_enabled\": true, \"authors\": [1], \"last_update\": \"2011-12-07 02:51:40\", \"slug\": \"new-delhi\"}}]", "revision": 27}}, {"pk": 90, "model": "reversion.version", "fields": {"format": "json", "object_repr": " New Delhi capital of India", "object_id": "12", "content_type": 22, "object_id_int": 12, "type": 1, "serialized_data": "[{\"pk\": 12, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"\", \"subject1\": 11, \"subject2\": 9, \"relationtype\": 6, \"objectScope\": \"\"}}]", "revision": 27}}, {"pk": 91, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 13, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"population\"}}]", "revision": 27}}, {"pk": 92, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of India is 1210193422", "object_id": "19", "content_type": 23, "object_id_int": 19, "type": 1, "serialized_data": "[{\"pk\": 19, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"1210193422\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 9}}]", "revision": 27}}, {"pk": 93, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 20245000", "object_id": "20", "content_type": 13, "object_id_int": 20, "type": 1, "serialized_data": "[{\"pk\": 20, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"the population of Mumbai is 20245000\"}}]", "revision": 27}}, {"pk": 94, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of London is 7825200", "object_id": "21", "content_type": 13, "object_id_int": 21, "type": 1, "serialized_data": "[{\"pk\": 21, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"the population of London is 7825200\"}}]", "revision": 27}}, {"pk": 95, "model": "reversion.version", "fields": {"format": "json", "object_repr": "times", "object_id": "22", "content_type": 20, "object_id_int": 22, "type": 1, "serialized_data": "[{\"pk\": 22, \"model\": \"gstudio.relationtype\", \"fields\": {\"rght\": 2, \"inverse\": \"portions of\", \"cardinalityLeft\": null, \"isTransitive\": false, \"cardinalityRight\": null, \"level\": 0, \"isSymmetrical\": false, \"lft\": 1, \"subjecttypeLeft\": 15, \"subjecttypeRight\": 15, \"applicablenodetypes1\": \"OT\", \"applicablenodetypes2\": \"OT\", \"tree_id\": 3, \"isReflexive\": false}}]", "revision": 27}}, {"pk": 96, "model": "reversion.version", "fields": {"format": "json", "object_repr": " the population of Mumbai is 20245000 three times more than the population of London is 7825200", "object_id": "23", "content_type": 22, "object_id_int": 23, "type": 1, "serialized_data": "[{\"pk\": 23, \"model\": \"gstudio.relation\", \"fields\": {\"subject1Scope\": \"\", \"relationTypeScope\": \"three\", \"subject1\": 20, \"subject2\": 21, \"relationtype\": 22, \"objectScope\": \"more than\"}}]", "revision": 27}}, {"pk": 97, "model": "reversion.version", "fields": {"format": "json", "object_repr": "geographical collection", "object_id": "24", "content_type": 44, "object_id_int": 24, "type": 1, "serialized_data": "[{\"pk\": 24, \"model\": \"gstudio.systemtype\", \"fields\": {\"lft\": 1}}]", "revision": 27}}, {"pk": 98, "model": "reversion.version", "fields": {"format": "json", "object_repr": "geographical facts of India", "object_id": "25", "content_type": 54, "object_id_int": 25, "type": 0, "serialized_data": "[{\"pk\": 25, \"model\": \"objectapp.system\", \"fields\": {}}]", "revision": 27}}, {"pk": 99, "model": "reversion.version", "fields": {"format": "json", "object_repr": "city", "object_id": "5", "content_type": 13, "object_id_int": 5, "type": 1, "serialized_data": "[{\"pk\": 5, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"city\"}}]", "revision": 27}}, {"pk": 100, "model": "reversion.version", "fields": {"format": "json", "object_repr": "India", "object_id": "9", "content_type": 13, "object_id_int": 9, "type": 1, "serialized_data": "[{\"pk\": 9, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"India\"}}]", "revision": 27}}, {"pk": 101, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 13, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Mumbai\"}}]", "revision": 27}}, {"pk": 102, "model": "reversion.version", "fields": {"format": "json", "object_repr": "New Delhi", "object_id": "11", "content_type": 13, "object_id_int": 11, "type": 1, "serialized_data": "[{\"pk\": 11, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"New Delhi\"}}]", "revision": 27}}, {"pk": 103, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 27}}, {"pk": 104, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 27}}, {"pk": 105, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 20245000", "object_id": "20", "content_type": 23, "object_id_int": 20, "type": 1, "serialized_data": "[{\"pk\": 20, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"20245000\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 10}}]", "revision": 27}}, {"pk": 106, "model": "reversion.version", "fields": {"format": "json", "object_repr": "country", "object_id": "4", "content_type": 13, "object_id_int": 4, "type": 1, "serialized_data": "[{\"pk\": 4, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"country\"}}]", "revision": 27}}, {"pk": 107, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population change", "object_id": "26", "content_type": 43, "object_id_int": 26, "type": 0, "serialized_data": "[{\"pk\": 26, \"model\": \"gstudio.processtype\", \"fields\": {\"lft\": 1}}]", "revision": 28}}, {"pk": 108, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 28}}, {"pk": 109, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 28}}, {"pk": 110, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 29}}, {"pk": 111, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 13, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Mumbai\"}}]", "revision": 29}}, {"pk": 112, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 21245000", "object_id": "27", "content_type": 23, "object_id_int": 27, "type": 0, "serialized_data": "[{\"pk\": 27, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"21245000\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 10}}]", "revision": 29}}, {"pk": 113, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 29}}, {"pk": 114, "model": "reversion.version", "fields": {"format": "json", "object_repr": "place", "object_id": "3", "content_type": 13, "object_id_int": 3, "type": 1, "serialized_data": "[{\"pk\": 3, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"place\"}}]", "revision": 30}}, {"pk": 115, "model": "reversion.version", "fields": {"format": "json", "object_repr": "Mumbai", "object_id": "10", "content_type": 13, "object_id_int": 10, "type": 1, "serialized_data": "[{\"pk\": 10, \"model\": \"gstudio.nid\", \"fields\": {\"title\": \"Mumbai\"}}]", "revision": 30}}, {"pk": 116, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population", "object_id": "15", "content_type": 21, "object_id_int": 15, "type": 1, "serialized_data": "[{\"pk\": 15, \"model\": \"gstudio.attributetype\", \"fields\": {\"rght\": 2, \"lft\": 1, \"max_digits\": null, \"blank\": null, \"help_text\": \"\", \"null\": null, \"subjecttype\": 3, \"upload_to\": \"\", \"label\": null, \"auto_now\": null, \"tree_id\": 1, \"verbose_name\": \"\", \"verify_exists\": null, \"dataType\": \"6\", \"editable\": null, \"applicablenodetypes\": \"OT\", \"auto_now_add\": null, \"path\": \"\", \"unique\": null, \"min_length\": null, \"decimal_places\": null, \"level\": 0, \"default\": null, \"required\": null}}]", "revision": 30}}, {"pk": 117, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 20245000", "object_id": "20", "content_type": 23, "object_id_int": 20, "type": 1, "serialized_data": "[{\"pk\": 20, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"20245000\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 10}}]", "revision": 30}}, {"pk": 118, "model": "reversion.version", "fields": {"format": "json", "object_repr": "the population of Mumbai is 21245000", "object_id": "27", "content_type": 23, "object_id_int": 27, "type": 1, "serialized_data": "[{\"pk\": 27, \"model\": \"gstudio.attribute\", \"fields\": {\"svalue\": \"21245000\", \"attributeTypeScope\": \"\", \"valueScope\": \"\", \"attributeType\": 15, \"subjectScope\": \"\", \"subject\": 10}}]", "revision": 30}}, {"pk": 119, "model": "reversion.version", "fields": {"format": "json", "object_repr": "population change of mumbai", "object_id": "28", "content_type": 53, "object_id_int": 28, "type": 0, "serialized_data": "[{\"pk\": 28, \"model\": \"objectapp.process\", \"fields\": {}}]", "revision": 30}}] \ No newline at end of file
diff --git a/demo/settings.py b/demo/settings.py
index a325258b..96de64f0 100644
--- a/demo/settings.py
+++ b/demo/settings.py
@@ -78,8 +78,10 @@ DATABASES = {'default':
STATIC_URL = '/static/'
MEDIA_URL = '/static'
-MEDIA_ROOT = '/static'
+#MEDIA_ROOT = '/static'
+MEDIA_ROOT = os.path.join(os.path.dirname(__file__), '../gstudio/static')
+GSTUDIO_UPLOAD_TO = 'img/'
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
diff --git a/demo/working-demo.db b/demo/working-demo.db
deleted file mode 100644
index 78a96183..00000000
--- a/demo/working-demo.db
+++ /dev/null
Binary files differ
diff --git a/dist/django_gstudio-0.3.dev-py2.7.egg b/dist/django_gstudio-0.3.dev-py2.7.egg
deleted file mode 100644
index 2d39dff2..00000000
--- a/dist/django_gstudio-0.3.dev-py2.7.egg
+++ /dev/null
Binary files differ
diff --git a/gstudio/TAGS b/gstudio/TAGS
deleted file mode 100644
index 0dff201b..00000000
--- a/gstudio/TAGS
+++ /dev/null
@@ -1,2725 +0,0 @@
-
-feeds.py,2015
-class GstudioFeed(28,968
- def __init__(32,1057
-class NodetypeFeed(40,1314
- def item_pubdate(45,1487
- def item_metatypes(49,1601
- def item_author_name(53,1742
- def item_author_email(59,1965
- def item_author_link(63,2090
- def item_enclosure_url(72,2416
- def item_enclosure_length(81,2689
- def item_enclosure_mime_type(85,2798
-class LatestNodetypes(90,2917
- def link(93,2995
- def items(97,3111
- def title(101,3235
- def description(105,3356
-class MetatypeNodetypes(110,3497
- def get_object(113,3575
- def items(117,3706
- def link(121,3856
- def title(125,3954
- def description(129,4075
-class AuthorNodetypes(134,4220
- def get_object(137,4295
- def items(141,4449
- def link(145,4606
- def title(149,4733
- def description(153,4851
-class TagNodetypes(158,4985
- def get_object(161,5053
- def items(165,5187
- def link(170,5382
- def title(174,5499
- def description(178,5614
-class SearchNodetypes(183,5753
- def get_object(186,5835
- def items(193,6065
- def link(197,6211
- def title(201,6352
- def description(205,6468
-class NodetypeDiscussions(210,6608
- def get_object(215,6808
- def items(222,7167
- def item_pubdate(226,7299
- def item_link(230,7413
- def link(234,7520
- def item_author_name(238,7618
- def item_author_email(242,7733
- def item_author_link(246,7858
- def title(250,7978
- def description(254,8087
-class NodetypeComments(259,8234
- def items(264,8430
- def item_link(268,8556
- def title(272,8677
- def description(276,8783
- def item_enclosure_url(280,8926
- def item_enclosure_length(284,9072
- def item_enclosure_mime_type(288,9181
-class NodetypePingbacks(293,9300
- def items(298,9500
- def item_link(302,9628
- def title(306,9751
- def description(310,9858
-class NodetypeTrackbacks(315,10003
- def items(320,10207
- def item_link(324,10337
- def title(328,10462
- def description(332,10570
-
-signals.py,173
-def disable_for_loaddata(10,156
- def wrapper(16,359
-def ping_directories_handler(26,594
-def ping_external_urls_handler(38,969
-def disconnect_gstudio_signals(48,1266
-
-management/commands/spam_cleanup.py,51
-class Command(9,234
- def handle_noargs(14,389
-
-management/commands/gstudio2wp.py,52
-class Command(16,447
- def handle_noargs(21,633
-
-management/commands/blogger2gstudio.py,495
-class Command(26,798
- def __init__(44,1649
- def write_out(51,1911
- def handle_noargs(57,2156
- def select_blog_id(108,4159
- def get_metatype(129,4978
- def import_posts(139,5233
- def import_comments(176,7105
-def convert_blogger_timestamp(211,8327
-def is_draft(217,8506
-def get_blog_id(225,8674
-def get_post_id(229,8749
-class BloggerManager(233,8824
- def __init__(235,8855
- def get_blogs(241,9100
- def get_posts(246,9240
- def get_comments(251,9402
-
-management/commands/feed2gstudio.py,204
-class Command(23,732
- def __init__(42,1524
- def write_out(50,1823
- def handle_label(56,2068
- def import_nodetypes(80,3027
- def import_metatypes(130,5354
- def import_tags(138,5673
-
-management/commands/wp2gstudio.py,417
-class Command(29,903
- def __init__(56,2032
- def write_out(64,2331
- def handle_label(70,2576
- def import_authors(97,3580
- def migrate_author(120,4450
- def import_metatypes(151,5851
- def import_tags(175,6907
- def get_nodetype_tags(188,7535
- def get_nodetype_metatypes(198,7945
- def import_nodetype(208,8343
- def import_nodetypes(261,10784
- def import_comments(283,11815
-
-context_processors.py,18
-def version(5,71
-
-tests/feeds.py,829
-class GstudioFeedsTestCase(33,1121
- def setUp(37,1243
- def create_published_nodetype(44,1595
- def create_discussions(58,2169
- def test_nodetype_feed(75,3298
- def test_nodetype_feed_enclosure(94,4246
- def test_latest_nodetypes(118,5427
- def test_metatype_nodetypes(129,5871
- def test_author_nodetypes(142,6490
- def test_tag_nodetypes(153,7075
- def test_search_nodetypes(165,7642
- class FakeRequest:FakeRequest166,7679
- def __init__(167,7706
- def test_nodetype_discussions(182,8418
- def test_nodetype_comments(204,9586
- def test_nodetype_pingbacks(223,10565
- def test_nodetype_trackbacks(236,11206
- def test_nodetype_feed_no_authors(249,11852
- def test_nodetype_feed_rss_or_atom(258,12212
- def test_discussion_feed_with_same_slugs(269,12662
-
-tests/signals.py,286
-class SignalsTestCase(12,342
- def test_disable_for_loaddata(15,409
- def make_top(19,502
- def call(22,553
- def test_ping_directories_handler(29,698
- def fake_pinger(33,812
- def test_ping_external_urls_handler(61,1894
- def fake_pinger(65,2013
-
-tests/quick_nodetype.py,119
-class QuickNodetypeTestCase(10,226
- def setUp(14,343
- def tearDown(18,446
- def test_quick_nodetype(21,520
-
-tests/metaweblog.py,487
-class MetaWeblogTestCase(23,717
- def setUp(27,822
- def test_authenticate(63,2525
- def test_get_users_blogs(79,3381
- def test_get_user_info(88,3814
- def test_get_authors(102,4511
- def test_get_metatypes(112,5021
- def test_new_metatype(151,6999
- def test_get_recent_posts(167,7883
- def test_delete_post(173,8171
- def test_get_post(182,8604
- def test_new_post(207,10034
- def test_edit_post(224,10849
- def test_new_media_object(281,13685
-
-tests/spam_checker.py,72
-class SpamCheckerTestCase(11,247
- def test_get_spam_checker(14,331
-
-tests/url_shortener.py,121
-class URLShortenerTestCase(12,315
- def setUp(15,401
- def tearDown(18,489
- def test_get_url_shortener(21,580
-
-tests/metatype.py,136
-class MetatypeTestCase(10,232
- def setUp(12,267
- def test_nodetypes_published(27,943
- def test_nodetypes_tree_path(47,1766
-
-tests/__init__.py,19
-def suite(32,1566
-
-tests/managers.py,585
-class ManagersTestCase(18,466
- def setUp(20,501
- def test_tags_published(51,1985
- def test_author_published_manager_get_query_set(56,2209
- def test_nodetypes_published(65,2609
- def test_nodetype_published_manager_get_query_set(86,3763
- def test_nodetype_published_manager_on_site(107,4763
- def test_nodetype_published_manager_basic_search(115,5145
- def test_nodetype_published_manager_advanced_search(123,5592
- def test_nodetype_published_manager_advanced_search_with_punctuation(227,11380
- def test_nodetype_published_manager_search(238,11917
-
-tests/custom_views_detail_urls.py,73
-def call_with_template_and_extra_context(13,366
- def wrapper(18,521
-
-tests/nodetype.py,826
-class NodetypeTestCase(24,732
- def setUp(26,767
- def test_discussions(32,973
- def test_str(85,3818
- def test_word_count(88,3911
- def test_comments_are_open(91,3998
- def test_is_actual(102,4494
- def test_is_visible(111,4906
- def test_short_url(118,5195
- def test_previous_nodetype(128,5737
- def test_next_nodetype(149,6825
- def test_related_published(170,7893
-class NodetypeHtmlContentTestCase(192,8844
- def setUp(194,8890
- def tearDown(203,9223
- def test_html_content_default(207,9359
- def test_html_content_textitle(216,9756
- def test_html_content_markdown(231,10473
- def test_html_content_restructuredtext(246,11170
-class NodetypeGetBaseModelTestCase(262,11980
- def setUp(264,12027
- def tearDown(267,12129
- def test_get_base_model(270,12234
-
-tests/views.py,1287
-class ViewsBaseCase(17,482
- def setUp(22,572
- def tearDown(62,2259
- def create_published_nodetype(66,2421
- def check_publishing_context(79,2938
-class GstudioViewsTestCase(92,3485
- def test_gstudio_nodetype_archive_index(100,3737
- def test_gstudio_nodetype_archive_year(103,3838
- def test_gstudio_nodetype_archive_month(106,3943
- def test_gstudio_nodetype_archive_day(109,4052
- def test_gstudio_nodetype_shortlink(112,4162
- def test_gstudio_nodetype_detail(117,4391
- def test_gstudio_nodetype_detail_login(135,5219
- def test_gstudio_nodetype_detail_password(142,5517
- def test_gstudio_nodetype_channel(157,6326
- def test_gstudio_metatype_list(160,6434
- def test_gstudio_metatype_detail(167,6786
- def test_gstudio_metatype_detail_paginated(172,7058
- def test_gstudio_author_list(193,8157
- def test_gstudio_author_detail(200,8498
- def test_gstudio_tag_list(205,8766
- def test_gstudio_tag_detail(212,9012
- def test_gstudio_nodetype_search(217,9264
- def test_gstudio_sitemap(228,9839
- def test_gstudio_trackback(239,10436
-class GstudioCustomDetailViews(275,12121
- def test_custom_metatype_detail(283,12433
- def test_custom_author_detail(289,12759
- def test_custom_tag_detail(295,13083
-
-tests/moderator.py,249
-class NodetypeCommentModeratorTestCase(14,420
- def setUp(17,510
- def test_email(31,1115
- def test_do_email_notification(48,1930
- def test_do_email_authors(58,2457
- def test_do_email_reply(72,3190
- def test_moderate(103,4847
-
-tests/templates/gstudio/base.html,56
-Gnowledge Studio - {% block title %}{% endblock %}3,16
-
-tests/templates/gstudio/_nodetype_detail.html,23
-{{ object.title }}1,0
-
-tests/custom_url_shortener.py,19
-def backend(8,182
-
-tests/admin.py,234
-class NodetypeAdminTestCase(10,218
- def setUp(14,329
- def tearDown(24,774
- def test_nodetype_add_and_change(27,848
-class MetatypeAdminTestCase(54,2120
- def setUp(58,2232
- def test_metatype_add_and_change(62,2399
-
-tests/custom_spam_checker.py,19
-def backend(8,181
-
-tests/utils.py,76
-class TestTransport(8,121
- def __init__(12,234
- def request(16,357
-
-tests/ping.py,387
-class DirectoryPingerTestCase(13,308
- def setUp(15,390
- def test_ping_nodetype(24,769
-class ExternalUrlsPingerTestCase(31,986
- def setUp(34,1075
- def test_is_external_url(42,1397
- def test_find_external_urls(57,2158
- def test_find_pingback_href(71,2815
- def fake_urlopen(89,3537
- def test_find_pingback_urls(105,4287
- def test_pingback_url(120,4922
-
-tests/sitemaps.py,268
-class GstudioSitemapsTestCase(18,515
- def setUp(22,640
- def test_nodetype_sitemap(43,1680
- def test_metatype_sitemap(49,1920
- def test_author_sitemap(58,2338
- def test_tag_sitemap(68,2799
- def test_metatype_sitemap_zero_division_error(77,3220
-
-tests/pingback.py,251
-class PingBackTestCase(24,722
- def fake_urlopen(28,824
- def setUp(39,1263
- def tearDown(85,3610
- def test_generate_pingback_content(90,3813
- def test_pingback_ping(113,4867
- def test_pingback_extensions_get_pingbacks(166,7277
-
-tests/comparison.py,142
-class ComparisonTestCase(10,250
- def test_pearson_score(13,329
- def test_clustered_model(21,712
- def test_vector_builder(35,1500
-
-tests/templatetags.py,948
-class TemplateTagsTestCase(40,1765
- def setUp(43,1843
- def publish_nodetype(51,2149
- def test_get_metatypes(57,2350
- def test_get_authors(67,2808
- def test_get_recent_nodetypes(80,3388
- def test_get_featured_nodetypes(93,3962
- def test_get_random_nodetypes(106,4546
- def test_get_popular_nodetypes(119,5120
- def test_get_similar_nodetypes(152,6735
- def test_get_archives_nodetypes(176,7850
- def test_get_archives_tree(199,8902
- def test_get_calendar_nodetypes(222,9966
- def test_get_recent_comments(268,12209
- def test_get_recent_linkbacks(296,13476
- def test_gstudio_pagination(324,14764
- class FakeRequest(325,14803
- def __init__(326,14838
- def test_gstudio_breadcrumbs(411,18953
- class FakeRequest(412,18993
- def __init__(413,19028
- def test_get_gravatar(486,22531
- def test_get_tags(496,22973
- def test_get_tag_cloud(519,23766
-
-managers.py,310
-def tags_published(12,169
-class AuthorPublishedManager(22,551
- def get_query_set(25,646
-def nodetypes_published(36,1041
-class NodetypePublishedManager(46,1363
- def get_query_set(49,1462
- def on_site(54,1636
- def search(59,1840
- def advanced_search(66,2047
- def basic_search(71,2222
-
-search.py,70
-def createQ(23,628
-def unionQ(81,2704
-def advanced_search(129,4174
-
-views/quick_nodetype.py,64
-class QuickNodetypeForm(18,534
-def view_quick_nodetype(27,829
-
-views/metatypes.py,60
-def get_metatype_or_404(10,299
-def metatype_detail(16,481
-
-views/authors.py,26
-def author_detail(14,415
-
-views/trackback.py,31
-def nodetype_trackback(14,423
-
-views/search.py,27
-def nodetype_search(9,228
-
-views/nodetypes.py,31
-def nodetype_shortlink(26,887
-
-views/tags.py,44
-def tag_list(15,410
-def tag_detail(24,809
-
-views/sitemap.py,19
-def sitemap(8,166
-
-views/channels.py,28
-def nodetype_channel(7,129
-
-views/decorators.py,187
-def update_queryset(15,491
- def wrapper(23,811
-def password(33,1048
-def protect_nodetype(47,1617
- def wrapper(53,1833
-def template_name_for_nodetype_queryset_filtered(72,2630
-
-rdf.py,28
-def rdf_description(11,306
-
-moderator.py,194
-class NodetypeCommentModerator(22,891
- def email(33,1366
- def do_email_notification(49,2086
- def do_email_authors(66,2971
- def do_email_reply(88,4129
- def moderate(115,5585
-
-gnowql.py,68
-def get_slug(11,179
-def get_nodetype(31,849
-def get_node(52,1429
-
-admin/processtype.py,802
-class ProcesstypeAdmin(27,773
- def __init__(69,3106
- def get_title(74,3279
- def get_authors(85,3784
- def get_metatypes(98,4367
- def get_tags(111,4949
- def get_sites(123,5470
- def get_comments_are_open(131,5798
- def get_is_actual(137,6064
- def get_is_visible(143,6284
- def get_link(149,6510
- def get_short_url(156,6798
- def save_model(167,7198
- def queryset(181,7838
- def formfield_for_manytomany(188,8129
- def get_actions(199,8630
- def make_mine(213,9161
- def make_published(222,9577
- def make_hidden(230,9979
- def make_tweet(237,10298
- def close_comments(253,11068
- def close_pingbacks(261,11463
- def put_on_top(269,11828
- def ping_directories(278,12283
- def get_urls(301,13352
- def _media(319,14297
-
-admin/attributespecification.py,41
-class AttributeSpecificationAdmin(9,226
-
-admin/attribute_booleanfield.py,40
-class AttributeBooleanFieldAdmin(8,223
-
-admin/attribute.py,55
-class AttributeAdmin(9,243
- def save_model(10,289
-
-admin/attribute_charfield.py,37
-class AttributeCharFieldAdmin(8,220
-
-admin/attribute_filepathfield.py,41
-class AttributeFilePathFieldAdmin(8,224
-
-admin/relationtype.py,805
-class RelationtypeAdmin(26,772
- def __init__(82,3369
- def get_title(87,3599
- def get_authors(98,4105
- def get_metatypes(111,4699
- def get_tags(124,5284
- def get_sites(136,5810
- def get_comments_are_open(144,6140
- def get_is_actual(150,6409
- def get_is_visible(156,6632
- def get_link(162,6861
- def get_short_url(169,7152
- def save_model(180,7554
- def queryset(194,8202
- def formfield_for_manytomany(201,8495
- def get_actions(212,8997
- def make_mine(226,9529
- def make_published(235,9951
- def make_hidden(243,10356
- def make_tweet(250,10678
- def close_comments(266,11453
- def close_pingbacks(274,11851
- def put_on_top(282,12219
- def ping_directories(291,12677
- def get_urls(314,13749
- def _media(332,14703
-
-admin/attribute_urlfield.py,36
-class AttributeURLFieldAdmin(8,219
-
-admin/nodespecification.py,36
-class NodeSpecificationAdmin(8,219
-
-admin/intersection.py,31
-class IntersectionAdmin(8,214
-
-admin/attributetype.py,806
-class AttributetypeAdmin(27,775
- def __init__(72,3198
- def get_title(77,3373
- def get_authors(88,3886
- def get_metatypes(101,4475
- def get_tags(114,5063
- def get_sites(126,5594
- def get_comments_are_open(134,5926
- def get_is_actual(140,6198
- def get_is_visible(146,6424
- def get_link(152,6656
- def get_short_url(159,6950
- def save_model(170,7354
- def queryset(184,8010
- def formfield_for_manytomany(191,8305
- def get_actions(202,8808
- def make_mine(216,9341
- def make_published(225,9769
- def make_hidden(233,10177
- def make_tweet(240,10502
- def close_comments(256,11282
- def close_pingbacks(264,11683
- def put_on_top(272,12054
- def ping_directories(281,12515
- def get_urls(304,13590
- def _media(322,14553
-
-admin/attribute_decimalfield.py,40
-class AttributeDecimalFieldAdmin(8,223
-
-admin/attribute_emailfield.py,38
-class AttributeEmailFieldAdmin(8,221
-
-admin/metatype.py,82
-class MetatypeAdmin(9,242
- def __init__(18,611
- def get_tree_path(22,760
-
-admin/attribute_datetimefield.py,41
-class AttributeDateTimeFieldAdmin(8,224
-
-admin/attribute_filefield.py,37
-class AttributeFileFieldAdmin(8,220
-
-admin/attribute_bigintegerfield.py,43
-class AttributeBigIntegerFieldAdmin(8,226
-
-admin/union.py,24
-class UnionAdmin(8,207
-
-admin/attribute_imagefield.py,38
-class AttributeImageFieldAdmin(8,221
-
-admin/attribute_datefield.py,37
-class AttributeDateFieldAdmin(8,220
-
-admin/attribute_integerfield.py,40
-class AttributeIntegerFieldAdmin(8,223
-
-admin/objecttype.py,801
-class ObjecttypeAdmin(26,768
- def __init__(65,3026
- def get_title(70,3198
- def get_authors(81,3691
- def get_metatypes(94,4265
- def get_tags(107,4838
- def get_sites(119,5348
- def get_comments_are_open(127,5670
- def get_is_actual(133,5927
- def get_is_visible(139,6138
- def get_link(145,6355
- def get_short_url(152,6634
- def save_model(163,7028
- def queryset(177,7644
- def formfield_for_manytomany(184,7931
- def get_actions(195,8431
- def make_mine(209,8961
- def make_published(218,9359
- def make_hidden(226,9752
- def make_tweet(233,10062
- def close_comments(249,10817
- def close_pingbacks(257,11203
- def put_on_top(265,11559
- def ping_directories(274,12005
- def get_urls(297,13065
- def _media(315,13985
-
-admin/complement.py,29
-class ComplementAdmin(8,212
-
-admin/forms.py,2806
-class MetatypeAdminForm(56,2107
- def __init__(63,2368
- def clean_parent(69,2648
- class Meta:Meta77,2932
-class ObjecttypeAdminForm(82,3014
- def __init__(110,4086
- def clean_parent(126,4824
- class Meta:Meta134,5122
-class RelationtypeAdminForm(139,5206
- def __init__(152,5804
- class Meta:Meta167,6306
-class RelationAdminForm(172,6392
- def ApplicableNodeTypes_filter(175,6436
- class Meta:Meta223,7479
-class ProcesstypeAdminForm(228,7561
- def __init__(252,8736
- class Meta:Meta272,9643
-class AttributetypeAdminForm(276,9725
- def __init__(287,10317
- class Meta:Meta300,10818
-class AttributeAdminForm(305,10905
- def subject_filter(307,10949
- def __init__(315,11205
- class Meta:Meta320,11385
-class SystemtypeAdminForm(326,11469
- def __init__(364,13456
- class Meta:Meta392,14896
-class AttributeSpecificationAdminForm(397,14978
- class Meta:Meta398,15034
-class RelationSpecificationAdminForm(401,15090
- class Meta:Meta402,15145
-class NodeSpecificationAdminForm(405,15200
- class Meta:Meta406,15251
-class UnionAdminForm(409,15302
- class Meta:Meta410,15341
-class ComplementAdminForm(413,15380
- class Meta:Meta414,15424
-class IntersectionAdminForm(419,15470
- class Meta:Meta420,15516
-class AttributeCharFieldAdminForm(425,15586
- class Meta:Meta426,15638
-class AttributeTextFieldAdminForm(429,15690
- class Meta:Meta430,15742
-class AttributeIntegerFieldAdminForm(433,15794
- class Meta:Meta434,15849
-class AttributeCommaSeparatedIntegerFieldAdminForm(437,15904
- class Meta:Meta438,15973
-class AttributeBigIntegerFieldAdminForm(440,16041
- class Meta:Meta441,16099
-class AttributePositiveIntegerFieldAdminForm(443,16156
- class Meta:Meta444,16219
-class AttributeDecimalFieldAdminForm(447,16282
- class Meta:Meta448,16337
-class AttributeFloatFieldAdminForm(450,16391
- class Meta:Meta451,16444
-class AttributeBooleanFieldAdminForm(453,16496
- class Meta:Meta454,16551
-class AttributeNullBooleanFieldAdminForm(457,16606
- class Meta:Meta458,16665
-class AttributeDateFieldAdminForm(460,16723
- class Meta:Meta461,16775
-class AttributeDateTimeFieldAdminForm(463,16826
- class Meta:Meta464,16882
-class AttributeTimeFieldAdminForm(467,16934
- class Meta:Meta468,16986
-class AttributeEmailFieldAdminForm(471,17038
- class Meta:Meta472,17091
-class AttributeFileFieldAdminForm(474,17143
- class Meta:Meta475,17195
-class AttributeFilePathFieldAdminForm(477,17246
- class Meta:Meta478,17302
-class AttributeImageFieldAdminForm(480,17357
- class Meta:Meta481,17410
-class AttributeURLFieldAdminForm(484,17463
- class Meta:Meta485,17514
-class AttributeIPAddressFieldAdminForm(487,17564
- class Meta:Meta488,17621
-
-admin/attribute_positiveintegerfield.py,48
-class AttributePositiveIntegerFieldAdmin(8,231
-
-admin/attribute_nullbooleanfield.py,44
-class AttributeNullBooleanFieldAdmin(8,227
-
-admin/relationspecification.py,40
-class RelationSpecificationAdmin(8,223
-
-admin/attribute_timefield.py,37
-class AttributeTimeFieldAdmin(8,220
-
-admin/systemtype.py,803
-class SystemtypeAdmin(27,772
- def __init__(72,3312
- def get_title(77,3484
- def get_authors(88,3985
- def get_metatypes(101,4565
- def get_tags(114,5144
- def get_sites(126,5660
- def get_comments_are_open(134,5986
- def get_is_actual(140,6249
- def get_is_visible(146,6466
- def get_link(152,6689
- def get_short_url(159,6974
- def save_model(170,7372
- def queryset(184,8004
- def formfield_for_manytomany(191,8293
- def get_actions(202,8793
- def make_mine(216,9323
- def make_published(225,9733
- def make_hidden(233,10132
- def make_tweet(240,10448
- def close_comments(256,11213
- def close_pingbacks(264,11605
- def put_on_top(272,11967
- def ping_directories(281,12419
- def get_urls(304,13485
- def _media(322,14421
-
-admin/attribute_textfield.py,37
-class AttributeTextFieldAdmin(8,220
-
-admin/attribute_commaseparatedintegerfield.py,54
-class AttributeCommaSeparatedIntegerFieldAdmin(8,237
-
-admin/widgets.py,462
-class TreeNodeChoiceField(13,344
- def __init__(16,540
- def label_from_instance(22,834
-class MPTTModelChoiceIterator(29,1112
- def choice(31,1223
-class MPTTModelMultipleChoiceField(39,1549
- def __init__(41,1668
- def label_from_instance(45,1857
- def _get_choices(51,2134
-class MPTTFilteredSelectMultiple(60,2388
- def __init__(62,2503
- def render_options(66,2690
- def render_option(74,3074
- class Media:Media103,4435
-
-admin/attribute_floatfield.py,38
-class AttributeFloatFieldAdmin(8,221
-
-admin/attribute_ipaddressfield.py,42
-class AttributeIPAddressFieldAdmin(8,225
-
-admin/relation.py,54
-class RelationAdmin(9,242
- def save_model(10,287
-
-url_shortener/__init__.py,30
-def get_url_shortener(11,286
-
-url_shortener/backends/bitly.py,20
-def backend(17,511
-
-url_shortener/backends/default.py,19
-def backend(8,179
-
-templatetags/gstudio_admin_tags.py,62
-def get_draft_nodetypes(16,444
-def get_content_stats(24,744
-
-templatetags/zbreadcrumbs.py,147
-class Crumb(9,188
- def __init__(11,243
-def year_crumb(16,333
-def month_crumb(23,542
-def day_crumb(32,873
-def retrieve_breadcrumbs(62,2254
-
-templatetags/zcalendar.py,174
-class GstudioCalendar(15,375
- def __init__(18,448
- def formatday(24,677
- def formatmonth(39,1457
- def formatweekday(52,2055
- def formatmonthname(58,2300
-
-templatetags/gstudio_tags.py,699
-def get_metatypes(41,1302
-def get_authors(54,1749
-def get_recent_nodetypes(61,1977
-def get_featured_nodetypes(68,2250
-def get_random_nodetypes(76,2565
-def get_popular_nodetypes(86,2926
-def get_similar_nodetypes(111,3884
- def compute_related(122,4236
-def get_archives_nodetypes(154,5372
-def get_archives_nodetypes_tree(162,5708
-def get_calendar_nodetypes(171,6086
-def get_recent_comments(200,7166
-def get_recent_linkbacks(217,7919
-def gstudio_pagination(236,8656
-def gstudio_breadcrumbs(275,10403
-def get_gravatar(288,10960
-def get_type(300,11351
-class TagsNode(306,11434
- def __init__(307,11456
- def render(310,11533
-def get_tags(316,11651
-def get_tag_cloud(330,12061
-
-migrations/0001_initial.py,76
-class Migration(7,125
- def forwards(9,160
- def backwards(502,33303
-
-templates/gstudio/nodetype_archive_year.html,78
-{% trans "Archives" %} {{ year }}9,223
-{% trans "Monthly archives" %}13,286
-
-templates/gstudio/nodetype_detail.html,495
-{% trans "Comments" %}comments228,10243
-{% for comment in comment_list %}comment-list232,10398
-{% if comment.url %}comment_{{ comment.pk }}239,10834
-{% trans "Pingbacks" %}pingbacks269,11585
-{% for pingback in pingback_list %}pingback-list273,11745
-{{ pingback.user_name }}pingback_{{ pingback.pk }}277,11969
-{% trans "Trackbacks" %}trackbacks303,12635
-{% for trackback in trackback_list %}trackback-list306,12751
-{{ trackback.user_name }}trackback_{{ trackback.pk }}310,12982
-
-templates/gstudio/password.html,72
-{% trans "Password required" %}7,135
-{% endblock %}id_password34,818
-
-templates/gstudio/opensearch.xml,97
-<?xml version=1,0
-<OpenSearchDescription xmlns=4,95
- <Url type=11,500
- <Query role=15,1037
-
-templates/gstudio/tags/slider_nodetypes.html,170
-{% for nodetype in nodetypes %}slider4,64
-{{ nodetype.title }}nav-slider-{{ forloop.counter }}9,394
-{{ nodetype.title }}nodetype-slider-{{ forloop.counter }}20,734
-
-templates/gstudio/skeleton.html,309
-Gnowledge Studio - {% block title %}{% endblock %}76,4581
-{% include "gstudio/_header.html" %}gstudio81,4712
-/ {% block breadcrumbs %}{% endblock %}breadcrumbs84,4801
-{% block content %}content89,4945
-The content block need to be overrided!90,4968
-Welcome!sidebar97,5113
-Powered by footer110,5486
-
-templates/gstudio/attributetype_detail.html,486
-{% trans "Comments" %}comments157,7201
-{% for comment in comment_list %}comment-list161,7356
-{% if comment.url %}comment_{{ comment.pk }}168,7792
-{% trans "Pingbacks" %}pingbacks198,8548
-{% for pingback in pingback_list %}pingback-list202,8708
-{{ pingback.user_name }}pingback_{{ pingback.pk }}206,8932
-{% trans "Trackbacks" %}trackbacks232,9603
-{% for trackback in trackback_list %}trackback-list235,9719
-{{ trackback.user_name }}trackback_{{ trackback.pk }}239,9950
-
-templates/gstudio/sitemap.html,183
-{% trans "Sitemap" %}7,148
-{% trans "Nodetypes per metatypes" %}10,215
-{% trans "All the nodetypes" %}31,831
-{% trans "Metatypes" %}50,1402
-{% trans "Monthly archives" %}67,2053
-
-templates/gstudio/nodetype_archive_day.html,58
-{% trans "Archives" %} {{ day|date:"DATE_FORMAT" }}9,259
-
-templates/gstudio/tag_list.html,29
-{% trans "Tag list" %}9,188
-
-templates/gstudio/nodetype_list.html,169
-{{ metatype.title }}23,1561
-{% trans "Tag" %} : {{ tag }}100,4059
-{% blocktrans with author.username as author %}Nodetypes by {{ author }}{% endblocktrans %}104,4127
-
-templates/gstudio/rsd.xml,42
-<?xml version=1,0
- <api name=8,321
-
-templates/gstudio/wlwmanifest.xml,34
-{% load i18n %}<?xml version=1,0
-
-templates/gstudio/wxr.xml,138
-<?xml version=1,0
-<!-- generator=8,417
- <metatype domain=44,2143
- <metatype domain=46,2338
- <guid isPermaLink=48,2440
-
-templates/gstudio/nodetype_archive_month.html,102
-{% trans "Archives" %} {{ month|date:"YEAR_MONTH_FORMAT" }}9,275
-{% trans "Daily archives" %}13,364
-
-templates/gstudio/login.html,36
-{% trans "Login required" %} 7,132
-
-templates/gstudio/base.html,415
-{% trans "Search" %}28,978
-{% trans "Metatypes" %}searchbox40,1627
-{% trans "Authors" %}45,1714
-{% trans "Calendar" %}49,1797
-{% trans "Tags" %}53,1888
-{% trans "Recent node types" %}57,1969
-{% trans "Recent comments" %}61,2073
-{% trans "Recent linkbacks" %}65,2175
-{% trans "Random node types" %}69,2277
-{% trans "Popular node types" %}73,2381
-{% trans "Archives" %}77,2487
-{% trans "Tools" %}82,2615
-
-templates/gstudio/nodetype_trackback.xml,19
-<?xml version=1,0
-
-templates/gstudio/_header.html,100
-&nbsp; Gnowledge Studio header5,45
-{% firstof user.first_name user.username %}user-tools17,549
-
-templates/gstudio/metatype_list.html,34
-{% trans "Metatype list" %}9,208
-
-templates/gstudio/author_list.html,32
-{% trans "Author list" %}9,194
-
-templates/gstudio/_nodetype_detail.html,50
-{{ object.title }}nodetype-{{ object.pk }}6,316
-
-templates/gstudio/nodetype_search.html,128
-{% trans "Search results for" %} {% if pattern %}'{{ pattern }}'{% endif %}14,808
-{% if is_paginated %}main_searchbox46,2016
-
-templates/comments/gstudio/nodetype/posted.html,44
-{% trans "Thanks for your comment" %}7,141
-
-templates/comments/gstudio_nodetype_preview.html,250
-{% blocktrans count form.errors|length as errors %}Please correct following error.{% plural %}Please correct following errors.{% endblocktrans %}9,185
-{% trans "Preview of the comment" %}12,356
-{% if form.cleaned_data.url %}comment_preview20,783
-
-templates/skeleton.html,335
-Gnowledge Studio - {% block title %}{% endblock %}26,1536
-A workspace for constructing and publishing knowledge networks.gstudio32,1681
-/ {% block breadcrumbs %}{% endblock %}breadcrumbs35,1817
-{% block content %}content40,1973
-The content block need to be overrided!41,1996
-Welcome!sidebar46,2139
-Powered by footer67,2850
-
-templates/admin/gstudio/app_index.html,78
-{% include "admin/gstudio/widgets/content_stats.html" %}content-main28,1046
-
-templates/admin/gstudio/widgets/quickpost.html,110
-{% csrf_token %}quickpost4,122
-{% trans "Content" %}:id_title17,525
-{% trans "Tags" %}:id_content25,780
-
-templates/admin/gstudio/widgets/ATquickpost.html,189
-{% csrf_token %}AT_quickpost4,125
-{% trans "Slug" %}:id_title19,525
-{% trans "Status" %}:id_slug27,766
-{% trans "Content" %}:id_status35,1019
-{% trans "Tags" %}:id_content43,1274
-
-templates/admin/gstudio/widgets/OTquickpost.html,188
-{% csrf_token %}OTquickpost4,123
-{% trans "Slug" %}:id_title18,526
-{% trans "Status" %}:id_slug26,767
-{% trans "Content" %}:id_status34,1020
-{% trans "Tags" %}:id_content42,1275
-
-templates/admin/gstudio/widgets/base.html,74
-{% block title %}{% endblock %}{% block module_id %}{% endblock %}3,116
-
-templates/admin/gstudio/base.html~,780
-<html xmlns=2,136
-<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE|default:"en-us" }}" xml:lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir=dir2,136
-<link rel=5,367
-<!--[if lte IE 7]><link rel=7,547
-{% if LANGUAGE_BIDI %}<link rel=8,721
-<script type=9,879
-{% block blockbots %}<meta name=11,1051
- <div id=22,1332
- <div id=27,1490
- <a href=33,1802
- <a href=37,2027
- <a href=39,2111
- <a href=44,2345
- <a href=46,2420
- {% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} &rsaquo;rsaquo55,2686
- <div id=65,3097
- </div>div74,3493
- {% block footer %}<div id=77,3530
-
-templates/500.html,168
-{% trans "Server error" %}11,213
-{% trans "Useful links" %}15,407
-{% trans "Recent node types" %}31,773
-{% trans "Search" %}36,875
-{% endblock %}searchbox46,1219
-
-templates/404.html,170
-{% trans "Page not found" %}11,215
-{% trans "Useful links" %}15,326
-{% trans "Recent node types" %}31,692
-{% trans "Search" %}36,794
-{% endblock %}searchbox46,1138
-
-templates/base.html,415
-{% trans "Search" %}23,934
-{% trans "Metatypes" %}searchbox35,1583
-{% trans "Authors" %}40,1670
-{% trans "Calendar" %}44,1753
-{% trans "Tags" %}48,1844
-{% trans "Recent node types" %}52,1925
-{% trans "Recent comments" %}56,2029
-{% trans "Recent linkbacks" %}60,2131
-{% trans "Random node types" %}64,2233
-{% trans "Popular node types" %}68,2337
-{% trans "Archives" %}72,2443
-{% trans "Tools" %}77,2571
-
-TAGS,17
-feeds.py,py2,2
-
-spam_checker/__init__.py,55
-def get_spam_checker(10,207
-def check_is_spam(26,709
-
-spam_checker/backends/mollom.py,20
-def backend(22,705
-
-spam_checker/backends/all_is_spam.py,18
-def backend(4,54
-
-spam_checker/backends/automattic.py,20
-def backend(21,607
-
-spam_checker/backends/typepad.py,42
-class TypePad(21,607
-def backend(26,727
-
-static/gstudio/img/sitemap.png,41
-d€r`)¬‚B(†Í°*`/Ô@4ÀQh†“p.ÂU¸U7,703
-
-static/gstudio/img/objecttype.png,94
-(Ë’öû=m6ò}_ÙàB¦Ó©Çø`fÀëÉܲê`·ÛÑd2¡0 ͇¸® BaøªRÇgÁMÓPQÊbE‘Ò‡T iÛÖ$iÛÖ5,253
-
-static/gstudio/img/wlw/watermark.png,608
-jTÐÄÙ¢0EP^HÁS´§©/Iýåih‘¾Á­.‘èA s¨!:JŠ¤»?Êpñ!Êñ{X,X4,899
-‚ä†<VÜV5,995
-3Y¨V·,¶é±ëDN5%FÒPÐnÄÆ‘<6d_¡ê+¬™PcM7S¯,ÿøt üÖ¿šú+ÿKÀ>jhª dCi÷”T(–i( Ó ÷:j" ÷¾~›ËožP.Zê½#9EŽ ZidhÈA!2/ÒgÊÜ OöˆQ0}¦Œ-Q„ª$L5’¬Q„ª$L5’10,1712
-®Û7GLç7 èƒpR49×è"˜vƒkö„’º8t0Z“ç†8u¤aIž–”©E¡°ÍSïH®&wï§1ßÏêèýØæú(Üî ⯕ïÌF~î¿,¼ö⣨õ)^¯È»cÆÍ !,!ytQå( D?¡t&ïÖäÝ ’ía“Ê VY\PF@ìñº“ qènS…ÂÆš’<q¿B©¹CJ²Û]!}‡žÇO}…ööOúÕ®» æÍuƒ®gtÎhèD c€:¡-ȸ$Ï)4”¹£‹ 0n­6‡YYš£‘k×w¬× Å^§ï+VjæîÿþÆwè—þRÏþ»HyðUYS r Bc‡r Bc15,3313
-·š1«‘Ø/‰ç5 ÍŠì)+L6H†’-)5Ž,-JÕ83â‡.j¼F% ¿èÑÑ"C‹‰ÍA5ªÚÓ#ä«¡\@fÃðfÃ21,4864
-
-static/gstudio/img/wlw/comments.png,84
-ÔV”VV”5,151
-ÔV”V”" Rh£òpš´MC";ib;5,151
-ÔV”V”" Rh£òpš´MC";ib;~Åkï®wg~Åkï®w5,151
-
-static/gstudio/img/plugin.png,992
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´StqtQ´Stq12,1526
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûgYû12,1526
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûg½Žñ©Œ¹;Ûj¶rvg¬jlRlc웸j¶rvg¬jlRlcì›12,1526
-
-static/gstudio/css/src/_base.sass,40
-$blueprint_font_family: unquote(13,424
-
-static/gstudio/css/src/dashboard_gstudio.sass,41
- th,11,117
- background: url(15,163
-
-static/gstudio/css/src/screen.sass,106
-ul,13,265
- h1,49,907
- h1, h2,49,907
- ul,62,1087
- li ul,65,1165
- +tag-cloud(cloud84,1495
-
-static/gstudio/css/src/print.sass,179
- a,10,125
- a, a:link,link10,125
- a, a:link, a:visited,visited10,125
- a, a:link, a:visited, a:focus,focus10,125
- a, a:link, a:visited, a:focus, a:active,active10,125
-
-static/gstudio/css/src/dashboard_objectapp.sass,41
- th,11,117
- background: url(15,163
-
-static/gstudio/css/print.css,354
-h1,8,330
-h1, h2,8,330
-h1, h2, h3,8,330
-h1, h2, h3, h4,8,330
-h1, h2, h3, h4, h5,8,330
-a:link,link13,528
-body a,28,874
-body a, body a:link,link28,874
-body a, body a:link, body a:visited,visited28,874
-body a, body a:link, body a:visited, body a:focus,focus28,874
-body a, body a:link, body a:visited, body a:focus, body a:active,active28,874
-
-static/gstudio/css/config.rb,19
-project_type 2,47
-
-static/gstudio/css/ie.css,32
-fieldset,19,419
-legend,21,464
-
-static/gstudio/css/screen.css,14875
-h1,3,103
-h1, h2,3,103
-h1, h2, h3,3,103
-h1, h2, h3, h4,3,103
-h1, h2, h3, h4, h5,3,103
-h1 img,4,167
-h1 img, h2 img,4,167
-h1 img, h2 img, h3 img,4,167
-h1 img, h2 img, h3 img, h4 img,4,167
-h1 img, h2 img, h3 img, h4 img, h5 img,4,167
-strong,30,1009
-em,32,1045
-sup,34,1078
-abbr,36,1108
-pre,44,1283
-pre, code,44,1283
-li ul,46,1374
-ul,48,1403
-th,65,1720
-th, td,65,1720
-table.striped tr:nth-child(child67,1768
-.column,column97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline;97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline; float: left;97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline; float: left; margin-right: 10px;px97,2475
-* html .column,column98,2768
-* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 { overflow-x: hidden;98,2768
-.span-1 { width: 30px;px102,3235
-.span-2 { width: 70px;px104,3261
-.span-3 { width: 110px;px106,3287
-.span-4 { width: 150px;px108,3314
-.span-5 { width: 190px;px110,3341
-.span-6 { width: 230px;px112,3368
-.span-7 { width: 270px;px114,3395
-.span-8 { width: 310px;px116,3422
-.span-9 { width: 350px;px118,3449
-.span-10 { width: 390px;px120,3476
-.span-11 { width: 430px;px122,3504
-.span-12 { width: 470px;px124,3532
-.span-13 { width: 510px;px126,3560
-.span-14 { width: 550px;px128,3588
-.span-15 { width: 590px;px130,3616
-.span-16 { width: 630px;px132,3644
-.span-17 { width: 670px;px134,3672
-.span-18 { width: 710px;px136,3700
-.span-19 { width: 750px;px138,3728
-.span-20 { width: 790px;px140,3756
-.span-21 { width: 830px;px142,3784
-.span-22 { width: 870px;px144,3812
-.span-23 { width: 910px;px146,3840
-.span-24 { width: 950px;px148,3868
-.span-24 { width: 950px; margin:margin148,3868
-input.span-1, textarea.span-1, select.span-1 { width: 30px;px150,3907
-input.span-2, textarea.span-2, select.span-2 { width: 70px;px151,3969
-input.span-3, textarea.span-3, select.span-3 { width: 110px;px152,4031
-input.span-4, textarea.span-4, select.span-4 { width: 150px;px153,4094
-input.span-5, textarea.span-5, select.span-5 { width: 190px;px154,4157
-input.span-6, textarea.span-6, select.span-6 { width: 230px;px155,4220
-input.span-7, textarea.span-7, select.span-7 { width: 270px;px156,4283
-input.span-8, textarea.span-8, select.span-8 { width: 310px;px157,4346
-input.span-9, textarea.span-9, select.span-9 { width: 350px;px158,4409
-input.span-10, textarea.span-10, select.span-10 { width: 390px;px159,4472
-input.span-11, textarea.span-11, select.span-11 { width: 430px;px160,4538
-input.span-12, textarea.span-12, select.span-12 { width: 470px;px161,4604
-input.span-13, textarea.span-13, select.span-13 { width: 510px;px162,4670
-input.span-14, textarea.span-14, select.span-14 { width: 550px;px163,4736
-input.span-15, textarea.span-15, select.span-15 { width: 590px;px164,4802
-input.span-16, textarea.span-16, select.span-16 { width: 630px;px165,4868
-input.span-17, textarea.span-17, select.span-17 { width: 670px;px166,4934
-input.span-18, textarea.span-18, select.span-18 { width: 710px;px167,5000
-input.span-19, textarea.span-19, select.span-19 { width: 750px;px168,5066
-input.span-20, textarea.span-20, select.span-20 { width: 790px;px169,5132
-input.span-21, textarea.span-21, select.span-21 { width: 830px;px170,5198
-input.span-22, textarea.span-22, select.span-22 { width: 870px;px171,5264
-input.span-23, textarea.span-23, select.span-23 { width: 910px;px172,5330
-input.span-24, textarea.span-24, select.span-24 { width: 950px;px173,5396
-.append-1 { padding-right: 40px;px175,5463
-.append-2 { padding-right: 80px;px177,5499
-.append-3 { padding-right: 120px;px179,5535
-.append-4 { padding-right: 160px;px181,5572
-.append-5 { padding-right: 200px;px183,5609
-.append-6 { padding-right: 240px;px185,5646
-.append-7 { padding-right: 280px;px187,5683
-.append-8 { padding-right: 320px;px189,5720
-.append-9 { padding-right: 360px;px191,5757
-.append-10 { padding-right: 400px;px193,5794
-.append-11 { padding-right: 440px;px195,5832
-.append-12 { padding-right: 480px;px197,5870
-.append-13 { padding-right: 520px;px199,5908
-.append-14 { padding-right: 560px;px201,5946
-.append-15 { padding-right: 600px;px203,5984
-.append-16 { padding-right: 640px;px205,6022
-.append-17 { padding-right: 680px;px207,6060
-.append-18 { padding-right: 720px;px209,6098
-.append-19 { padding-right: 760px;px211,6136
-.append-20 { padding-right: 800px;px213,6174
-.append-21 { padding-right: 840px;px215,6212
-.append-22 { padding-right: 880px;px217,6250
-.append-23 { padding-right: 920px;px219,6288
-.prepend-1 { padding-left: 40px;px221,6326
-.prepend-2 { padding-left: 80px;px223,6362
-.prepend-3 { padding-left: 120px;px225,6398
-.prepend-4 { padding-left: 160px;px227,6435
-.prepend-5 { padding-left: 200px;px229,6472
-.prepend-6 { padding-left: 240px;px231,6509
-.prepend-7 { padding-left: 280px;px233,6546
-.prepend-8 { padding-left: 320px;px235,6583
-.prepend-9 { padding-left: 360px;px237,6620
-.prepend-10 { padding-left: 400px;px239,6657
-.prepend-11 { padding-left: 440px;px241,6695
-.prepend-12 { padding-left: 480px;px243,6733
-.prepend-13 { padding-left: 520px;px245,6771
-.prepend-14 { padding-left: 560px;px247,6809
-.prepend-15 { padding-left: 600px;px249,6847
-.prepend-16 { padding-left: 640px;px251,6885
-.prepend-17 { padding-left: 680px;px253,6923
-.prepend-18 { padding-left: 720px;px255,6961
-.prepend-19 { padding-left: 760px;px257,6999
-.prepend-20 { padding-left: 800px;px259,7037
-.prepend-21 { padding-left: 840px;px261,7075
-.prepend-22 { padding-left: 880px;px263,7113
-.prepend-23 { padding-left: 920px;px265,7151
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline;267,7189
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left;267,7189
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left; position: relative;267,7189
-.pull-1 { margin-left: -40px;px269,7474
-.pull-2 { margin-left: -80px;px271,7507
-.pull-3 { margin-left: -120px;px273,7540
-.pull-4 { margin-left: -160px;px275,7574
-.pull-5 { margin-left: -200px;px277,7608
-.pull-6 { margin-left: -240px;px279,7642
-.pull-7 { margin-left: -280px;px281,7676
-.pull-8 { margin-left: -320px;px283,7710
-.pull-9 { margin-left: -360px;px285,7744
-.pull-10 { margin-left: -400px;px287,7778
-.pull-11 { margin-left: -440px;px289,7813
-.pull-12 { margin-left: -480px;px291,7848
-.pull-13 { margin-left: -520px;px293,7883
-.pull-14 { margin-left: -560px;px295,7918
-.pull-15 { margin-left: -600px;px297,7953
-.pull-16 { margin-left: -640px;px299,7988
-.pull-17 { margin-left: -680px;px301,8023
-.pull-18 { margin-left: -720px;px303,8058
-.pull-19 { margin-left: -760px;px305,8093
-.pull-20 { margin-left: -800px;px307,8128
-.pull-21 { margin-left: -840px;px309,8163
-.pull-22 { margin-left: -880px;px311,8198
-.pull-23 { margin-left: -920px;px313,8233
-.pull-24 { margin-left: -960px;px315,8268
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline;317,8303
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: left;317,8303
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: left; position: relative;317,8303
-.push-1 { margin: 0 -40px 1.5em 40px;px319,8588
-.push-2 { margin: 0 -80px 1.5em 80px;px321,8629
-.push-3 { margin: 0 -120px 1.5em 120px;px323,8670
-.push-4 { margin: 0 -160px 1.5em 160px;px325,8713
-.push-5 { margin: 0 -200px 1.5em 200px;px327,8756
-.push-6 { margin: 0 -240px 1.5em 240px;px329,8799
-.push-7 { margin: 0 -280px 1.5em 280px;px331,8842
-.push-8 { margin: 0 -320px 1.5em 320px;px333,8885
-.push-9 { margin: 0 -360px 1.5em 360px;px335,8928
-.push-10 { margin: 0 -400px 1.5em 400px;px337,8971
-.push-11 { margin: 0 -440px 1.5em 440px;px339,9015
-.push-12 { margin: 0 -480px 1.5em 480px;px341,9059
-.push-13 { margin: 0 -520px 1.5em 520px;px343,9103
-.push-14 { margin: 0 -560px 1.5em 560px;px345,9147
-.push-15 { margin: 0 -600px 1.5em 600px;px347,9191
-.push-16 { margin: 0 -640px 1.5em 640px;px349,9235
-.push-17 { margin: 0 -680px 1.5em 680px;px351,9279
-.push-18 { margin: 0 -720px 1.5em 720px;px353,9323
-.push-19 { margin: 0 -760px 1.5em 760px;px355,9367
-.push-20 { margin: 0 -800px 1.5em 800px;px357,9411
-.push-21 { margin: 0 -840px 1.5em 840px;px359,9455
-.push-22 { margin: 0 -880px 1.5em 880px;px361,9499
-.push-23 { margin: 0 -920px 1.5em 920px;px363,9543
-.push-24 { margin: 0 -960px 1.5em 960px;px365,9587
-.feedback,feedback373,9773
-.feedback, .error,error373,9773
-.feedback, .error, .alert,alert373,9773
-.feedback, .error, .alert, .notice,notice373,9773
-.feedback, .error, .alert, .notice, .success,success373,9773
-.error,error375,9893
-.error a,376,9972
-input.text,text401,10607
-input.text, input.title,title401,10607
-input.text, input.title, input[input401,10607
-input.text, input.title, input[type=email], input[input401,10607
-input.text,text410,10900
-input.text, input.title,title410,10900
-input.text, input.title, input[input410,10900
-input.text, input.title, input[type=email], input[input410,10900
-input.text, input.title, input[type=email], input[type=text], input[input410,10900
-input.text:focus,focus411,11048
-input.text:focus, input.title:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus, input[type=text]:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus, input[type=text]:focus, input[type=password]:focus,focus411,11048
-input.text,text415,11285
-input.text, input.title,title415,11285
-input.text, input.title, input[input415,11285
-input.text, input.title, input[type=email], input[input415,11285
-ul,421,11517
-div.paginator span.page:hover,hover470,14146
-div.paginator span.page:hover, div.paginator span.next:hover,hover470,14146
-div.paginator span.page:hover a,471,14273
-div.paginator span.page:hover a, div.paginator span.next:hover a,471,14273
-.hgbobject .gbobject-content pre,488,15666
-.gbobject-widgets ul,494,16239
-ol#comment-list,list498,16409
-ol#comment-list, ol#pingback-list,list498,16409
-ol#comment-list li,499,16516
-ol#comment-list li, ol#pingback-list li,499,16516
-ol#comment-list li.box2,box2500,16629
-ol#comment-list li.box2, ol#pingback-list li.box2,box2500,16629
-ol#comment-list li.post-author,author501,16760
-ol#comment-list li.post-author, ol#pingback-list li.post-author,author501,16760
-ol#comment-list li p,502,16878
-ol#comment-list li p, ol#pingback-list li p,502,16878
-ol#comment-list li img,503,16972
-ol#comment-list li img, ol#pingback-list li img,503,16972
-ol#comment-list li .pingback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body, ol#pingback-list li .trackback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body, ol#pingback-list li .trackback-body, ol#trackback-list li .pingback-body,body504,17064
-ol#comment-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author, ol#trackback-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author, ol#trackback-list li .comment-author, ol#trackback-list li .pingback-author,author505,17300
-
-static/gstudio/css/dashboard_gstudio.css,147
-.module table th,5,117
-.managelink managelink7,174
-input,11,400
-input, textarea,11,400
-.vTextField,vTextField13,456
-.required label,15,504
-
-static/gstudio/css/dashboard_objectapp.css,147
-.module table th,5,117
-.managelink managelink7,174
-input,11,400
-input, textarea,11,400
-.vTextField,vTextField13,456
-.required label,15,504
-
-static/gstudio/css/grappelli-skin-default.css,15333
-.module p.help,help12,513
-p.preview a:link,link23,719
-p.preview a:hover,hover26,792
-a:link,link35,982
-a:hover,hover38,1024
-a:hover, a:active,active38,1024
-.dashboard h2 a:link,link42,1076
-.dashboard h2 a:link, .dashboard h2 a:visited,visited42,1076
-.dashboard h3 a:link,link43,1124
-.dashboard h2 a:hover,hover46,1191
-.dashboard h2 a:hover, .dashboard h2 a:active,active46,1191
-.dashboard h3 a:hover,hover47,1239
-.dashboard h4 a:link,link51,1310
-.dashboard h4 a:hover,hover54,1377
- color: #59AFCC;AFCC59,1484
- color:color62,1542
-code,75,1763
-.rte h3:last-child,child106,2226
- color: #eee;eee164,3819
- background:background165,3836
- color: #ddd;ddd171,4091
- border-left: 1px solid 192,4515
- border-left: 1px solid 195,4570
- border-right: 1px solid 196,4606
-ul.navigation-menu li.collapse.open>a.collapse-handler,handler277,7079
-ul.navigation-menu li.bookmark.disabled>a,a278,7136
-ul.messagelist li.error,error339,8820
-.module .module,module390,10302
-.group,group412,10942
-.group h2,425,11245
- border-top: 1px solid #fff;fff441,11916
-.module h2+.module,module443,11950
-.module h2+.tools,tools444,11971
- border-top:top459,12317
-.group h3,462,12339
- border-top: 1px solid #fff;fff476,12902
-.module h3+.module,module478,12936
-.module h3+.tools,tools479,12957
-.group .module .module,module487,13125
-.group .module .module>*:first-child,child491,13213
-.group h4,496,13330
- border-top: 1px solid #fff;fff506,13670
-.module .row.description,description514,13819
-.group .module.collapse.closed h3.collapse-handler,handler534,14437
-.group .module.collapse.closed h4.collapse-handler,handler535,14490
-.collapse.closed h2.collapse-handler,handler536,14543
-.module .module.collapse.closed.last .collapse-handler,handler537,14582
-.module.collapse.closed h2.collapse-handler,handler542,14931
-.module.collapse.closed h3.collapse-handler,handler543,14977
-.collapse h2.collapse-handler:hover,hover557,15447
-.group .collapse h3.collapse-handler,handler568,15844
-.group .collapse h3.collapse-handler:hover,hover575,16163
-.module .collapse h3.collapse-handler:hover,hover576,16208
-.group .collapse.open h3.collapse-handler,handler577,16254
-.group .module .collapse > h4.collapse-handler,handler591,16742
-.group .collapse > h4.collapse-handler:hover,hover599,17116
-.module .collapse > h4.collapse-handler:hover,hover600,17163
-.group .collapse.open > h4.collapse-handler,handler601,17211
-.row.first,first621,17797
-.row:first-child,child622,17810
-.row.last,last628,18106
-.row:last-child,child629,18118
-.row:last-of-type,type630,18136
-fieldset.module > .row.last,last631,18156
-fieldset.module .cell:last-child,child656,18880
-.module.thead,thead675,19314
-.module.table .tr,tr680,19394
-.module.table .th,th684,19461
-.module.thead .th:last-of-type,type689,19573
-.module.thead .td:last-of-type,type690,19606
-.module.table .module.thead .th,th694,19695
-.module.tbody .th,th700,19828
-.module.tbody .th:first-of-type,type706,19965
-.module.tbody .th:last-of-type,type713,20383
-.predelete h2,735,21104
-.predelete h2, .collapse.predelete > h2.collapse-handler,handler735,21104
-.predelete h3,736,21163
-.predelete h3, .collapse.predelete > h3.collapse-handler,handler736,21163
-.predelete h4,737,21222
-.collapse.predelete > h2.collapse-handler:hover,hover743,21531
-.collapse.predelete > h3.collapse-handler:hover,hover744,21581
-.predelete .collapse > h4.collapse-handler:hover,hover745,21631
-.collapse.open.predelete > h2.collapse-handler,handler746,21682
-.collapse.open.predelete > h3.collapse-handler,handler747,21731
-.predelete,predelete754,22114
-.predelete .module,module755,22127
-.predelete .th,th756,22147
-.selector-available,available766,22343
-.selector h2,771,22512
-.selector h2, .inline-group .selector h2,771,22512
-.inline-related fieldset .selector-available h2,772,22555
-a.selector-chooseall,chooseall795,23500
-a.selector-chooseall,chooseall803,23628
-.module.link-list,list812,23867
-.module.link-list .module,module813,23887
-.module.actions,actions814,23915
-.module.actions .module,module815,23933
-.module.feed,feed816,23959
-.link-list ul li,820,24021
-.feed ul li,821,24040
-.actions ul li,822,24054
-.actions ul li:first-child,child830,24206
-.link-list ul li:first-child,child831,24235
-.feed ul li:first-child,child832,24266
-.actions ul li:last-child,child836,24352
-.link-list ul li:last-child,child837,24380
-.feed ul li:last-child,child838,24410
-.link-list ul li.selected a,842,24497
-a.internal:link,link846,24584
-a.internal:hover,hover847,24623
-a.internal:hover, a.internal:active,active847,24623
-a.external:link,link851,24706
-a.external:hover,hover854,24766
-.module.changelist-filters:last-of-type,type869,25257
-.module.search,search880,25718
-.open a.button.toggle-filters,filters894,26186
-a.button.toggle-filters:link,link900,26540
-.selected a.button.toggle-filters:link,link904,26650
-.open a.button.toggle-filters,filters912,27268
-.open a.button.toggle-filters, .selected a.button.toggle-filters,filters912,27268
-.selected a.button.toggle-filters:hover,hover913,27335
-.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active,active913,27335
-a.button.toggle-filters:hover,hover914,27419
-.selected a.button.toggle-filters:link,link923,28050
-.open a.button.toggle-filters,filters932,28701
-.open.selected a.button.toggle-filters,filters933,28733
-.selected a.button.toggle-filters:hover,hover934,28774
-.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active,active934,28774
-a.button.toggle-filters:hover,hover935,28858
-.date-hierarchy a:link,link979,31024
-.date-hierarchy a:hover,hover982,31098
-.date-hierarchy a.date-hierarchy-back:hover,hover985,31169
-ul.pagination span,1009,31792
-ul.pagination a:link,link1015,32022
-ul.pagination a:hover,hover1019,32117
-.changelist-actions.all-selected,selected1058,33330
-.changelist-actions ul a,1066,33595
-.changelist-actions ul a:link,link1071,33754
-.changelist-actions ul a:hover,hover1079,34083
-h1 + .tools a:link,link1151,36317
-h1 + .tools a:hover,hover1157,36580
-h1 + .tools a.add-handler:link,link1173,37239
-h1 + .tools a.add-handler:hover,hover1180,37760
-.group h2+.tools,tools1191,38378
-.group h2+.tools,tools1199,38657
-.group .module.collapse.closed h3+.tools,tools1207,38902
-.group .module.collapse.closed h3+.tools li,1208,38945
-.module.collapse.closed:last-child h3+.tools,tools1209,38991
-.group h3+.tools,tools1213,39205
-.module.collapse.closed:last-child h4+.tools,tools1221,39427
-.login .errornote,errornote1242,40343
-.error input,1251,40576
-.error input, .error select,1251,40576
-.error input, .error select, .errors input,1251,40576
-input,1272,41038
-input, textarea,1272,41038
-input, textarea, select,1272,41038
-input,1279,41255
-input, textarea,1279,41255
-*:focus,focus1289,41565
-*:focus, input:focus,focus1289,41565
-*:focus, input:focus, textarea:focus,focus1289,41565
-option,1311,42092
-.vAutocompleteSearchField,vAutocompleteSearchField1322,42311
-input[input1330,42469
-textarea[textarea1331,42486
-input[input1341,42938
-input[type=submit], input[input1341,42938
-input[type=submit], input[type=reset], input[input1341,42938
- border-radius: 6px;px1352,43259
- border-radius: 6px; -moz-border-radius: 6px;px1352,43259
- border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;px1352,43259
- box-shadow: 0 0 5px px1353,43336
- box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px px1353,43336
- box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px px1353,43336
- background: #d6d6d6;d6d6d61354,43431
- box-shadow: 0 0 5px #aaa;aaa1361,43673
- box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa;aaa1361,43673
- box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa;aaa1361,43673
- border: 1px solid 1365,43873
- box-shadow: 0 0 5px px1366,43901
- box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px px1366,43901
- box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px px1366,43901
- background:background1367,43996
- box-shadow: 0 0 5px #aaa;aaa1370,44070
- box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa;aaa1370,44070
- box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa;aaa1370,44070
-.footer .submit-row>*[class*="-container"]:hover,hover1372,44167
-.submit-row a.submit-link,link1383,44569
-.submit-row a.delete-link,link1384,44597
-.submit-row a.submit-link,link1388,44732
-input[input1393,44827
-.submit-row a.delete-link:link,link1395,44871
-.submit-row a.delete-link:link, .submit-row a.delete-link:visited,visited1395,44871
-.submit-row a.cancel-link:link,link1396,44939
-.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited,visited1396,44939
-.submit-row a.delete-link:link,link1401,45147
-.submit-row a.cancel-link:link,link1410,45526
-.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited,visited1410,45526
-input[input1420,45892
-.submit-row a.submit-link:link,link1421,45913
-input[type=submit]:hover,hover1428,46238
-.submit-row a.submit-link:hover,hover1430,46294
-.submit-row a.submit-link:hover, .submit-row a.submit-link:active,active1430,46294
-.submit-row a.delete-link:hover,hover1431,46362
-.submit-row a.delete-link:hover, .submit-row a.delete-link:active,active1431,46362
-.submit-row a.cancel-link:hover,hover1432,46430
-.submit-row a.cancel-link:hover, .submit-row a.cancel-link:active,active1432,46430
-.footer input[type=submit]:hover,hover1441,46810
-.footer #bookmark-add-cancel:hover,hover1442,46845
-.footer .submit-row a.delete-link:hover,hover1443,46882
-.footer .submit-row a.delete-link:hover, .footer .submit-row a.delete-link:active,active1443,46882
-.footer .submit-row a.cancel-link:hover,hover1444,46966
-button.fb_show,fb_show1448,47081
-button.ui-datepicker-trigger,trigger1449,47098
-button.ui-timepicker-trigger,trigger1450,47129
-button.ui-gAutocomplete-browse,browse1451,47160
-button.ui-gAutoSlugField-toggle,toggle1452,47193
-button.ui-gFacelist-browse,browse1453,47227
-a.button,button1454,47256
-.vDateField + span a,1455,47267
-.vTimeField + span a,1456,47290
-a.fb_show,fb_show1457,47313
-a.related-lookup,lookup1458,47325
-a.add-another,another1459,47344
-button.fb_show,fb_show1480,48331
-button.ui-gAutocomplete-browse,browse1481,48348
-button.ui-gFacelist-browse,browse1482,48381
-button.ui-gAutoSlugField-toggle,toggle1483,48410
-button.ui-datepicker-trigger,trigger1484,48444
-button.ui-timepicker-trigger,trigger1485,48475
-button.fb_show:hover,hover1490,48591
-button.ui-gAutocomplete-browse:hover,hover1491,48614
-button.ui-gFacelist-browse:hover,hover1492,48653
-button.ui-gAutoSlugField-toggle:hover,hover1493,48688
-button.ui-datepicker-trigger:hover,hover1494,48728
-button.ui-timepicker-trigger:hover,hover1495,48765
-button.fb_show[fb_show1499,48865
-button.ui-gAutocomplete-browse[browse1500,48892
-button.ui-gFacelist-browse[browse1501,48935
-button.ui-gAutoSlugField-toggle[toggle1502,48974
-button.ui-datepicker-trigger[trigger1503,49018
-button.ui-timepicker-trigger[trigger1504,49059
-button.ui-gAutocomplete-browse,browse1514,49289
-button.ui-gAutocomplete-browse:hover,hover1520,49719
-.errors button.ui-gAutocomplete-browse,browse1527,50171
-a.button,button1592,53327
-.datecrumbs a,1593,53338
-a.button.drop-down:link,link1612,54154
-a.button.drop-down[down1616,54258
-a.button.drop-down:hover,hover1617,54298
-a.fb_show,fb_show1629,54994
-a.fb_show:link,link1633,55055
-a.fb_show:link, a.fb_show:visited,visited1633,55055
-a.related-lookup:link,link1634,55091
-a.fb_show:hover,hover1637,55174
-a.fb_show:hover, a.fb_show:active,active1637,55174
-a.related-lookup:hover,hover1638,55210
-a.fb_show:link,link1642,55294
-a.fb_show:link, a.fb_show:visited,visited1642,55294
-a.fb_show:hover,hover1648,55701
-a.fb_show:hover, a.fb_show:active,active1648,55701
-a.related-lookup:link,link1654,56123
-a.related-lookup:hover,hover1659,56541
-a.related-lookup.m2m:link,link1668,57039
-a.related-lookup.m2m:link, a.related-lookup.m2m:visited,visited1668,57039
-div.autocomplete-wrapper-m2m a.related-lookup:link,link1669,57097
-a.related-lookup.m2m:hover,hover1674,57585
-a.related-lookup.m2m:hover, a.related-lookup.m2m:active,active1674,57585
-div.autocomplete-wrapper-m2m a.related-lookup:hover,hover1675,57643
-.error input + button,1695,58432
-.error .vDateField + button,1696,58456
-.error .vTimeField + button,1697,58486
-.error input + a.fb_show,fb_show1698,58516
-.error input + a.related-lookup,lookup1699,58543
-.error input + a.add-another,another1700,58577
-.errors input + button,1701,58608
-.errors .vDateField + button,1702,58633
-.errors .vTimeField + button,1703,58664
-.errors input + a.fb_show,fb_show1704,58695
-.errors input + a.related-lookup,lookup1705,58723
-.errors input + a.add-another,another1706,58758
-input:focus + button,1714,58938
-.vDateField:focus + span a,1715,58961
-.vTimeField:focus + span a,1716,58990
-input:focus + a.fb_show,fb_show1717,59019
-input:focus + a.related-lookup,lookup1718,59045
-div.autocomplete-wrapper-fk input:focus + a.related-lookup,lookup1725,59350
-tr.alt th,1734,59894
-.row1 th,1737,59944
-.row2 th,1740,59992
-.selected th,1743,60037
-thead th,1750,60158
-thead th a:link,link1774,61045
-thead th a:hover,hover1778,61137
-thead th a:hover, thead th a:active,active1778,61137
-tbody th,1789,61339
-thead th:first-child,child1799,61504
- border: 1px solid #bdbdbd;bdbdbd1819,61836
- border:border1822,61914
- border-top: 1px solid #e8e8e8;e8e8e81823,61929
- border-left: 1px solid #e0e0e0;e0e0e01824,61964
- border-top: 1px solid #fff;fff1827,62077
- border-left:left1830,62186
- border-radius: 5px;px1835,62263
- border-radius: 5px; -moz-border-radius: 5px;px1835,62263
- border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;px1835,62263
- border-top-left-radius: 5px;px1842,62545
- border-top-left-radius: 5px; -moz-border-radius-topleft: 5px;px1842,62545
- border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px;px1842,62545
- border-top-right-radius: 5px;px1846,62723
- border-top-right-radius: 5px; -moz-border-radius-topright: 5px;px1846,62723
- border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px;px1846,62723
- border-bottom-left-radius: 5px;px1850,62959
- border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;px1850,62959
- border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px;px1850,62959
- border-bottom-right-radius: 5px;px1854,63191
- border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px;px1854,63191
- border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px;px1854,63191
- border-left:left1859,63412
-tbody th:first-child,child1879,63987
-tbody tr:last-child td,1882,64054
-
-static/gstudio/js/wymeditor/iframe/default/wymiframe.html,24
-WYMeditor iframe21,646
-
-static/gstudio/js/wymeditor/iframe/default/lbl-p.png,992
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´StqtQ´Stq12,1547
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûgYû12,1547
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûg½Žñ©Œ¹;Ûj¶rvg¬jlRlc웸j¶rvg¬jlRlcì›12,1547
-
-static/gstudio/js/wymeditor/iframe/default/wymiframe.css,3744
- p,26,671
- h1,27,676
- h2,28,682
- h3,29,688
- h4,30,694
- h5,31,700
- h6,32,706
- ul,33,712
- ol,34,718
- table,35,724
- blockquote,36,733
- ul,42,958
- h1 h1,77,2463
- h1 h1, h1 h2,77,2463
- h1 h1, h1 h2, h1 h3,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p, h1 pre,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p, h1 pre, h1 address,77,2463
- h2 h1,78,2533
- h2 h1, h2 h2,78,2533
- h2 h1, h2 h2, h2 h3,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p, h2 pre,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p, h2 pre, h2 address,78,2533
- h3 h1,79,2603
- h3 h1, h3 h2,79,2603
- h3 h1, h3 h2, h3 h3,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p, h3 pre,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p, h3 pre, h3 address,79,2603
- h4 h1,80,2673
- h4 h1, h4 h2,80,2673
- h4 h1, h4 h2, h4 h3,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p, h4 pre,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p, h4 pre, h4 address,80,2673
- h5 h1,81,2743
- h5 h1, h5 h2,81,2743
- h5 h1, h5 h2, h5 h3,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p, h5 pre,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p, h5 pre, h5 address,81,2743
- h6 h1,82,2813
- h6 h1, h6 h2,82,2813
- h6 h1, h6 h2, h6 h3,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p, h6 pre,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p, h6 pre, h6 address,82,2813
- p h1,83,2883
- p h1, p h2,83,2883
- p h1, p h2, p h3,83,2883
- p h1, p h2, p h3, p h4,83,2883
- p h1, p h2, p h3, p h4, p h5,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6, p pre,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6, p pre, p address,83,2883
- pre h1,84,2939
- pre h1, pre h2,84,2939
- pre h1, pre h2, pre h3,84,2939
- pre h1, pre h2, pre h3, pre h4,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p, pre pre,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p, pre pre, pre address,84,2939
- address h1,85,3018
- address h1, address h2,85,3018
- address h1, address h2, address h3,85,3018
- address h1, address h2, address h3, address h4,85,3018
- address h1, address h2, address h3, address h4, address h5,85,3018
- address h1, address h2, address h3, address h4, address h5, address h6,85,3018
- address p,86,3092
- address p, address pre,86,3092
-
-static/gstudio/js/wymeditor/skins/twopanels/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/gstudio/js/wymeditor/skins/twopanels/skin.css,393
- .wym_skin_twopanels p,21,599
- .wym_skin_twopanels p, .wym_skin_twopanels h2,21,599
- .wym_skin_twopanels p, .wym_skin_twopanels h2, .wym_skin_twopanels h3,21,599
- .wym_skin_twopanels ul,22,678
- .wym_skin_twopanels .wym_section h2,67,2688
- .wym_skin_twopanels .wym_dropdown:hover ul,86,3967
- .wym_skin_twopanels .wym_buttons li a 93,4443
-
-static/gstudio/js/wymeditor/skins/silver/README,21
-<script type=17,564
-
-static/gstudio/js/wymeditor/skins/silver/skin.css,446
- .wym_skin_silver p,21,603
- .wym_skin_silver p, .wym_skin_silver h2,21,603
- .wym_skin_silver p, .wym_skin_silver h2, .wym_skin_silver h3,21,603
- .wym_skin_silver ul,22,673
- .wym_skin_silver .wym_section h2,67,2630
- .wym_skin_silver .wym_dropdown:hover ul,87,4007
- .wym_skin_silver .wym_buttons li a 96,4728
-.wym_skin_silver .wym_panel a,277,12569
-div.wym_dropdown a:hover,hover292,12903
-
-static/gstudio/js/wymeditor/skins/silver/COPYING,1403
- Version 2,47
- Copyright 4,95
-your programs,20,926
- When we speak of free software,22,947
- When we speak of free software, we are referring to freedom,22,947
-11 of the WIPO copyright treaty adopted on 20 December 183,9244
- When you convey a covered work,187,9381
-the covered work,190,9592
-modification of the work as a means of enforcing,191,9663
-users, your or third parties' legal rights to forbid circumvention oftion of192,9732
-receive it,198,9929
-receive it, in any medium,198,9929
-appropriately publish on each copy an appropriate copyright notice;199,9992
-non-permissive terms added in accord with section 7 apply to the code;201,10118
-keep intact all notices of the absence of any warranty;202,10189
- Appropriate Legal Notices; however,231,11578
- Notices displayed by works containing it;370,19236
- c) Prohibiting misrepresentation of the origin of that material,372,19286
- reasonable ways as different from the original version;374,19425
- material by anyone who conveys the material 383,19780
-modify it is void,411,21191
- However,415,21356
- the Free Software Foundation,639,33294
- the Free Software Foundation, either version 3 of the License,639,33294
- the Free Software Foundation, either version 3 of the License, or639,33294
-parts of the General Public License. Of course,661,34332
-might be different;662,34405
-
-static/gstudio/js/wymeditor/skins/silver/images/bg.selector.silver.gif,72
-J´¨Ñ£H“*zcÔ‰>iö”JÀ… iö”JÀ…2,620
-Œ HÁVP‚¬ Ž2hÁF*$! @(6,1500
-
-static/gstudio/js/wymeditor/skins/minimal/skin.css,270
-.wym_skin_minimal div.wym_tools h2,32,718
-.wym_skin_minimal div.wym_containers h2,33,754
-.wym_skin_minimal div.wym_area_top,wym_area_top48,1026
-.wym_skin_minimal div.wym_area_right,wym_area_right49,1062
-.wym_skin_minimal div.wym_containers,wym_containers50,1100
-
-static/gstudio/js/wymeditor/skins/minimal/images/bg.selector.silver.gif,72
-J´¨Ñ£H“*zcÔ‰>iö”JÀ… iö”JÀ…2,620
-Œ HÁVP‚¬ Ž2hÁF*$! @(6,1500
-
-static/gstudio/js/wymeditor/skins/default/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/gstudio/js/wymeditor/skins/default/skin.css,373
- .wym_skin_default p,20,575
- .wym_skin_default p, .wym_skin_default h2,20,575
- .wym_skin_default p, .wym_skin_default h2, .wym_skin_default h3,20,575
- .wym_skin_default ul,21,648
- .wym_skin_default .wym_section h2,66,2613
- .wym_skin_default .wym_dropdown:hover ul,85,3868
- .wym_skin_default .wym_buttons li a 92,4336
-
-static/gstudio/js/wymeditor/skins/wymeditor_icon.png,13
-DËD5,704
-
-static/gstudio/js/wymeditor/skins/django/icons.png,855
-B„5lB„5l5,564
-g ˜ig ˜8,1412
-¦4T•s•ž÷=2#·—ù|ÝZ{«õ¤&ªä.ò{‰À'K Üøµ#G³æTã\¥†#9;ôx¦´ÉE& V ¿Ùàõ~ðÊšxP‹í‚´ë·Ei¹ÏE¤üƒKvfûFQµ¸Ìm¤sþ—ŠªRP¸ì< Ý •-q†F8R‚–:C#ÓlÚ’ghR‚–<C#ÓlÚ’ghR‚–<C“´ä˜:¹%ÏФ¡ž¡9½fjAŸ.1¬ûq„g"ŠÄŽê?9‚1G¿‡èÚ¬}®;%iÿ1iÿ111,2665
-v@vu¤ë¼ËJndŒ:*¯<pz ”k[?Ñ¸Ö š‹œ ›ÌœtB"p“Õ+™W‚ʚ墖޶°AÔxžãu1SSl[îÿ;#a¼þ|ºÅßñ9Šm H ½‘„²´Êñîœ]_‘^]+Ü‚c H¨9Á×oýÝþ}È»!v$`é~4‹r±edK @Ò }%ò¢6Á’@(§À–(r¢¼9qÐ…æȲnœä\_ H5‡¢çdƒªWPh®l¯ÈÙ³gk&ŽŽì×yŸ73gÜn«oR4ÐÏ_Ž5Š¦-2*J£¿fÿÃxžÊüi£ZhùùóçsÀ«¯¾:0ùÓš¿Î°I³éÁƒ¾¿¼ž;w®-8U½µl'í ´‚õû¦Ç>pÝæâ'@Ϭé·ãÕW_…ÞmVƹ&Ðüâ׿âYá*}1íHpîÜ9£~ûô3¼Œ,S]S15,4078
-Ýûö¶t§tYJ³Št§tYJ³16,4628
-î ¸Y„Do†P8uê_Í&`}Ã1ËÊÊŒØ<ººZê_B !KÞ‡—KÞ‡18,5109
-ÑU]U20,5704
-ÑU]PPÀPP20,5704
-‹«0€ýÀÆvB~Q/ÓI[P[YÁ]ÃÁk|àˆö© /ká@ldQ}-†v‹`O ÍöJ ´Ú*nµV[ÏnµV[22,6043
-
-static/gstudio/js/wymeditor/skins/django/skin.css,363
- .wym_skin_django p,21,610
- .wym_skin_django p, .wym_skin_django h2,21,610
- .wym_skin_django p, .wym_skin_django h2, .wym_skin_django h3,21,610
- .wym_skin_django ul,22,680
- .wym_skin_django .wym_section h2,67,2667
- .wym_skin_django .wym_dropdown:hover ul,86,3923
- .wym_skin_django .wym_buttons li a 95,4488
-
-static/gstudio/js/wymeditor/skins/compact/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/gstudio/js/wymeditor/skins/compact/skin.css,373
- .wym_skin_compact p,21,633
- .wym_skin_compact p, .wym_skin_compact h2,21,633
- .wym_skin_compact p, .wym_skin_compact h2, .wym_skin_compact h3,21,633
- .wym_skin_compact ul,22,706
- .wym_skin_compact .wym_section h2,67,2657
- .wym_skin_compact .wym_dropdown:hover ul,86,3912
- .wym_skin_compact .wym_buttons li a 93,4380
-
-static/gstudio/js/wymeditor/plugins/resizable/readme.txt,145
-The ``resizable`` plugin takes exactly one parameter,61,1916
- minHeight:minHeight67,2204
- var jQueryPlugins 89,3049
-Changelog110,3941
-
-static/gstudio/js/wymeditor/plugins/tidy/README,89
-Copyright (c) 2005 - 2009 Jean-Francois Hovinne,2,62
-Dual licensed under the MIT 3,137
-
-static/gstudio/js/markitup/templates/preview.html,33
-markItUp! preview template5,243
-
-static/gstudio/js/markitup/skins/django/style.css,408
-.markItUp a:link,link9,302
- font:12px 'Courier New', Courier,28,652
- font:12px 'Courier New', Courier, monospace;28,652
- padding:5px;px29,698
- width:790px;px30,712
- height:220px;px31,726
- clear:both;both32,741
- line-height:18px;px33,754
- overflow:auto;auto34,773
-.markItUpHeader ul .markItUpDropMenu markItUpDropMenu68,1428
-.markItUpHeader ul ul .markItUpDropMenu markItUpDropMenu87,1841
-
-static/gstudio/js/markitup/skins/django/images/menu.png,270
-wAÁ©÷~¸á“ÐkQ)?Âö•r• ár• 6,1115
-pOšxfØpOšxf9,1905
-chg€Ð’ê¡*ƒ…òäKxZÎ×¹RiPÉz¯Å»ozÐ+ÁœdcnÈ:­0ÕªJ±RÓÛâÛ(V}svàÍ·äBà –ðbÛ`Ö”ÌúàFÛðë9F#Ù ¦ÞÜb ¼ Ѿr=r10,2288
-¹1 Ëúþ+Kú¨èdXŒ];JÄ£Žïcˆx$§DÑ×·Þž¢X`i× ì¨ëÑ@lÌûrn°m$¨Æ^×9΄ïzBGÏžzBGÏ53,17284
-
-static/gstudio/js/markitup/sets/textile/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/gstudio/js/markitup/sets/textile/images/h2.png,11
-${$4,125
-
-static/gstudio/js/markitup/sets/html/images/h2.png,11
-${$4,125
-
-static/gstudio/js/markitup/sets/html/images/image.png,101
-‰PNGPNG1,0
-º]ñ»Hà Bv„åÌ“µÚˆ_Sÿ%Ò;ô6×9Host wöEwöE4,391
-ó]*f"Å"ô½.\00CLâCL5,439
-
-static/gstudio/js/markitup/sets/markdown/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/gstudio/js/markitup/sets/markdown/images/h2.png,11
-${$4,125
-
-static/gstudio/js/markitup/sets/restructuredtext/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/gstudio/js/markitup/sets/restructuredtext/images/h2.png,11
-${$4,125
-
-ping.py,417
-class URLRessources(17,343
- def __init__(20,429
-class DirectoryPinger(29,835
- def __init__(32,913
- def run(44,1313
- def ping_nodetype(54,1730
-class ExternalUrlsPinger(78,2694
- def __init__(81,2778
- def run(93,3194
- def is_external_url(108,3749
- def find_external_urls(115,4008
- def find_pingback_href(123,4360
- def find_pingback_urls(132,4746
- def pingback_url(160,5790
-
-plugins/cms_app.py,29
-class GstudioApphook(10,226
-
-plugins/cms_plugins.py,318
-class CMSLatestNodetypesPlugin(19,535
- def formfield_for_manytomany(52,1375
- def render(61,1787
- def icon_src(85,2754
-class CMSSelectedNodetypesPlugin(90,2893
- def render(100,3265
- def icon_src(107,3555
-class CMSRandomNodetypesPlugin(112,3694
- def render(121,4028
- def icon_src(129,4371
-
-plugins/migrations/0002_auto__add_field_latestnodetypesplugin_template_to_render__add_field_sele.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(15,696
-
-plugins/migrations/0003_auto__del_field_latestnodetypesplugin_metatype__del_field_latestnodetypesp.py,73
-class Migration(6,92
- def forwards(8,127
- def backwards(40,2023
-
-plugins/migrations/0001_initial.py,73
-class Migration(6,92
- def forwards(8,127
- def backwards(33,1744
-
-plugins/migrations/0005_auto__add_randomnodetypesplugin.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(17,668
-
-plugins/migrations/0004_auto__add_field_latestnodetypesplugin_submetatypes.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(12,345
-
-plugins/admin.py,67
-class NodetypePlaceholderAdmin(14,413
- def save_model(33,1627
-
-plugins/models.py,364
-class LatestNodetypesPlugin(21,684
- def render_template(42,1484
- def copy_relations(47,1642
- def __unicode__(53,1895
-class SelectedNodetypesPlugin(57,1984
- def render_template(68,2363
- def copy_relations(73,2521
- def __unicode__(77,2680
-class RandomNodetypesPlugin(81,2767
- def __unicode__(91,3135
-def invalidate_menu_cache(95,3224
-
-plugins/placeholder.py,61
-class NodetypePlaceholder(7,122
- class Meta:Meta12,269
-
-plugins/menu.py,270
-class NodetypeMenu(17,492
- def get_nodes(21,627
-class MetatypeMenu(63,2442
- def get_nodes(67,2549
-class AuthorMenu(80,3084
- def get_nodes(84,3185
-class TagMenu(98,3784
- def get_nodes(102,3876
-class NodetypeModifier(115,4395
- def modify(119,4529
-
-sitemaps.py,457
-class NodetypeSitemap(13,308
- def items(18,418
- def lastmod(22,521
-class MetatypeSitemap(27,635
- def cache(31,727
- def items(42,1168
- def lastmod(48,1334
- def priority(55,1554
-class AuthorSitemap(63,1776
- def items(68,1883
- def lastmod(72,1982
- def location(79,2201
-class TagSitemap(84,2339
- def cache(88,2421
- def items(97,2813
- def lastmod(103,2953
- def priority(108,3119
- def location(115,3338
-
-models.py,5116
-class Author(102,3247
- def nodetypes_published(108,3379
- def get_absolute_url(113,3538
- class Meta:Meta118,3713
-class NID(122,3779
- def get_serialized_dict(137,4453
- def get_absolute_url(144,4662
- def ref(154,5000
- def get_edit_url(170,5871
- def get_serialized_data(175,6005
- def __unicode__(184,6353
- class Meta:Meta188,6408
-class Node(193,6452
- def __unicode__(202,6860
- class Meta:Meta205,6914
-class Edge(208,6954
- def __unicode__(211,6973
- class Meta:Meta214,7027
-class Metatype(218,7068
- def nodetypes_published(228,7345
- def get_nbh(235,7518
- def get_rendered_nbh(256,8292
- def tree_path(281,9261
- def __unicode__(287,9460
- def composed_sentence(291,9528
- def get_absolute_url(299,9805
- class Meta:Meta304,9937
-class Nodetype(314,10099
- def tree_path(390,13317
- def tree_path_sentence(397,13530
- def html_content(404,13798
- def get_relations(416,14297
- def get_rendered_nbh(438,15044
- def previous_nodetype(516,17957
- def next_nodetype(524,18203
- def word_count(532,18467
- def is_actual(537,18610
- def is_visible(543,18818
- def related_published(548,18971
- def discussions(553,19122
- def comments(559,19303
- def pingbacks(565,19497
- def trackbacks(570,19641
- def comments_are_open(575,19788
- def short_url(583,20091
- def __unicode__(587,20204
- def memberof_sentence(591,20272
- def subtypeof_sentence(601,20675
- def subtypeof(608,20982
- def get_absolute_url(615,21163
- def get_serialized_data(623,21478
- class Meta:Meta632,21835
-class Objecttype(641,22131
- def __unicode__(646,22193
- def get_attributetypes(650,22261
- def get_relationtypes(654,22359
- def get_left_subjecttypes(665,22680
- def get_rightroles(676,23020
- def get_subjecttypes(687,23356
- def member_of_metatypes(699,23697
- def get_members(711,24014
- def get_nbh(722,24280
- def get_rendered_nbh(752,25180
- class Meta:Meta797,26922
-class Relationtype(809,27213
- def get_serialized_data(825,28563
- def __unicode__(835,28921
- class Meta:Meta838,28975
-class Attributetype(848,29270
- def __unicode__(878,32472
- class Meta:Meta881,32526
-class Relation(892,32829
- def ApplicableNodeTypes_filter(904,33583
- class Meta:Meta934,34527
- def __unicode__(942,34896
- def composed_sentence(946,34976
- def inversed_sentence(951,35262
- def key_value(956,35529
- def inverse_key_value(960,35639
- def relation_sentence(965,35765
- def partial_composition(973,36050
-class Attribute(980,36290
- class Meta:Meta995,37066
- def subject_filter(1003,37417
- def __unicode__(1015,37732
- def edge_node_dict(1019,37815
- def composed_sentence(1026,38088
- def composed_attribution(1033,38380
- def partial_composition(1040,38586
- def subject_filter(1047,38807
-class AttributeCharField(1057,39110
- def __unicode__(1061,39223
-class AttributeTextField(1064,39277
- def __unicode__(1068,39372
-class AttributeIntegerField(1071,39430
- def __unicode__(1074,39545
-class AttributeCommaSeparatedIntegerField(1077,39601
- def __unicode__(1081,39769
-class AttributeBigIntegerField(1084,39823
- def __unicode__(1088,39953
-class AttributePositiveIntegerField(1091,40007
- def __unicode__(1095,40152
-class AttributeDecimalField(1098,40206
- def __unicode__(1102,40342
-class AttributeFloatField(1105,40396
- def __unicode__(1109,40520
-class AttributeBooleanField(1112,40574
- def __unicode__(1116,40678
-class AttributeNullBooleanField(1119,40732
- def __unicode__(1123,40858
-class AttributeDateField(1126,40912
- def __unicode__(1130,41023
-class AttributeDateTimeField(1133,41077
- def __unicode__(1137,41205
-class AttributeTimeField(1140,41263
- def __unicode__(1144,41374
-class AttributeEmailField(1147,41428
- def __unicode__(1151,41540
-class AttributeFileField(1154,41594
- def __unicode__(1158,41709
-class AttributeFilePathField(1161,41763
- def __unicode__(1165,41874
-class AttributeImageField(1168,41928
- def __unicode__(1172,42046
-class AttributeURLField(1175,42100
- def __unicode__(1179,42204
-class AttributeIPAddressField(1182,42258
- def __unicode__(1186,42381
-class Processtype(1190,42436
- def __unicode__(1204,43103
- class Meta:Meta1207,43157
-class Systemtype(1216,43393
- class to 1219,43434
- def __unicode__(1235,44526
- class Meta:Meta1238,44580
-class AttributeSpecification(1245,44816
- def composed_subject(1257,45294
- def __unicode__(1267,45571
- class Meta:Meta1271,45637
-class RelationSpecification(1277,45833
- def composed_subject(1286,46127
- def __unicode__(1295,46424
- class Meta:Meta1299,46490
-class NodeSpecification(1305,46685
- def composed_subject(1314,47206
- def __unicode__(1326,47675
- class Meta:Meta1330,47741
-class Union(1336,47932
- def __unicode__(1342,48114
-class Complement(1345,48168
- def __unicode__(1351,48361
-class Intersection(1354,48415
- def __unicode__(1360,48617
-
-xmlrpc/metaweblog.py,469
-def authenticate(30,941
-def blog_structure(46,1583
-def user_structure(54,1823
-def author_structure(66,2217
-def metatype_structure(74,2431
-def post_structure(90,3077
-def get_users_blogs(119,4431
-def get_user_info(128,4744
-def get_authors(137,5064
-def delete_post(147,5453
-def get_post(157,5850
-def get_recent_posts(167,6231
-def get_metatypes(177,6662
-def new_metatype(187,7057
-def new_post(204,7793
-def edit_post(248,9782
-def new_media_object(291,11649
-
-xmlrpc/pingback.py,113
-def generate_pingback_content(28,829
-def pingback_ping(54,1551
-def pingback_extensions_get_pingbacks(114,3736
-
-comparison.py,268
-def pearson_score(9,160
-class ClusteredModel(26,685
- def __init__(30,789
- def dataset(34,901
-class VectorBuilder(44,1227
- def __init__(47,1309
- def build_dataset(54,1519
- def generate_key(82,2515
- def flush(86,2649
- def __call__(91,2780
-
-xmlrpc/__init__.py,0
-
-plugins/migrations/__init__.py,0
-
-plugins/__init__.py,0
-
-plugins/settings.py,0
-
-etags,0
-
-files,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/h4.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/list-numeric.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/code.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/list-bullet.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/h5.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/picture.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/h3.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/link.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/preview.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/h1.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/italic.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/images/bold.png,0
-
-static/gstudio/js/markitup/sets/restructuredtext/style.css,0
-
-static/gstudio/js/markitup/sets/markdown/images/h4.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/list-numeric.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/code.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/list-bullet.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/h5.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/picture.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/h3.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/link.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/preview.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/h1.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/italic.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/h6.png,0
-
-static/gstudio/js/markitup/sets/markdown/images/bold.png,0
-
-static/gstudio/js/markitup/sets/markdown/style.css,0
-
-static/gstudio/js/markitup/sets/html/images/h4.png,0
-
-static/gstudio/js/markitup/sets/html/images/list-numeric.png,0
-
-static/gstudio/js/markitup/sets/html/images/clean.png,0
-
-static/gstudio/js/markitup/sets/html/images/list-item.png,0
-
-static/gstudio/js/markitup/sets/html/images/list-bullet.png,0
-
-static/gstudio/js/markitup/sets/html/images/h5.png,0
-
-static/gstudio/js/markitup/sets/html/images/picture.png,0
-
-static/gstudio/js/markitup/sets/html/images/h3.png,0
-
-static/gstudio/js/markitup/sets/html/images/link.png,0
-
-static/gstudio/js/markitup/sets/html/images/preview.png,0
-
-static/gstudio/js/markitup/sets/html/images/h1.png,0
-
-static/gstudio/js/markitup/sets/html/images/italic.png,0
-
-static/gstudio/js/markitup/sets/html/images/stroke.png,0
-
-static/gstudio/js/markitup/sets/html/images/paragraph.png,0
-
-static/gstudio/js/markitup/sets/html/images/h6.png,0
-
-static/gstudio/js/markitup/sets/html/images/bold.png,0
-
-static/gstudio/js/markitup/sets/html/style.css,0
-
-static/gstudio/js/markitup/sets/textile/images/h4.png,0
-
-static/gstudio/js/markitup/sets/textile/images/list-numeric.png,0
-
-static/gstudio/js/markitup/sets/textile/images/code.png,0
-
-static/gstudio/js/markitup/sets/textile/images/list-bullet.png,0
-
-static/gstudio/js/markitup/sets/textile/images/h5.png,0
-
-static/gstudio/js/markitup/sets/textile/images/picture.png,0
-
-static/gstudio/js/markitup/sets/textile/images/h3.png,0
-
-static/gstudio/js/markitup/sets/textile/images/link.png,0
-
-static/gstudio/js/markitup/sets/textile/images/preview.png,0
-
-static/gstudio/js/markitup/sets/textile/images/h1.png,0
-
-static/gstudio/js/markitup/sets/textile/images/italic.png,0
-
-static/gstudio/js/markitup/sets/textile/images/stroke.png,0
-
-static/gstudio/js/markitup/sets/textile/images/paragraph.png,0
-
-static/gstudio/js/markitup/sets/textile/images/h6.png,0
-
-static/gstudio/js/markitup/sets/textile/images/bold.png,0
-
-static/gstudio/js/markitup/sets/textile/style.css,0
-
-static/gstudio/js/markitup/skins/django/images/submenu.png,0
-
-static/gstudio/js/markitup/skins/django/images/handle.png,0
-
-static/gstudio/js/markitup/templates/preview.css,0
-
-static/gstudio/js/wymeditor/plugins/fullscreen/icon_fullscreen.gif,0
-
-static/gstudio/js/wymeditor/plugins/tidy/wand.png,0
-
-static/gstudio/js/wymeditor/plugins/tidy/tidy.php,0
-
-static/gstudio/js/wymeditor/skins/minimal/images/bg.wymeditor.png,0
-
-static/gstudio/js/wymeditor/skins/minimal/images/icons.silver.gif,0
-
-static/gstudio/js/wymeditor/skins/minimal/images/bg.header.gif,0
-
-static/gstudio/js/wymeditor/skins/silver/images/bg.wymeditor.png,0
-
-static/gstudio/js/wymeditor/skins/silver/images/icons.silver.gif,0
-
-static/gstudio/js/wymeditor/skins/silver/images/bg.header.gif,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h5.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h3.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-pre.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h6.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-blockquote.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h1.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h4.png,0
-
-static/gstudio/js/wymeditor/iframe/default/lbl-h2.png,0
-
-static/gstudio/css/slider.css,0
-
-static/gstudio/css/jquery.autocomplete.css,0
-
-static/gstudio/css/wymeditor_styles.css,0
-
-static/gstudio/css/src/slider.sass,0
-
-static/gstudio/css/src/_gbobject.sass,0
-
-static/gstudio/css/src/ie.sass,0
-
-static/gstudio/css/src/_paginator.sass,0
-
-static/gstudio/css/src/_calendar.sass,0
-
-static/gstudio/css/src/_gstudio.sass,0
-
-static/gstudio/css/src/_tag-cloud.sass,0
-
-static/gstudio/img/background.gif,0
-
-static/gstudio/img/tags.png,0
-
-static/gstudio/img/rss.png,0
-
-static/gstudio/img/bullet.png,0
-
-static/gstudio/img/wlw/objectapp.png,0
-
-static/gstudio/img/favicon.ico,0
-
-static/gstudio/img/grid.png,0
-
-static/gstudio/img/preview.png,0
-
-static/gstudio/img/comments.png,0
-
-static/gstudio/img/trans.png,0
-
-static/gstudio/img/shorturl.png,0
-
-static/gstudio/img/manage.png,0
-
-static/gstudio/img/help.png,0
-
-spam_checker/backends/__init__.py,0
-
-templates/registration/password_reset_email.html,0
-
-templates/registration/activation_email.txt,0
-
-templates/registration/password_reset_confirm.html,0
-
-templates/registration/registration_complete.html,0
-
-templates/registration/login.html,0
-
-templates/registration/password_change_done.html,0
-
-templates/registration/password_reset_form.html,0
-
-templates/registration/password_reset_done.html,0
-
-templates/registration/password_change_form.html,0
-
-templates/registration/password_reset_complete.html,0
-
-templates/registration/activation_email_subject.txt,0
-
-templates/registration/activate.html,0
-
-templates/registration/logout.html,0
-
-templates/registration/registration_form.html,0
-
-templates/feeds/comment_title.html,0
-
-templates/feeds/trackback_description.html,0
-
-templates/feeds/comment_description.html,0
-
-templates/feeds/pingback_description.html,0
-
-templates/feeds/discussion_description.html,0
-
-templates/feeds/trackback_title.html,0
-
-templates/feeds/nodetype_title.html,0
-
-templates/feeds/nodetype_description.html,0
-
-templates/feeds/pingback_title.html,0
-
-templates/feeds/discussion_title.html,0
-
-templates/index.html,0
-
-templates/admin/gstudio/widgets/draft_nodetypes.html,0
-
-templates/admin/gstudio/widgets/_content_stats.html,0
-
-templates/admin/gstudio/widgets/recent_comments.html,0
-
-templates/admin/gstudio/widgets/_recent_linkbacks.html,0
-
-templates/admin/gstudio/widgets/recent_linkbacks.html,0
-
-templates/admin/gstudio/widgets/_recent_comments.html,0
-
-templates/admin/gstudio/widgets/_draft_nodetypes.html,0
-
-templates/admin/gstudio/widgets/content_stats.html,0
-
-templates/comments/comment_reply_email.txt,0
-
-templates/comments/comment_notification_email.txt,0
-
-templates/comments/gstudio/nodetype/form.html,0
-
-templates/comments/comment_authors_email.txt,0
-
-templates/gstudio/_nodetype_neighbourhood.html,0
-
-templates/gstudio/author/nodetype_list.html,0
-
-templates/gstudio/tag/nodetype_list.html,0
-
-templates/gstudio/cms/random_nodetypes.html,0
-
-templates/gstudio/cms/nodetype_list.html,0
-
-templates/gstudio/cms/nodetype_detail.html,0
-
-templates/gstudio/metatype/nodetype_list.html,0
-
-templates/gstudio/_subtype_detail.html,0
-
-templates/gstudio/tags/featured_nodetypes.html,0
-
-templates/gstudio/tags/breadcrumbs.html,0
-
-templates/gstudio/tags/similar_nodetypes.html,0
-
-templates/gstudio/tags/random_nodetypes.html,0
-
-templates/gstudio/tags/tag_cloud.html,0
-
-templates/gstudio/tags/recent_comments.html,0
-
-templates/gstudio/tags/archives_nodetypes_tree.html,0
-
-templates/gstudio/tags/recent_nodetypes.html,0
-
-templates/gstudio/tags/archives_nodetypes.html,0
-
-templates/gstudio/tags/popular_nodetypes.html,0
-
-templates/gstudio/tags/recent_linkbacks.html,0
-
-templates/gstudio/tags/calendar.html,0
-
-templates/gstudio/tags/dummy.html,0
-
-templates/gstudio/tags/archives_nodetypes_link.html,0
-
-templates/gstudio/tags/pagination.html,0
-
-templates/gstudio/tags/authors.html,0
-
-templates/gstudio/tags/nodetypes.html,0
-
-templates/gstudio/tags/metatypes.html,0
-
-templates/gstudio/nodetype_archive.html,0
-
-migrations/0001_initial.pyc,0
-
-migrations/__init__.pyc,0
-
-migrations/__init__.py,0
-
-locale/de/LC_MESSAGES/django.po,0
-
-locale/pt_BR/LC_MESSAGES/django.po,0
-
-locale/ml/LC_MESSAGES/django.po,0
-
-locale/zh_CN/LC_MESSAGES/django.po,0
-
-locale/ru/LC_MESSAGES/django.po,0
-
-locale/es/LC_MESSAGES/django.po,0
-
-locale/hu/LC_MESSAGES/django.po,0
-
-locale/it/LC_MESSAGES/django.po,0
-
-locale/te/LC_MESSAGES/django.po,0
-
-locale/fr/LC_MESSAGES/django.po,0
-
-locale/mr/LC_MESSAGES/django.po,0
-
-locale/bl/LC_MESSAGES/django.po,0
-
-locale/pu/LC_MESSAGES/django.po,0
-
-locale/nl/LC_MESSAGES/django.po,0
-
-locale/hi/LC_MESSAGES/django.po,0
-
-locale/pl/LC_MESSAGES/django.po,0
-
-templatetags/__init__.py,0
-
-url_shortener/backends/__init__.py,0
-
-admin/__init__.py,0
-
-views/__init__.py,0
-
-__init__.pyc,0
-
-__init__.py,0
-
-tests/templates/gstudio/nodetype_search.html,0
-
-tests/templates/gstudio/nodetype_list.html,0
-
-tests/templates/gstudio/nodetype_detail.html,0
-
-tests/urls.py,0
-
-urls/capabilities.py,0
-
-urls/discussions.py,0
-
-urls/sitemap.py,0
-
-urls/tags.py,0
-
-urls/nodetypes.py,0
-
-urls/search.py,0
-
-urls/trackback.py,0
-
-urls/__init__.py,0
-
-urls/authors.py,0
-
-urls/metatypes.py,0
-
-urls/quick_nodetype.py,0
-
-urls/feeds.py,0
-
-management/commands/__init__.py,0
-
-management/__init__.py,0
-
-settings.py,0
-
-testsettings.py,0
diff --git a/gstudio/admin/objecttype.py b/gstudio/admin/objecttype.py
index 5072fe9a..45e07c0d 100644
--- a/gstudio/admin/objecttype.py
+++ b/gstudio/admin/objecttype.py
@@ -177,7 +177,6 @@ class ObjecttypeAdmin(parent_class):
if not form.cleaned_data.get('authors'):
form.cleaned_data['authors'].append(request.user)
-
nodetype.save()
# nodetype.nbhood = nodetype.get_nbh
# nodetype.last_update = datetime.now()
diff --git a/gstudio/models.py b/gstudio/models.py
index 167ed8cd..57121947 100644
--- a/gstudio/models.py
+++ b/gstudio/models.py
@@ -65,6 +65,7 @@
+
"""Super models of Gstudio """
import warnings
@@ -303,8 +304,7 @@ class NID(models.Model):
# # Returned value is a list, so splice it.
# vrs = vrs[0]
# except:
- # return None
-
+ # return None
# return vrs.object
@@ -327,36 +327,61 @@ class NID(models.Model):
@property
def getat(self):
+
"""This is will give the possible attributetypes """
try:
+ pt = []
attributetype = []
- ot = self.ref
- attributetype.append(ot.subjecttype_of.all())
+ returndict = {}
+
+ pt.append(self.ref)
+ obj = self.ref
+ while obj.parent:
+ pt.append((obj.parent).ref)
+ obj=obj.parent
+
+ for each in pt:
+ attributetype.append(each.subjecttype_of.all())
+
attributetype = [num for elem in attributetype for num in elem]
- return attributetype
+
+ for i in attributetype:
+ if str(i.applicable_nodetypes) == 'OT':
+ returndict.update({str(i.title):i.id})
+
+ return returndict.keys()
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 =[] 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 =[]
+ reltype =[]
+ titledict = {}
+ inverselist = []
+ finaldict = {}
+ listval=[]
+
pt.append(self.ref)
+ obj = self.ref
+ while obj.parent:
+ pt.append((obj.parent).ref)
+ obj=obj.parent
+
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})
@@ -364,16 +389,16 @@ class NID(models.Model):
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]})
+ if pt[j].id == listval[i].left_subjecttype_id and str(listval[i].left_applicable_nodetypes) == 'OT' :
+ finaldict.update({titledict.keys()[i]:titledict.values()[i]})
+ if pt[j].id == listval[i].right_subjecttype_id and str(listval[i].right_applicable_nodetypes)=='OT':
+ finaldict.update({inverselist[i]:titledict.values()[i]})
+
- return finaldict.values()
+ return finaldict.keys()
@property
@@ -391,59 +416,59 @@ class NID(models.Model):
version = Version.objects.get(id=self.id)
return version.serialized_data
+
-
- def get_Version_graph_json(self,ssid):
+ # def get_Version_graph_json(self,ssid):
- # # predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
- # slist=self.get_ssid
- ver_dict=self.version_info(ssid)
- # ver_dict=str(ver['nbhood'])
- # ver_dict=ast.literal_eval(ver_dict)
+ # # # predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
+ # # slist=self.get_ssid
+ # ver_dict=self.version_info(ssid)
+ # #ver_dict=str(ver['nbhood'])
+ # ver_dict=ast.literal_eval(ver_dict['nbhood'])
- g_json = {}
- g_json["node_metadata"]= []
- predicate_id = {}
- counter = 1
- for key in ver_dict.keys():
- val = "a" + str(counter)
- predicate_id[key] = val
- counter = counter + 1
- #print predicate_id
-
- attr_counter = -1
-
- this_node = {"_id":str(ver_dict['id']),"title":ver_dict['title'],"screen_name":ver_dict['title'], "url":self.get_absolute_url()}
- g_json["node_metadata"].append(this_node)
-
- for key in predicate_id.keys():
- if ver_dict[key]:
- try:
- g_json[str(key)]=[]
- g_json["node_metadata"].append({"_id":str(predicate_id[key]),"screen_name":key})
- g_json[str(key)].append({"from":self.id , "to":predicate_id[key],"value":1, "level":1 })
- if not isinstance(ver_dict[key],basestring):
- for item in ver_dict[key]:
- # user
- g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title, "title":item.title, "url":item.get_absolute_url()})
- g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 })
+ # g_json = {}
+ # g_json["node_metadata"]= []
+ # predicate_id = {}
+ # counter = 1
+ # for key in ver_dict.keys():
+ # val = "a" + str(counter)
+ # predicate_id[key] = val
+ # counter = counter + 1
+ # #print predicate_id
+
+ # attr_counter = -1
+
+ # this_node = {"_id":str(self.id),"title":ver_dict['title'],"screen_name":ver_dict['title'], "url":self.get_absolute_url()}
+ # g_json["node_metadata"].append(this_node)
+
+ # for key in predicate_id.keys():
+ # if ver_dict[key]:
+ # try:
+ # g_json[str(key)]=[]
+ # g_json["node_metadata"].append({"_id":str(predicate_id[key]),"screen_name":key})
+ # g_json[str(key)].append({"from":self.id , "to":predicate_id[key],"value":1, "level":1 })
+ # if not isinstance(ver_dict[key],basestring):
+ # for item in ver_dict[key]:
+ # # user
+ # g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title, "title":item.title, "url":item.get_absolute_url()})
+ # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 })
- else:
- #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":ver_dict[key]})
- g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 })
- attr_counter-=1
+ # else:
+ # #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":ver_dict[key]})
+ # g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 })
+ # attr_counter-=1
- except:
- pass
- # print g_json
+ # except:
+ # pass
+ # # print g_json
- return json.dumps(g_json)
+ # return json.dumps(g_json)
def __unicode__(self):
@@ -452,7 +477,7 @@ class NID(models.Model):
class Meta:
"""NID's Meta"""
-
+
class Node(NID):
"""
@@ -472,7 +497,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.")
+ nbhood = models.TextField(help_text="The rendered neighbourhood of the model.")
+ # nbh = models.TextField(help_text="The neighbourhood of the model.")
published = NodePublishedManager()
def __unicode__(self):
@@ -480,18 +506,9 @@ class Node(NID):
class Meta:
abstract=False
-
+
+
- def save(self, *args, **kwargs):
-
- # self.nbhood=self.get_nbh
- 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):
@@ -540,7 +557,7 @@ class Metatype(Node):
nbh['typeof'] = self.parent
# generate ids and names of children/members
nbh['contains_subtypes'] = self.children.get_query_set()
- nbh['contains_members'] = self.nodetypes.all()
+ nbh['contains_members'] = self.nodetypes_published()
nbh['left_subjecttype_of'] = Relationtype.objects.filter(left_subjecttype=self.id)
nbh['right_subjecttype_of'] = Relationtype.objects.filter(right_subjecttype=self.id)
nbh['attributetypes'] = Attributetype.objects.filter(subjecttype=self.id)
@@ -638,23 +655,38 @@ class Metatype(Node):
"""
Returns the neighbourhood of the metatype
"""
+ history=[]
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
nbh = {}
+ history_list=self.get_ssid
nbh['title'] = self.title
nbh['altnames'] = self.altnames
nbh['plural'] = self.plural
if self.parent:
- nbh['typeof'] = self.parent
+ obj=NID.objects.get(id=self.parent)
+ typeof[parent] = obj.ref.get_absolute_url()
+ #nbh['typeof'] = self.parent
# generate ids and names of children
nbh['contains_subtypes'] = self.children.get_query_set()
contains_members_list = []
- for each in self.nodetypes.all():
+ for each in self.nodetypes_published():
contains_members_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
nbh['contains_members'] = contains_members_list
nbh['left_subjecttype_of'] = Relationtype.objects.filter(left_subjecttype=self.id)
nbh['right_subjecttype_of'] = Relationtype.objects.filter(right_subjecttype=self.id)
nbh['attributetypes'] = Attributetype.objects.filter(subjecttype=self.id)
-
+ nbh['history']=history
return nbh
@@ -663,7 +695,7 @@ class Metatype(Node):
def tree_path(self):
"""Return metatype's tree path, by its ancestors"""
if self.parent:
- return '%s/%s' % (self.parent.tree_path, self.slug)
+ return u'%s/%s' % (self.parent.tree_path, self.slug)
return self.slug
def __unicode__(self):
@@ -673,8 +705,8 @@ class Metatype(Node):
def composed_sentence(self):
"composes the relation as a sentence in triple format."
if self.parent:
- return '%s is a kind of %s' % (self.title, self.parent.tree_path)
- return '%s is a root node' % (self.slug)
+ return u'%s is a kind of %s' % (self.title, self.parent.tree_path)
+ return u'%s is a root node' % (self.slug)
@models.permalink
@@ -693,7 +725,7 @@ class Metatype(Node):
def save(self, *args, **kwargs):
super(Metatype, self).save(*args, **kwargs) # Call the "real" save() method.
- self.nbhood=self.get_nbh
+ self.nbhood=self.get_rendered_nbh
if GSTUDIO_VERSIONING:
with reversion.create_revision():
@@ -856,8 +888,8 @@ class Nodetype(Node):
rels['possible_rightroles'] = right_subset
return rels
-
-
+
+
def get_graph_json(self):
@@ -865,6 +897,7 @@ class Nodetype(Node):
g_json["node_metadata"]= []
g_json["relations"]=[]
+
global counter
global attr_counter
nbh = self.get_nbh
@@ -875,9 +908,9 @@ class Nodetype(Node):
predicate_id[key] = val
counter = counter + 1
- this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"expanded":"true","refType":self.reftype}
+ this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"refType":self.reftype}
g_json["node_metadata"].append(this_node)
-
+
for key in predicate_id.keys():
if nbh[key]:
@@ -895,10 +928,11 @@ class Nodetype(Node):
flag=0
# 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","refType":item.reftype,"inverse":item.inverse,"flag":flag})
+ g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"refType":item.reftype,"inverse":item.inverse,"flag":flag})
- g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false","refType":item.reftype})
+
+ g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"refType":item.reftype})
#create links
g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id })
@@ -913,6 +947,7 @@ class Nodetype(Node):
pass
+
return json.dumps(g_json)
@@ -950,15 +985,15 @@ class Nodetype(Node):
def tree_path(self):
"""Return nodetype's tree path, by its ancestors"""
if self.parent:
- return '%s/%s' % (self.parent.tree_path, self.slug)
+ return u'%s/%s' % (self.parent.tree_path, self.slug)
return self.slug
@property
def tree_path_sentence(self):
""" Return the parent of the nodetype in a triple form """
if self.parent:
- return '%s is a kind of %s' % (self.title, self.parent.tree_path)
- return '%s is a root node' % (self.title)
+ return u'%s is a kind of %s' % (self.title, self.parent.tree_path)
+ return u'%s is a root node' % (self.title)
@property
@@ -996,7 +1031,7 @@ class Nodetype(Node):
return relations
@property
- def get_relations1(self):
+ def get_rendered_relations(self):
"""
Returns all the relations of the nodetype
"""
@@ -1020,7 +1055,7 @@ class Nodetype(Node):
if each.relationtype.title==key:
fl=1
predicate_values.append(predicate)
- reltype[key]=predicate_values
+ reltype[key]=predicate_values
if fl==0:
predicate_values=predicate
reltype[relation]=predicate_values
@@ -1060,6 +1095,7 @@ class Nodetype(Node):
relations['rrelations']=reltype
return relations
+
@property
def get_attributes(self):
attributes_dict = {}
@@ -1085,19 +1121,37 @@ class Nodetype(Node):
val.extend(value)
attributes_dict[atr_key]=val
return attributes_dict
-
+
+ # def history(self,ssid):
+ #ver
@property
def get_rendered_nbh(self):
"""
Returns the neighbourhood of the nodetype
"""
+ history=[]
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
nbh = {}
nbh['title'] = self.title
nbh['count_title'] = len(nbh['title'])
nbh['altnames'] = self.altnames
nbh['count_altnames'] = len(nbh['altnames'])
- nbh['plural'] = self.plural
- nbh['count_plural'] = len(nbh['plural'])
+ nbh['plural'] = self.plural
+ try:
+ nbh['count_plural'] = len(nbh['plural'])
+ except:
+ pass
+
#get all MTs
member_of_dict = {}
for each in self.metatypes.all():
@@ -1149,8 +1203,8 @@ class Nodetype(Node):
relns={}
rellft={}
relrgt={}
- if self.get_relations1:
- NTrelns=self.get_relations1
+ if self.get_rendered_relations:
+ NTrelns=self.get_rendered_relations
for key,value in NTrelns.items():
if key=="rrelations":
relrgt={}
@@ -1158,7 +1212,7 @@ class Nodetype(Node):
relnvalue={}
if isinstance(rgtvalue,list):
for items in rgtvalue:
- relnvalue[items]=items.get_absolute_url()
+ relnvalue[items.title]=items.get_absolute_url()
else:
relnvalue[rgtvalue]=rgtvalue.get_absolute_url()
@@ -1171,7 +1225,7 @@ class Nodetype(Node):
relnvalue={}
if isinstance(lftvalue,list):
for items in lftvalue:
- relnvalue[items]=items.get_absolute_url()
+ relnvalue[items.title]=items.get_absolute_url()
else:
relnvalue[lftvalue]=lftvalue.get_absolute_url()
@@ -1201,7 +1255,7 @@ class Nodetype(Node):
rightroles[each.title]=each.get_absolute_url()
nbh['rightroles']=rightroles
nbh['count_rightroles'] = len(nbh['rightroles'])
-
+ nbh['history']=history
return nbh
@@ -1286,22 +1340,22 @@ class Nodetype(Node):
if self.metatypes.count:
for each in self.metatypes.all():
- return '%s is a member of metatype %s' % (self.title, each)
- return '%s is not a fully defined name, consider making it a member of a suitable metatype' % (self.title)
+ return u'%s is a member of metatype %s' % (self.title, each)
+ return u'%s is not a fully defined name, consider making it a member of a suitable metatype' % (self.title)
@property
def subtypeof_sentence(self):
"composes the relation as a sentence in triple format."
if self.parent:
- return '%s is a subtype of %s' % (self.title, self.parent.tree_path)
- return '%s is a root node' % (self.title)
+ return u'%s is a subtype of %s' % (self.title, self.parent.tree_path)
+ return u'%s is a root node' % (self.title)
composed_sentence = property(subtypeof_sentence)
def subtypeof(self):
"retuns the parent nodetype."
if self.parent:
- return '%s' % (self.parent.tree_path)
+ return u'%s' % (self.parent.tree_path)
return None
@models.permalink
@@ -1332,16 +1386,7 @@ class Nodetype(Node):
verbose_name_plural = _('node types')
permissions = (('can_view_all', 'Can view all'),
('can_change_author', 'Can change author'), )
-
- # Save for nodetype
- 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.
-
-
-
+
class Objecttype(Nodetype):
'''
Object class
@@ -1349,11 +1394,7 @@ class Objecttype(Nodetype):
def __unicode__(self):
return self.title
-
-
-
-
-
+
@property
def get_attributetypes(self):
@@ -1455,61 +1496,190 @@ class Objecttype(Nodetype):
#nbh['authors'] = self.authors.all()
return nbh
-
@property
def get_rendered_nbh(self):
+ """
+ Returns the neighbourhood of the nodetype
"""
- Returns the neighbourhood of the nodetype with the hyperlinks of nodes rendered
- """
+ history=[]
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
nbh = {}
nbh['title'] = self.title
+ nbh['count_title'] = len(nbh['title'])
nbh['altnames'] = self.altnames
- nbh['plural'] = self.plural
- member_of_metatypes_list = []
+ nbh['count_altnames'] = len(nbh['altnames'])
+ nbh['plural'] = self.plural
+ #nbh['count_plural'] = len(nbh['plural'])
+ #get all MTs
+ member_of_dict = {}
for each in self.metatypes.all():
- member_of_metatypes_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['member_of_metatypes'] = member_of_metatypes_list
-
-
- attributetypes_list = []
- for each in self.get_attributetypes:
- attributetypes_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['attributetypes'] = attributetypes_list
-
-
- # get all the RTs for the objecttype
- reltypes_list = []
- for each in self.get_relationtypes:
- reltypes_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['relationtypes'] = reltypes_list
-
- nbh['type_of'] = self.parent
-
- nbh['contains_subtypes'] = Nodetype.objects.filter(parent=self.id)
- # get all the objects inheriting this OT
- contains_members_list = []
- for each in self.gbobjects.all():
- contains_members_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['contains_members'] = contains_members_list
-
- prior_nodes_list = []
+ member_of_dict[each.title]= each.get_absolute_url()
+ nbh['member_of_metatypes']=member_of_dict
+ nbh['count_member_of_metatypes'] = len(nbh['member_of_metatypes'])
+ typeof={}
+ parent=self.parent_id
+ if parent:
+ obj=NID.objects.get(id=parent)
+ typeof[parent] = obj.ref.get_absolute_url()
+ nbh['type_of']=typeof
+ nbh['count_type_of'] = len(nbh['type_of'])
+ #get all subtypes
+ subtypes={}
+ for each in Nodetype.objects.filter(parent=self.id):
+ subtypes[each.title] =each.get_absolute_url()
+ nbh['contains_subtypes']=subtypes
+ nbh['count_contains_subtypes'] = len(nbh['contains_subtypes'])
+ # get all the objects inheriting this OT
+ contains_members_dict = {}
+ for each in self.member_objects.all():
+ contains_members_dict[each.title]= each.get_absolute_url()
+ nbh['contains_members'] = contains_members_dict
+ nbh['count_contains_members'] = len(nbh['contains_members'])
+ #get prior nodes
+ priornodes_dict = {}
for each in self.prior_nodes.all():
- prior_nodes_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['prior_nodes'] = prior_nodes_list
-
- posterior_nodes_list = []
+ priornodes_dict[each.title]= each.get_absolute_url()
+ nbh['priornodes'] = priornodes_dict
+ nbh['count_priornodes'] = len(nbh['priornodes'])
+ #get posterior nodes
+ posteriornodes_dict = {}
for each in self.posterior_nodes.all():
- posterior_nodes_list.append('<a href="%s">%s</a>' % (each.get_absolute_url(), each.title))
- nbh['posterior_nodes'] = posterior_nodes_list
-
- author_list = []
+ posteriornodes_dict[each.title]= each.get_absolute_url()
+ nbh['posteriornodes'] = posteriornodes_dict
+ nbh['count_posteriornodes'] = len(nbh['posteriornodes'])
+ #get authors
+ author_dict = {}
for each in self.authors.all():
- author_list.append('<a href="%s"></a>' % (each.get_absolute_url()))
- nbh['authors'] = author_list
+ author_dict['User'] = each.get_absolute_url()
+ nbh['authors'] = author_dict
+ #get siblings
+ siblings={}
+ for each in self.get_siblings():
+ siblings[each.title]=each.get_absolute_url()
+ nbh['siblings']=siblings
+ nbh['count_siblings'] = len(nbh['siblings'])
+ #get Relations
+ relns={}
+ rellft={}
+ relrgt={}
+ if self.get_rendered_relations:
+ NTrelns=self.get_rendered_relations
+ 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.title]=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.title]=items.get_absolute_url()
+ else:
+ relnvalue[lftvalue]=lftvalue.get_absolute_url()
+
+ rellft[lftkey]=relnvalue
+
+ nbh['relations']=relrgt
+
+ nbh['relations'].update(rellft)
+ nbh['count_relations'] = len(nbh['relations'])
+ #get Attributes
+ attributes =self.get_attributes
+ nbh['attributes']=attributes
+ nbh['count_attributes'] = len(nbh['attributes'])
+ #get ATs
+ attributetypes={}
+ for each in self.subjecttype_of.all():
+ attributetypes[each.title]=each.get_absolute_url()
+ nbh['ats']=attributetypes
+ #get RTs as leftroles and rightroles
+ leftroles = {}
+ for each in self.left_subjecttype_of.all():
+ leftroles[each.title]=each.get_absolute_url()
+ nbh['leftroles']=leftroles
+ nbh['count_leftroles'] = len(nbh['leftroles'])
+ rightroles = {}
+ for each in self.right_subjecttype_of.all():
+ rightroles[each.title]=each.get_absolute_url()
+ nbh['rightroles']=rightroles
+ nbh['count_rightroles'] = len(nbh['rightroles'])
+ nbh['history']=history
return nbh
+
+ def get_Version_graph_json(self,ssid):
+
+
+ # # predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
+ # slist=self.get_ssid
+ ver_dict=self.version_info(ssid)
+ ver_dict1=self.version_info(ssid)
+ #ver_dict=str(ver['nbhood'])
+ ver_dict=ast.literal_eval(ver_dict['nbhood'])
+ g_json = {}
+ g_json["node_metadata"]= []
+ predicate_id = {}
+ counter = 1
+ for key in ver_dict.keys():
+ val = "a" + str(counter)
+ predicate_id[key] = val
+ counter = counter + 1
+ #print predicate_id
+ attr_counter = -1
+
+ this_node = {"_id":str(self.id),"title":ver_dict['title'],"screen_name":ver_dict['title'], "url":self.get_absolute_url()}
+ g_json["node_metadata"].append(this_node)
+ for key in predicate_id.keys():
+ if ver_dict[key]:
+ try:
+ g_json[str(key)]=[]
+ g_json["node_metadata"].append({"_id":str(predicate_id[key]),"screen_name":key})
+ g_json[str(key)].append({"from":self.id , "to":predicate_id[key],"value":1, "level":1 })
+ if not isinstance(ver_dict[key],basestring):
+ for item in ver_dict[key]:
+ # user
+ g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title, "title":item.title, "url":item.get_absolute_url()})
+ g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 })
+
+ else:
+ #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":ver_dict[key]})
+ g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 })
+ attr_counter-=1
+
+ except:
+ pass
+ # print g_json
+
+
+ return json.dumps(g_json)
+
+
class Meta:
"""
object type's meta class
@@ -1521,15 +1691,22 @@ class Objecttype(Nodetype):
# Save for Objecttype
# @reversion.create_revision()
- def save(self, *args, **kwargs):
+ def save(self,*args, **kwargs):
self.nodemodel = self.__class__.__name__
super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method.
- self.nbhood=self.get_nbh
+ self.nbhood=self.get_rendered_nbh
+ if GSTUDIO_VERSIONING:
+ with reversion.create_revision():
+ self.nodemodel = self.__class__.__name__
+ if self.parent:
+ ot=NID.objects.get(id=self.parent.id)
+ ot.ref.save()
+ super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method.
+
+ def save_revert_or_merge(self,*args, **kwargs):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(Objecttype, self).save(*args, **kwargs) # Call the "real" save() method.
-
-
@@ -1563,6 +1740,171 @@ class Relationtype(Nodetype):
def __unicode__(self):
return self.title
+ @property
+
+ def get_rendered_nbh(self):
+ """
+ Returns the neighbourhood of the Relationtype
+ """
+ history=[]
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
+ nbh = {}
+ nbh['title'] = self.title
+ nbh['count_title'] = len(nbh['title'])
+ nbh['altnames'] = self.altnames
+ nbh['count_altnames'] = len(nbh['altnames'])
+ nbh['plural'] = self.plural
+# nbh['count_plural'] = len(nbh['plural'])
+ #get all MTs
+ member_of_dict = {}
+ for each in self.metatypes.all():
+ member_of_dict[each.title]= each.get_absolute_url()
+ nbh['member_of_metatypes']=member_of_dict
+ nbh['count_member_of_metatypes'] = len(nbh['member_of_metatypes'])
+ typeof={}
+ parent=self.parent_id
+ if parent:
+ obj=NID.objects.get(id=parent)
+ typeof[parent] = obj.ref.get_absolute_url()
+ nbh['type_of']=typeof
+ nbh['count_type_of'] = len(nbh['type_of'])
+ #get all subtypes
+ subtypes={}
+ for each in Nodetype.objects.filter(parent=self.id):
+ subtypes[each.title] =each.get_absolute_url()
+ nbh['contains_subtypes']=subtypes
+ nbh['count_contains_subtypes'] = len(nbh['contains_subtypes'])
+ # get all the objects inheriting this OT
+ contains_members_dict = {}
+ for each in self.member_objects.all():
+ contains_members_dict[each.title]= each.get_absolute_url()
+ nbh['contains_members'] = contains_members_dict
+ nbh['count_contains_members'] = len(nbh['contains_members'])
+ #get prior nodes
+ priornodes_dict = {}
+ for each in self.prior_nodes.all():
+ priornodes_dict[each.title]= each.get_absolute_url()
+ nbh['priornodes'] = priornodes_dict
+ nbh['count_priornodes'] = len(nbh['priornodes'])
+ #get posterior nodes
+ posteriornodes_dict = {}
+ for each in self.posterior_nodes.all():
+ posteriornodes_dict[each.title]= each.get_absolute_url()
+ nbh['posteriornodes'] = posteriornodes_dict
+ nbh['count_posteriornodes'] = len(nbh['posteriornodes'])
+ #get authors
+ author_dict = {}
+ for each in self.authors.all():
+ author_dict['User'] = each.get_absolute_url()
+ nbh['authors'] = author_dict
+ #get siblings
+ siblings={}
+ for each in self.get_siblings():
+ siblings[each.title]=each.get_absolute_url()
+ nbh['siblings']=siblings
+ nbh['count_siblings'] = len(nbh['siblings'])
+ #get Relations
+ relns={}
+ rellft={}
+ relrgt={}
+ if self.get_rendered_relations:
+ NTrelns=self.get_rendered_relations
+ 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)
+ nbh['count_relations'] = len(nbh['relations'])
+ #get Attributes
+ attributes =self.get_attributes
+ nbh['attributes']=attributes
+ nbh['count_attributes'] = len(nbh['attributes'])
+ #get ATs
+ attributetypes={}
+ for each in self.subjecttype_of.all():
+ attributetypes[each.title]=each.get_absolute_url()
+ nbh['ats']=attributetypes
+ #get RTs as leftroles and rightroles
+ leftroles = {}
+ for each in self.left_subjecttype_of.all():
+ leftroles[each.title]=each.get_absolute_url()
+ nbh['leftroles']=leftroles
+ nbh['count_leftroles'] = len(nbh['leftroles'])
+ rightroles = {}
+ for each in self.right_subjecttype_of.all():
+ rightroles[each.title]=each.get_absolute_url()
+ nbh['rightroles']=rightroles
+ nbh['count_rightroles'] = len(nbh['rightroles'])
+ nbh['history']=history
+ return nbh
+
+
+
+ def get_nbh(self):
+ """
+ Returns the neighbourhood of the nodetype
+ """
+ nbh = {}
+ nbh['title'] = self.title
+ nbh['altnames'] = self.altnames
+ nbh['plural'] = self.plural
+
+ nbh['contains_subtypes'] = Nodetype.objects.filter(parent=self.id)
+ # get all the objects inheriting this OT
+ nbh['contains_members'] = self.member_objects.all()
+ nbh['prior_nodes'] = self.prior_nodes.all()
+ nbh['posterior_nodes'] = self.posterior_nodes.all()
+ nbh['inverse']=self.inverse
+ nbh['left_subjecttype']=self.left_subjecttype
+ nbh['left_applicable_nodetypes']=self.left_applicable_nodetypes
+ nbh['left_cardinality']=self.left_cardinality
+ nbh['right_subjecttype']=self.right_subjecttype
+ nbh['right_applicable_nodetypes']=self.right_applicable_nodetypes
+ nbh['right_cardinality']=self.right_cardinality
+ nbh['is_symmetrical']=self.is_symmetrical
+ nbh['is_reflexive']=self.is_reflexive
+ nbh['is_transitive']=self.is_transitive
+
+
+
+ return nbh
+
+
+
class Meta:
"""
relation type's meta class
@@ -1576,12 +1918,12 @@ class Relationtype(Nodetype):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(Relationtype, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
if GSTUDIO_VERSIONING:
with reversion.create_revision():
self.nodemodel = self.__class__.__name__
-
-
- super(Relationtype, self).save(*args, **kwargs) # Call the "real" save() method.
+ super(Relationtype, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1615,6 +1957,140 @@ class Attributetype(Nodetype):
editable=models.NullBooleanField(verbose_name='required', null=True, blank=True, help_text='If False, the field will not be editable')
+
+ @property
+ def get_rendered_nbh(self):
+ """
+ Returns the neighbourhood of the Attributetype
+ """
+ history=[]
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
+ nbh = {}
+ nbh['title'] = self.title
+ nbh['count_title'] = len(nbh['title'])
+ nbh['altnames'] = self.altnames
+ nbh['count_altnames'] = len(nbh['altnames'])
+ # nbh['plural'] = self.plural
+ # nbh['count_plural'] = len(nbh['plural'])
+ #get all MTs
+ member_of_dict = {}
+ for each in self.metatypes.all():
+ member_of_dict[each.title]= each.get_absolute_url()
+ nbh['member_of_metatypes']=member_of_dict
+ nbh['count_member_of_metatypes'] = len(nbh['member_of_metatypes'])
+ typeof={}
+ parent=self.parent_id
+ if parent:
+ obj=NID.objects.get(id=parent)
+ typeof[parent] = obj.ref.get_absolute_url()
+ nbh['type_of']=typeof
+ nbh['count_type_of'] = len(nbh['type_of'])
+ #get all subtypes
+ subtypes={}
+ for each in Nodetype.objects.filter(parent=self.id):
+ subtypes[each.title] =each.get_absolute_url()
+ nbh['contains_subtypes']=subtypes
+ nbh['count_contains_subtypes'] = len(nbh['contains_subtypes'])
+ # get all the objects inheriting this OT
+ contains_members_dict = {}
+ for each in self.member_objects.all():
+ contains_members_dict[each.title]= each.get_absolute_url()
+ nbh['contains_members'] = contains_members_dict
+ nbh['count_contains_members'] = len(nbh['contains_members'])
+ #get prior nodes
+ priornodes_dict = {}
+ for each in self.prior_nodes.all():
+ priornodes_dict[each.title]= each.get_absolute_url()
+ nbh['priornodes'] = priornodes_dict
+ nbh['count_priornodes'] = len(nbh['priornodes'])
+ #get posterior nodes
+ posteriornodes_dict = {}
+ for each in self.posterior_nodes.all():
+ posteriornodes_dict[each.title]= each.get_absolute_url()
+ nbh['posteriornodes'] = posteriornodes_dict
+ nbh['count_posteriornodes'] = len(nbh['posteriornodes'])
+ #get authors
+ author_dict = {}
+ for each in self.authors.all():
+ author_dict['User'] = each.get_absolute_url()
+ nbh['authors'] = author_dict
+ #get siblings
+ siblings={}
+ for each in self.get_siblings():
+ siblings[each.title]=each.get_absolute_url()
+ nbh['siblings']=siblings
+ nbh['count_siblings'] = len(nbh['siblings'])
+ #get Relations
+ relns={}
+ rellft={}
+ relrgt={}
+ if self.get_rendered_relations:
+ NTrelns=self.get_rendered_relations
+ 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)
+ nbh['count_relations'] = len(nbh['relations'])
+ #get Attributes
+ attributes =self.get_attributes
+ nbh['attributes']=attributes
+ nbh['count_attributes'] = len(nbh['attributes'])
+ #get ATs
+ attributetypes={}
+ for each in self.subjecttype_of.all():
+ attributetypes[each.title]=each.get_absolute_url()
+ nbh['ats']=attributetypes
+ #get RTs as leftroles and rightroles
+ leftroles = {}
+ for each in self.left_subjecttype_of.all():
+ leftroles[each.title]=each.get_absolute_url()
+ nbh['leftroles']=leftroles
+ nbh['count_leftroles'] = len(nbh['leftroles'])
+ rightroles = {}
+ for each in self.right_subjecttype_of.all():
+ rightroles[each.title]=each.get_absolute_url()
+ nbh['rightroles']=rightroles
+ nbh['count_rightroles'] = len(nbh['rightroles'])
+ nbh['history']=history
+
+ return nbh
+
+
def __unicode__(self):
return self.title
@@ -1638,13 +2114,17 @@ class Attributetype(Nodetype):
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
-
-# self.nbhood=self.get_nbh
+ super(Attributetype, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
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.
+ def save_revert_or_merge(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.
+
class Relation(Edge):
@@ -1705,12 +2185,12 @@ class Relation(Edge):
@property
def composed_sentence(self):
"composes the relation as a sentence in a triple format."
- return '%s %s %s %s %s %s' % (self.left_subject_scope, self.left_subject, self.relationtype_scope, self.relationtype, self.right_subject_scope, self.right_subject)
+ return u'%s %s %s %s %s %s' % (self.left_subject_scope, self.left_subject, self.relationtype_scope, self.relationtype, self.right_subject_scope, self.right_subject)
@property
def inversed_sentence(self):
"composes the inverse relation as a sentence in a triple format."
- return '%s %s %s %s %s' % (self.objectScope, self.right_subject, self.relationtype.inverse, self.left_subject_scope, self.left_subject )
+ return u'%s %s %s %s %s' % (self.objectScope, self.right_subject, self.relationtype.inverse, self.left_subject_scope, self.left_subject )
@property
def key_value(self):
@@ -1727,27 +2207,35 @@ class Relation(Edge):
if self.relationtype:
# for relation in self.relationtype():
- return '%s %s %s' % (self.left_subject,self.relationtype,self.right_subject )
+ return u'%s %s %s' % (self.left_subject,self.relationtype,self.right_subject )
@property
def partial_composition(self):
'''
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)
+ return u'%s as a %s' % (self.right_subject, self.relationtype)
# Save for Relation
def save(self, *args, **kwargs):
+
+ """
+ left_subject and right_subject should be saved after creating the relation
+ """
self.nodemodel = self.__class__.__name__
+
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(Relation, self).save(*args, **kwargs) # Call the "real" save() method.
+ left_subject = self.left_subject
+ right_subject = self.right_subject
+ left_subject.ref.save()
+ right_subject.ref.save()
super(Relation, self).save(*args, **kwargs) # Call the "real" save() method.
-
class Attribute(Edge):
'''
Attribute value store for default datatype varchar. Subject can be any of the
@@ -1798,21 +2286,21 @@ class Attribute(Edge):
'''
composes the attribution as a sentence in a triple format.
'''
- return '%s %s has %s %s %s %s' % (self.subject_scope, self.subject, self.attributetype_scope, self.attributetype, self.value_scope, self.svalue)
+ return u'%s %s has %s %s %s %s' % (self.subject_scope, self.subject, self.attributetype_scope, self.attributetype, self.value_scope, self.svalue)
@property
def composed_attribution(self):
'''
composes a name to the attribute
'''
- return 'the %s of %s is %s' % (self.attributetype, self.subject, self.svalue)
+ return u'the %s of %s is %s' % (self.attributetype, self.subject, self.svalue)
@property
def partial_composition(self):
'''
function that composes the value and attribute name, as in "red as color", "4 as length"
'''
- return '%s as %s' % (self.svalue, self.attributetype)
+ return u'%s as %s' % (self.svalue, self.attributetype)
def subject_filter(self,attr):
@@ -1830,7 +2318,8 @@ class Attribute(Edge):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(Attribute, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(Attribute, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1847,11 +2336,14 @@ class AttributeCharField(Attribute):
# @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.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeCharField, self).save(*args, **kwargs) # Call the "real" save() method.
+
class AttributeTextField(Attribute):
@@ -1867,6 +2359,8 @@ class AttributeTextField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeTextField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
super(AttributeTextField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1882,7 +2376,8 @@ class AttributeIntegerField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1900,6 +2395,8 @@ class AttributeCommaSeparatedIntegerField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeCommaSeparatedIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
super(AttributeCommaSeparatedIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
class AttributeBigIntegerField(Attribute):
@@ -1908,6 +2405,17 @@ class AttributeBigIntegerField(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(AttributeBigIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
+ super(AttributeBigIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
+
class AttributePositiveIntegerField(Attribute):
@@ -1922,6 +2430,8 @@ class AttributePositiveIntegerField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributePositiveIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
super(AttributePositiveIntegerField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1936,8 +2446,8 @@ class AttributeDecimalField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeDecimalField, self).save(*args, **kwargs) # Call the "real" save() method.
-
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeDecimalField, self).save(*args, **kwargs) # Call the "real" save() method.
class AttributeFloatField(Attribute):
@@ -1953,7 +2463,8 @@ class AttributeFloatField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeFloatField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeFloatField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1968,7 +2479,8 @@ class AttributeBooleanField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeBooleanField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeBooleanField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -1985,6 +2497,8 @@ class AttributeNullBooleanField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeNullBooleanField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
super(AttributeNullBooleanField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2000,7 +2514,8 @@ class AttributeDateField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeDateField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeDateField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2017,7 +2532,8 @@ class AttributeDateTimeField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeDateTimeField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeDateTimeField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2034,13 +2550,14 @@ class AttributeTimeField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeTimeField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeTimeField, self).save(*args, **kwargs) # Call the "real" save() method.
class AttributeEmailField(Attribute):
- value = models.CharField(max_length=100,verbose_name='value')
+ value = models.EmailField(max_length=100,verbose_name='value')
def __unicode__(self):
return self.title
@@ -2050,13 +2567,14 @@ class AttributeEmailField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeEmailField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeEmailField, self).save(*args, **kwargs) # Call the "real" save() method.
class AttributeFileField(Attribute):
- value = models.FileField(upload_to='/media', verbose_name='file')
+ value = models.FileField(upload_to='media/'+UPLOAD_TO, verbose_name='file')
def __unicode__(self):
return self.title
@@ -2067,7 +2585,8 @@ class AttributeFileField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeFileField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeFileField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2084,13 +2603,14 @@ class AttributeFilePathField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeFilePathField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeFilePathField, self).save(*args, **kwargs) # Call the "real" save() method.
class AttributeImageField(Attribute):
- value = models.ImageField(upload_to='/media', verbose_name='image')
+ value = models.ImageField(upload_to = UPLOAD_TO, verbose_name='image')
def __unicode__(self):
return self.title
@@ -2098,6 +2618,11 @@ class AttributeImageField(Attribute):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ if GSTUDIO_VERSIONING:
+ with reversion.create_revision():
+ super(AttributeImageField, self).save(*args, **kwargs) # Call the "real" save() method.
+ subject=self.subject
+ subject.ref.save()
super(AttributeImageField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2114,7 +2639,8 @@ class AttributeURLField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeURLField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeURLField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2131,7 +2657,8 @@ class AttributeIPAddressField(Attribute):
if GSTUDIO_VERSIONING:
with reversion.create_revision():
super(AttributeIPAddressField, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ subject=self.subject
+ subject.ref.save()
super(AttributeIPAddressField, self).save(*args, **kwargs) # Call the "real" save() method.
@@ -2161,11 +2688,13 @@ class Processtype(Nodetype):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(Processtype, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
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.
+
@@ -2202,13 +2731,12 @@ class Systemtype(Nodetype):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(Systemtype, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
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.
-
-
class AttributeSpecification(Node):
"""
@@ -2229,7 +2757,7 @@ class AttributeSpecification(Node):
subjects = u''
for each in self.subjects.all():
subjects = subjects + each.title + ' '
- return 'the %s of %s' % (self.attributetype, subjects)
+ return u'the %s of %s' % (self.attributetype, subjects)
def __unicode__(self):
@@ -2270,7 +2798,7 @@ class RelationSpecification(Node):
subjects = u''
for each in self.subjects.all():
subjects = subjects + each.title + ' '
- return 'the %s of %s' % (self.relationtype, subjects)
+ return u'the %s of %s' % (self.relationtype, subjects)
def __unicode__(self):
return self.composed_subject
@@ -2312,7 +2840,7 @@ class NodeSpecification(Node):
attributes = u''
for each in self.attributes.all():
attributes = attributes + each.partial_composition + ', '
- return 'the %s with %s, %s' % (self.subject, self.relations, self.attributes)
+ return u'the %s with %s, %s' % (self.subject, self.relations, self.attributes)
def __unicode__(self):
return self.composed_subject
@@ -2351,7 +2879,7 @@ class Expression(Node):
@property
def composed_sentence(self):
"composes the relation as a sentence in a triple format."
- return '%s %s %s' % (self.left_term, self.relationtype, self.right_term)
+ return u'%s %s %s' % (self.left_term, self.relationtype, self.right_term)
class Meta:
@@ -2436,7 +2964,7 @@ if GSTUDIO_VERSIONING == True:
reversion.register(NID)
if not reversion.is_registered(Systemtype):
- reversion.register(Systemtype)
+ reversion.register(Systemtype,follow=["nodetype_ptr"] )
if not reversion.is_registered(Objecttype):
reversion.register(Objecttype , follow=["nodetype_ptr"])
@@ -2449,7 +2977,7 @@ if GSTUDIO_VERSIONING == True:
if not reversion.is_registered(Processtype):
- reversion.register(Processtype, follow=["changing_attributetype_set", "changing_relationtype_set"])
+ reversion.register(Processtype, follow=["nodetype_ptr","changing_attributetype_set", "changing_relationtype_set"])
if not reversion.is_registered(Nodetype):
reversion.register(Nodetype, follow=["node_ptr","parent", "metatypes","prior_nodes", "posterior_nodes"])
@@ -2459,10 +2987,10 @@ if GSTUDIO_VERSIONING == True:
if not reversion.is_registered(Relationtype):
- reversion.register(Relationtype, follow=["left_subjecttype", "right_subjecttype"])
+ reversion.register(Relationtype, follow=["nodetype_ptr","left_subjecttype", "right_subjecttype"])
if not reversion.is_registered(Attributetype):
- reversion.register(Attributetype, follow=["subjecttype"])
+ reversion.register(Attributetype, follow=["nodetype_ptr","subjecttype"])
if not reversion.is_registered(Attribute):
reversion.register(Attribute, follow=["subject", "attributetype"])
diff --git a/gstudio/settings.py b/gstudio/settings.py
index 75606676..a0c40c9a 100644
--- a/gstudio/settings.py
+++ b/gstudio/settings.py
@@ -153,4 +153,4 @@ USE_TWITTER = getattr(settings, 'GSTUDIO_USE_TWITTER',
bool(TWITTER_ACCESS_KEY and TWITTER_ACCESS_SECRET and \
TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET))
-GSTUDIO_VERSIONING = False
+GSTUDIO_VERSIONING = True
diff --git a/gstudio/templates/gstudio/display.html b/gstudio/templates/gstudio/display.html
index 184b58de..9d48285d 100644
--- a/gstudio/templates/gstudio/display.html
+++ b/gstudio/templates/gstudio/display.html
@@ -1,4 +1,3 @@
-
{% load i18n comments gstudio_tags %}
{% load gstudio_tags i18n %}
{% get_tags as nodetype_tags %}
@@ -6,7 +5,6 @@
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="{{ LANGUAGE_CODE }}" lang="{{ LANGUAGE_CODE }}" version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -165,7 +163,7 @@
.attr("width", w)
.attr("height", h);
- vis.append("svg:g").attr("class", "edges");
+ vis.append("svg:g").attr("class", "edges");
vis.append("svg:g").attr("class", "nodes");
$(function() {
@@ -176,7 +174,7 @@ $(function() {
success : function(json) {
//var node = NID.objects.get(slug='{{ slug }}');
- var force;
+ var force;
// this contains all the nodes as a dict with _id as the key
@@ -336,18 +334,18 @@ $(function() {
nodes_by_id[{{ nt.id }}].y = h/2.0;
all_edges = new Array();
- all_edges = all_edges.concat(follows_edges, member_of, contains_members, contains_subtypes, mentions_edges, right_subjecttype_of, left_subjecttype_of, subjecttype_of, type_of,plural,altnames,contains_members,content, prior_nodes, posterior_nodes);
- /* all_edges.concat(follows_edges);
- all_edges.concat(member_of_metatype);
+ all_edges = all_edges.concat(follows_edges, member_of, contains_members, contains_subtypes, mentions_edges, right_subjecttype_of, left_subjecttype_of, subjecttype_of, type_of,plural,altnames,contains_members,content, prior_nodes, posterior_nodes);
+ /* all_edges.concat(follows_edges);
+ all_edges.concat(member_of_metatype);
all_edges.concat(contains_members);
- all_edges.concat(contains_subtypes);
- all_edges.concat(mentions_edges);
+ all_edges.concat(contains_subtypes);
+ all_edges.concat(mentions_edges);
- document.getElementById('debugbox1').value= follows_edges; //member_of_metatype
+ document.getElementById('debugbox1').value= follows_edges; //member_of_metatype
document.getElementById('debugbox2').value= mentions_edges;
- //document.getElementById('debugbox2').value= member_of_metatype;
- document.getElementById('debugbox3').value= all_edges;
+ //document.getElementById('debugbox2').value= member_of_metatype;
+ document.getElementById('debugbox3').value= all_edges;
*/
var force = d3.layout.force()
.linkStrength(0.5)
@@ -372,7 +370,7 @@ $(function() {
if(nodes_by_id[e.to] && !nodes_by_id[e.to].added){
nodes_by_id[e.to].added = true;
acc.push(nodes_by_id[e.to]);
- }
+ }
return acc;
}, []);
@@ -390,7 +388,7 @@ $(function() {
} */ )
.attr("x1", function(d) {
return d.source.x;
- })
+ })
.attr("y1", function(d) {
return d.source.y;
})
@@ -405,13 +403,13 @@ $(function() {
})
.append("a")
- .text(function(d) { return d.type; });
+ .text(function(d) { return d.type; });
- var node = d3.select("#chart g.nodes").selectAll("g.node").data(nodes);
+ var node = d3.select("#chart g.nodes").selectAll("g.node").data(nodes);
var new_g = node.enter().append("svg:a")
- .attr("class", function(d) { if (d._id=={{ nt.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else if ((d._id)<0) return "nodetext"; else return "node"; })
+ .attr("class", function(d) { if (d._id=={{ nt.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else if ((d._id)<0) return "nodetext"; else return "node"; })
.attr("xlink:href",function(d){return d.url;})
.call(force.drag);
@@ -428,14 +426,14 @@ $(function() {
new_g.append("svg:text")
.attr("class",function(d) { if (d._id=={{ nt.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else if ((d._id)<0) return "nodetext"; else return "node"; })
.attr("dy", 20)
- .attr("dx", 25)
- .attr("text-anchor",function text(d) { if (isNaN(d._id) || (d._id)<0) return "middle" ; else return "left"})
+ .attr("dx", 25)
+ .attr("text-anchor",function text(d) { if (isNaN(d._id) || (d._id)<0) return "middle" ; else return "left"})
-// .attr("style",function text(d) { if (isNaN(d._id)) return "font-size:9.00pt;fill:#333;" ; else return "font-size:9.00pt;fill:black;"})
+// .attr("style",function text(d) { if (isNaN(d._id)) return "font-size:9.00pt;fill:#333;" ; else return "font-size:9.00pt;fill:black;"})
.text(function(d) {
return d.screen_name;
- });
+ });
node.exit().remove();
@@ -465,7 +463,7 @@ $(function() {
/* $('input#follows').change(function(){
update(all_edges);
});
- */
+ */
/* $('input#mentions').change(function(){
update(all_edges);
@@ -480,9 +478,12 @@ $(function() {
});
-</script>
+</script>
</div>
</div>
+
+
+
<div>
{% include "gstudio/_header.html" %}
<div id="breadcrumbs" class="span-24 last">
@@ -493,81 +494,186 @@ $(function() {
<h3>{% block content %}
{% block nodetype-content %}
<h2 class="nodetype-title">
- <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_dict.title }} {{ nt.id }}.{{ cnt }}
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_nbh_dict.title }} {{ nt.id }}.{{ version_no }}
</a>
+ <a href="{{ nt.get_edit_url }}/history/{{ ssid }}" target="_blank" title = "edit">[edit]</a>
</h2>
- {% with nt.html_content|safe as object_content %}
- <b>Name:<nbsp></b>{{ ver_dict.title }}<br/>
- {% if ver_dict.altnames %}
- <b> Alternate names:<nbsp></b>{{ ver_dict.altnames}}
- <br/>
- {% endif %}
- {% if ver_dict.plural %}
- <b> Plural Name:<nbsp></b>{{ ver_dict.plural }} <br/>
- {% endif %}
- {% if nt.get_rendered_nbh.authors %}<b>Authors: <nbsp> </b>
- {% endif %}
- {% for author in nt.authors.all %}
- <span class="vcard author">
- <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author"
- title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a>
- </span>{% if not forloop.last %}, {% endif %}
- {% endfor %} <br/>
- {% endwith %}
- {% endblock %}
- {% endblock %}
+ {% with nt.html_content|safe as object_content %}
+ <b>Name:<nbsp></b> {{ ver_nbh_dict.title }} <br/>
+
+ {% if ver_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b>
+ {{ ver_nbh_dict.plural}} <br/>
+ {% endif %}
+ {% if ver_nbh_dict.altnames %}
+ <b> Alternate names:<nbsp></b>
+ {{ ver_nbh_dict.altnames}} <br/>
+ {% endif %}
+ {% if ver_nbh_dict.type_of %}
+ <b> Type of:<nbsp></b>
+ {% for typekey,typevalue in ver_nbh_dict.type_of.items %}
+ <a href="{{typevalue}}" title = "{{typekey}}">{{typekey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+ {% if ver_nbh_dict.member_of_metatypes %}
+
+
+ <b> Member of Metatypes:<nbsp></b>
+ {% for mkey,mvalue in ver_nbh_dict.member_of_metatypes.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+
+ {% if ver_nbh_dict.contains_subtypes %}
+ <b> Contains SubTypes:<nbsp></b>
+ {% for stkey,stvalue in ver_nbh_dict.contains_subtypes.items %}
+ <a href="{{stvalue}}" title = "{{stkey}}">{{stkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+ {% if ver_nbh_dict.contains_members %}
+
+
+ <b>Contains Members:<nbsp></b>
+ {% for mkey,mvalue in ver_nbh_dict.contains_members.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+
+
+
+
+ <b>Authors: <nbsp> </b>
+
+
+
+
+ {% for author in nt.authors.all %}
+ <span class="vcard author">
+ <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author"
+ title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a>
+ </span>{% if not forloop.last %}, {% endif %}
+ {% endfor %} <br/>
+
+
+
+ {% if ver_nbh_dict.priornodes %}
+
+
+ <b>Prior nodes:<nbsp></b>
+ {% for mkey,mvalue in ver_nbh_dict.priornodes.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_nbh_dict.posteriornodes %}
+
+
+ <b>Posterior nodes:<nbsp></b>
+ {% for mkey,mvalue in ver_nbh_dict.posteriornodes.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_nbh_dict.relations %}
+
+
+ {% for relkey,relvalue in ver_nbh_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% for relk, relv in relvalue.items %}
+ <a href="{{relv}}" title = "{{relk}}">{{relk}}</a>;
+ {% endfor %}<br/>
+ {% endfor %}
+ {% endif %}
+
+ {% if ver_nbh_dict.attributes %}
+
+ {% for atkey,atvalue in ver_nbh_dict.attributes.items %}
+ {% if atvalue %}
+ <b>{{atkey}}:<nbsp> </b>
+ {% for atr in atvalue %}
+ {{atr}};
+ {% endfor %} <br/>
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if ver_nbh_dict.leftroles %}
+
+
+ <b>Left roles:<nbsp> </b>
+
+ {% for lrkey,lrvalue in ver_nbh_dict.leftroles.items %}
+ <a href="{{lrvalue}}" title = "{{lrkey}}">{{lrkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+ {% if ver_nbh_dict.rightroles %}
+
+ <b>Right roles:<nbsp> </b>
+
+ {% for rrkey,rrvalue in ver_nbh_dict.rightroles.items %}
+ <a href="{{rrvalue}}" title = "{{rrkey}}">{{rrkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+
+ {% if ver_nbh_dict.ats %}
+
+
+ <b>Subjecttype of:<nbsp> </b>
+
+ {% for atkey,atvalue in ver_nbh_dict.ats.items %}
+ <a href="{{atvalue}}" title = "{{atkey}}">{{atkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+
+ <b>Content:<nbsp></b>{{ ver_nbh_dict.content }}
+
+
+ {% endwith %}
+ {% endblock %}
+ {% endblock %}
</div>
<div id="sidebar">
{% block sidebar %}
<div class="History">
-
+
<h3>{% trans "Versions" %}</h3>
- <script type="text/javascript">
- function go_to_loc(sid)
- {
-
- <!-- var len=document.history.group2.length -->
- <!-- for(var i=0;i<len;i++) -->
- <!-- { -->
- <!-- var r=window.document.history.group2[i] -->
- <!-- if(sid==r.) -->
- <!-- { -->
- <!-- r.disabled="false" -->
- <!-- } -->
- <!-- else -->
- <!-- { -->
- <!-- r.enabled="true" -->
- <!-- } -->
- <!-- } -->
-
-
- }
- </script>
- <form name="history" action="/nodetypes/display/showhistory/{{ ssid }}" >
+ <form name="history" action="/nodetypes/display/compare_history/{{ ssid }}" >
<table cellspacing="0" border="2">
<tr>
- <td> <input type="radio" name="group1" value="{{ ssid }}" checked >{{ nt.id }}.{{ cnt }}</input></td>
+ <td> <input type="radio" name="group1" value="{{ ssid }}.{{ version_no }}" checked >{{ nt.id }}.{{ version_no }}</input></td>
<td></td></tr>
+
{% for sid in nt.get_ssid %}
- {% ifnotequal forloop.counter cnt %}
+
+ {% if sid|stringformat:"s" != ssid|stringformat:"s" %}
<tr>
<td>
</td>
<td>
- <input type="radio" id="{{ sid }}"name="group2" value="{{ sid }}" >{{ nt.id }}.{{ forloop.counter }}</input>
- </td>{% endifnotequal %}
- {% endfor %}</tr></table>
+ <input type="radio" id="{{ sid }}"name="group2" value="{{ sid }}.{{ forloop.counter }}" >{{ nt.id }}.{{ forloop.counter }}</input>
+ </td></tr>{% endif %}
+ {% endfor %}</table>
<input type="submit" value="Compare" />
</form>
-
+
</div>
-
+
{% endblock %}
</div>
@@ -583,13 +689,8 @@ $(function() {
{{ GSTUDIO_VERSION }}</a>.
</p>
</div>
- </div>
+ </div>
</div>
</body>
</html>
-
-
-
-
-
diff --git a/gstudio/templates/gstudio/nodetype_detail.html b/gstudio/templates/gstudio/nodetype_detail.html
index 7947e585..1a012799 100644
--- a/gstudio/templates/gstudio/nodetype_detail.html
+++ b/gstudio/templates/gstudio/nodetype_detail.html
@@ -250,6 +250,7 @@
{% endblock %}
<!-- Dynamic form begins -->
+{% if user.is_authenticated %}
<p>
{% if object.reftype == 'Objecttype' %}
<b>Add Attributes:</b>
@@ -264,7 +265,7 @@
<a href="{{ get_absolute_url }}/objects/dynamicRelation/displaymem/{{ i }}/{{ object.title }}">{{ i }}</a><nbsp>;
{% endfor %}
{% endif %}
-
+{% endif %}
</p>
<!-- Dyanic form ends -->
<div class="nodetype-content">
diff --git a/gstudio/templates/gstudio/skeleton.html b/gstudio/templates/gstudio/skeleton.html
index eba5e283..f8e366fa 100644
--- a/gstudio/templates/gstudio/skeleton.html
+++ b/gstudio/templates/gstudio/skeleton.html
@@ -178,8 +178,8 @@
function init(a,b)
{
+
-
nodes_by_id = _.reduce(a, function(acc, n) {
acc[n._id] = n;
return acc;
@@ -198,16 +198,19 @@ function init(a,b)
return nodes_by_id[e.from] && nodes_by_id[e.to]&& e.type!="title" && e.type!="content"
}).value();
-
+
}
$(function fgraph() {
-
+neighbour_node= new Array();
+clicked_node=new Array();
+prev_node=new Array();
+neighbour_node= neighbour_node.concat({{object.id}});
$.getJSON('/nodetypes/graphs/graph_json/' + {{object.id}}, function (json1) {
metadata=json1.node_metadata;
relations=json1.relations;
- relnset=json1.relset
+
init(metadata,relations);
load({{object.id}}) });
@@ -338,29 +341,128 @@ function load(key)
.attr("fill", "#6D6666");
-
-$(window).bind('keydown',function(event){
- if(17==event.keyCode){
- new_g.on("click",function(d){
- if(d._id>0 && d.expanded=="false")
- {
- d3.select("#amazingViz").remove();
- d.expanded="true";
- $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
- new_metadata=json2.node_metadata;
- new_relations=json2.relations;
- new_relnset=json2.relset
- metadata=_.union(new_metadata,metadata);
- relations=_.union(new_relations,relations);
- init(metadata,relations);
- load(d._id)
- })
+$(window).bind('keydown',function(event) {
+ if(event.keyCode==17){
+
+ new_g.on("click",function(d){
+
+
+
+
+ if(d._id>0 && d.expanded=="true")
+ {
+
+ $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
+ new_metadata=json2.node_metadata;
+
+ });
+
+ _.filter(new_metadata, function(e){if(e._id>0)
+ {
+ clicked_node=clicked_node.concat(e._id) ;
+ }
+ });
+
+
+ index = _.indexOf(neighbour_node , d._id);
+ prev_node=neighbour_node.slice(0,index);
+
+ neighbour_node = _.difference(neighbour_node,clicked_node) ;
+
+ neighbour_node= neighbour_node.concat(prev_node);
+ neighbour_node = _.uniq(neighbour_node);
+ metadata=[]
+ relations=[]
+ metadata1=[]
+ relations1=[]
+ for(i=0;i<(neighbour_node.length);i++)
+ {
+
+ d3.select("#amazingViz").remove();
+ g=neighbour_node[i]
+
+
+
+ $.ajax({
+ async:false,
+ url:'/nodetypes/graphs/graph_json/' + g ,
+ datatype:'json',
+ success:function (json2) {
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+ metadata=_.union(new_metadata,metadata);
+
+ relations=_.union(new_relations,relations);
+ check_Relationtype(metadata,relations);
+ }});
+
}
-
- });
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ {m.expanded="true";}
+ else
+ {m.expanded="false";}
+ }
+
+
+ });
+
+ init(metadata,relations);
+ load({{object.id}}) ;
-}
+
+
+ }
+
+
+
+
+ else if(d._id>0)
+ {
+
+ neighbour_node =neighbour_node.concat(d._id);
+
+ d3.select("#amazingViz").remove();
+
+ $.ajax({
+ async:false,
+ url:'/nodetypes/graphs/graph_json/' + d._id ,
+ datatype:'json',
+ success:function (json2) {
+
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+
+ metadata=_.union(new_metadata,metadata);
+ relations=_.union(new_relations,relations);
+ check_Relationtype(metadata,relations);
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ m.expanded="true";
+ }
+ });
+
+
+ }});
+ console.log(metadata);
+ init(metadata,relations);
+ load({{object.id}});
+
+
+
+
+ }
});
+}
+
+});
+
@@ -370,15 +472,7 @@ $(window).bind('keydown',function(event){
});
- /*new_g.append("svg:ellipse")
- .attr("cx", function(d) { return d.x - w/2.0 +15; })
- .attr("cy", function(d) { return d.y - h/2.0 +15 ; })
- .call(force.drag)
- .attr("rx", function(d) { return ((d.screen_name).length) +10 })
- .attr("ry", function(d) { if (d._id==key) return 8; else if (isNaN(d._id) || (d._id)<0) return 1; else return 7 });
- //.style("fill", function color(d) { if (d._id==key) return "red"; else if (isNaN(d._id) || (d._id)<0) return "white" ; else return "green"});*/
-
-
+
@@ -389,8 +483,7 @@ $(window).bind('keydown',function(event){
.attr("dy", ".35em")
.attr("text-anchor","middle")
- // .attr("style",function text(d) { if ((d._id)>0) return "font-size:9.00pt;fill:blue;" ; else return "font-size:9.00pt;fill:black;"})
-
+
.text(function(d) {
return d.screen_name;
});
@@ -423,7 +516,7 @@ $(window).bind('keydown',function(event){
.style("fill-opacity", ".2")
.style("stroke", "#666")
.style("stroke-width", "1.5px")
- .style("fill", function color(d) {var e=(d._id).charAt(0); if (d.expanded=="true") return "red"; else return "none"});
+ .style("fill", function(d) {if ((d.expanded=="true" && d.refType=="Objecttype") ||(d._id=={{object.id}}) ) return "blue"; else if(d.expanded=="true" && d.refType=="Gbobject") return "red"; else return "none"});
@@ -462,9 +555,35 @@ $(window).bind('keydown',function(event){
}
+function check_Relationtype(metadata,relations)
+{
+ _.each(metadata,function(d){
+ if (d.refType=="Relationtype")
+ {
+ a=d.inverse;
+ if (d.flag==1)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==a
+ });
+ }
+ else if (d.flag==0)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==d.screen_name
+ });
+ }
+ }
+
+ });
+
+
+}
+
});
-//fgraph({{object.id}});
</script>
diff --git a/gstudio/templates/gstudio/version_diff.html b/gstudio/templates/gstudio/version_diff.html
index a640f071..4a11ec2a 100644
--- a/gstudio/templates/gstudio/version_diff.html
+++ b/gstudio/templates/gstudio/version_diff.html
@@ -108,38 +108,154 @@
<h3>{% block content %}
{% block nodetype-content %}
<h2 class="nodetype-title">
- <a href="{{ nt1.get_absolute_url }}" title="{{ nt1.title }}" rel="bookmark">{{ ver_new.title }}
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_new_dict.title }} {{ nt.id }}.{{ version_no1 }}
</a>
</h2>
- <!-- {% block content56 %}{% for each in diffs1 %} -->
- <!-- {% autoescape off %} -->
- <!-- {{ each }}<br> -->
- <!-- {% endautoescape %}{% endfor %} {% endblock %} -->
- <!-- <br> -->
- {% with nt1.html_content|safe as object_content %}<br>
- <b>Name:<nbsp></b>{{ ver_new.title }}<br/>
- {% if ver_new.altnames %}
- <b> Alternate names:<nbsp></b>{{ ver_new.altnames }}
- <br/>
- {% endif %}
- {% if ver_new.plural %}
- <b> Plural Name:<nbsp></b>{{ ver_new.plural }} <br/>
- {% endif %}
-
- <b> Content:<nbsp></b>{{ ver_new.content }} <br/>
-
+
+ {% with nt.html_content|safe as object_content %}<br>
- {% if nt1.get_rendered_nbh.authors %}<b>Authors: <nbsp> </b>
- {% endif %}
- {% for author in nt1.authors.all %}
- <span class="vcard author">
- <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author"
- title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a>
- </span>{% if not forloop.last %}, {% endif %}
- {% endfor %} <br/>
- {% endwith %}
- {% endblock %}
- {% endblock %}
+ <b>Name:<nbsp></b> {{ ver_new_nbh_dict.title }} <br/>
+
+ {% if ver_new_nbh_dict.plural or ver_old_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b>
+ {{ ver_new_nbh_dict.plural}} <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.altnames or ver_old_nbh_dict.altnames%}
+ <b> Alternate names:<nbsp></b>
+ {{ ver_new_nbh_dict.altnames}} <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.type_of or ver_old_nbh_dict.type_of %}
+ <b> Type of:<nbsp></b>
+ {% for typekey,typevalue in ver_new_nbh_dict.type_of.items %}
+ <a href="{{typevalue}}" title = "{{typekey}}">{{typekey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+ {% if ver_new_nbh_dict.member_of_metatypes or ver_old_nbh_dict.member_of_metatypes %}
+
+
+ <b> Member of Metatypes:<nbsp></b>
+ {% for mkey,mvalue in ver_new_nbh_dict.member_of_metatypes.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+
+ {% if ver_new_nbh_dict.contains_subtypes or ver_old_nbh_dict.contains_subtypes %}
+ <b> Contains SubTypes:<nbsp></b>
+ {% for stkey,stvalue in ver_new_nbh_dict.items %}
+ <a href="{{stvalue}}" title = "{{stkey}}">{{stkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+ {% if ver_new_nbh_dict.contains_members or ver_old_nbh_dict.contains_members %}
+
+
+ <b>Contains Members:<nbsp></b>
+ {% for mkey,mvalue in ver_new_nbh_dict.contains_members.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+
+
+
+
+
+ <!-- <b>Authors: <nbsp> </b> -->
+
+
+
+
+ <!-- {% for author in nt.authors.all %} -->
+ <!-- <span class="vcard author"> -->
+ <!-- <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author" -->
+ <!-- title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a> -->
+ <!-- </span>{% if not forloop.last %}, {% endif %} -->
+ <!-- {% endfor %} <br/> -->
+
+
+
+ {% if ver_new_nbh_dict.priornodes or ver_old_nbh_dict.priornodes %}
+
+
+ <b>Prior nodes:<nbsp></b>
+ {% for mkey,mvalue in ver_new_nbh_dict.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.posteriornodes or ver_old_nbh_dict.posteriornodes %}
+
+
+ <b>Posterior nodes:<nbsp></b>
+ {% for mkey,mvalue in ver_new_nbh_dict.items %}
+ <a href="{{mvalue}}" title = "{{mkey}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.relations or ver_old_nbh_dict.relations %}
+
+
+ {% for relkey,relvalue in ver_new_nbh_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% for relk, relv in relvalue.items %}
+ <a href="{{relv}}" title = "{{relk}}">{{relk}}</a>;
+ {% endfor %}<br/>
+ {% endfor %}
+ {% endif %}
+
+ {% if ver_new_nbh_dict.attributes or ver_old_nbh_dict.attributes %}
+
+ {% for atkey,atvalue in ver_new_nbh_dict.attributes.items %}
+ {% if atvalue %}
+ <b>{{atkey}}:<nbsp> </b>
+ {% for atr in atvalue %}
+ {{atr}};
+ {% endfor %} <br/>
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if ver_new_nbh_dict.leftroles or ver_old_nbh_dict.leftroles %}
+
+
+ <b>Left roles:<nbsp> </b>
+
+ {% for lrkey,lrvalue in ver_new_nbh_dict.leftroles.items %}
+ <a href="{{lrvalue}}" title = "{{lrkey}}">{{lrkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.rightroles or ver_old_nbh_dict.rightroles %}
+
+ <b>Right roles:<nbsp> </b>
+
+ {% for rrkey,rrvalue in ver_new_nbh_dict.rightroles.items %}
+ <a href="{{rrvalue}}" title = "{{rrkey}}">{{rrkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+
+ {% if ver_new_nbh_dict.ats or ver_old_nbh_dict.ats %}
+
+
+ <b>Subjecttype of:<nbsp> </b>
+
+ {% for atkey,atvalue in ver_new_nbh_dict.ats.items %}
+ <a href="{{atvalue}}" title = "{{atkey}}">{{atkey}}</a>;
+ {% endfor %} <br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.content or ver_old_nbh_dict.content %}
+ <b>Content:<nbsp></b>{{ ver_new_nbh_dict.content }}
+ {% endif %}
+
+ {% endwith %}
+ {% endblock %}
+ {% endblock %}
</td>
<td>
@@ -147,71 +263,126 @@
<h3>{% block content1 %}
{% block nodetype-content1 %}
<h2 class="nodetype-title">
- <a href="{{ nt1.get_absolute_url }}" title="{{ nt1.title }}" rel="bookmark">{{ ver_old.title }}
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_old_dict.title }} {{ nt.id }}.{{ version_no2 }}
</a>
- </h2><!-- <b> -->
- <!-- {% block content85 %}{% for each in diffs %} -->
- <!-- {% autoescape off %} -->
- <!-- {{ each }}<br> -->
- <!-- {% endautoescape %}{% endfor %} {% endblock %}</b> -->
- <br>
- {% with nt1.html_content|safe as object_content %}
+ </h2> <br>
+ {% with nt.html_content|safe as object_content %}
+
<b>Name:<nbsp></b>{% autoescape off %}
- {{ diffs.0 }}
+ {{ compare_dict.title }}
{% endautoescape %}<br>
- {% if ver_old.altnames %}
+ {% if ver_old_nbh_dict.plural or ver_new_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.plural }}
+ {% endautoescape %} <br/>
+ {% endif %}
+ {% if ver_old_nbh_dict.altnames or ver_new_nbh_dict.altnames %}
<b> Alternate names:<nbsp></b> {% autoescape off %}
- {{ diffs.1 }}
+ {{ compare_dict.altnames }}
{% endautoescape %}
<br/>
{% endif %}
- {% if ver_old.plural %}
- <b> Plural Name:<nbsp></b> {% autoescape off %}
- {{ diffs.2 }}
- {% endautoescape %} <br/>
+ {% if ver_new_nbh_dict.type_of or ver_old_nbh_dict.type_of %}
+ <b> Type of:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.type_of }}
+ {% endautoescape %}
+ <br/>
{% endif %}
-
- <b> Content:<nbsp></b> {% autoescape off %}
- {{ diffs.3 }}
+ {% if ver_new_nbh_dict.member_of_metatypes or ver_old_nbh_dict.member_of_metatypes %}
+ <b>Member of Metatypes:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.member_of_metatypes }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.contains_subtypes or ver_old_nbh_dict.contains_subtypes %}
+ <b>Contain subtypes:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.contains_subtypes }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+
+ {% if ver_old_nbh_dict.contains_members or ver_new_nbh_dict.contains_members %}
+ <b>Contains Members:<nbsp></b>{% autoescape off %}
+ {{ compare_dict.contains_members }}
{% endautoescape %} <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.priornodes or ver_old_nbh_dict.priornodes %}
+ <b>Prior nodes:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.priornodes }}
+ {% endautoescape %}<br/>
+
+
+ {% endif %}
+ {% if ver_new_nbh_dict.posteriornodes or ver_old_nbh_dict.posteriornodes %}
+ <b>Posterior nodes:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.posteriornodes }}
+ {% endautoescape %}<br/>
+
+
+ {% endif %}
+
+ {% if ver_new_nbh_dict.relations or ver_old_nbh_dict.relations %}
+ {% for relkey,relvalue in compare_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% autoescape off %}
+
+
+ {{ relvalue }}
+
+
+ {% endautoescape %}
+ <br/>
+ {% endfor %}
+ {% endif %}
+
+ {% if ver_new_nbh_dict.attributes or ver_old_nbh_dict.attributes %}
+ <b>Attributes:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.attributes }}
+ {% endautoescape %}<br/>
+ {% endif %}
-
- {% if nt1.get_rendered_nbh.authors %}<b>Authors: <nbsp> </b>
- {% endif %}
- {% for author in nt1.authors.all %}
- <span class="vcard author">
- <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author"
- title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a>
- </span>{% if not forloop.last %}, {% endif %}
- {% endfor %} <br/>
+
+ {% if ver_new_nbh_dict.leftroles or ver_old_nbh_dict.leftroles %}
+ <b>Left roles:<nbsp> </b> {% autoescape off %}
+ {{ compare_dict.leftroles }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.rightroles or ver_old_nbh_dict.rightroles %}
+ <b>Right roles:<nbsp> </b> {% autoescape off %}
+ {{ compare_dict.rightroles }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.ats or ver_old_nbh_dict.ats %}
+
+
+ <b>Subjecttype of:<nbsp> </b> {% autoescape off %}
+ {{ compare_dict.ats }}
+ {% endautoescape %}<br>
+ {% endif %}
+ {% if ver_new_nbh_dict.content or ver_old_nbh_dict.content %}
+ <b> Content:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.content }}
+ {% endautoescape %} <br/>
+ {% endif %}
{% endwith %}
{% endblock %}
{% endblock %}
-
- </td>
-
-<!-- <th><b><i><br><u>Difference between Selected Versions</u></b></i><br><br> -->
-<!-- {% block content6 %}{% for each in diffs %} -->
-<!-- {% autoescape off %} -->
-<!-- {{ each }}<br> -->
-<!-- {% endautoescape %}{% endfor %} {% endblock %} -->
-<!-- </th> -->
-
- </tr>
-<tr><td><input type="button" value="Merge"></input><input type="button" value="RollBack"></input></td>
-<td><input type="button" value="Merge"></input><input type="button" value="RollBack"></input></td> </tr>
-<!-- <tr><th><b><i>Difference between Selected Versions<b><i><th><tr> -->
-<!-- <tr><td><b>{% block content5 %}{% for each in diffs %} -->
-<!-- {% autoescape off %} -->
-<!-- {{ each }}<br> -->
-<!-- {% endautoescape %}{% endfor %} {% endblock %} </b> </td></tr> -->
-<!-- </table> -->
-
-
-
-
-
- </body>
+<br>
+</td></tr>
+<tr><td>
+<form method="get" action="/nodetypes/display/merge/{{ ssid1 }}/{{ ssid2 }}">
+<input type="submit" value="Merge {{ nt.id }}.{{ version_no1 }} with {{ nt.id }}.{{ version_no2 }}" id="merge1" name="left" ></input></td>
+<td><input type="submit" value="Merge {{ nt.id }}.{{ version_no2 }} with {{ nt.id }}.{{ version_no1 }}" id="merge2" name="right"></input></td></form>
+</tr>
+<tr><td>
+<form method="get" action="/nodetypes/display/revert" >
+<input type="submit" value="Revert" name="{{ ssid1 }}"></input></td>
+<td><input type="submit" value="Revert" name="{{ ssid2 }}"></input></td>
+</form></tr>
+</table>
+</body>
</html>
diff --git a/gstudio/urls/history.py b/gstudio/urls/history.py
index 3932cd62..b2c489e3 100644
--- a/gstudio/urls/history.py
+++ b/gstudio/urls/history.py
@@ -3,6 +3,8 @@ from django.conf.urls.defaults import url
from django.conf.urls.defaults import patterns
urlpatterns = patterns('gstudio.views.history',
- url(r'^viewhistory/(?P<ssid>\d+)/(?P<cnt>\d+)/$', 'history',
+ url(r'^viewhistory/(?P<ssid>\d+)/(?P<version_no>\d+)/$', 'history',
name='gstudio_history'),
- url(r'^showhistory/(?P<ssid>\d+)/$','showHistory'),)
+ url(r'^compare_history/(?P<ssid>\d+)/$','compare_history'),
+ url(r'^merge/(?P<ssid1>\d+)/(?P<ssid2>\d+)/$','merge_version'),
+ url(r'^revert/$','revert_version'),)
diff --git a/gstudio/views/history.py b/gstudio/views/history.py
index d4adac9e..10fc7abb 100644
--- a/gstudio/views/history.py
+++ b/gstudio/views/history.py
@@ -12,94 +12,491 @@ from gstudio.views.decorators import protect_nodetype
from gstudio.views.decorators import update_queryset
import ast
-def history(request,ssid,cnt):
+def history(request,ssid,version_no):
# iden=request.GET["id"]
nt1=Version.objects.get(id=ssid)
nt=nt1.object.ref
ver_dict=nt.version_info(ssid)
- variables = RequestContext(request,{'ver_dict':ver_dict ,'nt':nt,'ssid':ssid,'cnt':cnt })
+ ver_nbh=ver_dict['nbhood']
+ ver_nbh_dict=ast.literal_eval(ver_nbh)
+ content=ver_dict['content']
+ content=content[3:-4]
+ ver_nbh_dict['content']=content
+
+ variables = RequestContext(request,{'ver_nbh_dict':ver_nbh_dict ,'nt':nt,'ssid':ssid,'version_no':version_no})
template="gstudio/display.html"
return render_to_response(template,variables)
-def showHistory(request,ssid):
- # vid1=request.GET["group1"]
- vid1=ssid
- vid2=request.GET["group2"]
- nt=Version.objects.get(id=vid1)
- nt1=nt.object.ref
+def get_version_counter(value):
+ counter1=str(value)
+ index=counter1.rfind(".")
+ counter1=counter1[index+1:]
+ version_no=int(counter1)
+ return version_no
+
+
+def get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,field):
+ ver_new=""
+ ver_old=""
+ diffs=""
+ if ver_new_nbh_dict[field] or ver_old_nbh_dict[field]:
+ for each in ver_new_nbh_dict[field]:
+ ver_new+=str(each)+","
+ ver_new=ver_new[0:-1]
+ for each in ver_old_nbh_dict[field]:
+ ver_old+=str(each)+","
+ ver_old=ver_old[0:-1]
+ diffs = dmp.diff_main(ver_new, ver_old)
+ return diffs
+
+def compare_history(request,ssid):
+ ssid1=ssid
+
+ version_counter1=request.GET["group1"]
+ version_no1=get_version_counter(version_counter1)
+ version_counter2=request.GET["group2"]
+ version_no2=get_version_counter(version_counter2)
+ counter2=float(version_counter2)
+ ssid2=int(counter2)
+
+ ver_obj=Version.objects.get(id=ssid1)
+ ot=ver_obj.object.ref
pp=pprint.PrettyPrinter(indent=4)
- ver_new1=Version.objects.get(id=vid1)
- ver_old1=Version.objects.get(id=vid2)
- ver_new_dict=nt1.version_info(request.GET["group1"])
+ ver_new_dict=ot.version_info(ssid1)
content=str(ver_new_dict['content'])
content=content[3:-4]
ver_new_dict['content']=content
- ver_old_dict=nt1.version_info(request.GET["group2"])
+
+ ver_old_dict=ot.version_info(ssid2)
content=str(ver_old_dict['content'])
content=content[3:-4]
ver_old_dict['content']=content
ver_new_nbh=ver_new_dict['nbhood']
- ver_new_dict1=ast.literal_eval(ver_new_nbh)
+ ver_new_nbh_dict=ast.literal_eval(ver_new_nbh)
ver_old_nbh=ver_old_dict['nbhood']
- ver_old_dict1=ast.literal_eval(ver_old_nbh)
-
- # ver_new_nbh=ver_new_nbh.replace(",","\n")
- # ver_old_nbh=ver_old_nbh.replace(",","\n")
- d=[]
- d1=[]
- field=['Name','Plural Name','Alternate Name','Authors','Content']
- for each in ver_new_dict1:
+ ver_old_nbh_dict=ast.literal_eval(ver_old_nbh)
+
+ compare_dict={}
+ for each in ver_new_nbh_dict:
ver_new=""
ver_old=""
- if each =='altnames':
- ver_new+=ver_new_dict['altnames']
- ver_old+=ver_old_dict['altnames']
-
- diffs = dmp.diff_main(ver_new, ver_old)
- d.append(dmp.diff_prettyHtml(diffs))
- # diffs = dmp.diff_main(ver_old, ver_new)
- # d1.append(dmp.diff_prettyHtml(diffs))
+ if each=='altnames':
+ if ver_new_nbh_dict['altnames'] or ver_old_nbh_dict['altnames']:
+ ver_new+=ver_new_nbh_dict['altnames']
+ ver_old+=ver_old_nbh_dict['altnames']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['altnames']=dmp.diff_prettyHtml(diffs)
+
- if each =='title':
- ver_new+=ver_new_dict['title']
- ver_old+=ver_old_dict['title']
- diffs = dmp.diff_main(ver_new, ver_old)
- d.append(dmp.diff_prettyHtml(diffs))
- # diffs = dmp.diff_main(ver_old, ver_new)
- # d1.append(dmp.diff_prettyHtml(diffs))
- if each =='plural':
- ver_new+=ver_new_dict['plural']
- ver_old+=ver_old_dict['plural']
- diffs = dmp.diff_main(ver_new, ver_old)
- d.append(dmp.diff_prettyHtml(diffs))
- # diffs = dmp.diff_main(ver_old, ver_new)
- # d1.append(dmp.diff_prettyHtml(diffs))
- # if each =='content':
+ elif each=='title':
+ if ver_new_nbh_dict['title'] or ver_old_nbh_dict['title']:
+ ver_new+=ver_new_nbh_dict['title']
+ ver_old+=ver_old_nbh_dict['title']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['title']=dmp.diff_prettyHtml(diffs)
+ elif each =='plural':
+ if ver_new_nbh_dict['plural'] or ver_old_nbh_dict['plural']:
+ ver_new+=ver_new_nbh_dict['plural']
+ ver_old+=ver_old_nbh_dict['plural']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['plural']=dmp.diff_prettyHtml(diffs)
+ elif each =='contains_members':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['contains_members']=dmp.diff_prettyHtml(diffs)
+ elif each =='leftroles':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['leftroles']=dmp.diff_prettyHtml(diffs)
+ elif each =='ats':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['ats']=dmp.diff_prettyHtml(diffs)
+ elif each =='rightroles':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['rightroles']=dmp.diff_prettyHtml(diffs)
+ elif each =='attributes':
+ compare_rel_new={}
+ compare_rel_old={}
+ compare={}
+ for rkey,rvalue in ver_new_nbh_dict[each].items():
+ ver_new=""
+ for relvalue in rvalue:
+ ver_new+=str(relvalue) + ","
+ ver_new=ver_new[0:-1]
+ compare_rel_new[str(rkey)]=ver_new
+ for rkey,rvalue in ver_old_nbh_dict[each].items():
+ ver_old=""
+ for rv in rvalue:
+ ver_old+=str(rv) + ","
+ ver_old=ver_old[0:-1]
+ compare_rel_old[str(rkey)]=ver_old
+ if len(compare_rel_new) >= len(compare_rel_old):
+ for rkey,rvalue in compare_rel_new.items():
+ if compare_rel_old.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+
+ else:
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],"")
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ for rkey,rvalue in compare_rel_old.items():
+ if compare_rel_new.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ diffs=dmp.diff_main("",compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ compare_dict['attributes']=compare
+
+ elif each =='relations':
+
+ ver_new=""
+ ver_old=""
+ compare_rel_new={}
+ compare_rel_old={}
+ compare={}
+ for rkey,rvalue in ver_new_nbh_dict[each].items():
+ ver_new=""
+ for relk,relvalue in rvalue.items():
+ ver_new+=str(relk) + ","
+ ver_new=ver_new[0:-1]
+ compare_rel_new[str(rkey)]=ver_new
+ for rkey,rvalue in ver_old_nbh_dict[each].items():
+ ver_old=""
+ for relk,relvalue in rvalue.items():
+ ver_old+=str(relk) + ","
+ ver_old=ver_old[0:-1]
+ compare_rel_old[str(rkey)]=ver_old
+ if len(compare_rel_new) >= len(compare_rel_old):
+ for rkey,rvalue in compare_rel_new.items():
+ if compare_rel_old.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+
+ else:
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],"")
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ for rkey,rvalue in compare_rel_old.items():
+ if compare_rel_new.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ diffs=dmp.diff_main("",compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ compare_dict['relations']=compare
+ elif each =='priornodes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['priornodes']=dmp.diff_prettyHtml(diffs)
+ elif each =='posteriornodes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['posteriornodes']=dmp.diff_prettyHtml(diffs)
+ elif each =='type_of':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['type_of']=dmp.diff_prettyHtml(diffs)
+ elif each =='contains_subtypes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['contains_subtypes']=dmp.diff_prettyHtml(diffs)
+ elif each =='member_of_metatypes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['member_of_metatypes']=dmp.diff_prettyHtml(diffs)
+
+
ver_new=""
ver_old=""
ver_new+=ver_new_dict['content']
ver_old+=ver_old_dict['content']
diffs = dmp.diff_main(ver_new, ver_old)
- d.append(dmp.diff_prettyHtml(diffs))
- # diffs = dmp.diff_main(ver_old, ver_new)
- # d1.append(dmp.diff_prettyHtml(diffs))
-
- # for each in ver_new_dict1:
-# ver_new=""
- # ver_old=""
- # ver_new+=each + ":" + str(ver_new_dict1[each])
-# ver_old+=each + ":" + str(ver_old_dict1[each])
- # diffs = dmp.diff_main(ver_new, ver_old)
- # d.append(dmp.diff_prettyHtml(diffs))
-
- # return HttpResponse(d)
- ver_new=nt1.version_info(request.GET["group1"])
- ver_old=nt1.version_info(request.GET["group2"])
-
- variables=RequestContext(request,{'nt':nt1,'ver_old':ver_old_dict,'ver_new':ver_new_dict,'diffs':d ,'vid1':vid1,'vid2':vid2 })
+ compare_dict['content']=dmp.diff_prettyHtml(diffs)
+ ver_new_nbh_dict['content']=ver_new_dict['content']
+ ver_old_nbh_dict['content']=ver_old_dict['content']
+
+
+
+ variables=RequestContext(request,{'nt':ot,'ver_old_dict':ver_old_dict,'ver_new_dict':ver_new_dict,'compare_dict':compare_dict ,'ssid1':ssid1,'ssid2':ssid2,'version_no1':version_no1,'version_no2':version_no2,'ver_new_nbh_dict':ver_new_nbh_dict,'ver_old_nbh_dict':ver_old_nbh_dict})
template="gstudio/version_diff.html"
return render_to_response(template,variables)
+
+def set_objecttype_field(obj,ver_merge):
+ # setting the objecttypes fields
+ obj.slug = ver_merge['slug']
+ obj.altnames=ver_merge['altnames']
+ obj.rght = ver_merge['rght']
+ obj.nodemodel = ver_merge['nodemodel']
+ obj.lft = ver_merge['lft']
+ obj.comment_enabled = ver_merge['comment_enabled']
+ obj.title = ver_merge['title']
+ obj.sites = ver_merge['sites']
+ obj.content = ver_merge['content']
+ obj.template = ver_merge['template']
+ obj.tree_id = ver_merge['tree_id']
+ obj.plural = ver_merge['plural']
+ obj.status = ver_merge['status']
+ obj.nid_ptr = NID.objects.get(id=ver_merge['nid_ptr'])
+
+ # obj.nbh=ver_merge['nbh']
+ obj.id = ver_merge['id']
+ obj.pingback_enabled = ver_merge['pingback_enabled']
+
+ return obj
+def set_attributetype_field(obj,ver_merge):
+ # setting the objecttypes fields
+ obj.subjecttype = NID.objects.get(id=ver_merge['nid_ptr'])
+ obj.applicable_nodetypes=ver_merge['applicable_nodetypes']
+ obj.dataType = ver_merge['dataType']
+ obj.verbose_name = ver_merge['verbose_name']
+ obj.null = ver_merge['null']
+ obj.blank = ver_merge['blank']
+ obj.help_text = ver_merge['help_text']
+ # obj.max_digits = ver_merge['max_digits']
+ # obj.decimal_places = ver_merge['decimal_places']
+ obj.auto_now = ver_merge['auto_now']
+ obj.auto_now_add = ver_merge['auto_now_add']
+ obj.upload_to = ver_merge['upload_to']
+ obj.path = ver_merge['path']
+ obj.verify_exists = ver_merge['verify_exists']
+ # obj.min_length= ver_merge['min_length']
+ obj.required= ver_merge['required']
+ obj.label = ver_merge['label']
+ obj.unique = ver_merge['unique']
+ # obj.validators= ver_merge['validators']
+ obj.default= ver_merge['default']
+ obj.editable= ver_merge['editable']
+ # return HttpResponse(ver_merge)
+ return obj
+def set_relationtype_field(obj,ver_merge):
+
+
+ # setting the relationtype types fields
+ obj.inverse = ver_merge['inverse']
+ obj.left_subjecttype=ver_merge['left_subjecttype']
+ obj.left_applicable_nodetypes= ver_merge['left_applicable_nodetypes']
+ obj.left_cardinality = ver_merge['left_cardinality']
+ obj.right_subjecttype= ver_merge['right_subjecttype']
+ obj.right_cadinality= ver_merge['right_cadinality']
+ obj.right_cadinality= ver_merge['right_cadinality']
+ obj.is_symmetrical= ver_merge['is_symmetrical']
+ obj.is_reflexive= ver_merge['is_reflexive']
+ obj.is_transitive= ver_merge['is_transitive']
+
+ return obj
+
+def set_processtype_field(obj,ver_merge):
+ # setting the processtype types fields
+ obj.changing_attributetype_set = ver_merge['']
+ obj.changing_relationtype_set=ver_merge['']
+ return obj
+
+def set_systemtype_field(obj,ver_merge):
+ # setting the systemtype types fields
+ obj.nodetype_set = ver_merge['nodetype_set']
+ obj.relationtype_set=ver_merge['relationtype_set']
+ obj.attributetype_set= ver_merge['attributetype_set']
+ obj.metatype_set = ver_merge['metatype_set']
+ obj.processtype_set= ver_merge['processtype_set']
+ return obj
+
+def get_merge_dict(ssid1,ssid2,direction):
+ ver_merge={}
+ ot=Version.objects.get(id=ssid1)
+ obj=ot.object.ref
+ ver_left_dict=obj.version_info(ssid1)
+ ver_right_dict=obj.version_info(ssid2)
+
+
+
+ if direction =='right':
+ # swap left and right
+ temp_dict={}
+ temp_dict=ver_left_dict
+ ver_left_dict=ver_right_dict
+ ver_right_dict=temp_dict
+ # swap ssid1 and ssid2 for managing nbhood history
+ temp=int(ssid1)
+ ssid1=int(ssid2)
+ ssid2=temp
+ ver_left_nbh_dict=ast.literal_eval(ver_left_dict['nbhood'])
+ ver_right_nbh_dict=ast.literal_eval(ver_right_dict['nbhood'])
+ # By default value of content is removed
+ if ver_left_dict['content']=='<br />':
+ ver_left_dict['content']=''
+ if ver_right_dict['content']=='<br />':
+ ver_right_dict['content']=''
+ # Getting merged dictionary
+ for each in ver_left_dict:
+ if ver_left_dict[each] and ver_right_dict[each]:
+ ver_merge[each]=ver_right_dict[each]
+ elif ver_left_dict[each]:
+ if not ver_right_dict[each]:
+ ver_merge[each]=ver_left_dict[each]
+ elif ver_right_dict[each]:
+ if not ver_left_dict[each]:
+ ver_merge[each]=ver_right_dict[each]
+ else:
+ if not ver_left_dict[each]:
+ if not ver_right_dict[each]:
+ ver_merge[each]=ver_right_dict[each]
+ ver_merge_nbh_dict={}
+ # processing nbhood for merged version
+ for each in ver_left_nbh_dict:
+ if isinstance(ver_left_nbh_dict[each],dict):
+ if ver_left_nbh_dict[each] and ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=dict(ver_left_nbh_dict[each].items()+ver_right_nbh_dict[each].items())
+ elif ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_left_nbh_dict[each]
+ elif ver_right_nbh_dict[each]:
+ if not ver_left_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if not ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if ver_left_nbh_dict[each] and ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ elif ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_left_nbh_dict[each]
+ elif ver_right_nbh_dict[each]:
+ if not ver_left_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if not ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+
+ # Removing auto generated fields
+ del(ver_merge['start_publication'])
+ del(ver_merge['end_publication'])
+ del(ver_merge['creation_date'])
+ del(ver_merge['last_update'])
+
+ history_left_list=[]
+ history_right_list=[]
+ history_merged_list=[]
+
+ history_left_list=ver_left_nbh_dict['history']
+ history_left_list.append(ssid1)
+ history_right_list=ver_right_nbh_dict['history']
+ history_right_list.append(ssid2)
+ history_merged_list.append(history_left_list)
+ history_merged_list.append(history_right_list)
+ ver_merge_nbh_dict['history']=history_merged_list
+
+ obj.nbhood = unicode(ver_merge_nbh_dict)
+ if isinstance(obj,Objecttype):
+ obj=set_objecttype_field(obj,ver_merge)
+ if isinstance(obj,Attributetype):
+ obj=set_objecttype_field(obj,ver_merge)
+ obj=set_attributetype_field(obj,ver_merge)
+ if isinstance(obj,Relationtype):
+ obj=set_objecttype_field(obj,ver_merge)
+ obj=set_relationtype_field(obj,ver_merge)
+ if isinstance(obj,Processtype):
+ obj=set_objecttype_field(obj,ver_merge)
+ obj=set_processtype_field(obj,ver_merge)
+ if isinstance(obj,Systemtype):
+ obj=set_objecttype_field(obj,ver_merge)
+ obj=set_systemtype_field(obj,ver_merge)
+
+
+ obj.save_revert_or_merge()
+ content=ver_merge['content']
+ content=content[3:-4]
+ ver_merge['content']= content
+ return ver_merge
+
+
+def merge_version(request,ssid1,ssid2):
+ direction=""
+ ver_merge={}
+ for each in request.GET:
+ direction=each
+ ot=Version.objects.get(id=ssid1)
+ obj=ot.object.ref
+ ver_merge=get_merge_dict(ssid1,ssid2,direction)
+ slist=[]
+ slist=obj.get_ssid
+ version_counter=len(slist)
+ merged_ver_ssid=slist[version_counter-1]
+ ver_merged_dict=obj.version_info(merged_ver_ssid)
+ ver_merged_nbh_dict=ast.literal_eval(ver_merged_dict['nbhood'])
+ ver_merged_nbh_dict['content']=ver_merge['content']
+ variables = RequestContext(request,{'ver_nbh_dict':ver_merged_nbh_dict ,'nt':obj,'ssid':merged_ver_ssid,'version_no':version_counter})
+ template="gstudio/display.html"
+ return render_to_response(template,variables)
+
+def revert(ssid):
+ ver_revert={}
+ ot=Version.objects.get(id=ssid)
+ obj=ot.object.ref
+ ver_revert=obj.version_info(ssid)
+
+ # Removing auto generated fields
+ del(ver_revert['start_publication'])
+ del(ver_revert['end_publication'])
+ del(ver_revert['creation_date'])
+ del(ver_revert['last_update'])
+ history=[]
+ ver_revert_nbh_dict=ast.literal_eval(ver_revert['nbhood'])
+
+ history=ver_revert_nbh_dict['history']
+ history.append(ssid)
+ ver_revert_nbh_dict['history']=history
+
+
+ # ver_revert_nbh_dict['history']=ver_revert_nbh_history.append(ssid)
+ ver_revert['nbhood']=unicode(ver_revert_nbh_dict)
+ obj.nbhood=ver_revert['nbhood']
+ if isinstance(obj,Objecttype):
+ obj=set_objecttype_field(obj,ver_revert)
+ if isinstance(obj,Attributetype):
+ obj=set_objecttype_field(obj,ver_revert)
+ obj=set_attributetype_field(obj,ver_revert)
+ if isinstance(obj,Relationtype):
+ obj=set_objecttype_field(obj,ver_revert)
+ obj=set_relationtype_field(obj,ver_revert)
+ if isinstance(obj,Processtype):
+ obj=set_objecttype_field(obj,ver_revert)
+ obj=set_processtype_field(obj,ver_revert)
+ if isinstance(obj,Systemtype):
+ obj=set_objecttype_field(obj,ver_revert)
+ obj=set_systemtype_field(obj,ver_revert)
+
+ obj.save_revert_or_merge()
+
+ # formatting content field
+ content=ver_revert['content']
+ content=content[3:-4]
+ ver_revert['content']= content
+
+ return ver_revert
+
+def revert_version(request):
+ ver_revert={}
+ for each in request.GET:
+ ssid=each
+ ssid=int(ssid)
+ ot=Version.objects.get(id=ssid)
+ obj=ot.object.ref
+
+ ver_revert=revert(ssid)
+ ver_revert['nbhood']
+ slist=[]
+ slist=obj.get_ssid
+ version_counter=len(slist)
+ revert_ver_ssid=slist[version_counter-1]
+ ver_revert_dict=obj.version_info(revert_ver_ssid)
+ ver_revert_nbh_dict=ast.literal_eval(ver_revert_dict['nbhood'])
+ ver_revert_nbh_dict['content']=ver_revert['content']
+
+ variables = RequestContext(request,{'ver_nbh_dict':ver_revert_nbh_dict ,'nt':obj,'ssid':revert_ver_ssid,'version_no':version_counter})
+ template="gstudio/display.html"
+ return render_to_response(template,variables)
+ # return HttpResponse(ver_revert['nbhood'])
+
+
diff --git a/objectapp/TAGS b/objectapp/TAGS
deleted file mode 100644
index 82ecaf2f..00000000
--- a/objectapp/TAGS
+++ /dev/null
@@ -1,1945 +0,0 @@
-
-fixtures/helloworld.json,158
- "login_required": false,67,1886
- "comment_enabled": true,70,1990
- "login_required": false,101,5063
- "comment_enabled": true,104,5167
-
-feeds.py,2021
-class ObjectappFeed(28,992
- def __init__(32,1085
-class GbobjectFeed(40,1342
- def item_pubdate(45,1517
- def item_objecttypes(49,1632
- def item_author_name(53,1783
- def item_author_email(59,2007
- def item_author_link(63,2132
- def item_enclosure_url(72,2460
- def item_enclosure_length(81,2733
- def item_enclosure_mime_type(85,2842
-class LatestGbobjects(90,2961
- def link(93,3039
- def items(97,3157
- def title(101,3281
- def description(105,3402
-class ObjecttypeGbobjects(110,3543
- def get_object(113,3625
- def items(117,3760
- def link(121,3912
- def title(125,4012
- def description(129,4135
-class AuthorGbobjects(134,4282
- def get_object(137,4357
- def items(141,4511
- def link(145,4668
- def title(149,4797
- def description(153,4915
-class TagGbobjects(158,5049
- def get_object(161,5117
- def items(165,5251
- def link(170,5446
- def title(174,5565
- def description(178,5680
-class SearchGbobjects(183,5819
- def get_object(186,5901
- def items(193,6131
- def link(197,6277
- def title(201,6420
- def description(205,6536
-class GbobjectDiscussions(210,6676
- def get_object(215,6879
- def items(222,7238
- def item_pubdate(226,7370
- def item_link(230,7484
- def link(234,7591
- def item_author_name(238,7689
- def item_author_email(242,7804
- def item_author_link(246,7929
- def title(250,8049
- def description(254,8158
-class GbobjectComments(259,8305
- def items(264,8502
- def item_link(268,8628
- def title(272,8749
- def description(276,8855
- def item_enclosure_url(280,8998
- def item_enclosure_length(284,9144
- def item_enclosure_mime_type(288,9253
-class GbobjectPingbacks(293,9372
- def items(298,9573
- def item_link(302,9701
- def title(306,9824
- def description(310,9931
-class GbobjectTrackbacks(315,10076
- def items(320,10281
- def item_link(324,10411
- def title(328,10536
- def description(332,10644
-
-signals.py,175
-def disable_for_loaddata(10,160
- def wrapper(16,363
-def ping_directories_handler(26,598
-def ping_external_urls_handler(38,976
-def disconnect_objectapp_signals(48,1276
-
-management/commands/feed2objectapp.py,206
-class Command(23,748
- def __init__(42,1550
- def write_out(50,1851
- def handle_label(56,2096
- def import_gbobjects(80,3061
- def import_objecttypes(130,5400
- def import_tags(138,5733
-
-management/commands/spam_cleanup.py,51
-class Command(9,238
- def handle_noargs(14,393
-
-management/commands/wp2objectapp.py,421
-class Command(29,919
- def __init__(56,2052
- def write_out(64,2353
- def handle_label(70,2598
- def import_authors(97,3610
- def migrate_author(120,4480
- def import_objecttypes(151,5881
- def import_tags(175,6979
- def get_gbobject_tags(188,7607
- def get_gbobject_objecttypes(198,8031
- def import_gbobject(208,8455
- def import_gbobjects(261,10905
- def import_comments(283,11937
-
-management/commands/blogger2objectapp.py,497
-class Command(26,810
- def __init__(44,1673
- def write_out(51,1935
- def handle_noargs(57,2180
- def select_blog_id(108,4201
- def get_Objecttype(129,5020
- def import_posts(139,5289
- def import_comments(176,7171
-def convert_blogger_timestamp(211,8393
-def is_draft(217,8572
-def get_blog_id(225,8740
-def get_post_id(229,8815
-class BloggerManager(233,8890
- def __init__(235,8921
- def get_blogs(241,9166
- def get_posts(246,9306
- def get_comments(251,9468
-
-management/commands/objectapp2wp.py,52
-class Command(16,459
- def handle_noargs(21,649
-
-context_processors.py,18
-def version(5,75
-
-tests/feeds.py,833
-class ObjectappFeedsTestCase(33,1155
- def setUp(37,1281
- def create_published_gbobject(44,1637
- def create_discussions(58,2215
- def test_gbobject_feed(75,3344
- def test_gbobject_feed_enclosure(94,4296
- def test_latest_gbobjects(118,5477
- def test_Objecttype_gbobjects(129,5921
- def test_author_gbobjects(142,6564
- def test_tag_gbobjects(153,7149
- def test_search_gbobjects(165,7716
- class FakeRequest:FakeRequest166,7753
- def __init__(167,7780
- def test_gbobject_discussions(182,8492
- def test_gbobject_comments(204,9660
- def test_gbobject_pingbacks(223,10639
- def test_gbobject_trackbacks(236,11280
- def test_gbobject_feed_no_authors(249,11926
- def test_gbobject_feed_rss_or_atom(258,12286
- def test_discussion_feed_with_same_slugs(269,12736
-
-tests/signals.py,286
-class SignalsTestCase(12,356
- def test_disable_for_loaddata(15,423
- def make_top(19,516
- def call(22,567
- def test_ping_directories_handler(29,712
- def fake_pinger(33,826
- def test_ping_external_urls_handler(61,1918
- def fake_pinger(65,2037
-
-tests/metaweblog.py,491
-class MetaWeblogTestCase(23,737
- def setUp(27,844
- def test_authenticate(63,2573
- def test_get_users_blogs(79,3433
- def test_get_user_info(88,3866
- def test_get_authors(102,4563
- def test_get_objecttypes(112,5073
- def test_new_Objecttype(151,7147
- def test_get_recent_posts(167,8077
- def test_delete_post(173,8365
- def test_get_post(182,8798
- def test_new_post(207,10234
- def test_edit_post(224,11049
- def test_new_media_object(281,13891
-
-tests/spam_checker.py,72
-class SpamCheckerTestCase(11,253
- def test_get_spam_checker(14,339
-
-tests/quick_gbobject.py,119
-class QuickGbobjectTestCase(10,234
- def setUp(14,353
- def tearDown(18,456
- def test_quick_gbobject(21,530
-
-tests/url_shortener.py,121
-class URLShortenerTestCase(12,323
- def setUp(15,411
- def tearDown(18,499
- def test_get_url_shortener(21,590
-
-tests/__init__.py,19
-def suite(32,1630
-
-tests/managers.py,585
-class ManagersTestCase(18,482
- def setUp(20,517
- def test_tags_published(51,2027
- def test_author_published_manager_get_query_set(56,2251
- def test_gbobjects_published(65,2651
- def test_gbobject_published_manager_get_query_set(86,3805
- def test_gbobject_published_manager_on_site(107,4805
- def test_gbobject_published_manager_basic_search(115,5187
- def test_gbobject_published_manager_advanced_search(123,5634
- def test_gbobject_published_manager_advanced_search_with_punctuation(227,11470
- def test_gbobject_published_manager_search(238,12007
-
-tests/custom_views_detail_urls.py,73
-def call_with_template_and_extra_context(13,380
- def wrapper(18,537
-
-tests/views.py,1337
-class ViewsBaseCase(17,494
- def setUp(22,584
- def tearDown(62,2283
- def create_published_gbobject(66,2445
- def check_publishing_context(79,2966
-class ObjectappViewsTestCase(92,3513
- def test_objectapp_gbobject_archive_index(100,3780
- def test_objectapp_gbobject_archive_year(103,3883
- def test_objectapp_gbobject_archive_month(106,3990
- def test_objectapp_gbobject_archive_day(109,4101
- def test_objectapp_gbobject_shortlink(112,4213
- def test_objectapp_gbobject_detail(117,4444
- def test_objectapp_gbobject_detail_login(135,5278
- def test_objectapp_gbobject_detail_password(142,5580
- def test_objectapp_gbobject_channel(157,6395
- def test_objectapp_Objecttype_list(160,6505
- def test_objectapp_Objecttype_detail(167,6873
- def test_objectapp_Objecttype_detail_paginated(172,7157
- def test_objectapp_author_list(193,8274
- def test_objectapp_author_detail(200,8617
- def test_objectapp_tag_list(205,8889
- def test_objectapp_tag_detail(212,9137
- def test_objectapp_gbobject_search(217,9393
- def test_objectapp_sitemap(228,9970
- def test_objectapp_trackback(239,10581
-class ObjectappCustomDetailViews(275,12268
- def test_custom_Objecttype_detail(283,12586
- def test_custom_author_detail(289,12920
- def test_custom_tag_detail(295,13246
-
-tests/moderator.py,249
-class GbobjectCommentModeratorTestCase(14,428
- def setUp(17,518
- def test_email(31,1123
- def test_do_email_notification(48,1938
- def test_do_email_authors(58,2465
- def test_do_email_reply(72,3198
- def test_moderate(103,4855
-
-tests/objecttype.py,138
-class ObjecttypeTestCase(10,244
- def setUp(12,281
- def test_gbobjects_published(27,977
- def test_gbobjects_tree_path(47,1818
-
-tests/templates/objectapp/_gbobject_detail.html,23
-{{ object.title }}1,0
-
-tests/templates/objectapp/base.html,56
-Objectapp's Blog - {% block title %}{% endblock %}3,16
-
-tests/custom_url_shortener.py,19
-def backend(8,184
-
-tests/admin.py,238
-class GbobjectAdminTestCase(10,228
- def setUp(14,341
- def tearDown(24,798
- def test_gbobject_add_and_change(27,872
-class ObjecttypeAdminTestCase(54,2153
- def setUp(58,2271
- def test_Objecttype_add_and_change(62,2438
-
-tests/custom_spam_checker.py,19
-def backend(8,183
-
-tests/utils.py,76
-class TestTransport(8,123
- def __init__(12,236
- def request(16,359
-
-tests/gbobject.py,827
-class GbobjectTestCase(24,761
- def setUp(26,796
- def test_discussions(32,1002
- def test_str(85,3847
- def test_word_count(88,3940
- def test_comments_are_open(91,4027
- def test_is_actual(102,4523
- def test_is_visible(111,4935
- def test_short_url(118,5224
- def test_previous_gbobject(128,5770
- def test_next_gbobject(149,6858
- def test_related_published(170,7926
-class GbobjectHtmlContentTestCase(192,8877
- def setUp(194,8923
- def tearDown(203,9256
- def test_html_content_default(207,9392
- def test_html_content_textitle(216,9789
- def test_html_content_markdown(231,10506
- def test_html_content_restructuredtext(246,11203
-class GbobjectGetBaseModelTestCase(262,11934
- def setUp(264,11981
- def tearDown(267,12083
- def test_get_base_model(270,12188
-
-tests/ping.py,387
-class DirectoryPingerTestCase(13,318
- def setUp(15,400
- def test_ping_gbobject(24,781
-class ExternalUrlsPingerTestCase(31,998
- def setUp(34,1087
- def test_is_external_url(42,1411
- def test_find_external_urls(57,2172
- def test_find_pingback_href(71,2829
- def fake_urlopen(89,3551
- def test_find_pingback_urls(105,4301
- def test_pingback_url(120,4944
-
-tests/sitemaps.py,274
-class ObjectappSitemapsTestCase(18,537
- def setUp(22,666
- def test_gbobject_sitemap(43,1722
- def test_Objecttype_sitemap(49,1962
- def test_author_sitemap(58,2390
- def test_tag_sitemap(68,2851
- def test_Objecttype_sitemap_zero_division_error(77,3284
-
-tests/pingback.py,251
-class PingBackTestCase(24,738
- def fake_urlopen(28,842
- def setUp(39,1281
- def tearDown(85,3648
- def test_generate_pingback_content(90,3855
- def test_pingback_ping(113,4909
- def test_pingback_extensions_get_pingbacks(166,7319
-
-tests/comparison.py,142
-class ComparisonTestCase(10,260
- def test_pearson_score(13,339
- def test_clustered_model(21,722
- def test_vector_builder(35,1514
-
-tests/templatetags.py,955
-class TemplateTagsTestCase(40,1849
- def setUp(43,1927
- def publish_gbobject(51,2235
- def test_get_objecttypes(57,2436
- def test_get_authors(67,2914
- def test_get_recent_gbobjects(80,3496
- def test_get_featured_gbobjects(93,4072
- def test_get_random_gbobjects(106,4658
- def test_get_popular_gbobjects(119,5234
- def test_get_similar_gbobjects(152,6853
- def test_get_archives_gbobjects(176,7972
- def test_get_archives_tree(199,9028
- def test_get_calendar_gbobjects(222,10096
- def test_get_recent_comments(268,12343
- def test_get_recent_linkbacks(296,13612
- def test_objectapp_pagination(324,14902
- class FakeRequest(325,14943
- def __init__(326,14978
- def test_objectapp_breadcrumbs(411,19121
- class FakeRequest(412,19163
- def __init__(413,19198
- def test_get_gravatar(486,22745
- def test_get_tags(496,23187
- def test_get_tag_cloud(519,23988
-
-managers.py,310
-def tags_published(12,171
-class AuthorPublishedManager(22,555
- def get_query_set(25,650
-def gbobjects_published(36,1045
-class GbobjectPublishedManager(45,1366
- def get_query_set(48,1465
- def on_site(53,1639
- def search(58,1843
- def advanced_search(65,2050
- def basic_search(70,2227
-
-search.py,70
-def createQ(23,634
-def unionQ(81,2728
-def advanced_search(129,4198
-
-views/quick_gbobject.py,64
-class QuickGbobjectForm(18,542
-def view_quick_gbobject(27,839
-
-views/authors.py,26
-def author_detail(14,425
-
-views/trackback.py,31
-def gbobject_trackback(14,427
-
-views/search.py,27
-def gbobject_search(9,234
-
-views/gbobjects.py,31
-def gbobject_shortlink(26,895
-
-views/tags.py,44
-def tag_list(15,418
-def tag_detail(24,819
-
-views/objecttypes.py,64
-def get_Objecttype_or_404(10,311
-def Objecttype_detail(16,499
-
-views/sitemap.py,19
-def sitemap(8,174
-
-views/channels.py,28
-def gbobject_channel(7,133
-
-views/decorators.py,187
-def update_queryset(15,493
- def wrapper(23,813
-def password(33,1050
-def protect_gbobject(47,1623
- def wrapper(53,1839
-def template_name_for_gbobject_queryset_filtered(72,2640
-
-moderator.py,194
-class GbobjectCommentModerator(23,910
- def email(34,1388
- def do_email_notification(50,2108
- def do_email_authors(67,2993
- def do_email_reply(89,4151
- def moderate(116,5607
-
-admin/process.py,802
-class ProcessAdmin(24,773
- def __init__(76,3621
- def get_title(81,3790
- def get_authors(92,4279
- def get_objecttypes(105,4852
- def get_tags(118,5452
- def get_sites(130,5961
- def get_comments_are_open(138,6281
- def get_is_actual(144,6535
- def get_is_visible(150,6743
- def get_link(156,6957
- def get_short_url(163,7233
- def save_model(174,7625
- def queryset(188,8235
- def formfield_for_manytomany(195,8519
- def get_actions(206,9018
- def make_mine(220,9549
- def make_published(229,9944
- def make_hidden(237,10337
- def make_tweet(244,10641
- def close_comments(260,11391
- def close_pingbacks(268,11778
- def put_on_top(276,12136
- def ping_directories(285,12582
- def get_urls(308,13643
- def _media(326,14564
-
-admin/system.py,801
-class SystemAdmin(24,772
- def __init__(76,3646
- def get_title(81,3814
- def get_authors(92,4299
- def get_objecttypes(105,4869
- def get_tags(118,5466
- def get_sites(130,5972
- def get_comments_are_open(138,6290
- def get_is_actual(144,6541
- def get_is_visible(150,6746
- def get_link(156,6957
- def get_short_url(163,7230
- def save_model(174,7620
- def queryset(188,8222
- def formfield_for_manytomany(195,8505
- def get_actions(206,9003
- def make_mine(220,9533
- def make_published(229,9919
- def make_hidden(237,10306
- def make_tweet(244,10610
- def close_comments(260,11355
- def close_pingbacks(268,11735
- def put_on_top(276,12085
- def ping_directories(285,12525
- def get_urls(308,13579
- def _media(326,14491
-
-admin/forms.py,327
-class ProcessAdminForm(28,954
- class Meta:Meta30,996
-class SystemAdminForm(34,1074
- class Meta:Meta36,1115
-class ObjecttypeAdminForm(42,1194
- def __init__(49,1465
- def clean_parent(55,1749
- class Meta:Meta63,2035
-class GbobjectAdminForm(68,2121
- def __init__(77,2472
- class Meta:Meta87,2836
-
-admin/widgets.py,462
-class TreeNodeChoiceField(13,346
- def __init__(16,542
- def label_from_instance(22,836
-class MPTTModelChoiceIterator(29,1114
- def choice(31,1225
-class MPTTModelMultipleChoiceField(39,1551
- def __init__(41,1670
- def label_from_instance(45,1859
- def _get_choices(51,2136
-class MPTTFilteredSelectMultiple(60,2390
- def __init__(62,2505
- def render_options(66,2692
- def render_option(74,3076
- class Media:Media103,4437
-
-admin/gbobject.py,801
-class GbobjectAdmin(24,774
- def __init__(64,3043
- def get_title(69,3213
- def get_authors(80,3706
- def get_objecttypes(93,4282
- def get_tags(106,4885
- def get_sites(118,5397
- def get_comments_are_open(126,5719
- def get_is_actual(132,5976
- def get_is_visible(138,6187
- def get_link(144,6404
- def get_short_url(151,6683
- def save_model(162,7077
- def queryset(176,7695
- def formfield_for_manytomany(183,7982
- def get_actions(194,8482
- def make_mine(208,9014
- def make_published(217,9412
- def make_hidden(225,9805
- def make_tweet(232,10115
- def close_comments(248,10870
- def close_pingbacks(256,11256
- def put_on_top(264,11612
- def ping_directories(273,12058
- def get_urls(296,13118
- def _media(314,14048
-
-url_shortener/__init__.py,30
-def get_url_shortener(11,292
-
-url_shortener/backends/bitly.py,20
-def backend(17,513
-
-url_shortener/backends/default.py,19
-def backend(8,183
-
-templatetags/objectapp_tags.py,713
-def get_objecttypes(40,1325
-def get_this_nodes_uri(46,1529
-def get_authors(52,1674
-def get_recent_gbobjects(59,1906
-def get_featured_gbobjects(66,2183
-def get_random_gbobjects(74,2502
-def get_popular_gbobjects(84,2867
-def get_similar_gbobjects(109,3829
- def compute_related(120,4183
-def get_archives_gbobjects(152,5322
-def get_archives_gbobjects_tree(160,5662
-def get_calendar_gbobjects(169,6044
-def get_recent_comments(198,7130
-def get_recent_linkbacks(215,7887
-def objectapp_pagination(234,8628
-def objectapp_breadcrumbs(273,10381
-def get_gravatar(287,10945
-class TagsNode(299,11316
- def __init__(300,11338
- def render(303,11415
-def get_tags(309,11533
-def get_tag_cloud(323,11945
-
-templatetags/objectapp_admin_tags.py,62
-def get_draft_gbobjects(16,460
-def get_content_stats(24,764
-
-templatetags/zbreadcrumbs.py,147
-class Crumb(9,190
- def __init__(11,245
-def year_crumb(16,335
-def month_crumb(23,546
-def day_crumb(32,879
-def retrieve_breadcrumbs(62,2278
-
-templatetags/zcalendar.py,176
-class ObjectappCalendar(15,379
- def __init__(18,454
- def formatday(24,683
- def formatmonth(39,1467
- def formatweekday(52,2067
- def formatmonthname(58,2312
-
-migrations/0001_initial.py,76
-class Migration(7,125
- def forwards(9,160
- def backwards(174,10519
-
-templates/objectapp/password.html,72
-{% trans "Password required" %}7,137
-{% endblock %}id_password34,820
-
-templates/objectapp/opensearch.xml,97
-<?xml version=1,0
-<OpenSearchDescription xmlns=4,97
- <Url type=11,502
- <Query role=15,1047
-
-templates/objectapp/tags/slider_gbobjects.html,170
-{% for gbobject in gbobjects %}slider4,64
-{{ gbobject.title }}nav-slider-{{ forloop.counter }}9,394
-{{ gbobject.title }}gbobject-slider-{{ forloop.counter }}20,734
-
-templates/objectapp/_gbobject_detail.html,50
-{{ object.title }}gbobject-{{ object.pk }}6,315
-
-templates/objectapp/gbobject_trackback.xml,19
-<?xml version=1,0
-
-templates/objectapp/skeleton.html,319
-Gnowledge Studio - {% block title %}{% endblock %}75,4675
-{% include "gstudio/_header.html" %}gstudio80,4806
-/ {% block breadcrumbs %}{% endblock %}breadcrumbs84,4896
-{% block content %}content89,5052
-The content block need to be overrided!90,5075
-{% block sidebar %}sidebar94,5193
-Powered by footer99,5300
-
-templates/objectapp/sitemap.html,187
-{% trans "Sitemap" %}7,152
-{% trans "Gbobjects per objecttypes" %}10,221
-{% trans "All the gbobjects" %}31,847
-{% trans "Objecttypes" %}50,1420
-{% trans "Monthly archives" %}67,2087
-
-templates/objectapp/objecttype_list.html,36
-{% trans "Objecttype list" %}9,214
-
-templates/objectapp/gbobject_list.html,169
-{{ Objecttype.title }}23,1597
-{% trans "Tag" %} : {{ tag }}30,1750
-{% blocktrans with author.username as author %}Gbobjects by {{ author }}{% endblocktrans %}34,1818
-
-templates/objectapp/gbobject_archive_year.html,78
-{% trans "Archives" %} {{ year }}9,225
-{% trans "Monthly archives" %}13,288
-
-templates/objectapp/tag_list.html,29
-{% trans "Tag list" %}9,190
-
-templates/objectapp/rsd.xml,42
-<?xml version=1,0
- <api name=8,336
-
-templates/objectapp/wlwmanifest.xml,34
-{% load i18n %}<?xml version=1,0
-
-templates/objectapp/wxr.xml,142
-<?xml version=1,0
-<!-- generator=8,421
- <Objecttype domain=44,2185
- <Objecttype domain=46,2390
- <guid isPermaLink=48,2496
-
-templates/objectapp/login.html,35
-{% trans "Login required" %}7,134
-
-templates/objectapp/base.html,414
-{% trans "Search" %}23,956
-{% trans "Objecttypes" %}searchbox35,1611
-{% trans "Authors" %}39,1701
-{% trans "Calendar" %}43,1784
-{% trans "Tags" %}47,1875
-{% trans "Recent gbobjects" %}51,1956
-{% trans "Recent comments" %}55,2059
-{% trans "Recent linkbacks" %}59,2161
-{% trans "Random gbobjects" %}63,2263
-{% trans "Popular gbobjects" %}67,2366
-{% trans "Archives" %}71,2471
-{% trans "Tools" %}76,2599
-
-templates/objectapp/gbobject_search.html,128
-{% trans "Search results for" %} {% if pattern %}'{{ pattern }}'{% endif %}14,814
-{% if is_paginated %}main_searchbox46,2028
-
-templates/objectapp/gbobject_archive_day.html,58
-{% trans "Archives" %} {{ day|date:"DATE_FORMAT" }}9,261
-
-templates/objectapp/_header.html,81
-&nbsp;header4,44
-{% firstof user.first_name user.username %}user-tools11,413
-
-templates/objectapp/author_list.html,32
-{% trans "Author list" %}9,196
-
-templates/objectapp/gbobject_detail.html,640
-{% trans "Next gbobject" %}45,2337
-{% trans "Previous gbobject" %}59,2710
-{% trans "Related gbobjects" %}72,3046
-{% trans "Similar gbobjects" %}83,3373
-{% trans "Comments" %}comments91,3555
-{% for comment in comment_list %}comment-list95,3710
-{% if comment.url %}comment_{{ comment.pk }}102,4146
-{% trans "Pingbacks" %}pingbacks132,4897
-{% for pingback in pingback_list %}pingback-list136,5057
-{{ pingback.user_name }}pingback_{{ pingback.pk }}140,5281
-{% trans "Trackbacks" %}trackbacks166,5947
-{% for trackback in trackback_list %}trackback-list169,6063
-{{ trackback.user_name }}trackback_{{ trackback.pk }}173,6294
-
-templates/objectapp/gbobject_archive_month.html,102
-{% trans "Archives" %} {{ month|date:"YEAR_MONTH_FORMAT" }}9,277
-{% trans "Daily archives" %}13,366
-
-templates/comments/objectapp/gbobject/posted.html,44
-{% trans "Thanks for your comment" %}7,143
-
-templates/comments/objectapp_gbobject_preview.html,250
-{% blocktrans count form.errors|length as errors %}Please correct following error.{% plural %}Please correct following errors.{% endblocktrans %}9,189
-{% trans "Preview of the comment" %}12,360
-{% if form.cleaned_data.url %}comment_preview20,787
-
-templates/admin/objectapp/app_index.html,80
-{% include "admin/objectapp/widgets/content_stats.html" %}content-main28,1062
-
-templates/admin/objectapp/widgets/quickpost.html,110
-{% csrf_token %}quickpost4,124
-{% trans "Content" %}:id_title17,527
-{% trans "Tags" %}:id_content25,782
-
-templates/admin/objectapp/widgets/base.html,74
-{% block title %}{% endblock %}{% block module_id %}{% endblock %}3,116
-
-templates/500.html,167
-{% trans "Server error" %}11,217
-{% trans "Useful links" %}15,411
-{% trans "Recent gbobjects" %}31,781
-{% trans "Search" %}36,882
-{% endblock %}searchbox46,1228
-
-templates/404.html,169
-{% trans "Page not found" %}11,219
-{% trans "Useful links" %}15,330
-{% trans "Recent gbobjects" %}31,700
-{% trans "Search" %}36,801
-{% endblock %}searchbox46,1147
-
-TAGS,200
-fixtures/helloworld.json,json2,2
- "login_required": false,3,31
- "comment_enabled": true,4,70
- "login_required": false,5,109
- "comment_enabled": true,6,149
-feeds.py,py8,191
-
-spam_checker/__init__.py,55
-def get_spam_checker(10,211
-def check_is_spam(26,713
-
-spam_checker/backends/mollom.py,20
-def backend(22,707
-
-spam_checker/backends/all_is_spam.py,18
-def backend(4,56
-
-spam_checker/backends/automattic.py,20
-def backend(21,611
-
-spam_checker/backends/typepad.py,42
-class TypePad(21,611
-def backend(26,731
-
-static/objectapp/img/sitemap.png,41
-d€r`)¬‚B(†Í°*`/Ô@4ÀQh†“p.ÂU¸U7,703
-
-static/objectapp/img/objecttype.png,94
-(Ë’öû=m6ò}_ÙàB¦Ó©Çø`fÀëÉܲê`·ÛÑd2¡0 ͇¸® BaøªRÇgÁMÓPQÊbE‘Ò‡T iÛÖ$iÛÖ5,253
-
-static/objectapp/img/wlw/watermark.png,608
-jTÐÄÙ¢0EP^HÁS´§©/Iýåih‘¾Á­.‘èA s¨!:JŠ¤»?Êpñ!Êñ{X,X4,899
-‚ä†<VÜV5,995
-3Y¨V·,¶é±ëDN5%FÒPÐnÄÆ‘<6d_¡ê+¬™PcM7S¯,ÿøt üÖ¿šú+ÿKÀ>jhª dCi÷”T(–i( Ó ÷:j" ÷¾~›ËožP.Zê½#9EŽ ZidhÈA!2/ÒgÊÜ OöˆQ0}¦Œ-Q„ª$L5’¬Q„ª$L5’10,1712
-®Û7GLç7 èƒpR49×è"˜vƒkö„’º8t0Z“ç†8u¤aIž–”©E¡°ÍSïH®&wï§1ßÏêèýØæú(Üî ⯕ïÌF~î¿,¼ö⣨õ)^¯È»cÆÍ !,!ytQå( D?¡t&ïÖäÝ ’ía“Ê VY\PF@ìñº“ qènS…ÂÆš’<q¿B©¹CJ²Û]!}‡žÇO}…ööOúÕ®» æÍuƒ®gtÎhèD c€:¡-ȸ$Ï)4”¹£‹ 0n­6‡YYš£‘k×w¬× Å^§ï+VjæîÿþÆwè—þRÏþ»HyðUYS r Bc‡r Bc15,3313
-·š1«‘Ø/‰ç5 ÍŠì)+L6H†’-)5Ž,-JÕ83â‡.j¼F% ¿èÑÑ"C‹‰ÍA5ªÚÓ#ä«¡\@fÃðfÃ21,4864
-
-static/objectapp/img/wlw/comments.png,84
-ÔV”VV”5,151
-ÔV”V”" Rh£òpš´MC";ib;5,151
-ÔV”V”" Rh£òpš´MC";ib;~Åkï®wg~Åkï®w5,151
-
-static/objectapp/img/plugin.png,992
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´StqtQ´Stq12,1526
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûgYû12,1526
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûg½Žñ©Œ¹;Ûj¶rvg¬jlRlc웸j¶rvg¬jlRlcì›12,1526
-
-static/objectapp/css/src/_base.sass,40
-$blueprint_font_family: unquote(13,424
-
-static/objectapp/css/src/screen.sass,106
-ul,13,265
- h1,49,907
- h1, h2,49,907
- ul,62,1087
- li ul,65,1165
- +tag-cloud(cloud84,1495
-
-static/objectapp/css/src/print.sass,179
- a,10,125
- a, a:link,link10,125
- a, a:link, a:visited,visited10,125
- a, a:link, a:visited, a:focus,focus10,125
- a, a:link, a:visited, a:focus, a:active,active10,125
-
-static/objectapp/css/src/dashboard_objectapp.sass,41
- th,11,117
- background: url(15,163
-
-static/objectapp/css/print.css,354
-h1,8,330
-h1, h2,8,330
-h1, h2, h3,8,330
-h1, h2, h3, h4,8,330
-h1, h2, h3, h4, h5,8,330
-a:link,link13,528
-body a,28,874
-body a, body a:link,link28,874
-body a, body a:link, body a:visited,visited28,874
-body a, body a:link, body a:visited, body a:focus,focus28,874
-body a, body a:link, body a:visited, body a:focus, body a:active,active28,874
-
-static/objectapp/css/config.rb,19
-project_type 2,47
-
-static/objectapp/css/ie.css,32
-fieldset,19,419
-legend,21,464
-
-static/objectapp/css/screen.css,14875
-h1,3,103
-h1, h2,3,103
-h1, h2, h3,3,103
-h1, h2, h3, h4,3,103
-h1, h2, h3, h4, h5,3,103
-h1 img,4,167
-h1 img, h2 img,4,167
-h1 img, h2 img, h3 img,4,167
-h1 img, h2 img, h3 img, h4 img,4,167
-h1 img, h2 img, h3 img, h4 img, h5 img,4,167
-strong,30,1009
-em,32,1045
-sup,34,1078
-abbr,36,1108
-pre,44,1283
-pre, code,44,1283
-li ul,46,1374
-ul,48,1403
-th,65,1720
-th, td,65,1720
-table.striped tr:nth-child(child67,1768
-.column,column97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline;97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline; float: left;97,2475
-.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { display: inline; float: left; margin-right: 10px;px97,2475
-* html .column,column98,2768
-* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 { overflow-x: hidden;98,2768
-.span-1 { width: 30px;px102,3235
-.span-2 { width: 70px;px104,3261
-.span-3 { width: 110px;px106,3287
-.span-4 { width: 150px;px108,3314
-.span-5 { width: 190px;px110,3341
-.span-6 { width: 230px;px112,3368
-.span-7 { width: 270px;px114,3395
-.span-8 { width: 310px;px116,3422
-.span-9 { width: 350px;px118,3449
-.span-10 { width: 390px;px120,3476
-.span-11 { width: 430px;px122,3504
-.span-12 { width: 470px;px124,3532
-.span-13 { width: 510px;px126,3560
-.span-14 { width: 550px;px128,3588
-.span-15 { width: 590px;px130,3616
-.span-16 { width: 630px;px132,3644
-.span-17 { width: 670px;px134,3672
-.span-18 { width: 710px;px136,3700
-.span-19 { width: 750px;px138,3728
-.span-20 { width: 790px;px140,3756
-.span-21 { width: 830px;px142,3784
-.span-22 { width: 870px;px144,3812
-.span-23 { width: 910px;px146,3840
-.span-24 { width: 950px;px148,3868
-.span-24 { width: 950px; margin:margin148,3868
-input.span-1, textarea.span-1, select.span-1 { width: 30px;px150,3907
-input.span-2, textarea.span-2, select.span-2 { width: 70px;px151,3969
-input.span-3, textarea.span-3, select.span-3 { width: 110px;px152,4031
-input.span-4, textarea.span-4, select.span-4 { width: 150px;px153,4094
-input.span-5, textarea.span-5, select.span-5 { width: 190px;px154,4157
-input.span-6, textarea.span-6, select.span-6 { width: 230px;px155,4220
-input.span-7, textarea.span-7, select.span-7 { width: 270px;px156,4283
-input.span-8, textarea.span-8, select.span-8 { width: 310px;px157,4346
-input.span-9, textarea.span-9, select.span-9 { width: 350px;px158,4409
-input.span-10, textarea.span-10, select.span-10 { width: 390px;px159,4472
-input.span-11, textarea.span-11, select.span-11 { width: 430px;px160,4538
-input.span-12, textarea.span-12, select.span-12 { width: 470px;px161,4604
-input.span-13, textarea.span-13, select.span-13 { width: 510px;px162,4670
-input.span-14, textarea.span-14, select.span-14 { width: 550px;px163,4736
-input.span-15, textarea.span-15, select.span-15 { width: 590px;px164,4802
-input.span-16, textarea.span-16, select.span-16 { width: 630px;px165,4868
-input.span-17, textarea.span-17, select.span-17 { width: 670px;px166,4934
-input.span-18, textarea.span-18, select.span-18 { width: 710px;px167,5000
-input.span-19, textarea.span-19, select.span-19 { width: 750px;px168,5066
-input.span-20, textarea.span-20, select.span-20 { width: 790px;px169,5132
-input.span-21, textarea.span-21, select.span-21 { width: 830px;px170,5198
-input.span-22, textarea.span-22, select.span-22 { width: 870px;px171,5264
-input.span-23, textarea.span-23, select.span-23 { width: 910px;px172,5330
-input.span-24, textarea.span-24, select.span-24 { width: 950px;px173,5396
-.append-1 { padding-right: 40px;px175,5463
-.append-2 { padding-right: 80px;px177,5499
-.append-3 { padding-right: 120px;px179,5535
-.append-4 { padding-right: 160px;px181,5572
-.append-5 { padding-right: 200px;px183,5609
-.append-6 { padding-right: 240px;px185,5646
-.append-7 { padding-right: 280px;px187,5683
-.append-8 { padding-right: 320px;px189,5720
-.append-9 { padding-right: 360px;px191,5757
-.append-10 { padding-right: 400px;px193,5794
-.append-11 { padding-right: 440px;px195,5832
-.append-12 { padding-right: 480px;px197,5870
-.append-13 { padding-right: 520px;px199,5908
-.append-14 { padding-right: 560px;px201,5946
-.append-15 { padding-right: 600px;px203,5984
-.append-16 { padding-right: 640px;px205,6022
-.append-17 { padding-right: 680px;px207,6060
-.append-18 { padding-right: 720px;px209,6098
-.append-19 { padding-right: 760px;px211,6136
-.append-20 { padding-right: 800px;px213,6174
-.append-21 { padding-right: 840px;px215,6212
-.append-22 { padding-right: 880px;px217,6250
-.append-23 { padding-right: 920px;px219,6288
-.prepend-1 { padding-left: 40px;px221,6326
-.prepend-2 { padding-left: 80px;px223,6362
-.prepend-3 { padding-left: 120px;px225,6398
-.prepend-4 { padding-left: 160px;px227,6435
-.prepend-5 { padding-left: 200px;px229,6472
-.prepend-6 { padding-left: 240px;px231,6509
-.prepend-7 { padding-left: 280px;px233,6546
-.prepend-8 { padding-left: 320px;px235,6583
-.prepend-9 { padding-left: 360px;px237,6620
-.prepend-10 { padding-left: 400px;px239,6657
-.prepend-11 { padding-left: 440px;px241,6695
-.prepend-12 { padding-left: 480px;px243,6733
-.prepend-13 { padding-left: 520px;px245,6771
-.prepend-14 { padding-left: 560px;px247,6809
-.prepend-15 { padding-left: 600px;px249,6847
-.prepend-16 { padding-left: 640px;px251,6885
-.prepend-17 { padding-left: 680px;px253,6923
-.prepend-18 { padding-left: 720px;px255,6961
-.prepend-19 { padding-left: 760px;px257,6999
-.prepend-20 { padding-left: 800px;px259,7037
-.prepend-21 { padding-left: 840px;px261,7075
-.prepend-22 { padding-left: 880px;px263,7113
-.prepend-23 { padding-left: 920px;px265,7151
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline;267,7189
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left;267,7189
-.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left; position: relative;267,7189
-.pull-1 { margin-left: -40px;px269,7474
-.pull-2 { margin-left: -80px;px271,7507
-.pull-3 { margin-left: -120px;px273,7540
-.pull-4 { margin-left: -160px;px275,7574
-.pull-5 { margin-left: -200px;px277,7608
-.pull-6 { margin-left: -240px;px279,7642
-.pull-7 { margin-left: -280px;px281,7676
-.pull-8 { margin-left: -320px;px283,7710
-.pull-9 { margin-left: -360px;px285,7744
-.pull-10 { margin-left: -400px;px287,7778
-.pull-11 { margin-left: -440px;px289,7813
-.pull-12 { margin-left: -480px;px291,7848
-.pull-13 { margin-left: -520px;px293,7883
-.pull-14 { margin-left: -560px;px295,7918
-.pull-15 { margin-left: -600px;px297,7953
-.pull-16 { margin-left: -640px;px299,7988
-.pull-17 { margin-left: -680px;px301,8023
-.pull-18 { margin-left: -720px;px303,8058
-.pull-19 { margin-left: -760px;px305,8093
-.pull-20 { margin-left: -800px;px307,8128
-.pull-21 { margin-left: -840px;px309,8163
-.pull-22 { margin-left: -880px;px311,8198
-.pull-23 { margin-left: -920px;px313,8233
-.pull-24 { margin-left: -960px;px315,8268
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline;317,8303
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: left;317,8303
-.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: left; position: relative;317,8303
-.push-1 { margin: 0 -40px 1.5em 40px;px319,8588
-.push-2 { margin: 0 -80px 1.5em 80px;px321,8629
-.push-3 { margin: 0 -120px 1.5em 120px;px323,8670
-.push-4 { margin: 0 -160px 1.5em 160px;px325,8713
-.push-5 { margin: 0 -200px 1.5em 200px;px327,8756
-.push-6 { margin: 0 -240px 1.5em 240px;px329,8799
-.push-7 { margin: 0 -280px 1.5em 280px;px331,8842
-.push-8 { margin: 0 -320px 1.5em 320px;px333,8885
-.push-9 { margin: 0 -360px 1.5em 360px;px335,8928
-.push-10 { margin: 0 -400px 1.5em 400px;px337,8971
-.push-11 { margin: 0 -440px 1.5em 440px;px339,9015
-.push-12 { margin: 0 -480px 1.5em 480px;px341,9059
-.push-13 { margin: 0 -520px 1.5em 520px;px343,9103
-.push-14 { margin: 0 -560px 1.5em 560px;px345,9147
-.push-15 { margin: 0 -600px 1.5em 600px;px347,9191
-.push-16 { margin: 0 -640px 1.5em 640px;px349,9235
-.push-17 { margin: 0 -680px 1.5em 680px;px351,9279
-.push-18 { margin: 0 -720px 1.5em 720px;px353,9323
-.push-19 { margin: 0 -760px 1.5em 760px;px355,9367
-.push-20 { margin: 0 -800px 1.5em 800px;px357,9411
-.push-21 { margin: 0 -840px 1.5em 840px;px359,9455
-.push-22 { margin: 0 -880px 1.5em 880px;px361,9499
-.push-23 { margin: 0 -920px 1.5em 920px;px363,9543
-.push-24 { margin: 0 -960px 1.5em 960px;px365,9587
-.feedback,feedback373,9773
-.feedback, .error,error373,9773
-.feedback, .error, .alert,alert373,9773
-.feedback, .error, .alert, .notice,notice373,9773
-.feedback, .error, .alert, .notice, .success,success373,9773
-.error,error375,9893
-.error a,376,9972
-input.text,text401,10607
-input.text, input.title,title401,10607
-input.text, input.title, input[input401,10607
-input.text, input.title, input[type=email], input[input401,10607
-input.text,text410,10900
-input.text, input.title,title410,10900
-input.text, input.title, input[input410,10900
-input.text, input.title, input[type=email], input[input410,10900
-input.text, input.title, input[type=email], input[type=text], input[input410,10900
-input.text:focus,focus411,11048
-input.text:focus, input.title:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus, input[type=text]:focus,focus411,11048
-input.text:focus, input.title:focus, input[type=email]:focus, input[type=text]:focus, input[type=password]:focus,focus411,11048
-input.text,text415,11285
-input.text, input.title,title415,11285
-input.text, input.title, input[input415,11285
-input.text, input.title, input[type=email], input[input415,11285
-ul,421,11517
-div.paginator span.page:hover,hover470,14146
-div.paginator span.page:hover, div.paginator span.next:hover,hover470,14146
-div.paginator span.page:hover a,471,14273
-div.paginator span.page:hover a, div.paginator span.next:hover a,471,14273
-.hgbobject .gbobject-content pre,488,15666
-.gbobject-widgets ul,494,16239
-ol#comment-list,list498,16409
-ol#comment-list, ol#pingback-list,list498,16409
-ol#comment-list li,499,16516
-ol#comment-list li, ol#pingback-list li,499,16516
-ol#comment-list li.box2,box2500,16629
-ol#comment-list li.box2, ol#pingback-list li.box2,box2500,16629
-ol#comment-list li.post-author,author501,16760
-ol#comment-list li.post-author, ol#pingback-list li.post-author,author501,16760
-ol#comment-list li p,502,16878
-ol#comment-list li p, ol#pingback-list li p,502,16878
-ol#comment-list li img,503,16972
-ol#comment-list li img, ol#pingback-list li img,503,16972
-ol#comment-list li .pingback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body, ol#pingback-list li .trackback-body,body504,17064
-ol#comment-list li .pingback-body, ol#comment-list li .trackback-body, ol#pingback-list li .pingback-body, ol#pingback-list li .trackback-body, ol#trackback-list li .pingback-body,body504,17064
-ol#comment-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author, ol#trackback-list li .comment-author,author505,17300
-ol#comment-list li .comment-author, ol#comment-list li .pingback-author, ol#comment-list li .trackback-author, ol#pingback-list li .comment-author, ol#pingback-list li .pingback-author, ol#pingback-list li .trackback-author, ol#trackback-list li .comment-author, ol#trackback-list li .pingback-author,author505,17300
-
-static/objectapp/css/dashboard_objectapp.css,147
-.module table th,5,117
-.managelink managelink7,174
-input,11,400
-input, textarea,11,400
-.vTextField,vTextField13,456
-.required label,15,504
-
-static/objectapp/js/wymeditor/iframe/default/wymiframe.html,24
-WYMeditor iframe21,646
-
-static/objectapp/js/wymeditor/iframe/default/lbl-p.png,992
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´StqtQ´Stq12,1547
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûgYû12,1547
-ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌ㧛§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖŽ†Ïß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûg½Žñ©Œ¹;Ûj¶rvg¬jlRlc웸j¶rvg¬jlRlcì›12,1547
-
-static/objectapp/js/wymeditor/iframe/default/wymiframe.css,3744
- p,26,671
- h1,27,676
- h2,28,682
- h3,29,688
- h4,30,694
- h5,31,700
- h6,32,706
- ul,33,712
- ol,34,718
- table,35,724
- blockquote,36,733
- ul,42,958
- h1 h1,77,2463
- h1 h1, h1 h2,77,2463
- h1 h1, h1 h2, h1 h3,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p, h1 pre,77,2463
- h1 h1, h1 h2, h1 h3, h1 h4, h1 h5, h1 h6, h1 p, h1 pre, h1 address,77,2463
- h2 h1,78,2533
- h2 h1, h2 h2,78,2533
- h2 h1, h2 h2, h2 h3,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p, h2 pre,78,2533
- h2 h1, h2 h2, h2 h3, h2 h4, h2 h5, h2 h6, h2 p, h2 pre, h2 address,78,2533
- h3 h1,79,2603
- h3 h1, h3 h2,79,2603
- h3 h1, h3 h2, h3 h3,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p, h3 pre,79,2603
- h3 h1, h3 h2, h3 h3, h3 h4, h3 h5, h3 h6, h3 p, h3 pre, h3 address,79,2603
- h4 h1,80,2673
- h4 h1, h4 h2,80,2673
- h4 h1, h4 h2, h4 h3,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p, h4 pre,80,2673
- h4 h1, h4 h2, h4 h3, h4 h4, h4 h5, h4 h6, h4 p, h4 pre, h4 address,80,2673
- h5 h1,81,2743
- h5 h1, h5 h2,81,2743
- h5 h1, h5 h2, h5 h3,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p, h5 pre,81,2743
- h5 h1, h5 h2, h5 h3, h5 h4, h5 h5, h5 h6, h5 p, h5 pre, h5 address,81,2743
- h6 h1,82,2813
- h6 h1, h6 h2,82,2813
- h6 h1, h6 h2, h6 h3,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p, h6 pre,82,2813
- h6 h1, h6 h2, h6 h3, h6 h4, h6 h4, h6 h6, h6 p, h6 pre, h6 address,82,2813
- p h1,83,2883
- p h1, p h2,83,2883
- p h1, p h2, p h3,83,2883
- p h1, p h2, p h3, p h4,83,2883
- p h1, p h2, p h3, p h4, p h5,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6, p pre,83,2883
- p h1, p h2, p h3, p h4, p h5, p h6, p pre, p address,83,2883
- pre h1,84,2939
- pre h1, pre h2,84,2939
- pre h1, pre h2, pre h3,84,2939
- pre h1, pre h2, pre h3, pre h4,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p, pre pre,84,2939
- pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre p, pre pre, pre address,84,2939
- address h1,85,3018
- address h1, address h2,85,3018
- address h1, address h2, address h3,85,3018
- address h1, address h2, address h3, address h4,85,3018
- address h1, address h2, address h3, address h4, address h5,85,3018
- address h1, address h2, address h3, address h4, address h5, address h6,85,3018
- address p,86,3092
- address p, address pre,86,3092
-
-static/objectapp/js/wymeditor/skins/twopanels/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/objectapp/js/wymeditor/skins/twopanels/skin.css,393
- .wym_skin_twopanels p,21,599
- .wym_skin_twopanels p, .wym_skin_twopanels h2,21,599
- .wym_skin_twopanels p, .wym_skin_twopanels h2, .wym_skin_twopanels h3,21,599
- .wym_skin_twopanels ul,22,678
- .wym_skin_twopanels .wym_section h2,67,2688
- .wym_skin_twopanels .wym_dropdown:hover ul,86,3967
- .wym_skin_twopanels .wym_buttons li a 93,4443
-
-static/objectapp/js/wymeditor/skins/silver/README,21
-<script type=17,564
-
-static/objectapp/js/wymeditor/skins/silver/skin.css,446
- .wym_skin_silver p,21,603
- .wym_skin_silver p, .wym_skin_silver h2,21,603
- .wym_skin_silver p, .wym_skin_silver h2, .wym_skin_silver h3,21,603
- .wym_skin_silver ul,22,673
- .wym_skin_silver .wym_section h2,67,2630
- .wym_skin_silver .wym_dropdown:hover ul,87,4007
- .wym_skin_silver .wym_buttons li a 96,4728
-.wym_skin_silver .wym_panel a,277,12569
-div.wym_dropdown a:hover,hover292,12903
-
-static/objectapp/js/wymeditor/skins/silver/COPYING,1403
- Version 2,47
- Copyright 4,95
-your programs,20,926
- When we speak of free software,22,947
- When we speak of free software, we are referring to freedom,22,947
-11 of the WIPO copyright treaty adopted on 20 December 183,9244
- When you convey a covered work,187,9381
-the covered work,190,9592
-modification of the work as a means of enforcing,191,9663
-users, your or third parties' legal rights to forbid circumvention oftion of192,9732
-receive it,198,9929
-receive it, in any medium,198,9929
-appropriately publish on each copy an appropriate copyright notice;199,9992
-non-permissive terms added in accord with section 7 apply to the code;201,10118
-keep intact all notices of the absence of any warranty;202,10189
- Appropriate Legal Notices; however,231,11578
- Notices displayed by works containing it;370,19236
- c) Prohibiting misrepresentation of the origin of that material,372,19286
- reasonable ways as different from the original version;374,19425
- material by anyone who conveys the material 383,19780
-modify it is void,411,21191
- However,415,21356
- the Free Software Foundation,639,33294
- the Free Software Foundation, either version 3 of the License,639,33294
- the Free Software Foundation, either version 3 of the License, or639,33294
-parts of the General Public License. Of course,661,34332
-might be different;662,34405
-
-static/objectapp/js/wymeditor/skins/silver/images/bg.selector.silver.gif,72
-J´¨Ñ£H“*zcÔ‰>iö”JÀ… iö”JÀ…2,620
-Œ HÁVP‚¬ Ž2hÁF*$! @(6,1500
-
-static/objectapp/js/wymeditor/skins/minimal/skin.css,270
-.wym_skin_minimal div.wym_tools h2,32,718
-.wym_skin_minimal div.wym_containers h2,33,754
-.wym_skin_minimal div.wym_area_top,wym_area_top48,1026
-.wym_skin_minimal div.wym_area_right,wym_area_right49,1062
-.wym_skin_minimal div.wym_containers,wym_containers50,1100
-
-static/objectapp/js/wymeditor/skins/minimal/images/bg.selector.silver.gif,72
-J´¨Ñ£H“*zcÔ‰>iö”JÀ… iö”JÀ…2,620
-Œ HÁVP‚¬ Ž2hÁF*$! @(6,1500
-
-static/objectapp/js/wymeditor/skins/default/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/objectapp/js/wymeditor/skins/default/skin.css,373
- .wym_skin_default p,20,575
- .wym_skin_default p, .wym_skin_default h2,20,575
- .wym_skin_default p, .wym_skin_default h2, .wym_skin_default h3,20,575
- .wym_skin_default ul,21,648
- .wym_skin_default .wym_section h2,66,2613
- .wym_skin_default .wym_dropdown:hover ul,85,3868
- .wym_skin_default .wym_buttons li a 92,4336
-
-static/objectapp/js/wymeditor/skins/wymeditor_icon.png,13
-DËD5,704
-
-static/objectapp/js/wymeditor/skins/django/icons.png,855
-B„5lB„5l5,564
-g ˜ig ˜8,1412
-¦4T•s•ž÷=2#·—ù|ÝZ{«õ¤&ªä.ò{‰À'K Üøµ#G³æTã\¥†#9;ôx¦´ÉE& V ¿Ùàõ~ðÊšxP‹í‚´ë·Ei¹ÏE¤üƒKvfûFQµ¸Ìm¤sþ—ŠªRP¸ì< Ý •-q†F8R‚–:C#ÓlÚ’ghR‚–<C#ÓlÚ’ghR‚–<C“´ä˜:¹%ÏФ¡ž¡9½fjAŸ.1¬ûq„g"ŠÄŽê?9‚1G¿‡èÚ¬}®;%iÿ1iÿ111,2665
-v@vu¤ë¼ËJndŒ:*¯<pz ”k[?Ñ¸Ö š‹œ ›ÌœtB"p“Õ+™W‚ʚ墖޶°AÔxžãu1SSl[îÿ;#a¼þ|ºÅßñ9Šm H ½‘„²´Êñîœ]_‘^]+Ü‚c H¨9Á×oýÝþ}È»!v$`é~4‹r±edK @Ò }%ò¢6Á’@(§À–(r¢¼9qÐ…æȲnœä\_ H5‡¢çdƒªWPh®l¯ÈÙ³gk&ŽŽì×yŸ73gÜn«oR4ÐÏ_Ž5Š¦-2*J£¿fÿÃxžÊüi£ZhùùóçsÀ«¯¾:0ùÓš¿Î°I³éÁƒ¾¿¼ž;w®-8U½µl'í ´‚õû¦Ç>pÝæâ'@Ϭé·ãÕW_…ÞmVƹ&Ðüâ׿âYá*}1íHpîÜ9£~ûô3¼Œ,S]S15,4078
-Ýûö¶t§tYJ³Št§tYJ³16,4628
-î ¸Y„Do†P8uê_Í&`}Ã1ËÊÊŒØ<ººZê_B !KÞ‡—KÞ‡18,5109
-ÑU]U20,5704
-ÑU]PPÀPP20,5704
-‹«0€ýÀÆvB~Q/ÓI[P[YÁ]ÃÁk|àˆö© /ká@ldQ}-†v‹`O ÍöJ ´Ú*nµV[ÏnµV[22,6043
-
-static/objectapp/js/wymeditor/skins/django/skin.css,363
- .wym_skin_django p,21,610
- .wym_skin_django p, .wym_skin_django h2,21,610
- .wym_skin_django p, .wym_skin_django h2, .wym_skin_django h3,21,610
- .wym_skin_django ul,22,680
- .wym_skin_django .wym_section h2,67,2667
- .wym_skin_django .wym_dropdown:hover ul,86,3923
- .wym_skin_django .wym_buttons li a 95,4488
-
-static/objectapp/js/wymeditor/skins/compact/icons.png,45
-]11,2788
-]ÉBXóhžhò‰Üõ.Õ3ϲ±›RR12,3024
-
-static/objectapp/js/wymeditor/skins/compact/skin.css,373
- .wym_skin_compact p,21,633
- .wym_skin_compact p, .wym_skin_compact h2,21,633
- .wym_skin_compact p, .wym_skin_compact h2, .wym_skin_compact h3,21,633
- .wym_skin_compact ul,22,706
- .wym_skin_compact .wym_section h2,67,2657
- .wym_skin_compact .wym_dropdown:hover ul,86,3912
- .wym_skin_compact .wym_buttons li a 93,4380
-
-static/objectapp/js/wymeditor/plugins/resizable/readme.txt,145
-The ``resizable`` plugin takes exactly one parameter,61,1916
- minHeight:minHeight67,2204
- var jQueryPlugins 89,3049
-Changelog110,3941
-
-static/objectapp/js/wymeditor/plugins/tidy/README,89
-Copyright (c) 2005 - 2009 Jean-Francois Hovinne,2,62
-Dual licensed under the MIT 3,137
-
-static/objectapp/js/markitup/templates/preview.html,33
-markItUp! preview template5,243
-
-static/objectapp/js/markitup/skins/django/style.css,408
-.markItUp a:link,link9,302
- font:12px 'Courier New', Courier,28,652
- font:12px 'Courier New', Courier, monospace;28,652
- padding:5px;px29,698
- width:790px;px30,712
- height:220px;px31,726
- clear:both;both32,741
- line-height:18px;px33,754
- overflow:auto;auto34,773
-.markItUpHeader ul .markItUpDropMenu markItUpDropMenu68,1428
-.markItUpHeader ul ul .markItUpDropMenu markItUpDropMenu87,1841
-
-static/objectapp/js/markitup/skins/django/images/menu.png,270
-wAÁ©÷~¸á“ÐkQ)?Âö•r• ár• 6,1115
-pOšxfØpOšxf9,1905
-chg€Ð’ê¡*ƒ…òäKxZÎ×¹RiPÉz¯Å»ozÐ+ÁœdcnÈ:­0ÕªJ±RÓÛâÛ(V}svàÍ·äBà –ðbÛ`Ö”ÌúàFÛðë9F#Ù ¦ÞÜb ¼ Ѿr=r10,2288
-¹1 Ëúþ+Kú¨èdXŒ];JÄ£Žïcˆx$§DÑ×·Þž¢X`i× ì¨ëÑ@lÌûrn°m$¨Æ^×9΄ïzBGÏžzBGÏ53,17284
-
-static/objectapp/js/markitup/sets/textile/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/objectapp/js/markitup/sets/textile/images/h2.png,11
-${$4,125
-
-static/objectapp/js/markitup/sets/html/images/h2.png,11
-${$4,125
-
-static/objectapp/js/markitup/sets/html/images/image.png,101
-‰PNGPNG1,0
-º]ñ»Hà Bv„åÌ“µÚˆ_Sÿ%Ò;ô6×9Host wöEwöE4,391
-ó]*f"Å"ô½.\00CLâCL5,439
-
-static/objectapp/js/markitup/sets/markdown/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/objectapp/js/markitup/sets/markdown/images/h2.png,11
-${$4,125
-
-static/objectapp/js/markitup/sets/restructuredtext/images/quotes.png,50
-µDMs6gRÎLDMs6gRÎ4,156
-µDMs6gRÎL:,Óp÷p4,156
-
-static/objectapp/js/markitup/sets/restructuredtext/images/h2.png,11
-${$4,125
-
-ping.py,417
-class URLRessources(17,347
- def __init__(20,433
-class DirectoryPinger(29,843
- def __init__(32,921
- def run(44,1321
- def ping_gbobject(54,1740
-class ExternalUrlsPinger(78,2713
- def __init__(81,2797
- def run(93,3213
- def is_external_url(108,3770
- def find_external_urls(115,4029
- def find_pingback_href(123,4382
- def find_pingback_urls(132,4768
- def pingback_url(160,5812
-
-plugins/cms_app.py,31
-class ObjectappApphook(10,230
-
-plugins/cms_plugins.py,318
-class CMSLatestGbobjectsPlugin(19,547
- def formfield_for_manytomany(52,1395
- def render(61,1807
- def icon_src(85,2782
-class CMSSelectedGbobjectsPlugin(90,2923
- def render(100,3297
- def icon_src(107,3587
-class CMSRandomGbobjectsPlugin(112,3728
- def render(121,4063
- def icon_src(129,4408
-
-plugins/migrations/0004_auto__add_field_latestgbobjectsplugin_subobjecttypes.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(12,349
-
-plugins/migrations/0005_auto__add_randomgbobjectsplugin.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(17,668
-
-plugins/migrations/0002_auto__add_field_latestgbobjectsplugin_template_to_render__add_field_sele.py,71
-class Migration(5,63
- def forwards(7,98
- def backwards(15,700
-
-plugins/migrations/0001_initial.py,73
-class Migration(6,92
- def forwards(8,127
- def backwards(33,1752
-
-plugins/migrations/0003_auto__del_field_latestgbobjectsplugin_objecttype__del_field_latestgbobjectsp.py,73
-class Migration(6,92
- def forwards(8,127
- def backwards(40,2041
-
-plugins/admin.py,67
-class GbobjectPlaceholderAdmin(14,421
- def save_model(33,1637
-
-plugins/models.py,364
-class LatestGbobjectsPlugin(21,698
- def render_template(42,1508
- def copy_relations(47,1666
- def __unicode__(53,1923
-class SelectedGbobjectsPlugin(57,2012
- def render_template(68,2391
- def copy_relations(73,2549
- def __unicode__(77,2708
-class RandomGbobjectsPlugin(81,2795
- def __unicode__(91,3163
-def invalidate_menu_cache(95,3252
-
-plugins/placeholder.py,61
-class GbobjectPlaceholder(7,139
- class Meta:Meta12,299
-
-plugins/menu.py,272
-class GbobjectMenu(17,506
- def get_nodes(21,643
-class ObjecttypeMenu(63,2464
- def get_nodes(67,2579
-class AuthorMenu(80,3136
- def get_nodes(84,3239
-class TagMenu(98,3842
- def get_nodes(102,3936
-class GbobjectModifier(115,4459
- def modify(119,4593
-
-sitemaps.py,459
-class GbobjectSitemap(13,320
- def items(18,430
- def lastmod(22,533
-class ObjecttypeSitemap(27,648
- def cache(31,744
- def items(42,1195
- def lastmod(48,1371
- def priority(55,1593
-class AuthorSitemap(63,1817
- def items(68,1924
- def lastmod(72,2023
- def location(79,2242
-class TagSitemap(84,2382
- def cache(88,2464
- def items(97,2856
- def lastmod(103,2996
- def priority(108,3162
- def location(115,3381
-
-models.py,994
-class Author(52,1966
- def gbobjects_published(58,2094
- def get_absolute_url(63,2254
- class Meta:Meta68,2430
-class Gbobject(74,2501
- def get_relations(147,5681
- def get_attributes(188,7648
- def get_nbh(198,7976
- def get_relations1(218,8649
- def get_rendered_nbh(239,9396
- def html_content(273,10506
- def previous_gbobject(287,11007
- def next_gbobject(295,11253
- def word_count(303,11517
- def is_actual(308,11661
- def is_visible(314,11870
- def related_published(319,12024
- def discussions(324,12175
- def comments(330,12356
- def pingbacks(336,12550
- def trackbacks(341,12694
- def comments_are_open(346,12841
- def short_url(354,13144
- def __unicode__(358,13257
- def memberof_sentence(362,13325
- def get_absolute_url(372,13742
- class Meta:Meta380,14059
-class Process(390,14350
- def __unicode__(416,15811
- class Meta:Meta419,15865
-class System(426,16090
- def __unicode__(457,17561
-
-xmlrpc/metaweblog.py,475
-def authenticate(30,955
-def blog_structure(46,1597
-def user_structure(54,1839
-def author_structure(66,2235
-def Objecttype_structure(74,2449
-def post_structure(90,3127
-def get_users_blogs(119,4485
-def get_user_info(128,4798
-def get_authors(137,5118
-def delete_post(147,5507
-def get_post(157,5906
-def get_recent_posts(167,6287
-def get_objecttypes(177,6718
-def new_Objecttype(187,7127
-def new_post(204,7901
-def edit_post(248,9902
-def new_media_object(291,11783
-
-xmlrpc/pingback.py,113
-def generate_pingback_content(28,835
-def pingback_ping(54,1557
-def pingback_extensions_get_pingbacks(114,3742
-
-comparison.py,268
-def pearson_score(9,166
-class ClusteredModel(26,691
- def __init__(30,795
- def dataset(34,907
-class VectorBuilder(44,1233
- def __init__(47,1315
- def build_dataset(54,1525
- def generate_key(82,2521
- def flush(86,2655
- def __call__(91,2786
-
-xmlrpc/__init__.py,0
-
-plugins/migrations/__init__.py,0
-
-plugins/__init__.py,0
-
-plugins/settings.py,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/h4.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/list-numeric.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/code.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/list-bullet.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/h5.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/picture.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/h3.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/link.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/preview.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/h1.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/italic.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/images/bold.png,0
-
-static/objectapp/js/markitup/sets/restructuredtext/style.css,0
-
-static/objectapp/js/markitup/sets/markdown/images/h4.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/list-numeric.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/code.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/list-bullet.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/h5.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/picture.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/h3.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/link.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/preview.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/h1.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/italic.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/h6.png,0
-
-static/objectapp/js/markitup/sets/markdown/images/bold.png,0
-
-static/objectapp/js/markitup/sets/markdown/style.css,0
-
-static/objectapp/js/markitup/sets/html/images/h4.png,0
-
-static/objectapp/js/markitup/sets/html/images/list-numeric.png,0
-
-static/objectapp/js/markitup/sets/html/images/clean.png,0
-
-static/objectapp/js/markitup/sets/html/images/list-item.png,0
-
-static/objectapp/js/markitup/sets/html/images/list-bullet.png,0
-
-static/objectapp/js/markitup/sets/html/images/h5.png,0
-
-static/objectapp/js/markitup/sets/html/images/picture.png,0
-
-static/objectapp/js/markitup/sets/html/images/h3.png,0
-
-static/objectapp/js/markitup/sets/html/images/link.png,0
-
-static/objectapp/js/markitup/sets/html/images/preview.png,0
-
-static/objectapp/js/markitup/sets/html/images/h1.png,0
-
-static/objectapp/js/markitup/sets/html/images/italic.png,0
-
-static/objectapp/js/markitup/sets/html/images/stroke.png,0
-
-static/objectapp/js/markitup/sets/html/images/paragraph.png,0
-
-static/objectapp/js/markitup/sets/html/images/h6.png,0
-
-static/objectapp/js/markitup/sets/html/images/bold.png,0
-
-static/objectapp/js/markitup/sets/html/style.css,0
-
-static/objectapp/js/markitup/sets/textile/images/h4.png,0
-
-static/objectapp/js/markitup/sets/textile/images/list-numeric.png,0
-
-static/objectapp/js/markitup/sets/textile/images/code.png,0
-
-static/objectapp/js/markitup/sets/textile/images/list-bullet.png,0
-
-static/objectapp/js/markitup/sets/textile/images/h5.png,0
-
-static/objectapp/js/markitup/sets/textile/images/picture.png,0
-
-static/objectapp/js/markitup/sets/textile/images/h3.png,0
-
-static/objectapp/js/markitup/sets/textile/images/link.png,0
-
-static/objectapp/js/markitup/sets/textile/images/preview.png,0
-
-static/objectapp/js/markitup/sets/textile/images/h1.png,0
-
-static/objectapp/js/markitup/sets/textile/images/italic.png,0
-
-static/objectapp/js/markitup/sets/textile/images/stroke.png,0
-
-static/objectapp/js/markitup/sets/textile/images/paragraph.png,0
-
-static/objectapp/js/markitup/sets/textile/images/h6.png,0
-
-static/objectapp/js/markitup/sets/textile/images/bold.png,0
-
-static/objectapp/js/markitup/sets/textile/style.css,0
-
-static/objectapp/js/markitup/skins/django/images/submenu.png,0
-
-static/objectapp/js/markitup/skins/django/images/handle.png,0
-
-static/objectapp/js/markitup/templates/preview.css,0
-
-static/objectapp/js/wymeditor/plugins/fullscreen/icon_fullscreen.gif,0
-
-static/objectapp/js/wymeditor/plugins/tidy/wand.png,0
-
-static/objectapp/js/wymeditor/plugins/tidy/tidy.php,0
-
-static/objectapp/js/wymeditor/skins/minimal/images/bg.wymeditor.png,0
-
-static/objectapp/js/wymeditor/skins/minimal/images/icons.silver.gif,0
-
-static/objectapp/js/wymeditor/skins/minimal/images/bg.header.gif,0
-
-static/objectapp/js/wymeditor/skins/silver/images/bg.wymeditor.png,0
-
-static/objectapp/js/wymeditor/skins/silver/images/icons.silver.gif,0
-
-static/objectapp/js/wymeditor/skins/silver/images/bg.header.gif,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h5.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h3.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-pre.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h6.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-blockquote.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h1.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h4.png,0
-
-static/objectapp/js/wymeditor/iframe/default/lbl-h2.png,0
-
-static/objectapp/css/slider.css,0
-
-static/objectapp/css/jquery.autocomplete.css,0
-
-static/objectapp/css/wymeditor_styles.css,0
-
-static/objectapp/css/src/slider.sass,0
-
-static/objectapp/css/src/_gbobject.sass,0
-
-static/objectapp/css/src/ie.sass,0
-
-static/objectapp/css/src/_paginator.sass,0
-
-static/objectapp/css/src/_calendar.sass,0
-
-static/objectapp/css/src/_tag-cloud.sass,0
-
-static/objectapp/img/background.gif,0
-
-static/objectapp/img/tags.png,0
-
-static/objectapp/img/rss.png,0
-
-static/objectapp/img/bullet.png,0
-
-static/objectapp/img/wlw/objectapp.png,0
-
-static/objectapp/img/favicon.ico,0
-
-static/objectapp/img/grid.png,0
-
-static/objectapp/img/preview.png,0
-
-static/objectapp/img/comments.png,0
-
-static/objectapp/img/trans.png,0
-
-static/objectapp/img/shorturl.png,0
-
-static/objectapp/img/manage.png,0
-
-static/objectapp/img/help.png,0
-
-spam_checker/backends/__init__.py,0
-
-templates/feeds/comment_title.html,0
-
-templates/feeds/gbobject_title.html,0
-
-templates/feeds/trackback_description.html,0
-
-templates/feeds/gbobject_description.html,0
-
-templates/feeds/comment_description.html,0
-
-templates/feeds/pingback_description.html,0
-
-templates/feeds/discussion_description.html,0
-
-templates/feeds/trackback_title.html,0
-
-templates/feeds/pingback_title.html,0
-
-templates/feeds/discussion_title.html,0
-
-templates/admin/objectapp/widgets/_content_stats.html,0
-
-templates/admin/objectapp/widgets/recent_comments.html,0
-
-templates/admin/objectapp/widgets/draft_gbobjects.html,0
-
-templates/admin/objectapp/widgets/_recent_linkbacks.html,0
-
-templates/admin/objectapp/widgets/_draft_gbobjects.html,0
-
-templates/admin/objectapp/widgets/recent_linkbacks.html,0
-
-templates/admin/objectapp/widgets/_recent_comments.html,0
-
-templates/admin/objectapp/widgets/content_stats.html,0
-
-templates/comments/comment_reply_email.txt,0
-
-templates/comments/comment_notification_email.txt,0
-
-templates/comments/objectapp/gbobject/form.html,0
-
-templates/comments/comment_authors_email.txt,0
-
-templates/objectapp/author/gbobject_list.html,0
-
-templates/objectapp/gbobject_archive.html,0
-
-templates/objectapp/tag/gbobject_list.html,0
-
-templates/objectapp/cms/gbobject_detail.html,0
-
-templates/objectapp/cms/random_gbobjects.html,0
-
-templates/objectapp/cms/gbobject_list.html,0
-
-templates/objectapp/objecttype/gbobject_list.html,0
-
-templates/objectapp/_subtype_detail.html,0
-
-templates/objectapp/tags/breadcrumbs.html,0
-
-templates/objectapp/tags/recent_gbobjects.html,0
-
-templates/objectapp/tags/tag_cloud.html,0
-
-templates/objectapp/tags/random_gbobjects.html,0
-
-templates/objectapp/tags/recent_comments.html,0
-
-templates/objectapp/tags/recent_linkbacks.html,0
-
-templates/objectapp/tags/popular_gbobjects.html,0
-
-templates/objectapp/tags/similar_gbobjects.html,0
-
-templates/objectapp/tags/archives_gbobjects.html,0
-
-templates/objectapp/tags/objecttypes.html,0
-
-templates/objectapp/tags/archives_gbobjects_tree.html,0
-
-templates/objectapp/tags/calendar.html,0
-
-templates/objectapp/tags/gbobjects.html,0
-
-templates/objectapp/tags/featured_gbobjects.html,0
-
-templates/objectapp/tags/dummy.html,0
-
-templates/objectapp/tags/archives_gbobjects_link.html,0
-
-templates/objectapp/tags/pagination.html,0
-
-templates/objectapp/tags/authors.html,0
-
-migrations/0001_initial.pyc,0
-
-migrations/__init__.pyc,0
-
-migrations/__init__.py,0
-
-locale/de/LC_MESSAGES/django.po,0
-
-locale/pt_BR/LC_MESSAGES/django.po,0
-
-locale/zh_CN/LC_MESSAGES/django.po,0
-
-locale/ru/LC_MESSAGES/django.po,0
-
-locale/es/LC_MESSAGES/django.po,0
-
-locale/hu/LC_MESSAGES/django.po,0
-
-locale/it/LC_MESSAGES/django.po,0
-
-locale/fr/LC_MESSAGES/django.po,0
-
-locale/nl/LC_MESSAGES/django.po,0
-
-locale/pl/LC_MESSAGES/django.po,0
-
-templatetags/__init__.py,0
-
-url_shortener/backends/__init__.py,0
-
-admin/__init__.py,0
-
-views/__init__.py,0
-
-__init__.py,0
-
-tests/templates/objectapp/gbobject_detail.html,0
-
-tests/templates/objectapp/gbobject_search.html,0
-
-tests/templates/objectapp/gbobject_list.html,0
-
-tests/urls.py,0
-
-urls/capabilities.py,0
-
-urls/discussions.py,0
-
-urls/sitemap.py,0
-
-urls/objecttypes.py,0
-
-urls/tags.py,0
-
-urls/gbobjects.py,0
-
-urls/search.py,0
-
-urls/trackback.py,0
-
-urls/__init__.py,0
-
-urls/authors.py,0
-
-urls/quick_gbobject.py,0
-
-urls/feeds.py,0
-
-management/commands/__init__.py,0
-
-management/__init__.py,0
-
-settings.py,0
-
-testsettings.py,0
diff --git a/objectapp/models.py b/objectapp/models.py
index cb9d467d..2673d1a6 100644
--- a/objectapp/models.py
+++ b/objectapp/models.py
@@ -97,7 +97,7 @@ from gstudio.models import Relation
from gstudio.models import Node
from gstudio.models import Edge
from gstudio.models import Author
-
+import ast
from objectapp.settings import UPLOAD_TO
from objectapp.settings import MARKUP_LANGUAGE
from objectapp.settings import GBOBJECT_TEMPLATES
@@ -113,6 +113,7 @@ from objectapp.url_shortener import get_url_shortener
from objectapp.signals import ping_directories_handler
from objectapp.signals import ping_external_urls_handler
from objectapp.settings import OBJECTAPP_VERSIONING
+
if OBJECTAPP_VERSIONING:
import reversion
from reversion.models import *
@@ -208,12 +209,6 @@ class Gbobject(Node):
objects = models.Manager()
published = GbobjectPublishedManager()
-
- # @property
- # def getdataType(self):
- # gb = 'attribute'+str(self.get_dataType.display())
- # gb = gb.lower()
- # return gb
@property
def getattributetypes(self):
@@ -221,17 +216,30 @@ class Gbobject(Node):
Returns the attributetypes of self as well as its parent's attributetype.
"""
try:
- parenttype = []
+ originalnt = []
+ pt = []
attributetype = []
- returnlist = []
+ returndict = {}
obj = self
- parenttype = obj.objecttypes.all()
+ originalnt = obj.objecttypes.all()
+
+ for i in range(len(originalnt)):
+ obj = originalnt[i].ref
+ pt.append(obj)
+ while obj.parent:
+ pt.append((obj.parent).ref)
+ obj = obj.parent
+
attributetype.append(obj.subjecttype_of.all())
- for each in parenttype:
+ for each in pt:
attributetype.append(each.subjecttype_of.all())
attributetype = [num for elem in attributetype for num in elem]
- return attributetype
+
+ for i in attributetype:
+ returndict.update({str(i.title):i.id})
+
+ return returndict.keys()
except:
return None
@@ -240,6 +248,8 @@ class Gbobject(Node):
@property
def getrelationtypes(self):
+ originalnt= []
+ originalpt = []
pt =[] #contains parenttype
reltype =[] #contains relationtype
titledict = {} #contains relationtype's title
@@ -247,19 +257,22 @@ class Gbobject(Node):
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
- #gb= Gbobject.objects.get(title=str(gbid))
- gb=self
- pt = gb.objecttypes.all()
+ gb=self.ref
+ originalnt = gb.objecttypes.all()
+ for i in originalnt:
+ pt.append(i.ref)
+
+ for i in range(len(originalnt)):
+ obj = originalnt[i].ref
+ while obj.parent:
+ pt.append((obj.parent).ref)
+ obj = obj.parent
+ pt.append(gb)
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))
- if Relationtype.objects.filter(left_subjecttype = gb):
- reltype.append(Relationtype.objects.filter(left_subjecttype = gb))
- if Relationtype.objects.filter(right_subjecttype = gb):
- reltype.append(Relationtype.objects.filter(right_subjecttype = gb))
-
reltype = [num for elem in reltype for num in elem]
@@ -273,13 +286,14 @@ class Gbobject(Node):
for j in range(len(pt)):
for i in range(len(listval)):
- if pt[j].id == listval[i].left_subjecttype_id or gb.id == listval[i].left_subjecttype_id :
- finaldict.update({titledict.values()[i]: titledict.keys()[i]})
- elif pt[j].id == listval[i].right_subjecttype_id or gb.id == listval[i].right_subjecttype_id:
- finaldict.update({titledict.values()[i]:inverselist[i]})
+ if pt[j].id == listval[i].left_subjecttype_id and (str(listval[i].left_applicable_nodetypes) == 'OT' or str(listval[i].left_applicable_nodetypes) == 'OB'):
+ finaldict.update({titledict.keys()[i]:titledict.values()[i]})
+ if pt[j].id == listval[i].right_subjecttype_id and (str(listval[i].right_applicable_nodetypes)=='OT' or str(listval[i].right_applicable_nodetypes) == 'OB'):
+ finaldict.update({inverselist[i]:titledict.values()[i]})
- return finaldict.values()
+
+ return finaldict.keys()
def get_relations(self):
relation_set = {}
@@ -436,7 +450,7 @@ class Gbobject(Node):
def get_graph_json(self):
- # predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
+
g_json = {}
g_json["node_metadata"]= []
g_json["relations"]=[]
@@ -455,7 +469,7 @@ class Gbobject(Node):
- this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"expanded":"true","refType":self.reftype}
+ this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"refType":self.reftype}
g_json["node_metadata"].append(this_node)
@@ -476,7 +490,7 @@ class Gbobject(Node):
elif 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["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url()})
g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id })
@@ -492,7 +506,7 @@ class Gbobject(Node):
flag=0
- g_json["node_metadata"].append({"_id":str(item1.id),"screen_name":item1.title,"title":self.title, "url":item1.get_absolute_url(),"expanded":"false","refType":item.reftype,"inverse":item.relationtype.inverse,"flag":flag})
+ g_json["node_metadata"].append({"_id":str(item1.id),"screen_name":item1.title,"title":self.title, "url":item1.get_absolute_url(),"refType":item.reftype,"inverse":item.relationtype.inverse,"flag":flag})
g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item1.id })
@@ -507,9 +521,8 @@ class Gbobject(Node):
#print g_json
return json.dumps(g_json)
-
@property
- def get_relations1(self):
+ def get_rendered_relations(self):
"""
Returns all the relations of the nodetype
"""
@@ -533,7 +546,7 @@ class Gbobject(Node):
if each.relationtype.title==key:
fl=1
predicate_values.append(predicate)
- reltype[key]=predicate_values
+ reltype[key]=predicate_values
if fl==0:
predicate_values=predicate
reltype[relation]=predicate_values
@@ -572,12 +585,26 @@ class Gbobject(Node):
reltype[relation]=predicate_values
relations['rrelations']=reltype
return relations
+
@property
def get_rendered_nbh(self):
"""
Returns the neighbourhood of the object
"""
fields = ['title','altname','pluralform']
+ history=[]
+ version_list=self.get_ssid
+ version_list=self.get_ssid
+ if version_list:
+ length=len(version_list)
+ history_ssid=version_list[length-1]
+ history_dict=self.version_info(history_ssid)
+ history_nbh_dict=ast.literal_eval(history_dict['nbhood'])
+ #ssid_current.append(history_ssid)
+ history=history_nbh_dict['history']
+ history.append(history_ssid)
+ else:
+ history.append(0)
nbh = {}
nbh['title'] = self.title
nbh['altnames'] = self.altnames
@@ -603,8 +630,8 @@ class Gbobject(Node):
relns={}
rellft={}
relrgt={}
- if self.get_relations1:
- NTrelns=self.get_relations1
+ if self.get_rendered_relations:
+ NTrelns=self.get_rendered_relations
for key,value in NTrelns.items():
if key=="rrelations":
relrgt={}
@@ -612,9 +639,9 @@ class Gbobject(Node):
relnvalue={}
if isinstance(rgtvalue,list):
for items in rgtvalue:
- relnvalue[items]=items.get_absolute_url()
+ relnvalue[items.title]=items.get_absolute_url()
else:
- relnvalue[rgtvalue]=rgtvalue.get_absolute_url()
+ relnvalue[rgtvalue.title]=rgtvalue.get_absolute_url()
relrgt[rgtkey]=relnvalue
@@ -625,9 +652,9 @@ class Gbobject(Node):
relnvalue={}
if isinstance(lftvalue,list):
for items in lftvalue:
- relnvalue[items]=items.get_absolute_url()
+ relnvalue[items.title]=items.get_absolute_url()
else:
- relnvalue[lftvalue]=lftvalue.get_absolute_url()
+ relnvalue[lftvalue.title]=lftvalue.get_absolute_url()
rellft[lftkey]=relnvalue
@@ -637,7 +664,8 @@ class Gbobject(Node):
#get Attributes
attributes =self.get_attributes()
- nbh['attributes']=attributes
+ nbh['attributes']=attributes
+ nbh['history']=history
return nbh
@@ -738,9 +766,11 @@ class Gbobject(Node):
if self.objecttypes.count:
for each in self.objecttypes.all():
return '%s is a member of objecttype %s' % (self.title, each)
- return '%s is not a fully defined name, consider making it a member of a suitable objecttype' % (self.title)
-
+ return u'%s is not a fully defined name, consider making it a member of a suitable objecttype' % (self.title)
+ @property
+ def ref(self):
+ return eval(self.nodemodel).objects.get(id=self.id)
@models.permalink
def get_absolute_url(self):
"""Return gbobject's URL"""
@@ -753,16 +783,16 @@ class Gbobject(Node):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(Gbobject, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
+ if OBJECTAPP_VERSIONING:
+ with reversion.create_revision():
+ super(Gbobject, self).save(*args, **kwargs) # Call the "real" save() method.
+
+ def save_revert_or_merge(self, *args, **kwargs):
if OBJECTAPP_VERSIONING:
with reversion.create_revision():
super(Gbobject, self).save(*args, **kwargs) # Call the "real" save() method.
-
- super(Gbobject, self).save(*args, **kwargs) # Call the "real" save() method.
- @property
- def ref(self):
- return eval(self.nodemodel).objects.get(id=self.id)
-
-
class Meta:
"""Gbobject's Meta"""
@@ -806,12 +836,18 @@ class Process(Gbobject):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(Process, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
if OBJECTAPP_VERSIONING:
with reversion.create_revision():
- super(Process, self).save(*args, **kwargs) # Call the "real" save() method.
-
- super(Process, self).save(*args, **kwargs) # Call the "real" save() method.
-
+ super(Process, self).save(*args, **kwargs) # Call the "real" save() method.
+
+ def save_revert_or_merge(self, *args, **kwargs):
+ self.nodemodel = self.__class__.__name__
+ if OBJECTAPP_VERSIONING:
+ with reversion.create_revision():
+ super(Process, self).save(*args, **kwargs) # Call the "real" save() method.
+
class Meta:
verbose_name = _('process')
verbose_name_plural = _('processes')
@@ -851,11 +887,19 @@ class System(Gbobject):
# @reversion.create_revision()
def save(self, *args, **kwargs):
self.nodemodel = self.__class__.__name__
+ super(System, self).save(*args, **kwargs) # Call the "real" save() method.
+ self.nbhood=self.get_rendered_nbh
if OBJECTAPP_VERSIONING:
with reversion.create_revision():
super(System, self).save(*args, **kwargs) # Call the "real" save() method.
+
+ def save_revert_or_merge(self, *args, **kwargs):
+ self.nodemodel = self.__class__.__name__
+ if OBJECTAPP_VERSIONING:
+ with reversion.create_revision():
+ super(System, self).save(*args, **kwargs) # Call the "real" save() method.
- super(System, self).save(*args, **kwargs) # Call the "real" save() method.
+
def __unicode__(self):
@@ -864,13 +908,13 @@ class System(Gbobject):
if OBJECTAPP_VERSIONING == True:
if not reversion.is_registered(Process):
- reversion.register(Process, follow=["priorstate_attribute_set", "priorstate_relation_set", "poststate_attribute_set", "poststate_relation_set", "prior_nodes", "posterior_nodes"])
+ reversion.register(Process, follow=["gbobject_ptr","priorstate_attribute_set", "priorstate_relation_set", "poststate_attribute_set", "poststate_relation_set", "prior_nodes", "posterior_nodes"])
if not reversion.is_registered(System):
- reversion.register(System, follow=["systemtypes", "gbobject_set", "relation_set", "attribute_set", "process_set", "system_set", "prior_nodes", "posterior_nodes"])
+ reversion.register(System, follow=["gbobject_ptr","systemtypes", "gbobject_set", "relation_set", "attribute_set", "process_set", "system_set", "prior_nodes", "posterior_nodes"])
if not reversion.is_registered(Gbobject):
- reversion.register(Gbobject, follow=["objecttypes", "prior_nodes", "posterior_nodes"])
+ reversion.register(Gbobject, follow=["node_ptr","objecttypes", "prior_nodes", "posterior_nodes"])
moderator.register(Gbobject, GbobjectCommentModerator)
@@ -880,4 +924,4 @@ post_save.connect(ping_directories_handler, sender=Gbobject,
post_save.connect(ping_external_urls_handler, sender=Gbobject,
dispatch_uid='objectapp.gbobject.post_save.ping_external_urls')
-
+
diff --git a/objectapp/settings.py b/objectapp/settings.py
index ba6004dc..bb357e62 100644
--- a/objectapp/settings.py
+++ b/objectapp/settings.py
@@ -134,4 +134,4 @@ USE_TWITTER = getattr(settings, 'OBJECTAPP_USE_TWITTER',
bool(TWITTER_ACCESS_KEY and TWITTER_ACCESS_SECRET and \
TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET))
-OBJECTAPP_VERSIONING = False
+OBJECTAPP_VERSIONING = True
diff --git a/objectapp/static/objectapp/js/savert.js b/objectapp/static/objectapp/js/savert.js
index 549e8196..b5294cc5 100644
--- a/objectapp/static/objectapp/js/savert.js
+++ b/objectapp/static/objectapp/js/savert.js
@@ -48,7 +48,7 @@ $ = django.jQuery
absolute_url = document.getElementById("id_back_url")
url = "/objects/dynamicRelation/save/"+ left.value+"/"+rt.value+"/"+right.value+"/"
//alert(url);
- $.get(url,function(data){
+ $.get(url, function(data){
window.location.replace(absolute_url.value);
});
diff --git a/objectapp/templates/objectapp/base.html b/objectapp/templates/objectapp/base.html
index 90e061bb..b0161973 100644
--- a/objectapp/templates/objectapp/base.html
+++ b/objectapp/templates/objectapp/base.html
@@ -40,6 +40,20 @@
{% get_objecttypes %}
</div>
-->
+<div class="History">
+
+ <h3>{% trans "Versions" %}</h3>
+ <table border="1" cellspacing="0">
+
+ {% for sid in object.ref.get_ssid %}
+
+
+ <a href="/objects/display/viewhistory/{{ sid }}/{{ forloop.counter }}">{{ object.title }} {{ object.id }}.{{ forloop.counter }}</a><br>
+
+ {% endfor %}
+
+</div>
+<br>
<div class="authors">
<h3>{% trans "Authors" %}</h3>
{% get_authors %}
diff --git a/objectapp/templates/objectapp/display.html b/objectapp/templates/objectapp/display.html
new file mode 100644
index 00000000..7c920678
--- /dev/null
+++ b/objectapp/templates/objectapp/display.html
@@ -0,0 +1,609 @@
+{% load i18n comments gstudio_tags %}
+{% load gstudio_tags i18n %}
+{% get_tags as nodetype_tags %}
+{% load adminmedia grp_tags %}
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xml:lang="{{ LANGUAGE_CODE }}" lang="{{ LANGUAGE_CODE }}" version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <style type="text/css">
+ .link {
+ stroke: #ccc;
+ }
+ .nodetext {
+ #pointer-events: none;
+ font: 10px Serif;
+ font-style:italic;
+ }
+ .mainnode{
+
+ font: 15px sans-serif;
+ fill:"red";
+ border-width: 1px;
+ font-weight:bold;
+ border-color: gray;
+
+ }
+ .relnode {
+ font: 10px sans-serif;
+ font-weight:bold;
+ fill:#000;
+ }
+
+
+ .node {
+ border-width: 1px;
+ border-color: gray;
+ fill:"green";
+ font: 10px sans-serif;
+ }
+ body {
+ background-color: white;
+ display:block;
+ }
+ #chart {
+ height: 90%;
+ margin: 0 auto;
+ width: 90%;
+ display: block;
+ }
+ svg {
+ margin-left: 10%;
+ margin-right: 10%;
+ display: block;
+ position: absolute;
+ }
+
+ </style>
+ <!-- the header lines from grappelli -->
+ {% block blockbots %}
+ <meta name="robots" content="NONE,NOARCHIVE" />
+ {% endblock %} <!-- STYLESHEETS -->
+ {% block stylesheets %}
+ <link href="{% admin_media_prefix %}css/base.css" rel="stylesheet" type="text/css" />
+ {% if LANGUAGE_BIDI %}
+ <link href="{% block stylesheet_rtl %}{% admin_media_prefix %}css/rtl.css{% endblock %}" rel="stylesheet" type="text/css" />
+ {% endif %}
+ <link href="{% admin_media_prefix %}jquery/ui/css/custom-theme/jquery-ui-1.8.custom.css" rel="stylesheet" type="text/css" media="screen" title="no title" charset="utf-8" />
+ <link href="{% admin_media_prefix %}css/jquery-ui-grappelli-extensions.css" rel="stylesheet" type="text/css" />
+ {% endblock %} <!-- EXTRASTYLES -->
+ {% block extrastyle %}{% endblock %} <!-- JAVASCRIPTS -->
+ {% block javascripts %}
+ <script type="text/javascript">
+ // GLOBALS
+ var grappelli = {},
+ // TODO: klemens: drop ADMIN_URL
+ ADMIN_URL = "{% url admin:index %}",
+ MODEL_URL_ARRAY = {% get_content_types %}, DATE_FORMAT = "{% get_date_format %}", TIME_FORMAT = "{% get_time_format %}", DATETIME_FORMAT = "{% get_datetime_format %}";
+ </script>
+ <!-- jQuery, jQuery-UI -->
+ <script src="{% admin_media_prefix %}jquery/jquery-1.6.2.min.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}jquery/ui/js/jquery-ui-1.8.15.custom.min.js" type="text/javascript"></script>
+ <!-- Grappelli Main JS -->
+ <script src="{% admin_media_prefix %}js/grappelli/grappelli.js" type="text/javascript"></script>
+ <!-- Grappelli jQuery Plugins, Widgets -->
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible_group.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_timepicker.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_fk.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_m2m.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_generic.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_fk.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_m2m.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_generic.js" type="text/javascript"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery-1.5.1.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.core.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.widget.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.tabs.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.position.min.js"></script>
+
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery.ui.timepicker.js"></script>
+
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+ <script src="{{STATIC_URL}}gstudio/js/gstudio.js" type="text/javascript"></script>
+ <!-- EXTRAHEAD -->
+ {% block extrahead %}{% endblock %}
+
+ {% endblock %} <!-- the header lines from gstudio -->
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="cache-control" content="public" />
+ <meta name="robots" content="follow, all" />
+ <meta name="language" content="{{ LANGUAGE_CODE }}" />
+ <meta name="description" content="{% block meta-description %}Demonstration of the Gstudio Blog application.{% endblock %}" />
+ <meta name="keywords" content="{% block meta-keywords %}django, blog, gstudio, {{ nodetype_tags|join:", "}}{% endblock %}" />
+ <meta name="author" content="gnowgi" />
+ {% block meta %}{% endblock %}
+ <link rel="pingback" href="/xmlrpc/" />
+ <link rel="shortcut icon" href="{{ STATIC_URL }}gstudio/img/favicon.ico" />
+ <link rel="home" href="{% url gstudio_nodetype_archive_index %}" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/grappelli_skin_default.css" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen.css" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen_gstudio.css" />
+ <link rel="stylesheet" type="text/css" media="print" href="{{ STATIC_URL }}gstudio/css/print.css" />
+ <!--[if lt IE 8]>
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/ie.css" />
+ <![endif]-->
+ {% block link %}{% endblock %}
+ {% block script %}{% endblock %} <title>Gnowledge Studio - {% block title %}{% endblock %}</title>
+ </head>
+ <body id="gstudio">
+ <div class="body" >
+ <div class="content">
+ <!--
+ <div id="relation_type" class="ui-buttonset">
+ <span>Relation type:</span>
+ <input checked="checked" value="follows" type="radio" id="follows" name="radio" class="ui-helper-hidden-accessible"><label for="follows" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left" aria-pressed="false" role="button" aria-disabled="false"><span class="ui-button-text">Followers</span></label>
+ <input value="mentions" type="radio" id="mentions" name="radio" class="ui-helper-hidden-accessible"><label for="mentions" aria-pressed="true" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right ui-state-active" role="button" aria-disabled="false"><span class="ui-button-text">Mentions</span></label>
+ <input value="hashtags" type="radio" id="hashtags" name="radio"/><label for="hashtags">Shared interests</label>
+ </div>
+ -->
+ <div id="chart">
+ <svg width="960" height="700" style="opacity: 1; ">
+ </div>
+ <script type="text/javascript" src="/static/gstudio/js/jquery.min.js" ></script>
+ <script type="text/javascript" src="/static/gstudio/js/jquery-ui.js" ></script>
+ <script type="text/javascript" src="/static/gstudio/js/underscore.js" ></script>
+ <script type="text/javascript" src="/static/gstudio/js/d3.js"></script>
+ <script type="text/javascript" src="/static/gstudio/js/d3.layout.js"></script>
+ <script type="text/javascript" src="/static/gstudio/js/d3.geom.js"></script>
+ <!-- <script type="text/javascript" src="/static/gstudio/js/force.js"></script>
+
+ Javascript for Object type force graph
+ -->
+ <script type="text/javascript" >
+
+ var w = 700,
+ h = 300,
+ fill = d3.scale.category20();
+
+ var vis = d3.select("#chart")
+ .append("svg:svg")
+ .attr("width", w)
+ .attr("height", h);
+
+ vis.append("svg:g").attr("class", "edges");
+ vis.append("svg:g").attr("class", "nodes");
+
+$(function() {
+ $.ajax({
+ url: '/nodetypes/graphs/version_graph_json/{{ ssid }}',
+ //crossDomain: true,
+ dataType: 'json',
+ success : function(json) {
+
+ //var node = NID.objects.get(slug='{{ slug }}');
+ var force;
+
+ // this contains all the nodes as a dict with _id as the key
+
+ var nodes_by_id = _.reduce(json.node_metadata, function(acc, n) {
+ acc[n._id] = n;
+ return acc;
+ }, {});
+
+ var member_of = _(json.member_of).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'member_of';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var contains_subtypes = _(json.contains_subtypes).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'contains_subtypes';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+ var contains_members = _(json.contains_members).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'contains_members';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var left_subjecttype_of = _(json.left_subjecttype_of).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'left_subjecttype_of';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var subjecttype_of = _(json.subjecttype_of).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'subjecttype_of';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+ var plural = _(json.plural).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'plural';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var altnames = _(json.altnames).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'altnames';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+ var content = _(json.content).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'content';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+ var contains_members = _(json.contains_members).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'contains_members';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+
+ var type_of = _(json.type_of).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'type_of';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var right_subjecttype_of = _(json.right_subjecttype_of).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'right_subjecttype_of';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var follows_edges = _(json.is_followed_by).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'follows_edges';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+
+ var prior_nodes = _(json.prior_nodes).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'prior_node';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+ var posterior_nodes = _(json.posterior_nodes).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'posterior_node';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ var mentions_edges = _(json.is_mentioned_by).chain().map(function(e) {
+ e.source = nodes_by_id[e.from];
+ e.target = nodes_by_id[e.to];
+ e.type = 'mentions_edges';
+ return e;
+ }).filter(function(e){
+ return nodes_by_id[e.from] && nodes_by_id[e.to]
+ }).value();
+
+
+ nodes_by_id[{{ nt.id }}].x = w/2.0;
+ nodes_by_id[{{ nt.id }}].y = h/2.0;
+
+ all_edges = new Array();
+ all_edges = all_edges.concat(follows_edges, member_of, contains_members, contains_subtypes, mentions_edges, right_subjecttype_of, left_subjecttype_of, subjecttype_of, type_of,plural,altnames,contains_members,content, prior_nodes, posterior_nodes);
+ /* all_edges.concat(follows_edges);
+ all_edges.concat(member_of_metatype);
+ all_edges.concat(contains_members);
+ all_edges.concat(contains_subtypes);
+ all_edges.concat(mentions_edges);
+
+
+ document.getElementById('debugbox1').value= follows_edges; //member_of_metatype
+ document.getElementById('debugbox2').value= mentions_edges;
+ //document.getElementById('debugbox2').value= member_of_metatype;
+ document.getElementById('debugbox3').value= all_edges;
+ */
+ var force = d3.layout.force()
+ .linkStrength(0.5)
+ .charge(-2000)
+ .friction(0.7)
+ .gravity(0.7)
+ .linkDistance(13)
+ .nodes([])
+ .links([])
+ .size([w, h])
+ .start();
+
+ function update(edges){
+ // for each func
+ _.each(nodes_by_id, function(n){n.added = false});
+ // reduce the nodes list to have only those nodes for a given rel.
+ nodes = _.reduce(edges, function(acc, e) {
+ if(nodes_by_id[e.from] && !nodes_by_id[e.from].added){
+ nodes_by_id[e.from].added = true;
+ acc.push(nodes_by_id[e.from]);
+ }
+ if(nodes_by_id[e.to] && !nodes_by_id[e.to].added){
+ nodes_by_id[e.to].added = true;
+ acc.push(nodes_by_id[e.to]);
+ }
+ return acc;
+ }, []);
+
+ force.nodes(nodes);
+ force.links(edges);
+ force.start();
+
+ link = d3.select("#chart g.edges").selectAll("line.link")
+ .data(edges, function(e){return e.from + "-" + e.to + "-" + e.type});
+
+ link.enter().append("svg:line")
+ .attr("class", "link")
+ .style("stroke-width", 2 /* function(d) {
+ return Math.sqrt(d.value);
+ } */ )
+ .attr("x1", function(d) {
+ return d.source.x;
+ })
+ .attr("y1", function(d) {
+ return d.source.y;
+ })
+ .attr("x2", function(d) {
+ return d.target.x;
+ })
+ .attr("y2", function(d) {
+ return d.target.y;
+ })
+ .attr("text", function(d) {
+ return d.type;
+ })
+
+ .append("a")
+ .text(function(d) { return d.type; });
+
+
+ var node = d3.select("#chart g.nodes").selectAll("g.node").data(nodes);
+
+ var new_g = node.enter().append("svg:a")
+ .attr("class", function(d) { if (d._id=={{ nt.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else if ((d._id)<0) return "nodetext"; else return "node"; })
+ .attr("xlink:href",function(d){return d.url;})
+ .call(force.drag);
+
+
+
+
+ new_g.append("svg:circle")
+ .attr("cx", function(d) { return d.x - w/2.0 + 15; })
+ .attr("cy", function(d) { return d.y - h/2.0 + 15; })
+ .attr("r", function(d) { if (d._id=={{ nt.id }}) return 8; else if (isNaN(d._id) || (d._id)<0) return 1; else return 7 })
+ .style("fill", function color(d) { if (d._id=={{ nt.id }}) return "red"; else if (isNaN(d._id) || (d._id)<0) return "white" ; else return "green"});
+
+
+ new_g.append("svg:text")
+ .attr("class",function(d) { if (d._id=={{ nt.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else if ((d._id)<0) return "nodetext"; else return "node"; })
+ .attr("dy", 20)
+ .attr("dx", 25)
+ .attr("text-anchor",function text(d) { if (isNaN(d._id) || (d._id)<0) return "middle" ; else return "left"})
+
+// .attr("style",function text(d) { if (isNaN(d._id)) return "font-size:9.00pt;fill:#333;" ; else return "font-size:9.00pt;fill:black;"})
+
+ .text(function(d) {
+ return d.screen_name;
+ });
+
+ node.exit().remove();
+
+
+
+ force.on("tick", function() {
+
+ var x_center = $("#chart").width() / 2;
+ var y_center = $("#chart").height() / 2;
+
+ link.attr("x1", function(d) { return d.source.x; })
+ .attr("y1", function(d) { return d.source.y; })
+ .attr("x2", function(d) { return d.target.x; })
+ .attr("y2", function(d) { return d.target.y; });
+
+ node.attr("transform", function(d) { return "translate(" + (d.x-16) + "," + (d.y-16) + ")"; });
+
+ });
+ }
+
+ update(all_edges);
+ vis.style("opacity", 1e-6)
+ .transition()
+ .duration(1000)
+ .style("opacity", 1);
+
+ /* $('input#follows').change(function(){
+ update(all_edges);
+ });
+ */
+
+ /* $('input#mentions').change(function(){
+ update(all_edges);
+ }); */
+ }
+ });
+
+// $("#relation_type").buttonset();
+
+// $('input#mentions').change(function(){console.log(this)});
+// $('input#follows').change(function(){console.log(this)});
+});
+
+
+</script>
+ </div>
+</div>
+
+
+
+<div>
+ {% include "gstudio/_header.html" %}
+ <div id="breadcrumbs" class="span-24 last">
+ / {% block breadcrumbs %}{% endblock %}
+ </div>
+ <div id="body" class="span-24 last" >
+ <div id="content" class="hfeed span-16 border">
+ <h3>{% block content %}
+ {% block nodetype-content %}
+ <h2 class="nodetype-title">
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_nbh_dict.title }} {{ nt.id }}.{{ version_no }}
+ </a>
+ </h2>
+ {% with nt.html_content|safe as object_content %}
+ <b>Name:<nbsp></b> {{ ver_nbh_dict.title }} <br/>
+
+ {% if ver_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b>
+ {{ ver_nbh_dict.plural}} <br/>
+ {% endif %}
+ {% if ver_nbh_dict.altnames %}
+ <b> Alternate names:<nbsp></b>
+ {{ ver_nbh_dict.altnames}} <br/>
+ {% endif %}
+ {% if ver_nbh_dict.member_of %}
+ <b> Member of :<nbsp></b>
+
+ {% for mkey,mvalue in ver_nbh_dict.member_of.items %}
+ <a href="{{mvalue}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_nbh_dict.relations %}
+
+
+ {% for relkey,relvalue in ver_nbh_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% for relk, relv in relvalue.items %}
+ <a href="{{relv}}">{{relk}}</a>;
+ {% endfor %}<br/>
+ {% endfor %}
+
+ {% endif %}
+
+ {% if ver_nbh_dict.attributes %}
+ {% for atkey,atvalue in ver_nbh_dict.attributes.items %}
+ {% if atvalue %}
+ <b> {{atkey}}:<nbsp></b>
+
+ {% for items in atvalue %}
+ {{items}};<nbsp>
+ {% endfor %}
+ {% endif %}<br/>
+ {% endfor %}
+ {% endif %}
+ <b>Authors: <nbsp> </b>
+ {% for author in nt.authors.all %}
+ <span class="vcard author">
+ <a href="{% url gstudio_author_detail author %}" class="fn nickname url" rel="author"
+ title="{% blocktrans with author as author %}Show {{ author }} nodetypes{% endblocktrans %}">{{ author }}</a>
+ </span>{% if not forloop.last %}, {% endif %}
+ {% endfor %} <br/>
+
+
+
+
+
+ {% endwith %}
+ {% endblock %}
+ {% endblock %}
+</div>
+
+ <div id="sidebar">
+ {% block sidebar %}
+
+ <div class="History">
+
+ <h3>{% trans "Versions" %}</h3>
+
+ <form name="history" action="/objects/display/compare_history/{{ ssid }}" >
+ <table cellspacing="0" border="2">
+ <tr>
+ <td> <input type="radio" name="group1" value="{{ ssid }}.{{ version_no }}" checked >{{ nt.id }}.{{ version_no }}</input></td>
+ <td></td></tr>
+
+ {% for sid in nt.get_ssid %}
+
+ {% if sid|stringformat:"s" != ssid|stringformat:"s" %}
+ <tr>
+ <td>
+ </td>
+ <td>
+
+ <input type="radio" id="{{ sid }}"name="group2" value="{{ sid }}.{{ forloop.counter }}" >{{ nt.id }}.{{ forloop.counter }}</input>
+ </td></tr>{% endif %}
+ {% endfor %}</table>
+ <input type="submit" value="Compare" />
+ </form>
+
+
+ </div>
+
+
+ {% endblock %}
+ </div>
+
+
+ <div id="footer" class="span-24 last" style="height: 5px; display:none; top: 51px; left: 88px; width: 1364px;">
+ <p>
+ <a rel="license"
+ href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative
+ Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png"/></a> All material is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a> unless mentioned otherwise.
+ <br/>
+ Powered by <a href="http://www.djangoproject.com">Django</a>
+ and <a href="http://github.com/gnowgi/django-gstudio">Gstudio
+ {{ GSTUDIO_VERSION }}</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
+
diff --git a/objectapp/templates/objectapp/fillAT.html b/objectapp/templates/objectapp/fillAT.html
index 6a474d0d..a788c8d9 100644
--- a/objectapp/templates/objectapp/fillAT.html
+++ b/objectapp/templates/objectapp/fillAT.html
@@ -2,7 +2,7 @@
{% load i18n %}
{% block content %}
-<form action="." method="POST">
+<form action="." method="POST" enctype="multipart/form-data">
{% csrf_token %}
<b>{{ title }}</b>
diff --git a/objectapp/templates/objectapp/gbobject_detail.html b/objectapp/templates/objectapp/gbobject_detail.html
index cfe16511..e4574206 100644
--- a/objectapp/templates/objectapp/gbobject_detail.html
+++ b/objectapp/templates/objectapp/gbobject_detail.html
@@ -73,6 +73,22 @@
{% endwith %}
{% endblock %}
+
+<br/>
+<p><br/>
+<b>AddAttributes: </b>
+<input type="hidden" id="id_object" value="{{ object.title }}"/>
+{% for i in object.getattributetypes %}
+<a href="{{ get_absolute_url }}/objects/dynamicAttribute/save/{{ i }}/{{ object.title }}/">{{ i }}</a><nbsp>;
+{% endfor %}
+</p>
+<p>
+<b>Add Relations: </b>
+{% for i in object.getrelationtypes %}
+<a href=" {{ get_absolute_url }}/objects/dynamicRelation/displaymem/{{ i }}/{{ object.title }}/">{{ i }}</a><nbsp>;
+{% endfor %}
+</p>
+
{% block gbobject-widgets %}
<div class="gbobject-widgets span-16 last">
{% with object.next_gbobject as next_gbobject %}
@@ -124,25 +140,10 @@
<h3>{% trans "Similar objects" %}</h3>
{% get_similar_gbobjects 5 %}
</div>
-
+</div>
{% endblock %}
-
-<p><br/>
-<b>Add Attributes: </b>
-<input type="hidden" id="id_object" value="{{ object.title }}"/>
-{% for i in object.getattributetypes %}
-<a href="{{ get_absolute_url }}/objects/dynamicAttribute/save/{{ i }}/{{ object.title }}/">{{ i }}</a><nbsp>;
-{% endfor %}
-</p>
-<p>
-<b>Add Relations: </b>
-{% for i in object.getrelationtypes %}
-<a href=" {{ get_absolute_url }}/objects/dynamicRelation/displaymem/{{ i }}/{{ object.title }}/">{{ i }}</a><nbsp>;
-{% endfor %}
-</p>
-</div>
{% block gbobject-comments %}
<div id="comments" class="span-16 last">
<h3>{% trans "Comments" %}</h3>
diff --git a/objectapp/templates/objectapp/gbobject_list.html b/objectapp/templates/objectapp/gbobject_list.html
index 73a3adff..3bc34a8d 100644
--- a/objectapp/templates/objectapp/gbobject_list.html
+++ b/objectapp/templates/objectapp/gbobject_list.html
@@ -1,4 +1,4 @@
-{% extends "objectapp/base.html" %}
+{% extends "objectapp/version_base.html" %}
{% load i18n objectapp_tags %}
{% block meta-description %}{% trans "Latest gbobjects for" %} {% if Objecttype %}{% trans "the Objecttype" %} {{ Objecttype }}{% if Objecttype.description %}: {{ Objecttype.description|striptags|safe }}{% endif %}{% endif %}{% if tag %}{% trans "the tag" %} {{ tag }}{% endif %}{% if author %}{% trans "the author" %} {{ author }}{% endif %}{% if page_obj %}{% ifnotequal page_obj.number 1 %} {% trans "page" %} {{ page_obj.number }}{% endifnotequal %}{% endif %}{% endblock %}
diff --git a/objectapp/templates/objectapp/selectRT.html b/objectapp/templates/objectapp/selectRT.html
index 713a45cf..5ceae85e 100644
--- a/objectapp/templates/objectapp/selectRT.html
+++ b/objectapp/templates/objectapp/selectRT.html
@@ -5,7 +5,8 @@
{% block content %}
<form method="." action="POST">
{% csrf_token %}
-<b>Details of {{ gb }}</b>
+<b>{{ gb }}</b>
+<b>{{ reltit }}</b>
<!-- -------------------------------------------- -->
diff --git a/objectapp/templates/objectapp/skeleton.html b/objectapp/templates/objectapp/skeleton.html
index d04b02f4..d60b9ece 100644
--- a/objectapp/templates/objectapp/skeleton.html
+++ b/objectapp/templates/objectapp/skeleton.html
@@ -214,7 +214,10 @@ function init(a,b)
}
$(function fgraph() {
-
+neighbour_node= new Array();
+clicked_node=new Array();
+prev_node=new Array();
+neighbour_node= neighbour_node.concat({{object.id}});
$.getJSON('/nodetypes/graphs/graph_json/' + {{object.id}}, function (json1) {
metadata=json1.node_metadata;
@@ -350,26 +353,124 @@ var q = 110 + "%";
-$(window).bind('keydown',function(event){
- if(17==event.keyCode){
- new_g.on("click",function(d){
- if(d._id>0 && d.expanded=="false")
- {
- d3.select("#amazingViz").remove();
- d.expanded="true";
- $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
- new_metadata=json2.node_metadata;
- new_relations=json2.relations;
- metadata=_.union(new_metadata,metadata);
- relations=_.union(new_relations,relations);
- init(metadata,relations);
- load(d._id)
- })
-
+$(window).bind('keydown',function(event) {
+ if(event.keyCode==17){
+
+ new_g.on("click",function(d){
+
+
+
+
+ if(d._id>0 && d.expanded=="true")
+ {
+
+ $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
+ new_metadata=json2.node_metadata;
+
+ });
+
+ _.filter(new_metadata, function(e){if(e._id>0)
+ {
+ clicked_node=clicked_node.concat(e._id) ;
+ }
+ });
+
+
+ index = _.indexOf(neighbour_node , d._id);
+ prev_node=neighbour_node.slice(0,index);
+
+ neighbour_node = _.difference(neighbour_node,clicked_node) ;
+
+ neighbour_node= neighbour_node.concat(prev_node);
+ neighbour_node = _.uniq(neighbour_node);
+ metadata=[]
+ relations=[]
+ metadata1=[]
+ relations1=[]
+ for(i=0;i<(neighbour_node.length);i++)
+ {
+
+ d3.select("#amazingViz").remove();
+ g=neighbour_node[i]
+
+
+
+ $.ajax({
+ async:false,
+ url:'/nodetypes/graphs/graph_json/' + g ,
+ datatype:'json',
+ success:function (json2) {
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+ metadata=_.union(new_metadata,metadata);
+
+ relations=_.union(new_relations,relations);
+ check_Relation(metadata,relations);
+
+ }});
+
}
- });
-}
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ {m.expanded="true";}
+ else
+ {m.expanded="false";}
+ }
+
+
+ });
+
+ init(metadata,relations);
+ load({{object.id}}) ;
+
+
+
+ }
+
+
+
+
+ else if(d._id>0)
+ {
+
+ neighbour_node =neighbour_node.concat(d._id);
+
+ d3.select("#amazingViz").remove();
+
+ $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+
+ metadata=_.union(new_metadata,metadata);
+ relations=_.union(new_relations,relations);
+ check_Relation(metadata,relations);
+
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ m.expanded="true";
+ }
+
+
+ });
+
+ init(metadata,relations);
+ load({{object.id}});
+
+
+ });
+
+ }
});
+}
+
+});
+
new_g.on("click", function(d) {
@@ -429,7 +530,8 @@ $(window).bind('keydown',function(event){
.style("fill-opacity", ".2")
.style("stroke", "#666")
.style("stroke-width", "1.5px")
- .style("fill", function color(d) {var e=(d._id).charAt(0); if (d.expanded=="true") return "red"; else return "none"});
+ .style("fill", function color(d) {if (d.expanded=="true" && d.refType=="Objecttype") return "blue"; else if(d.expanded=="true" && d.refType=="Gbobject") return "red"; else return "none"});
+
@@ -467,6 +569,34 @@ $(window).bind('keydown',function(event){
}
+function check_Relation(metadata,relations)
+{
+ _.each(metadata,function(d){
+ if (d.refType=="Relation")
+ {
+ a=d.inverse;
+ if (d.flag==1)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==a
+ });
+ }
+ else if (d.flag==0)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==d.screen_name
+ });
+ }
+ }
+
+ });
+
+
+}
+
+
});
//fgraph({{object.id}});
diff --git a/objectapp/templates/objectapp/version_base.html b/objectapp/templates/objectapp/version_base.html
new file mode 100644
index 00000000..6972c9e2
--- /dev/null
+++ b/objectapp/templates/objectapp/version_base.html
@@ -0,0 +1,129 @@
+{% extends "gstudio/skeleton.html" %}
+{% load gstudio_tags i18n %}
+{% load objectapp_tags i18n %}
+
+ {% block meta %}
+ <meta name="generator" content="Objectapp {{ OBJECTAPP_VERSION }}" />
+{% endblock %}
+
+{% block link %}
+ <link rel="index" href="{% url objectapp_gbobject_archive_index %}" />
+ <link rel="EditURI" type="application/rsd+xml" href="{% url objectapp_rsd %}" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="{% url objectapp_wlwmanifest %}" />
+ <link rel="search" type="application/opensearchdescription+xml" title="Objectapp's Blog" href="{% url objectapp_opensearch %}" />
+ <link rel="alternate" type="application/rss+xml" title="{% trans "RSS Feed of latest gbobjects" %}" href="{% url objectapp_gbobject_latest_feed %}" />
+ <!-- {% get_archives_gbobjects "objectapp/tags/archives_gbobjects_link.html" %} -->
+{% endblock %}
+
+{% block breadcrumbs %}
+ {% gstudio_breadcrumbs %}
+{% endblock %}
+
+{% block sidebar %}
+ <img src="{{ STATIC_URL }}objectapp/img/rss.png" alt="?" width="20" height="" />
+ <a href="{% url objectapp_gbobject_latest_feed %}" class="feeds"><h4>Rssfeed</h4></a>
+
+<div class="search">
+ <h3>{% trans "Search" %}</h3>
+ <form method="get" id="searchform" action="{% url nodes_search %}">
+ <p>
+ <input type="text" value="{% trans "Keywords..." %}" name="pattern" id="searchbox" onfocus="this.value=''" />
+ <input type="submit" class="submitbutton" value="OK" />
+ <a title="{% trans 'You can use - to exclude words or phrases, &quot;double quotes&quot; for exact phrases and the AND/OR boolean operators combined with parenthesis for complex searchs.' %}">
+ <img src="{{ STATIC_URL }}objectapp/img/help.png" alt="?" width="14" height="14" />
+ </a>
+ </p>
+ </form>
+</div>
+<!--
+<div class="objecttypes">
+ <h3>{% trans "Objecttypes" %}</h3>
+ {% get_objecttypes %}
+</div>
+-->
+<div class="History">
+ <!-- <script type="text/javascript"> -->
+ <!-- function go_to_loc(sid) -->
+ <!-- { -->
+ <!-- window.location.href = "{{ object.get_version_url }}"+sid -->
+ <!-- } -->
+
+ <!-- </script> -->
+<!-- <h3>{% trans "Versions" %}</h3> -->
+<!-- {% for sid in object.get_ssid reversed %} -->
+<!-- <input type="radio" name="group1" value="{{ sid }}"><a href="{{ object.get_version_url }}{{ sid }}">{{ sid }}</a></input>&nbsp;&nbsp; -->
+<!-- <input type="radio" name="group2" value="{{ sid }}">{{ sid }}</input> -->
+<!-- <br> -->
+<!-- {% endfor %} -->
+<!-- <br> -->
+<!-- <input type="submit" value="Compare" /> -->
+<!-- </div> -->
+<!-- <br> -->
+
+<div class="authors">
+ <h3>{% trans "Authors" %}</h3>
+ {% get_authors %}
+</div>
+<div class="calendar">
+ <h3>{% trans "Calendar" %}</h3>
+ {% get_calendar_gbobjects %}
+</div>
+<div class="tags">
+ <h3>{% trans "Tags" %}</h3>
+ {% get_tag_cloud %}
+</div>
+<div class="recents">
+ <h3>{% trans "Recent gbobjects" %}</h3>
+ {% get_recent_gbobjects 5 %}
+</div>
+<div class="comments">
+ <h3>{% trans "Recent comments" %}</h3>
+ {% get_recent_comments 5 %}
+</div>
+<div class="linkbacks">
+ <h3>{% trans "Recent linkbacks" %}</h3>
+ {% get_recent_linkbacks 5 %}
+</div>
+<div class="randoms">
+ <h3>{% trans "Random gbobjects" %}</h3>
+ {% get_random_gbobjects 5 %}
+</div>
+<div class="populars">
+ <h3>{% trans "Popular gbobjects" %}</h3>
+ {% get_popular_gbobjects 5 %}
+</div>
+<div class="archives">
+ <h3>{% trans "Archives" %}</h3>
+ {% get_archives_gbobjects_tree %}
+</div>
+{% if user.is_authenticated %}
+<div class="tools">
+ <h3>{% trans "Tools" %}</h3>
+ <ul>
+ {% if perms.objectapp %}
+ <li>
+ <a href="{% url admin:app_list "objectapp" %}" title="{% trans "Dashboard" %}">
+ {% trans "Dashboard" %}
+ </a>
+ </li>
+ {% endif %}
+ {% if perms.objectapp.add_gbobject %}
+ <li>
+ <a href="{% url admin:objectapp_gbobject_add %}" title="{% trans "Post an gbobject" %}">
+ {% trans "Post an gbobject" %}
+ </a>
+ </li>
+ {% endif %}
+ {% block admin_tools %}
+ {% endblock %}
+ <li>
+ <a href="{% url admin:logout %}" title="{% trans "Log out" %}">
+ {% trans "Log out" %}
+ </a>
+ </li>
+ </ul>
+</div>
+{% endif %}
+{% endblock %}
+
+
diff --git a/objectapp/templates/objectapp/version_diff.html b/objectapp/templates/objectapp/version_diff.html
new file mode 100644
index 00000000..a552b5c9
--- /dev/null
+++ b/objectapp/templates/objectapp/version_diff.html
@@ -0,0 +1,262 @@
+
+{% load i18n comments gstudio_tags %}
+{% load gstudio_tags i18n %}
+{% get_tags as nodetype_tags %}
+{% load adminmedia grp_tags %}
+
+
+{% load gstudio_tags i18n %}
+{% get_tags as nodetype_tags %}
+{% load adminmedia grp_tags %}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xml:lang="{{ LANGUAGE_CODE }}" lang="{{ LANGUAGE_CODE }}" version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <style type="text/css">
+ body {
+ background-color: white;
+ display:block;
+ }
+ .content
+ {
+ }
+ .content1
+ {
+ }
+ </style>
+ {% block blockbots %}
+ <meta name="robots" content="NONE,NOARCHIVE" />
+ {% endblock %} <!-- STYLESHEETS -->
+ {% block stylesheets %}
+ <link href="{% admin_media_prefix %}css/base.css" rel="stylesheet" type="text/css" />
+ {% if LANGUAGE_BIDI %}
+ <link href="{% block stylesheet_rtl %}{% admin_media_prefix %}css/rtl.css{% endblock %}" rel="stylesheet" type="text/css" />
+ {% endif %}
+ <link href="{% admin_media_prefix %}jquery/ui/css/custom-theme/jquery-ui-1.8.custom.css" rel="stylesheet" type="text/css" media="screen" title="no title" charset="utf-8" />
+ <link href="{% admin_media_prefix %}css/jquery-ui-grappelli-extensions.css" rel="stylesheet" type="text/css" />
+ {% endblock %} <!-- EXTRASTYLES -->
+ {% block extrastyle %}{% endblock %} <!-- JAVASCRIPTS -->
+ {% block javascripts %}
+ <script type="text/javascript">
+ // GLOBALS
+ var grappelli = {},
+ // TODO: klemens: drop ADMIN_URL
+ ADMIN_URL = "{% url admin:index %}",
+ MODEL_URL_ARRAY = {% get_content_types %}, DATE_FORMAT = "{% get_date_format %}", TIME_FORMAT = "{% get_time_format %}", DATETIME_FORMAT = "{% get_datetime_format %}";
+ </script>
+ <!-- jQuery, jQuery-UI -->
+ <script src="{% admin_media_prefix %}jquery/jquery-1.6.2.min.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}jquery/ui/js/jquery-ui-1.8.15.custom.min.js" type="text/javascript"></script>
+ <!-- Grappelli Main JS -->
+ <script src="{% admin_media_prefix %}js/grappelli/grappelli.js" type="text/javascript"></script>
+ <!-- Grappelli jQuery Plugins, Widgets -->
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible_group.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_timepicker.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_fk.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_m2m.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_generic.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_fk.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_m2m.js" type="text/javascript"></script>
+ <script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_generic.js" type="text/javascript"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery-1.5.1.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.core.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.widget.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.tabs.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.position.min.js"></script>
+
+ <script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery.ui.timepicker.js"></script>
+
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+ <script src="{{STATIC_URL}}gstudio/js/gstudio.js" type="text/javascript"></script>
+ <!-- EXTRAHEAD -->
+ {% block extrahead %}{% endblock %}
+
+ {% endblock %}
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="cache-control" content="public" />
+ <meta name="robots" content="follow, all" />
+ <meta name="language" content="{{ LANGUAGE_CODE }}" />
+ <meta name="description" content="{% block meta-description %}Demonstration of the Gstudio Blog application.{% endblock %}" />
+ <meta name="keywords" content="{% block meta-keywords %}django, blog, gstudio, {{ nodetype_tags|join:", "}}{% endblock %}" />
+ <meta name="author" content="gnowgi" />
+ {% block meta %}{% endblock %}
+ <link rel="pingback" href="/xmlrpc/" />
+ <link rel="shortcut icon" href="{{ STATIC_URL }}gstudio/img/favicon.ico" />
+ <link rel="home" href="{% url gstudio_nodetype_archive_index %}" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/grappelli_skin_default.css" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen.css" />
+ <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen_gstudio.css" />
+ <link rel="stylesheet" type="text/css" media="print" href="{{ STATIC_URL }}gstudio/css/print.css" />
+ {% block link %}{% endblock %}
+ {% block script %}{% endblock %} <title>Gnowledge Studio - {% block title %}{% endblock %}</title>
+ </head>
+ <body id="gstudio">
+
+
+
+
+
+
+ {% include "gstudio/_header.html" %}
+ <div id="breadcrumbs" class="span-24 last">
+ / {% block breadcrumbs %}{% endblock %}
+ </div>
+ <!-- <div id="body" class="span-24 last" > -->
+ <table border="0" >
+ <tr><td>
+
+ <h3>{% block content %}
+ {% block nodetype-content %}
+ <h2 class="nodetype-title">
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_new_dict.title }} {{ nt.id }}.{{ version_no1 }}
+ </a>
+ </h2>
+
+ {% with nt.html_content|safe as object_content %}<br>
+
+ <b>Name:<nbsp></b> {{ ver_new_nbh_dict.title }} <br/>
+
+ {% if ver_new_nbh_dict.plural or ver_old_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b>
+ {{ ver_new_nbh_dict.plural}} <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.altnames or ver_old_nbh_dict.altnames%}
+ <b> Alternate names:<nbsp></b>
+ {{ ver_new_nbh_dict.altnames}} <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.member_of or ver_old_nbh_dict.member_of %}
+ <b> Member of :<nbsp></b>
+
+ {% for mkey,mvalue in ver_new_nbh_dict.member_of.items %}
+ <a href="{{mvalue}}">{{mkey}}</a>;
+ {% endfor %}<br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.relations or ver_old_nbh_dict.relations %}
+
+ {% for relkey,relvalue in ver_new_nbh_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% for relk, relv in relvalue.items %}
+ <a href="{{relv}}">{{relk}}</a>;
+ {% endfor %}<br/>
+ {% endfor %}
+
+ {% endif %}
+
+ {% if ver_new_nbh_dict.attributes or ver_old_nbh_dict.attributes%}
+ {% for atkey,atvalue in ver_new_nbh_dict.attributes.items %}
+ {% if atvalue %}
+ <b> {{atkey}}:<nbsp></b>
+
+ {% for items in atvalue %}
+ {{items}};<nbsp>
+ {% endfor %}
+ {% endif %}<br/>
+ {% endfor %}
+ {% endif %}
+ {% if ver_new_nbh_dict.content or ver_old_nbh_dict.content %}
+ <b> Content:<nbsp></b>{{ ver_new_nbh_dict }} <br/>
+ {% endif %}
+
+
+ {% endwith %}
+ {% endblock %}
+ {% endblock %}
+
+ </td>
+ <td>
+
+ <h3>{% block content1 %}
+ {% block nodetype-content1 %}
+ <h2 class="nodetype-title">
+ <a href="{{ nt.get_absolute_url }}" title="{{ nt.title }}" rel="bookmark">{{ ver_old_dict.title }} {{ nt.id }}.{{ version_no2 }}
+ </a>
+ </h2> <br>
+ {% with nt.html_content|safe as object_content %}
+
+ <b>Name:<nbsp></b>{% autoescape off %}
+ {{ compare_dict.title }}
+ {% endautoescape %}<br>
+ {% if ver_old_nbh_dict.plural or ver_new_nbh_dict.plural %}
+ <b> Plural Name:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.plural }}
+ {% endautoescape %} <br/>
+ {% endif %}
+ {% if ver_old_nbh_dict.altnames or ver_new_nbh_dict.altnames %}
+ <b> Alternate names:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.altnames }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+ {% if ver_new_nbh_dict.member_of or ver_old_nbh_dict.member_of %}
+ <b> Member of:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.member_of }}
+ {% endautoescape %}
+ <br/>
+ {% endif %}
+
+ {% if ver_new_nbh_dict.relations or ver_old_nbh_dict.relations %}
+ {% for relkey,relvalue in compare_dict.relations.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% autoescape off %}
+
+
+ {{ relvalue }}
+
+
+ {% endautoescape %}
+ <br/>
+ {% endfor %}
+
+ {% endif %}
+
+ {% if ver_old_nbh_dict.attributes or ver_new_nbh_dict.attributes %}
+ {% for relkey,revalue in compare_dict.attributes.items %}
+ <b>{{relkey}}:<nbsp></b>
+ {% autoescape off %}
+
+
+ {{ revalue }}
+
+
+ {% endautoescape %}
+ <br/>
+ {% endfor %}
+
+ {% endif %}
+
+
+ {% if ver_new_nbh_dict.ats or ver_old_nbh_dict.ats %}
+
+
+ <b>Subjecttype of:<nbsp> </b> {% autoescape off %}
+ {{ compare_dict.ats }}
+ {% endautoescape %}<br>
+ {% endif %}
+ {% if ver_new_nbh_dict.content or ver_old_nbh_dict.content %}
+ <b> Content:<nbsp></b> {% autoescape off %}
+ {{ compare_dict.content }}
+ {% endautoescape %} <br/>
+ {% endif %}
+ {% endwith %}
+ {% endblock %}
+ {% endblock %}
+<br>
+</td></tr>
+<tr><td>
+<form method="get" action="/objects/display/merge/{{ ssid1 }}/{{ ssid2 }}">
+<input type="submit" value="Merge {{ nt.id }}.{{ version_no1 }} with {{ nt.id }}.{{ version_no2 }}" id="merge1" name="left" ></input></td>
+<td><input type="submit" value="Merge {{ nt.id }}.{{ version_no2 }} with {{ nt.id }}.{{ version_no1 }}" id="merge2" name="right"></input></td></form>
+</tr>
+<tr><td>
+<form method="get" action="/objects/display/revert" >
+<input type="submit" value="Revert" name="{{ ssid1 }}"></input></td>
+<td><input type="submit" value="Revert" name="{{ ssid2 }}"></input></td>
+</form></tr>
+</table>
+</body>
+</html>
+
+
+
+
diff --git a/objectapp/urls/__init__.py b/objectapp/urls/__init__.py
index 1406f49c..12cffc5e 100644
--- a/objectapp/urls/__init__.py
+++ b/objectapp/urls/__init__.py
@@ -78,6 +78,7 @@ urlpatterns = patterns(
url(r'^trackback/', include('objectapp.urls.trackback')),
url(r'^discussions/', include('objectapp.urls.discussions')),
url(r'^add/', include('objectapp.urls.add')),
+ url(r'^display/',include('objectapp.urls.history')),
url(r'^', include('objectapp.urls.quick_gbobject')),
url(r'^', include('objectapp.urls.capabilities')),
url(r'^', include('objectapp.urls.gbobjects')),
diff --git a/objectapp/urls/history.py b/objectapp/urls/history.py
new file mode 100644
index 00000000..83e53452
--- /dev/null
+++ b/objectapp/urls/history.py
@@ -0,0 +1,10 @@
+"""Urls for Gstudio forms"""
+from django.conf.urls.defaults import url
+from django.conf.urls.defaults import patterns
+
+urlpatterns = patterns('objectapp.views.history',
+ url(r'^viewhistory/(?P<ssid>\d+)/(?P<version_no>\d+)/$', 'history',
+ name='gstudio_history'),
+ url(r'^compare_history/(?P<ssid>\d+)/$','compare_history'),
+ url(r'^merge/(?P<ssid1>\d+)/(?P<ssid2>\d+)/$','merge_version'),
+ url(r'^revert/$','revert_version'),)
diff --git a/objectapp/views/dynamicAT.py b/objectapp/views/dynamicAT.py
index aec02fc2..81d442f0 100644
--- a/objectapp/views/dynamicAT.py
+++ b/objectapp/views/dynamicAT.py
@@ -11,14 +11,15 @@ from objectapp.forms import *
from gstudio.models import *
from gstudio.admin.forms import *
+
+
def MakeForm(model_cls, *args, **kwargs):
class ContextForm(ModelForm):
class Meta:
model = model_cls.values()[0]
fields = ('value',)
- def __init__(self, *args, **kwargs):
- super(ContextForm,self).__init__(*args, **kwargs)
-
+ # def __init__(self, *args, **kwargs):
+ # super(ContextForm,self).__init__(*args, **kwargs)
return ContextForm(*args, **kwargs)
@@ -27,25 +28,53 @@ def dynamic_save(request, attit, memtit):
savedict = {}
memtit = NID.objects.get(title = str(memtit))
name = memtit.ref
+
absolute_url_node = name.get_absolute_url()
+
at = Attributetype.objects.get(title = str(attit))
dt = str(at.get_dataType_display())
MyModel = eval('Attribute'+dt)
+
+ print getattr(models , dt)
+
+ list1 = []
+
rdict.update({str(at.title):MyModel})
+
+ print "rdict",str(rdict)
+ print 'dt ',dt
+
if request.method == 'POST':
- form = MakeForm(rdict,request.POST)
- if form.is_valid():
- value = form.cleaned_data['value']
- savedict = {'title':value,'slug':value,'svalue':value,'subject':memtit, 'attributetype':at,'value':value}
- att = MyModel.objects.create(**savedict)
- att.save()
- return HttpResponseRedirect(absolute_url_node)
+ form = MakeForm(rdict,request.POST,request.FILES)
+ try:
+ if form.is_valid():
+ value = form.cleaned_data['value']
+
+
+ if Attribute.objects.filter(subject = memtit.id , attributetype = at.id):
+ att = Attribute.objects.get(subject = memtit.id, attributetype = at.id)
+ att.delete()
+ del att
+ savedict = {'title':str(value),'slug':str(value),'svalue':str(value),'subject':memtit, 'attributetype':at,'value':str(value)}
+ att = MyModel.objects.create(**savedict)
+ att.save()
+ print 'savedict',str(savedict)
+ return HttpResponseRedirect(absolute_url_node)
+ else:
+ savedict = {'title':str(value),'slug':str(value),'svalue':str(value),'subject':memtit, 'attributetype':at,'value':str(value)}
+ att = MyModel.objects.create(**savedict)
+ att.save()
+ print 'savedict',str(savedict)
+ return HttpResponseRedirect(absolute_url_node)
+ except:
+ raise Http404()
else:
form = MakeForm(rdict)
+
template = "objectapp/fillAT.html"
- context = RequestContext(request,{'form' : form,'title':str(attit), 'absolute_url_node':absolute_url_node})
+ context = RequestContext(request,{'form' : form,'title':str(attit), 'absolute_url_node':absolute_url_node, 'datatype':dt})
return render_to_response(template,context)
diff --git a/objectapp/views/dynamicRT.py b/objectapp/views/dynamicRT.py
index 78370b54..f85fe53e 100644
--- a/objectapp/views/dynamicRT.py
+++ b/objectapp/views/dynamicRT.py
@@ -8,96 +8,181 @@ from django.forms import ModelForm
from gstudio.models import *
from objectapp.models import *
-
def context_member(request,reltit , memtit):
+ member = []
+ subtype = []
+ subtypemember = []
+ finaldict = {}
+ nt = []
+ parenttype = []
+
+#-------------------------------------------------------------
+ if Objecttype.objects.filter(title = str(memtit)):
+ ot = Objecttype.objects.get(title = str(memtit))
+ absolute_url_node = ot.get_absolute_url()
+ elif Gbobject.objects.filter(title = str(memtit)):
+ ot = Gbobject.objects.get(title = str(memtit))
+ absolute_url_node = ot.get_absolute_url()
+#--------------------------------------------------------------
+
if Relationtype.objects.filter(title = str(reltit)):
r =Relationtype.objects.get(title = str(reltit))
+ role = r.left_subjecttype.ref
+ roletype = str(r.left_applicable_nodetypes)
+ print "Original is left role of relation"
+ newrole = r.right_subjecttype.ref
+ newroletype = str(r.right_applicable_nodetypes)
+ print 'original ' ,str(role)
+ print 'newrole (i.e right)', str(newrole)
+
else:
r = Relationtype.objects.get(inverse = str(reltit))
+ role = r.right_subjecttype.ref
+ roletype = str(r.right_applicable_nodetypes)
+ print "Original is right role of relation"
+ newrole = r.left_subjecttype.ref
+ newroletype = str(r.left_applicable_nodetypes)
+ print 'original ' ,str(role)
+ print 'newrole (i.e left)', str(newrole)
- gbdict = {}
- otmem=[]
- childpt = []
- childmem = []
- finaldict={}
- memdict = {} #otmem + childmem
-
- if Objecttype.objects.filter(title = str(memtit)):
- flag = 1
- name = Objecttype.objects.get(title = str(memtit))
- #get members of name
- for i in name.get_members:
- otmem.append(i)
-
- #get children of name
- for i in name.children.all():
- childpt.append(Objecttype.objects.get(title = NID.objects.get(title = i.title)))
- #get child's members
- for i in childpt:
- childmem = i.get_members
- for i in otmem:
- memdict.update({i.id:str(i.title)})
- for i in childmem:
- memdict.update({i.id:str(i.title)})
- elif Gbobject.objects.filter(title = str(memtit)):
- flag = 0
- nt = []
- name = Gbobject.objects.get(title = str(memtit))
- nt = name.objecttypes.all() #nodetype
- pt = []
+#---------------------------------------------------------------------
+
+ if newrole.reftype == 'Objecttype' and newroletype == 'OT':
+ print "Objecttype and OT"
+ for i in newrole.get_members:
+ member.append(i)
+
+ for i in member:
+ finaldict.update({i.id:str(i.title)})
+
+ # for i in newrole.get_children():
+ # subtype.append(i.ref)
+ for i in newrole.get_descendants():
+ subtype.append(i.ref)
+
+ for i in subtype:
+ finaldict.update({i.id:str(i.title)})
+
+ for i in subtype:
+ subtypemember.append(i.get_members)
+
+ subtypemember = [num for elem in subtypemember for num in elem]
+
+ for i in subtypemember:
+ finaldict.update({i.id:str(i.title)})
+
+ finaldict.update({newrole.id:str(newrole.title)})
+
+ elif newrole.reftype == 'Gbobject' and newroletype == 'OB':
+ print "Gbobject and OB"
+ nt = newrole.objecttypes.all()
+
for i in nt:
- pt.append(Objecttype.objects.get(title = NID.objects.get(title = i.title)))
- for i in pt:
- otmem.append(i.get_members)
+ parenttype.append(i.ref)
+
+ for i in parenttype:
+ member.append(i.get_members)
+
+ member = [num for elem in member for num in elem]
+ subtypent = []
- otmem = [num for elem in otmem for num in elem]
- gbdict.update({name.id :str(name.title)})
+ # for i in parenttype:
+ # subtypent.append(i.get_children())
+ # subtypent = [num for elem in subtypent for num in elem]
-#-----------------------------------------------------------------------
-
- memid = name.id
- if r.left_subjecttype_id == memid:
- nodetype = str(r.right_applicable_nodetypes)
- print"equal to left"
- else:
- print"equal to right"
- nodetype = str(r.left_applicable_nodetypes)
+ # for i in subtypent:
+ # subtype.append(i.ref)
+ # subtype = [num for elem in subtype for num in elem]
+
+ for i in parenttype:
+ subtypent.append(i.get_descendants())
-#------------------------------------------------------------------------
+ for i in subtypent:
+ subtype.append(i.ref)
- if nodetype=="OB" and flag==0:# gb itself
- finaldict=gbdict
- for i in otmem:
+ for i in subtype:
+ subtypemember.append(i.get_members)
+ subtypemember = [num for elem in subtypemember for num in elem]
+
+
+ for i in member:
finaldict.update({i.id:str(i.title)})
- print "nodetype OB and Flag 0"
- elif nodetype=="OT" and flag==1:#name,name ka child ,member of both
- print "nodetype OT and Flag 1"
- finaldict.update({name.id:str(name.title)})#ot itself
- for i in childpt:#otchild
+ for i in subtypemember:
finaldict.update({i.id:str(i.title)})
- for i in range(len(memdict)):#member of both
- finaldict.update({memdict.keys()[i]:memdict.values()[i]})
-
- elif nodetype=="OT" and flag==0: #name,name ka ot ,ot ka mem
- print "nodetype OT and Flag 0"
- finaldict.update({name.id:str(name.title)})
- for i in name.objecttypes.all():
- finaldict.update({i.id : str(i.title)})
- for i in otmem:
+
+ elif newrole.reftype == 'Objecttype' and newroletype == 'OB':
+ print "Objecttype and OB"
+ for i in newrole.get_members:
+ member.append(i)
+
+ for i in member:
finaldict.update({i.id:str(i.title)})
- elif nodetype=="OB" and flag==1: #child of both
- print "nodetype OB and Flag 1"
- finaldict=memdict
-
- absolute_url_node = name.get_absolute_url()
- print finaldict
-
+ # for i in newrole.get_children():
+ # subtype.append(i.ref)
+
+ for i in newrole.get_descendants():
+ subtype.append(i.ref)
+ for i in subtype:
+ subtypemember.append(i.get_members)
+
+ subtypemember = [num for elem in subtypemember for num in elem]
+
+ for i in subtypemember:
+ finaldict.update({i.id:str(i.title)})
+
+ print 'member',str(member)
+ print 'subtype', str(subtype)
+ print 'subtypemember', str(subtypemember)
+ elif newrole.reftype == 'Gbobject' and newroletype == 'OT':
+ print "Gbobject and OT"
+ nt = newrole.objecttypes.all()
+ for i in nt:
+ parenttype.append(i.ref)
+
+ for i in parenttype:
+ member.append(i.get_members)
+
+ member = [num for elem in member for num in elem]
+ subtypent = []
+
+ # for i in parenttype:
+ # subtypent.append(i.get_children())
+ # subtypent = [num for elem in subtypent for num in elem]
+
+ # for i in subtypent:
+ # subtype.append(i.ref)
+ # subtype = [num for elem in subtype for num in elem]
+ for i in parenttype:
+ subtypent.append(i.get_descendants())
+
+ for i in subtypent:
+ subtype.append(i.ref)
+
+ for i in subtype:
+ subtypemember.append(i.get_members)
+ subtypemember = [num for elem in subtypemember for num in elem]
+
+
+ for i in subtype:
+ finaldict.update({i.id:str(i.title)})
+
+ for i in parenttype:
+ finaldict.update({i.id:str(i.title)})
+
+ for i in member:
+ finaldict.update({i.id:str(i.title)})
+
+ for i in subtypemember:
+ finaldict.update({i.id:str(i.title)})
+
+
+ print 'absolute_url_node', str(absolute_url_node)
template="objectapp/selectRT.html"
- context = RequestContext(request,{'finaldict':finaldict,'gb':name,'reltit':reltit, 'absolute_url_node': absolute_url_node})
+ context = RequestContext(request,{'finaldict':finaldict,'gb':memtit,'reltit':reltit, 'absolute_url_node': absolute_url_node})
return render_to_response(template,context)
@@ -107,37 +192,74 @@ def context_save(request,leftmem, reltype, rightmem):
reltype = str(reltype)
rightmem = str(rightmem)
+
+
+ print 'leftmem :', leftmem, 'rightmem :', rightmem
+ pt = []
+ nt = []
+
left = NID.objects.get(title = leftmem)
+ print 'leftid', str(left.id)
right = NID.objects.get(title = rightmem)
-
+ print 'rightid', str(right.id)
+
if Relationtype.objects.filter(title=reltype):
relation = Relationtype.objects.get(title = reltype)
else:
relation = Relationtype.objects.get(inverse = reltype)
rightrole = relation.right_subjecttype_id
+ r = relation.right_subjecttype.ref
+ print 'rightrole', str(r)
leftrole = relation.left_subjecttype_id
+ l=relation.left_subjecttype.ref
+ print 'leftrole', str(l)
#-----------------------------------------------------------------------
flag = 1
if Objecttype.objects.filter(title = leftmem):
- if left.id == leftrole :
- flag = 0
- print "Objecttype flag = 0 "
- else:
- print "Objecttype flag = 1 "
+
+ obj = Objecttype.objects.get(title = leftmem)
+ print 'OT', str(obj)
+
+ while obj.parent:
+ pt.append((obj.parent).ref)
+ obj=obj.parent
+ for i in range(len(pt)):
+ if pt[i].id == leftrole :
+ flag = 0
+ print "Objecttype flag = 0 "
+ break
+ else:
+ print "Objecttype flag = 1 "
+
elif Gbobject.objects.filter(title = leftmem):
gb = Gbobject.objects.get(title = leftmem)
- pt = gb.objecttypes.all()
+ print 'Ob', str(gb)
+ nt = gb.objecttypes.all()
+ print 'nt ', str(nt)
+
+
+ for i in range(len(nt)):
+ pt.append(nt[i].ref)
+ obj = nt[i].ref
+ while obj.parent:
+ pt.append(obj.parent.ref)
+ obj = obj.parent
+
+ print 'pt ', str(pt)
for i in range(len(pt)):
if left.id == leftrole or pt[i].id == leftrole:
flag = 0
print "Object flag = 0"
+ break
else:
print "Object flag = 1"
-
+ print 'pt:',str(pt)
#-----------------------------------------------------------------------------------
+
if flag == 0:
+ print 'left_subject_id', l
savedict = {'title':relation, 'slug':relation, 'left_subject_id':left.id, 'right_subject_id':right.id, 'relationtype_id':relation.id, 'left_subject_scope':' ', 'right_subject_scope':' ', 'relationtype_scope':' ' }
else:
savedict = {'title':relation, 'slug':relation, 'left_subject_id':right.id, 'right_subject_id':left.id, 'relationtype_id':relation.id, 'left_subject_scope':' ', 'right_subject_scope':' ', 'relationtype_scope':' '}
@@ -152,6 +274,6 @@ def context_save(request,leftmem, reltype, rightmem):
#return savedict
except IntegrityError: #Exception raised when the relational integrity of the database is affected, e.g. a foreign key check fails, duplicate key, etc.
- raise Http404()
+ return HttpResponseRedirect("/nodetypes/")
#pass
diff --git a/objectapp/views/history.py b/objectapp/views/history.py
new file mode 100644
index 00000000..e5e2ff1f
--- /dev/null
+++ b/objectapp/views/history.py
@@ -0,0 +1,436 @@
+from django.http import *
+from reversion.models import *
+from gstudio.models import *
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+from django.views.generic.date_based import object_detail
+from reversion.helpers import *
+import pprint
+from gstudio.models import *
+from reversion.models import *
+from gstudio.views.decorators import protect_nodetype
+from gstudio.views.decorators import update_queryset
+import ast
+from objectapp.models import *
+
+def history(request,ssid,version_no):
+ # iden=request.GET["id"]
+ nt1=Version.objects.get(id=ssid)
+ nt=nt1.object.ref
+ ver_dict=nt.version_info(ssid)
+ ver_nbh=ver_dict['nbhood']
+ ver_nbh_dict=ast.literal_eval(ver_nbh)
+ content=ver_dict['content']
+ content=content[3:-4]
+ ver_nbh_dict['content']=content
+
+ variables = RequestContext(request,{'ver_nbh_dict':ver_nbh_dict ,'nt':nt,'ssid':ssid,'version_no':version_no})
+ template="objectapp/display.html"
+ return render_to_response(template,variables)
+
+def get_version_counter(value):
+ counter1=str(value)
+ index=counter1.rfind(".")
+ counter1=counter1[index+1:]
+ version_no=int(counter1)
+ return version_no
+
+
+def get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,field):
+ ver_new=""
+ ver_old=""
+ diffs=""
+ ver_new_dict={}
+ ver_old_dict={}
+
+ if ver_new_nbh_dict[field] or ver_old_nbh_dict[field]:
+# if isinstance(ver_new_nbh_dict[field],dict):
+ for each in ver_new_nbh_dict[field]:
+ #ver_new=ver_new_dict[each]=
+ ver_new+=str(each)+","
+ ver_new=ver_new[0:-1]
+ for each in ver_old_nbh_dict[field]:
+ ver_old+=str(each)+","
+ ver_old=ver_old[0:-1]
+ diffs = dmp.diff_main(ver_new, ver_old)
+ return diffs
+
+def get_diff_from_nested_dict(ver_new_nbh_dict,ver_old_nbh_dict,field):
+
+
+ return compare
+def compare_history(request,ssid):
+ ssid1=ssid
+
+ version_counter1=request.GET["group1"]
+ version_no1=get_version_counter(version_counter1)
+ version_counter2=request.GET["group2"]
+ version_no2=get_version_counter(version_counter2)
+ counter2=float(version_counter2)
+ ssid2=int(counter2)
+
+ ver_obj=Version.objects.get(id=ssid1)
+ ot=ver_obj.object.ref
+ pp=pprint.PrettyPrinter(indent=4)
+
+ ver_new_dict=ot.version_info(ssid1)
+ content=str(ver_new_dict['content'])
+ content=content[3:-4]
+ ver_new_dict['content']=content
+
+ ver_old_dict=ot.version_info(ssid2)
+ content=str(ver_old_dict['content'])
+ content=content[3:-4]
+ ver_old_dict['content']=content
+
+ ver_new_nbh=ver_new_dict['nbhood']
+ ver_new_nbh_dict=ast.literal_eval(ver_new_nbh)
+
+ ver_old_nbh=ver_old_dict['nbhood']
+ ver_old_nbh_dict=ast.literal_eval(ver_old_nbh)
+
+ compare_dict={}
+ for each in ver_new_nbh_dict:
+ ver_new=""
+ ver_old=""
+ if each=='altnames':
+ if ver_new_nbh_dict['altnames'] or ver_old_nbh_dict['altnames']:
+ ver_new+=ver_new_nbh_dict['altnames']
+ ver_old+=ver_old_nbh_dict['altnames']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['altnames']=dmp.diff_prettyHtml(diffs)
+
+
+ elif each=='title':
+ if ver_new_nbh_dict['title'] or ver_old_nbh_dict['title']:
+ ver_new+=ver_new_nbh_dict['title']
+ ver_old+=ver_old_nbh_dict['title']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['title']=dmp.diff_prettyHtml(diffs)
+ elif each =='plural':
+ if ver_new_nbh_dict['plural'] or ver_old_nbh_dict['plural']:
+ ver_new+=ver_new_nbh_dict['plural']
+ ver_old+=ver_old_nbh_dict['plural']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['plural']=dmp.diff_prettyHtml(diffs)
+ elif each =='member_of':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['member_of']=dmp.diff_prettyHtml(diffs)
+ elif each =='leftroles':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['leftroles']=dmp.diff_prettyHtml(diffs)
+ elif each =='ats':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['ats']=dmp.diff_prettyHtml(diffs)
+ elif each =='rightroles':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['rightroles']=dmp.diff_prettyHtml(diffs)
+ elif each =='attributes':
+
+ compare_rel_new={}
+ compare_rel_old={}
+ compare={}
+ for rkey,rvalue in ver_new_nbh_dict[each].items():
+ ver_new=""
+ for relvalue in rvalue:
+ ver_new+=str(relvalue) + ","
+ ver_new=ver_new[0:-1]
+ compare_rel_new[str(rkey)]=ver_new
+ for rkey,rvalue in ver_old_nbh_dict[each].items():
+ ver_old=""
+ for rv in rvalue:
+ ver_old+=str(rv) + ","
+ ver_old=ver_old[0:-1]
+ compare_rel_old[str(rkey)]=ver_old
+ if len(compare_rel_new) >= len(compare_rel_old):
+ for rkey,rvalue in compare_rel_new.items():
+ if compare_rel_old.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+
+ else:
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],"")
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ for rkey,rvalue in compare_rel_old.items():
+ if compare_rel_new.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ diffs=dmp.diff_main("",compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ compare_dict['attributes']=compare
+
+ elif each =='relations':
+ ver_new=""
+ ver_old=""
+ compare_rel_new={}
+ compare_rel_old={}
+ compare={}
+ for rkey,rvalue in ver_new_nbh_dict[each].items():
+ ver_new=""
+ for relk,relvalue in rvalue.items():
+ ver_new+=str(relk) + ","
+ ver_new=ver_new[0:-1]
+ compare_rel_new[str(rkey)]=ver_new
+ for rkey,rvalue in ver_old_nbh_dict[each].items():
+ ver_old=""
+ for relk,relvalue in rvalue.items():
+ ver_old+=str(relk) + ","
+ ver_old=ver_old[0:-1]
+ compare_rel_old[str(rkey)]=ver_old
+ if len(compare_rel_new) >= len(compare_rel_old):
+ for rkey,rvalue in compare_rel_new.items():
+ if compare_rel_old.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+
+ else:
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],"")
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ for rkey,rvalue in compare_rel_old.items():
+ if compare_rel_new.has_key(rkey):
+ diffs=dmp.diff_main(compare_rel_new[str(rkey)],compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ else:
+ diffs=dmp.diff_main("",compare_rel_old[str(rkey)])
+ compare[str(rkey)]=dmp.diff_prettyHtml(diffs)
+ compare_dict['relations']=compare
+ elif each =='priornodes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['priornodes']=dmp.diff_prettyHtml(diffs)
+ elif each =='posteriornodes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['posteriornodes']=dmp.diff_prettyHtml(diffs)
+ elif each =='type_of':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['type_of']=dmp.diff_prettyHtml(diffs)
+ elif each =='contains_subtypes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['contains_subtypes']=dmp.diff_prettyHtml(diffs)
+ elif each =='member_of_metatypes':
+ diffs=get_diff_from_dict(ver_new_nbh_dict,ver_old_nbh_dict,each)
+ compare_dict['member_of_metatypes']=dmp.diff_prettyHtml(diffs)
+
+
+ ver_new=""
+ ver_old=""
+ ver_new+=ver_new_dict['content']
+ ver_old+=ver_old_dict['content']
+ diffs = dmp.diff_main(ver_new, ver_old)
+ compare_dict['content']=dmp.diff_prettyHtml(diffs)
+ ver_new_nbh_dict['content']=ver_new_dict['content']
+ ver_old_nbh_dict['content']=ver_old_dict['content']
+
+
+
+ variables=RequestContext(request,{'nt':ot,'ver_old_dict':ver_old_dict,'ver_new_dict':ver_new_dict,'compare_dict':compare_dict ,'ssid1':ssid1,'ssid2':ssid2,'version_no1':version_no1,'version_no2':version_no2,'ver_new_nbh_dict':ver_new_nbh_dict,'ver_old_nbh_dict':ver_old_nbh_dict})
+ template="objectapp/version_diff.html"
+ return render_to_response(template,variables)
+
+
+def get_merge_dict(ssid1,ssid2,direction):
+ ver_merge={}
+ ot=Version.objects.get(id=ssid1)
+ obj=ot.object.ref
+ ver_left_dict=obj.version_info(ssid1)
+ ver_right_dict=obj.version_info(ssid2)
+
+
+
+ if direction =='right':
+ # swap left and right
+ temp_dict={}
+ temp_dict=ver_left_dict
+ ver_left_dict=ver_right_dict
+ ver_right_dict=temp_dict
+ # swap ssid1 and ssid2 for managing nbhood history
+ temp=int(ssid1)
+ ssid1=int(ssid2)
+ ssid2=temp
+ ver_left_nbh_dict=ast.literal_eval(ver_left_dict['nbhood'])
+ ver_right_nbh_dict=ast.literal_eval(ver_right_dict['nbhood'])
+ # By default value of content is removed
+ if ver_left_dict['content']=='<br />':
+ ver_left_dict['content']=''
+ if ver_right_dict['content']=='<br />':
+ ver_right_dict['content']=''
+ # Getting merged dictionary
+ for each in ver_left_dict:
+ if ver_left_dict[each] and ver_right_dict[each]:
+ ver_merge[each]=ver_right_dict[each]
+ elif ver_left_dict[each]:
+ if not ver_right_dict[each]:
+ ver_merge[each]=ver_left_dict[each]
+ elif ver_right_dict[each]:
+ if not ver_left_dict[each]:
+ ver_merge[each]=ver_right_dict[each]
+ elif not ver_left_dict[each]:
+ if not ver_right_dict[each]:
+ ver_merge[each]=''
+ ver_merge_nbh_dict={}
+ # processing nbhood for merged version
+ for each in ver_left_nbh_dict:
+ if isinstance(ver_left_nbh_dict[each],dict):
+ if ver_left_nbh_dict[each] and ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=dict(ver_left_nbh_dict[each].items()+ver_right_nbh_dict[each].items())
+ elif ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_left_nbh_dict[each]
+ elif ver_right_nbh_dict[each]:
+ if not ver_left_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if not ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if ver_left_nbh_dict[each] and ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ elif ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_left_nbh_dict[each]
+ elif ver_right_nbh_dict[each]:
+ if not ver_left_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+ else:
+ if not ver_left_nbh_dict[each]:
+ if not ver_right_nbh_dict[each]:
+ ver_merge_nbh_dict[each]=ver_right_nbh_dict[each]
+
+ # Removing auto generated fields
+ del(ver_merge['start_publication'])
+ del(ver_merge['end_publication'])
+ del(ver_merge['creation_date'])
+ del(ver_merge['last_update'])
+
+ history_left_list=[]
+ history_right_list=[]
+ history_merged_list=[]
+
+ history_left_list=ver_left_nbh_dict['history']
+ history_left_list.append(ssid1)
+ history_right_list=ver_right_nbh_dict['history']
+ history_right_list.append(ssid2)
+ history_merged_list.append(history_left_list)
+ history_merged_list.append(history_right_list)
+ ver_merge_nbh_dict['history']=history_merged_list
+ obj.nbhood = unicode(ver_merge_nbh_dict)
+
+ # setting the objecttypes fields
+ obj.slug = ver_merge['slug']
+ obj.altnames=ver_merge['altnames']
+ obj.nodemodel = ver_merge['nodemodel']
+ obj.comment_enabled = ver_merge['comment_enabled']
+ obj.title = ver_merge['title']
+ obj.sites = ver_merge['sites']
+ obj.content = ver_merge['content']
+ obj.template = ver_merge['template']
+
+ obj.plural = ver_merge['plural']
+ obj.status = ver_merge['status']
+ obj.nid_ptr = NID.objects.get(id=ver_merge['nid_ptr'])
+ obj.nbhood = ver_merge_nbh_dict
+ # obj.nbh=ver_merge['nbh']
+ obj.id = ver_merge['id']
+ obj.pingback_enabled = ver_merge['pingback_enabled']
+ obj.save_revert_or_merge()
+ # formatting content field
+ content=ver_merge['content']
+ content=content[3:-4]
+ ver_merge['content']= content
+
+ return ver_merge
+
+
+def merge_version(request,ssid1,ssid2):
+ direction=""
+ ver_merge={}
+ for each in request.GET:
+ direction=each
+ ot=Version.objects.get(id=ssid1)
+ obj=ot.object.ref
+ ver_merge=get_merge_dict(ssid1,ssid2,direction)
+ slist=[]
+ slist=obj.get_ssid
+ version_counter=len(slist)
+ merged_ver_ssid=slist[version_counter-1]
+ ver_merged_dict=obj.version_info(merged_ver_ssid)
+ ver_merged_nbh_dict=ast.literal_eval(ver_merged_dict['nbhood'])
+ ver_merged_nbh_dict['content']=ver_merge['content']
+ variables = RequestContext(request,{'ver_nbh_dict':ver_merged_nbh_dict ,'nt':obj,'ssid':merged_ver_ssid,'version_no':version_counter})
+ template="objectapp/display.html"
+ return render_to_response(template,variables)
+
+def revert(ssid):
+ ver_revert={}
+ ot=Version.objects.get(id=ssid)
+ obj=ot.object.ref
+ ver_revert=obj.version_info(ssid)
+
+ # Removing auto generated fields
+ del(ver_revert['start_publication'])
+ del(ver_revert['end_publication'])
+ del(ver_revert['creation_date'])
+ del(ver_revert['last_update'])
+
+ # setting nbhood history
+ history=[]
+ ver_revert_nbh_dict=ast.literal_eval(ver_revert['nbhood'])
+
+ history=ver_revert_nbh_dict['history']
+ history.append(ssid)
+ ver_revert_nbh_dict['history']=history
+
+ # setting the revert version fields
+ obj.slug = ver_revert['slug']
+ obj.altnames=ver_revert['altnames']
+
+ obj.nodemodel = ver_revert['nodemodel']
+
+ obj.comment_enabled = ver_revert['comment_enabled']
+ obj.title = ver_revert['title']
+ obj.sites = ver_revert['sites']
+ obj.content = ver_revert['content']
+ obj.template = ver_revert['template']
+
+ obj.plural = ver_revert['plural']
+ obj.status = ver_revert['status']
+ obj.nid_ptr = NID.objects.get(id=ver_revert['nid_ptr'])
+ obj.nbhood = unicode(ver_revert_nbh_dict)
+ # obj.nbh=ver_revert['nbh']
+ obj.id = ver_revert['id']
+ obj.pingback_enabled = ver_revert['pingback_enabled']
+ obj.save_revert_or_merge()
+ # formatting content field
+ content=ver_revert['content']
+ content=content[3:-4]
+ ver_revert['content']= content
+
+ return ver_revert
+
+def revert_version(request):
+ ver_revert={}
+ for each in request.GET:
+ ssid=each
+ ssid=int(ssid)
+ ot=Version.objects.get(id=ssid)
+ obj=ot.object.ref
+
+ ver_revert=revert(ssid)
+ ver_revert['nbhood']
+ slist=[]
+ slist=obj.get_ssid
+ version_counter=len(slist)
+ revert_ver_ssid=slist[version_counter-1]
+ ver_revert_dict=obj.version_info(revert_ver_ssid)
+ ver_revert_nbh_dict=ast.literal_eval(ver_revert_dict['nbhood'])
+ ver_revert_nbh_dict['content']=ver_revert['content']
+
+ variables = RequestContext(request,{'ver_nbh_dict':ver_revert_nbh_dict ,'nt':obj,'ssid':revert_ver_ssid,'version_no':version_counter})
+ template="objectapp/display.html"
+ return render_to_response(template,variables)
+ # return HttpResponse(ver_revert['nbhood'])
+
+