myslice reputation plugin v0.2
authorCostas Yiotis <coyiotis@gmail.com>
Mon, 24 Nov 2014 10:34:24 +0000 (12:34 +0200)
committerCostas Yiotis <coyiotis@gmail.com>
Mon, 24 Nov 2014 10:34:24 +0000 (12:34 +0200)
portal/reputationview.py
portal/templates/reputation.html

index 4699dd2..520253d 100644 (file)
@@ -192,7 +192,7 @@ class ReputationView (LoginRequiredAutoLogoutView, ThemeView):
         testbeds = []\r
 \r
         for slice in slice_details:\r
-\r
+            \r
             if users_hrn[cur_username] in slice['users']:\r
                 slices_users.append({'slice_hrn':slice['slice_hrn'], 'user':cur_username, 'user_hrn':users_hrn[cur_username] \\r
                                      , 'resource':slice['resource'], 'lease':slice['lease'] })  \r
@@ -244,14 +244,17 @@ class ReputationView (LoginRequiredAutoLogoutView, ThemeView):
 \r
         ###### Get Reputation values from Reputation DB\r
         reps = json_to_rest('http://survivor.lab.netmode.ntua.gr:4567/reputation/showrep', "a")\r
-        env['logging_test'] = reps    \r
+        #env['logging_test'] = reps    \r
         \r
+        #create a services list and a dict containing the services for each testbed\r
+        serv_per_tb = {}\r
         services = []\r
         for item in reps:\r
+            serv_per_tb[item['testbed']]=[]\r
             for serv in item['services']:\r
                 if serv.keys()[0] not in services:\r
                     services.append(serv.keys()[0])\r
-        \r
+                    serv_per_tb[item['testbed']].append(serv.keys()[0])        \r
         \r
         #in json, sevices are in the form: 'services':[{'serv1':x}, {'serv2':y}], so we transform it to 'services':[x,y] based on\r
         # the services dict above. If for a specific service there is no applicable value, we put N/A            \r
@@ -272,6 +275,7 @@ class ReputationView (LoginRequiredAutoLogoutView, ThemeView):
                 \r
         ###### Pass variables to template\r
         env['logging_test'] = json.dumps(all_exp, ensure_ascii=False)\r
+        env['serv_per_tb'] = json.dumps(serv_per_tb, ensure_ascii=False)\r
         env['reputation'] = reps\r
         env['rep_serv'] = services\r
         env['slicelist'] = all_exp\r
index c690f77..c000ee9 100644 (file)
@@ -8,8 +8,6 @@
 \r
 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/onelab.css" />\r
 \r
-\r
-\r
 <!-- Reputation Specific -->\r
 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}reputation_static/css/main.css" />\r
 \r
 <div id="scoreform" style="display:none">\r
     <ol>\r
         <li>\r
-            How was your overall experience with NETMODE Testbed? \r
+            <span>How was your overall experience with NETMODE Testbed?</span> \r
             <div id="q1">\r
             </div>\r
         </li>\r
 \r
 <script type="text/javascript">\r
 \r
+serv_per_tb = jQuery.parseJSON('{{ serv_per_tb|safe }}');\r
 \r
 $(function() {\r
        $( "#tabs" ).tabs();\r
@@ -240,6 +239,7 @@ var data = jQuery.parseJSON('{{ json_data|safe }}');
 \r
 \r
 \r
+\r
 var resid = -1;\r
 var q1 = -1;\r
 var q2 = -1;\r
@@ -282,10 +282,13 @@ function initDialog() {
                                        slicedata = (data[event]);\r
                                }       \r
                        }\r
+                       \r
+\r
+                       \r
                        slicedata["user_eval"] = {'overall':q1, 'problems':q2, 'support':q3, 'reuse':q4, 'pay':q5, 'availability':q6, 'link_quality':q7, 'quality':q8};\r
                        testbeds_str = JSON.stringify(slicedata['testbeds'])\r
                        delete slicedata['testbeds'];\r
-            console.log(JSON.stringify(slicedata))\r
+            //console.log(JSON.stringify(slicedata))\r
                         \r
             $.ajax({\r
                    type: "GET",\r
@@ -360,7 +363,7 @@ $(function() {
     });\r
 \r
     initDialog();\r
-       \r
+               \r
     clone = $("#scoreform").clone(true);\r
 \r
     $(".rate_button").click(function() {\r
@@ -370,9 +373,43 @@ $(function() {
         q4 = -1;\r
         q5 = -1;\r
         q6 = -1;\r
-       q7 = -1;\r
-       q8 = -1;\r
-        resid = $(this).attr("data-resid");        \r
+               q7 = -1;\r
+               q8 = -1;\r
+        resid = $(this).attr("data-resid"); \r
+        \r
+        slicedata = {};\r
+       for(var event in data){\r
+                       if ((data[event]).id == resid) {\r
+                               slicedata = (data[event]);\r
+                       }       \r
+               }       \r
+\r
+               srv_arr = []            \r
+        for (var tb in slicedata["testbeds"]){ \r
+               for (var srv in serv_per_tb[tb]){ \r
+                       if (srv != 'equals') {\r
+                               //console.log(serv_per_tb[tb][srv]); \r
+                               srv_arr.push(serv_per_tb[tb][srv]) \r
+                       } \r
+               } \r
+        }     \r
+        \r
+        cq1 = "overall";\r
+        cq6 = "availability";\r
+        cq7 = "link_quality";\r
+        \r
+        q_to_remove = []\r
+        \r
+        if ($.inArray(cq1, srv_arr) == -1 ){\r
+               $("#scoreform > ol").children(':eq('+0+')').remove();\r
+        } \r
+        if ($.inArray(cq6, srv_arr) == -1 ){\r
+               $("#scoreform > ol").children(':eq('+5+')').remove();\r
+        } \r
+               if ($.inArray(cq7, srv_arr) == -1 ){\r
+               $("#scoreform > ol").children(':eq('+6+')').remove();\r
+        } \r
+        \r
         $("#scoreform").dialog({\r
             title: "Rate experiment",\r
             width: 500,\r