Bläddra i källkod

fixes code to get PortfolioColumnChart stuff work without exceptions

laxaurus 8 år sedan
förälder
incheckning
01a2eeb704
3 ändrade filer med 18 tillägg och 19 borttagningar
  1. 2 2
      src/rethink/portfolio_monitor.py
  2. 11 14
      src/ws/client_g.html
  3. 5 3
      src/ws/ws_server.py

+ 2 - 2
src/rethink/portfolio_monitor.py

@@ -405,7 +405,7 @@ class PortfolioMonitor(AbstractGatewayListener, AbstractPortfolioTableModelListe
         #logging.info('---- %s' % str(rvs))
         port.fire_table_row_updated(row, rvs)
         event_type = AbstractTableModel.EVENT_TM_TABLE_ROW_UPDATED if mode == 'U' else AbstractTableModel.EVENT_TM_TABLE_ROW_INSERTED
-        self.get_kproducer().send_message(event_type, json.dumps({'source': '%s' % port.get_object_name(), 'row': row, 'row_values': rvs}))
+        self.get_kproducer().send_message(event_type, json.dumps({'source': port.get_object_name(), 'row': row, 'row_values': rvs}))
     
         # notify chart objects to do their thing...
         try:
@@ -450,7 +450,7 @@ class PortfolioMonitor(AbstractGatewayListener, AbstractPortfolioTableModelListe
                                                       'data_table_json': self.portfolios[account].get_JSON()}))
         except:
             logging.error("PortfolioMonitor:event_tm_request_table_structure. Error invoking get_JSON[%s]. Client request id:%s, %s" %
-                            (account, request_id, ', '.join(e for e in sys.exc_info())))
+                            (account, request_id, ', '.join(str(e) for e in sys.exc_info())))
             
     def event_tm_table_structure_changed(self, event, source, origin_request_id, account, data_table_json):
         logging.info("[PortfolioColumnChartTM:] received %s  content:[%s]" % (event, data_table_json)    )        

+ 11 - 14
src/ws/client_g.html

@@ -103,8 +103,8 @@
       // Set event handlers.
       ws.onopen = function() {
         output("onopen");
-        ws.send(JSON.stringify({event: 'event_tm_request_table_structure', target_resource:{'class': 'Portfolio'}, 'account': 'UU777'}));
-        ws.send(JSON.stringify({event: 'event_tm_request_table_structure', target_resource:{'class': 'PortfolioColumnChartTM'}, 'account': 'UU777'}));
+        ws.send(JSON.stringify({event: 'event_tm_request_table_structure', target_resource:{'class': 'Portfolio'}, 'account': account}));
+        ws.send(JSON.stringify({event: 'event_tm_request_table_structure', target_resource:{'class': 'PortfolioColumnChartTM'}, 'account': account}));
         
       };
       
@@ -113,24 +113,21 @@
         
         //output("onmessage: " + e.data);
         d1=  JSON.parse(e.data);
-		console.log(d1.source);
 		console.log(d1);
         
-        if (d1.source.data == 'PortfolioColumnChartTM'){
-        	console.log('skip...');
-        	return;
-        }
         if (d1.event == "event_tm_table_structure_changed"){
 			data = new google.visualization.DataTable(d1.value);
 			view = new google.visualization.DataView(data);
 
-			view.setRows(view.getFilteredRows([{column: 15, test: function(value, row, column, table) {
-		        return (value == 'HSI' || value == 'MHI') 
-		    }}]));
-    		setupFormatter(data);
-			table = new google.visualization.Table(document.getElementById('table_div'));
-			table.draw(view, options);
-			output('number of rows: ' + data.getNumberOfRows());
+			if (d1.source.class == 'Portfolio'){
+				view.setRows(view.getFilteredRows([{column: 15, test: function(value, row, column, table) {
+			        return (value == 'HSI' || value == 'MHI') 
+			    }}]));
+	    		setupFormatter(data);
+				table = new google.visualization.Table(document.getElementById('table_div'));
+				table.draw(view, options);
+				output('number of rows: ' + data.getNumberOfRows());
+			}
            
         } else if (d1.event == 'event_tm_table_row_updated'){
 

+ 5 - 3
src/ws/ws_server.py

@@ -174,7 +174,7 @@ class PortfolioTableModelListener(BaseMessageListener):
 
         def notify_client():
             self.mwss.get_server().send_message_to_all(json.dumps(
-                        {'event':event, 'value':{'row': row, 'row_values': row_values}}));
+                        {'event':event, 'value':{'source': source, 'row': row, 'row_values': row_values}}));
             
         try:
             curr_ts = time.time()
@@ -337,8 +337,10 @@ class MainWebSocketServer(BaseWebSocketServerWrapper):
     # Called when a client sends a message1
     def message_received(self, client, server, message):
         print 'message received %s' % message
-        self.message_handler.send_message(AbstractTableModel.EVENT_TM_REQUEST_TABLE_STRUCTURE, 
-                                          json.dumps({'request_id' : client['id'], 'target_resource': {'class': 'Portfolio'}, 'account': 'U8379890'}))
+        message = json.loads(message)
+        if message['event'] == AbstractTableModel.EVENT_TM_REQUEST_TABLE_STRUCTURE:
+            self.message_handler.send_message(AbstractTableModel.EVENT_TM_REQUEST_TABLE_STRUCTURE, 
+                                          json.dumps({'request_id' : client['id'], 'target_resource': message['target_resource'], 'account': message['account']}))