From 64c9f6a817a402720d18ea7bf6cd80f07ca767ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jordan=20Aug=C3=A9?= Date: Fri, 2 Aug 2013 12:35:13 +0200 Subject: [PATCH] plugins: added pres_view + small fixes --- plugins/code_editor/code_editor.js | 2 +- plugins/googlemap/googlemap.js | 8 +- plugins/pres_view | 1 + portal/event.py | 135 ++++++++++++++++++++++ portal/static/experiments.png | Bin 0 -> 2827 bytes portal/static/testbeds.png | Bin 0 -> 2940 bytes portal/static/user.png | Bin 0 -> 1786 bytes portal/urls.py | 7 +- portal/views.py | 178 +++++++++++++++++++++++++++++ unfold/templates/plugin-init.js | 2 +- 10 files changed, 327 insertions(+), 6 deletions(-) create mode 160000 plugins/pres_view create mode 100644 portal/event.py create mode 100644 portal/static/experiments.png create mode 100644 portal/static/testbeds.png create mode 100644 portal/static/user.png diff --git a/plugins/code_editor/code_editor.js b/plugins/code_editor/code_editor.js index 5e88873d..664bbdc7 100644 --- a/plugins/code_editor/code_editor.js +++ b/plugins/code_editor/code_editor.js @@ -427,7 +427,7 @@ this.initialize(); // END CONSTRUCTOR - } // function DebugPlatform + } // function CodeEditor })( jQuery ); diff --git a/plugins/googlemap/googlemap.js b/plugins/googlemap/googlemap.js index 8c3c0958..69db6ef1 100644 --- a/plugins/googlemap/googlemap.js +++ b/plugins/googlemap/googlemap.js @@ -12,6 +12,8 @@ (function($){ + var PLUGIN_NAME = 'GoogleMap'; + // routing calls jQuery.fn.GoogleMap = function( method ) { if ( methods[method] ) { @@ -19,7 +21,7 @@ } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { - jQuery.error( 'Method ' + method + ' does not exist on jQuery.GoogleMap' ); + jQuery.error( 'Method ' + method + ' does not exist on jQuery.' + PLUGIN_NAME ); } }; @@ -48,7 +50,7 @@ plugin.initialize(); /* Events */ - $this.on('show.GoogleMaps', methods.show); + $this.on('show.' + PLUGIN_NAME, methods.show); $this.set_query_handler(options.query_uuid, plugin.query_handler); $this.set_record_handler(options.query_uuid, plugin.record_handler); @@ -69,7 +71,7 @@ var hazelnut = $this.data('Manifold'); // Unbind all events using namespacing - $(window).unbind('Manifold'); + $(window).unbind(PLUGIN_NAME); // Remove associated data hazelnut.remove(); diff --git a/plugins/pres_view b/plugins/pres_view new file mode 160000 index 00000000..96e46a0f --- /dev/null +++ b/plugins/pres_view @@ -0,0 +1 @@ +Subproject commit 96e46a0ff58c6c5e2bec53e4fa3f6b2b95e639eb diff --git a/portal/event.py b/portal/event.py new file mode 100644 index 00000000..cf95b5e0 --- /dev/null +++ b/portal/event.py @@ -0,0 +1,135 @@ +# !/usr/bin/python +# -*-coding: utf-8-*- + +import pickle +import os.path +import xmlrpclib +import ast +import time + +class Event: + def __init__(self, structure): + self.srv="" + self.structure = structure + self.authType = "" + self.server = "" + self.methode = "" + self.parameters = {} + self.return_fields = [] + + self.auth = {} + self.print_method="" + self.print_options="" + self.geo_methode="" + self.id="" + + ##APE### + self.raw = "" + self.channel = "" + ####### + + + + + self.data = self.make_data() + + + def split(self): + args = self.structure.split(";"); + self.raw = args[0] + self.channel = args[1] + self.print_method = args[2] + self.print_options = ast.literal_eval(args[3]) + self.authType = args[4] + self.server = ast.literal_eval(args[5]) + self.server = self.server["server"] + self.methode = args[6] + self.parameters = ast.literal_eval(args[7]) + self.return_fields = eval(args[8]) + + def makeAuth(self): + if self.authType=="anonymous": + self.auth["AuthMethod"] = "anonymous" + elif type=="password": + self.auth["AuthMethod"] = "password" + self.auth["Username"] = "XXX" + self.auth["AuthString"] = "XXX" + elif self.authType=="session": + self.auth["AuthMethod"] = "session" + self.auth["session"] = "XXX" + elif self.authType=="gpg": + self.auth["AuthMethod"] = "gpg" + self.auth["name"] = "XXX" + self.auth["signature"] = "XXX" + + def include_geoposition(self, data): + list=[] + if len(data)<8: + for i in data: + i["ape_position"] = self.get_geoposition(i) + list.append(i) + return list + else: + try: + sites_id = self.srv.GetSites(self.auth,{},["site_id","latitude","longitude"]) + except : + return 45 + try: + for i in data: + for j in sites_id: + if i["site_id"]==j["site_id"]: + try: + pos=[{"latitude": j["latitude"], "longitude": j["longitude"]}] + except: + return 83 + # + i["ape_position"] = pos + list.append(i) + + except: + return 82 + return list + + def get_geoposition(self,i): + if self.geo_methode == "site_id": + id = i["site_id"] + try: + geo_pos = self.srv.GetSites(self.auth, {"site_id": id}, ["latitude","longitude"]) + except: + geo_pos = 43 + return geo_pos + else: + return 42 + + + def get_event_list_from_xmlrpc(self): + self.srv = xmlrpclib.Server(self.server, allow_none = 1) + if self.methode=="GetSites": + self.geo_methode="site_id"; + try : + if len(self.return_fields)==0: + return self.srv.GetSites(self.auth, self.parameters) + else : + return self.srv.GetSites(self.auth, self.parameters, self.return_fields) + except: + return 0 + else: + return 0 + + def make_data(self): + try : + self.split() + self.makeAuth() + except: + return 43 + try : + rototo = self.get_event_list_from_xmlrpc() + except: + return 44 + try: + + return self.include_geoposition(rototo) + except: + return 47 + + diff --git a/portal/static/experiments.png b/portal/static/experiments.png new file mode 100644 index 0000000000000000000000000000000000000000..cd97086bd28fa518d59249ded9b78aa7356d3a2f GIT binary patch literal 2827 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 literal 0 HcmV?d00001 diff --git a/portal/static/testbeds.png b/portal/static/testbeds.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9aa0e4fd8593883c2a2f93ad93e6720bda3a84 GIT binary patch literal 2940 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 literal 0 HcmV?d00001 diff --git a/portal/static/user.png b/portal/static/user.png new file mode 100644 index 0000000000000000000000000000000000000000..fa72bdd2acc8a7690cd1e0f571f861dd275a5dfb GIT binary patch literal 1786 zcmVqAY!3_PPwxzWMOIxwT1}j=k6RHLth(TX$lM>^b56YWQz7b!1 zG6oXji!p{oOb`>ID5eIbMB75OKs$wgg?8>tr*ps0Is0rMZY>fbPLpvZCp%eL=f8hz z?{(J7kq`p6W1GMH`v&kh@KxZmH{E{$UI2b^{&!#M+>V~y4#1X!FW(J3dGGeICmz~6 z&HbNhBEai!F7wLq7N_5CKMg!J_tJs0s}6AY!+#tHe)RdhQ%8?Hx}NbdM<75D1h~;D zdG`6s{OS0@Gr;%G{`LzuR-)@xN~$J@cWfCu`uM}^@WAEyg5{nEpjkJvMEJ&`wX~Ls zqi5#YZvsDFk?u-@c06)yL%kjyesIqu{XB5tYQfyKg2irNp%<9Dnsec5L2p>`;GRk9 z_2}@9M~-b+H2{nBz+LNWyJw~oF0^v4EO|P)&?%ssLnl|REO{=rN@k`L?pj~lZIK>W zH2^i+H?=0E)$!cu29^e+&D(|0E{skAO9Nr43$3)~wsTY_THyW8x%Z#k{!INZ0 zEm7*JaOawcrEb8SzPf4vYWDJ_h4MsySTQ@UY?x5eSjp1SnkLG|31wYV=?^NdEcz2_ z_VTI$oO^A~wXStfpSduk;gq#w%C>1?O+BzVb>P_%`swecPHl_TD!J9!{L?vRI|;+B3z@ttp#kBdP%Jy`@-oowmt4JG^6sS`^Q{4`>p7iHPF_?1 z#F5fy#7s}b%uJ_j+E8P5!ZDUPVkf-*k7Zsww!pRP`Lnqlv z$OAi@Y`in&QftU!+p|0vHJS108WK6uMnSimGaQTnqC^?1M>NJ_8qJs+Ls-02(o9Px z$BZ3Y8uW%0Fa34tNV``q0N?+}3GDgS-@XYvyK{3IZ@M$(Qmf?BVntGOOf(bf4P&g~ zNMaBlC<~7d0pVsFj+LOwFc0+mo_5!dAbXy5lgb@U<-PX@ym5Yz14sV;vrqs07Qh2X zPu787uA6d)c5cqNIPW>%@|0qv4M$dssnv}%Qx0+c?G=Qn*Oh5$q zE^_;4nu@4!ZQ0W)#^`5Y=|xWu71GgJjr zFau|!%;QK%62(mLJ^&SEp*Rbejp9{7baVph6qh)1pv)`QW}`j-1HjD`RY8(C8qJ8b z=5WqN8AnQzDp{svnUQ6q;SV`^ke8J&`*WoKo}N6QE;X3mz2oQWARDr4r6y<0QRT%lhDDETeRs_?Lwu_9s z446|yWZVInMoQP!8J2+?%K?`2kBF?EIg&U+%K(rGFb+%tb-)1mn73EM0^orzuy|X4 c$Nvxe7a&B>`c$Y8?*IS*07*qoM6N<$g7yqm=>Px# literal 0 HcmV?d00001 diff --git a/portal/urls.py b/portal/urls.py index b756c98f..16da2e65 100644 --- a/portal/urls.py +++ b/portal/urls.py @@ -22,7 +22,7 @@ from django.conf.urls import patterns, include, url from portal import views -from portal.views import UserRegisterView, UserValidateView, DashboardView +from portal.views import UserRegisterView, UserValidateView, DashboardView, PresViewView from portal.util import TemplateView # DEPRECATED #named_register_forms = ( @@ -48,6 +48,11 @@ urlpatterns = patterns('', url(r'^contact/?$', views.contact), # Slice request url(r'^slice_request/?$', views.slice_request), + + url(r'^pres_view/?$', PresViewView.as_view(), name='pres_view'), + (r'^methods/(?P\w+)/?$', 'portal.views.pres_view_methods'), + (r'^animation/(?P[^/]+)/(?P\w+)/?$', 'portal.views.pres_view_animation'), + (r'^static/(?P[^/]+)/(?P\w+)/?$', 'portal.views.pres_view_static'), #url(r'^slice/request/?$', views.slice_request, name='slice_request'), # Slice confirmation #url(r'^slice/validate/?$', views.slice_validate, name='slice_validate'), diff --git a/portal/views.py b/portal/views.py index 73e1ea4c..d55fc175 100644 --- a/portal/views.py +++ b/portal/views.py @@ -27,7 +27,13 @@ from django.contrib import messages from django.views.generic import View from django.views.generic.base import TemplateView from django.shortcuts import render + from plugins.lists.simplelist import SimpleList + +from plugins.pres_view import PresView +from portal.event import Event +import json + from portal import signals from portal.forms import UserRegisterForm, SliceRequestForm, ContactForm from portal.util import RegistrationView, ActivationView @@ -576,3 +582,175 @@ def slice_request(request): 'username': the_user (request) }) + +class PresViewView(TemplateView): + template_name = "view-unfold1.html" + + def get_context_data(self, **kwargs): + + page = Page(self.request) + + pres_view = PresView(page = page) + + context = super(PresViewView, self).get_context_data(**kwargs) + + #context['ALL_STATIC'] = "all_static" + context['unfold1_main'] = pres_view.render(self.request) + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Test view that combines various plugins' + # the menu items on the top + context['topmenu_items'] = topmenu_items('PresView', self.request) + # so we can sho who is logged + context['username'] = the_user(self.request) + + prelude_env = page.prelude_env() + context.update(prelude_env) + + return context + +def json_me(config_file,type): + json_answer = '' + for ligne in config_file: + if not ligne.startswith('#'): + args = ligne.split(';') + json_answer += str('{ "name": "' + args[0] + '" ,"id":"' + args[1] + '" ,"descriptif":"' + args[2]+'"') + if type!="dynamic": + json_answer += str(',"contraints":') + if args[3]=="": + json_answer += str('""') + else: + json_answer += str(args[3]) + json_answer += str('},') + return json_answer[:-1] + + +DIR = '/var/myslice/' +STATIC = '%s/config_method_static' % DIR +DYNAMIC = '%s/config_method_dynamic' % DIR +ANIMATION = '%s/config_method_animation' % DIR + +def pres_view_methods(request, type): + + if type ==None: + return 0 + elif type =="static": + config = open(STATIC, "r") + json_answer = str('{ "options": [') + json_answer += str(json_me(config,"static")) + json_answer += str('] }') + config.close() + elif type =="dynamic": + config = open(DYNAMIC, "r") + json_answer = str('{ "options": [') + json_answer += str(json_me(config,"dynamic")) + json_answer += str('] }') + config.close() + elif type =="animation": + config = open(ANIMATION, "r") + json_answer = str('{ "options": [') + json_answer += str(json_me(config,"animation")) + json_answer += str('] }') + config.close() + elif type =="all": + config = open(STATIC, "r") + json_answer = str('{ "static": [') + json_answer += str(json_me(config,"static")) + json_answer += str('],') + json_answer += str('"dynamic": [') + config.close() + config = open(DYNAMIC, "r") + json_answer += str(json_me(config,"dynamic")) + json_answer += str('],') + json_answer += str('"animation": [') + config.close() + config = open(ANIMATION, "r") + json_answer += str(json_me(config,"animation")) + json_answer += str('] }') + config.close() + else: + return 0 + return HttpResponse (json_answer, mimetype="application/json") + +def pres_view_animation(request, constraints, id): + +# sites crees depuis 2008 +# static.py?contraints=']date_created':1262325600&id='name_id"' + + # method = request.getvalue('method') #ex : GetSites + #constraints = "']date_created':1262325600" + #id = "2" + + if id == None: + return 0 + + # method = 'GetSites'#request.getvalue('method') #ex : GetSites + # constraints = {}#request.getvalue('constraints') // nul = {} + # response_field = "'site_id','name','date_created'"#request.getvalue('response_field') + + config_file = open(ANIMATION, "r") + for ligne in config_file: + if not ligne.startswith('#'): + ligne = ligne.split('\n') + first = ligne[0].split(';') + if (str(first[1]) == str(id)): + save = first + config_file.close() + + #Les print_method, print_option sont definis par le client (js) + #Les animations acceptent que les connexions anonymous + # args = "postmsg;animation;;;anonymous;https://www.planet-lab.eu/PLCAPI/;" + args = ";;"+str(save[8])+";"+str(save[9])+";anonymous;"+str(save[5])+";"+str(save[6])+";{"+str(constraints)+"};"+str(save[7])+";" + + + #Creation d'un objet event + event = Event(args) + cmd = [{"params": { + "data": { + "print_options": event.print_options, + "print_method": event.print_method, + "message": event.data + } + } + }] + + json_answer = json.dumps(cmd) + return HttpResponse (json_answer, mimetype="application/json") + +def pres_view_static(request, constraints, id): + #constraints = "']date_created':1262325600" + #id = "2" + + # method = 'GetSites'#request.getvalue('method') #ex : GetSites + # constraints = {}#request.getvalue('constraints') // nul = {} + # response_field = "'site_id','name','date_created'"#request.getvalue('response_field') + + config_file = open(STATIC, "r") + for ligne in config_file: + if not ligne.startswith('#'): + ligne = ligne.split('\n') + first = ligne[0].split(';') + if (str(first[1]) == str(id)): + save = first + config_file.close() + + #Les print_method, print_option sont definis par le client (js) + #Les animations acceptent que les connexions anonymous + # args = "postmsg;animation;;;anonymous;https://www.planet-lab.eu/PLCAPI/;" + args = ";;"+str(save[8])+";"+str(save[9])+";anonymous;"+str(save[5])+";"+str(save[6])+";{"+str(constraints)+"};"+str(save[7])+";" + + + #Creation d'un objet event + event = Event(args) + cmd = [{"params": { + "data": { + "print_options": event.print_options, + "print_method": event.print_method, + "message": event.data + } + } + }] + + json_answer = json.dumps(cmd) + return HttpResponse (json_answer, mimetype="application/json") diff --git a/unfold/templates/plugin-init.js b/unfold/templates/plugin-init.js index 0d44075b..5995a719 100644 --- a/unfold/templates/plugin-init.js +++ b/unfold/templates/plugin-init.js @@ -1 +1 @@ -$(document).ready(function() { jQuery('#{{ domid }}').{{ plugin_classname }}({{ settings_json|safe }}); }); +$(document).ready(function() { $('#{{ domid }}').{{ plugin_classname }}({{ settings_json|safe }}); }); -- 2.47.0