From 3a6f1bb43f49c071ea86944022e65b83fed0ad5d Mon Sep 17 00:00:00 2001 From: Arun yadav Date: Mon, 30 Apr 2012 12:53:23 +0530 Subject: urls,views and templates for history added.Models modified for the same --- gstudio/models.py | 132 ++++-- gstudio/templates/gstudio/base.html | 27 ++ gstudio/templates/gstudio/display.html | 583 +++++++++++++++++++++++++++ gstudio/templates/gstudio/nodetype_list.html | 4 +- gstudio/templates/gstudio/version_base.html | 129 ++++++ gstudio/urls/__init__.py | 1 + gstudio/urls/graphs.py | 3 +- gstudio/urls/history.py | 8 + gstudio/views/history.py | 27 ++ 9 files changed, 876 insertions(+), 38 deletions(-) create mode 100644 gstudio/templates/gstudio/display.html create mode 100644 gstudio/templates/gstudio/version_base.html create mode 100644 gstudio/urls/history.py create mode 100644 gstudio/views/history.py (limited to 'gstudio') diff --git a/gstudio/models.py b/gstudio/models.py index a9d6928..56e6a7a 100644 --- a/gstudio/models.py +++ b/gstudio/models.py @@ -191,7 +191,6 @@ class Author(User): class Meta: """Author's Meta""" proxy = True - class NID(models.Model): """the set of all nodes. provides node ID (NID) to all nodes in the network, including edges. Edges are also first class citizens @@ -205,7 +204,41 @@ class NID(models.Model): slug = models.SlugField(help_text=_('used for publication'), unique_for_date='creation_date', max_length=255) + @property + def get_revisioncount(self): + """ + Returns Number of Version + """ + i=0 + ver=Version.objects.get_for_object(self) + for each in ver: + i=i+1 + return i + @property + def get_version_list(self): + """ + Returns Version list + """ + ver=Version.objects.get_for_object(self) + return ver + + @property + def get_ssid(self): + """ + return snapshot ids (revision id). + returns a list. + """ + slist=[] + vlist=self.get_version_list + for each in vlist: + slist.append(each.id) + return slist + + def version_info(self,ssid): + version_object=Version.objects.get(id=ssid) + return version_object.field_dict + def get_serialized_dict(self): """ @@ -213,26 +246,15 @@ class NID(models.Model): """ return self.__dict__ - @property - def get_app_name(self): - if self.ref.__class__.__name__=='Gbobject' or self.ref.__class__.__name__=='Process' or self.ref.__class__.__name__=='System' : - return 'type' - @models.permalink def get_absolute_url(self): """Return nodetype's URL""" - if self.get_app_name=='type': - return ('objectapp_gbobject_detail', (), { - 'year': self.creation_date.strftime('%Y'), - 'month': self.creation_date.strftime('%m'), - 'day': self.creation_date.strftime('%d'), - 'slug': self.slug}) - else: - return ('gstudio_nodetype_detail', (), { - 'year': self.creation_date.strftime('%Y'), - 'month': self.creation_date.strftime('%m'), - 'day': self.creation_date.strftime('%d'), - 'slug': self.slug}) + + return ('gstudio_nodetype_detail', (), { + 'year': self.creation_date.strftime('%Y'), + 'month': self.creation_date.strftime('%m'), + 'day': self.creation_date.strftime('%d'), + 'slug': self.slug}) @property def ref(self): @@ -252,23 +274,6 @@ class NID(models.Model): return None return vrs.object - - @property - def reftype(self): - """ - Returns the type the id belongs to. - """ - try: - """ - ALGO: simple wrapper for the __class__.__name__ so that it can be used in templates - """ - obj = self.ref - return obj.__class__.__name__ - - except: - return None - - @property def get_edit_url(self): @@ -285,6 +290,59 @@ class NID(models.Model): version = Version.objects.get(id=self.id) return version.serialized_data + + + 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) + + 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 }) + + 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) + + def __unicode__(self): return self.title @@ -293,7 +351,6 @@ class NID(models.Model): """NID's Meta""" - class Node(NID): """ Super class @@ -1114,6 +1171,9 @@ class Nodetype(Node): 'month': self.creation_date.strftime('%m'), 'day': self.creation_date.strftime('%d'), 'slug': self.slug}) + def get_version_url(self): + """Return nodetype's URL""" + return "/nodetypes/display/viewhistory/" def get_serialized_data(self): """ diff --git a/gstudio/templates/gstudio/base.html b/gstudio/templates/gstudio/base.html index 94a72eb..8625e13 100644 --- a/gstudio/templates/gstudio/base.html +++ b/gstudio/templates/gstudio/base.html @@ -41,6 +41,33 @@ {% get_objecttypes %} --> +
+ + + + + + + +

{% trans "Versions" %}

+ + {% for sid in object.get_ssid reversed %} + + + + +
+ {% endfor %} +
+ {{ object.id }}{{ sid }} + + {{ sid }} +
+
+ +
+
+

{% trans "Authors" %}

{% get_authors %} diff --git a/gstudio/templates/gstudio/display.html b/gstudio/templates/gstudio/display.html new file mode 100644 index 0000000..f4c2dfb --- /dev/null +++ b/gstudio/templates/gstudio/display.html @@ -0,0 +1,583 @@ + +{% load i18n comments gstudio_tags %} +{% load gstudio_tags i18n %} +{% get_tags as nodetype_tags %} +{% load adminmedia grp_tags %} + + + + + + + + + + {% block blockbots %} + + {% endblock %} + {% block stylesheets %} + + {% if LANGUAGE_BIDI %} + + {% endif %} + + + {% endblock %} + {% block extrastyle %}{% endblock %} + {% block javascripts %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% block extrahead %}{% endblock %} + + {% endblock %} + + + + + + + + {% block meta %}{% endblock %} + + + + + + + + + {% block link %}{% endblock %} + {% block script %}{% endblock %} Gnowledge Studio - {% block title %}{% endblock %} + + +
+
+ +
+ +
+ + + + + + + + +
+
+
+ {% include "gstudio/_header.html" %} + +
+
+

{% block content %} + {% block nodetype-content %} +

+ {{ ver_dict.title }} + +

+
+ {% with nt.html_content|safe as object_content %} + Name:{{ ver_dict.title }}
+ {% if ver_dict.altnames %} + Alternate names:{{ ver_dict.altnames}} +
+ {% endif %} + {% if ver_dict.plural %} + Plural Name:{{ ver_dict.plural }}
+ {% endif %} + {% if nt.get_rendered_nbh.authors %}Authors: + {% endif %} + {% for author in nt.authors.all %} + + + {% if not forloop.last %}, {% endif %} + {% endfor %}
+ {% endwith %} + {% endblock %} + {% endblock %} +
+ + + + + +
+
+ + + + + + + + diff --git a/gstudio/templates/gstudio/nodetype_list.html b/gstudio/templates/gstudio/nodetype_list.html index f4f75bd..ebaae5c 100644 --- a/gstudio/templates/gstudio/nodetype_list.html +++ b/gstudio/templates/gstudio/nodetype_list.html @@ -1,5 +1,7 @@ -{% extends "gstudio/base.html" %} +{% extends "gstudio/version_base.html" %} {% load i18n gstudio_tags %} +{% load i18n objectapp_tags %} + {% block meta-description %}{% trans "Latest nodetypes for" %} {% if metatype %}{% trans "the metatype" %} {{ metatype }}{% if metatype.description %}: {{ metatype.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/gstudio/templates/gstudio/version_base.html b/gstudio/templates/gstudio/version_base.html new file mode 100644 index 0000000..6972c9e --- /dev/null +++ b/gstudio/templates/gstudio/version_base.html @@ -0,0 +1,129 @@ +{% extends "gstudio/skeleton.html" %} +{% load gstudio_tags i18n %} +{% load objectapp_tags i18n %} + + {% block meta %} + +{% endblock %} + +{% block link %} + + + + + + +{% endblock %} + +{% block breadcrumbs %} + {% gstudio_breadcrumbs %} +{% endblock %} + +{% block sidebar %} + ? +

Rssfeed

+ + + +
+ + + + + + + + + + + + + + + + + + +
+

{% trans "Authors" %}

+ {% get_authors %} +
+
+

{% trans "Calendar" %}

+ {% get_calendar_gbobjects %} +
+
+

{% trans "Tags" %}

+ {% get_tag_cloud %} +
+
+

{% trans "Recent gbobjects" %}

+ {% get_recent_gbobjects 5 %} +
+
+

{% trans "Recent comments" %}

+ {% get_recent_comments 5 %} +
+
+

{% trans "Recent linkbacks" %}

+ {% get_recent_linkbacks 5 %} +
+
+

{% trans "Random gbobjects" %}

+ {% get_random_gbobjects 5 %} +
+
+

{% trans "Popular gbobjects" %}

+ {% get_popular_gbobjects 5 %} +
+
+

{% trans "Archives" %}

+ {% get_archives_gbobjects_tree %} +
+{% if user.is_authenticated %} +
+

{% trans "Tools" %}

+ +
+{% endif %} +{% endblock %} + + diff --git a/gstudio/urls/__init__.py b/gstudio/urls/__init__.py index b04f148..20ac065 100644 --- a/gstudio/urls/__init__.py +++ b/gstudio/urls/__init__.py @@ -32,6 +32,7 @@ urlpatterns = patterns( url(r'^discussions/', include('gstudio.urls.discussions')), url(r'^add/', include('gstudio.urls.add')), url(r'^ajax/', include('gstudio.urls.ajaxurls')), + url(r'^display/',include('gstudio.urls.history')), url(r'^graphs/', include('gstudio.urls.graphs')), url(r'^userdashboard/', include('gstudio.urls.dashboard')), url(r'^', include('gstudio.urls.quick_nodetype')), diff --git a/gstudio/urls/graphs.py b/gstudio/urls/graphs.py index 952f021..bdba829 100644 --- a/gstudio/urls/graphs.py +++ b/gstudio/urls/graphs.py @@ -27,5 +27,6 @@ from gstudio.settings import ALLOW_FUTURE urlpatterns = patterns( 'gstudio.views.graphs', url(r'^graph_json/(?P\d+)$','graph_json', name='graph_json_d3'), - url(r'^graph/(?P\d+)$','force_graph', name='force_graph_d3'), + url(r'^graph/(?P\d+)$','force_graph', name='force_graph_d3'), + url(r'^version_graph_json/(?P\d+)$','version_graph_json', name='version_graph_d3'), ) diff --git a/gstudio/urls/history.py b/gstudio/urls/history.py new file mode 100644 index 0000000..d3d72ca --- /dev/null +++ b/gstudio/urls/history.py @@ -0,0 +1,8 @@ +"""Urls for Gstudio forms""" +from django.conf.urls.defaults import url +from django.conf.urls.defaults import patterns + +urlpatterns = patterns('gstudio.views.history', + url(r'^viewhistory/(?P\d+)$', 'history', + name='gstudio_history'), + url(r'^showhistory/(?P\d+)$','showHistory'),) diff --git a/gstudio/views/history.py b/gstudio/views/history.py new file mode 100644 index 0000000..bcaedd7 --- /dev/null +++ b/gstudio/views/history.py @@ -0,0 +1,27 @@ +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 gstudio.models import * +from reversion.models import * +from gstudio.views.decorators import protect_nodetype +from gstudio.views.decorators import update_queryset + +def history(request,ssid): + # iden=request.GET["id"] + nt1=Version.objects.get(id=ssid) + nt=nt1.object + ver_dict=nt.version_info(ssid) + variables = RequestContext(request,{'ver_dict':ver_dict ,'nt':nt,'ssid':ssid }) + template="gstudio/display.html" + return render_to_response(template,variables) + +def showHistory(request,obj): + obj=Objecttype.objects.get(id=obj) + variables=RequestContext(request,{'ob':ob}) + template="gstudio/history.html" + return render_to_response(template,variables) -- cgit v1.1