summaryrefslogtreecommitdiff
path: root/gstudio/views
diff options
context:
space:
mode:
authorArun yadav <arunkumar5587@gmail.com>2012-05-30 19:01:12 +0530
committerArun yadav <arunkumar5587@gmail.com>2012-05-30 19:01:12 +0530
commitadb0662690f845be8524d68cf2aa9f57c10fac13 (patch)
treea051ac7dd45cdbdb4eeecf5f50d1819cdc119366 /gstudio/views
parent244509e3eb4058a3aff505e3836d43d64b08fe7d (diff)
downloadgnowsys-adb0662690f845be8524d68cf2aa9f57c10fac13.tar.gz
Full version control for OTs,Objects,ATs,RTs done.Merge and revert also done.Extra history field added in nbhood
Diffstat (limited to 'gstudio/views')
-rw-r--r--gstudio/views/history.py519
1 files changed, 458 insertions, 61 deletions
diff --git a/gstudio/views/history.py b/gstudio/views/history.py
index d4adac9..10fc7ab 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'])
+
+