diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index efef28440d0fd75ef8ceb371b89561845d1d3a57..b12cfccc02dca7e1ac6b2d63235a71505c7d05a2 100644 --- a/Ccs/ccs_function_lib.py +++ b/Ccs/ccs_function_lib.py @@ -6015,7 +6015,7 @@ class DbTools: os.path.basename(filename), False) - new_session = scoped_session_storage + new_session = scoped_session_storage() filename_in_pool = new_session.query(DbTelemetryPool).filter(DbTelemetryPool.pool_name == active_pool_info.filename) pool_exists_in_db_already = filename_in_pool.filter(DbTelemetryPool.modification_time == active_pool_info.modification_time).count() > 0 @@ -6037,18 +6037,19 @@ class DbTools: loadinfo = LoadInfo(parent=parent) # loadinfo.spinner.start() # loadinfo.show_all() + new_session.close() + _loader_thread = threading.Thread(target=DbTools.import_dump_in_db, args=[active_pool_info, loadinfo], kwargs={'brute': brute, 'protocol': protocol, 'pecmode': pecmode}) _loader_thread.daemon = True _loader_thread.start() - logger.info('Loading Pool:' + str(filename)) + logger.info('Loading Pool: ' + str(filename)) else: _loader_thread = None - - new_session.close() + new_session.close() # logger.info('Loaded Pool:' + str(filename)) @@ -6158,7 +6159,7 @@ class DbTools: # pv.Functions('_set_list_and_display_Glib_idle_add', self.active_pool_info, int(self.my_bus_name[-1]), ignore_reply=True) # GLib.idle_add(self._set_pool_list_and_display) new_session.close() - logger.info('Loaded Pool:' + str(pool_info.filename)) + logger.info('Loaded Pool: ' + str(pool_info.filename)) @staticmethod def db_bulk_insert(filename, processor, bulk_insert_size=1000, brute=False, checkcrc=True, protocol='PUS', pecmode='warn'): @@ -6167,7 +6168,7 @@ class DbTools: pcktcount = 0 - new_session = scoped_session_storage + new_session = scoped_session_storage() new_session.execute('set unique_checks=0,foreign_key_checks=0') if protocol == 'PUS': diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py index 3d9d177c0eb0f87d777540d69c3726ca654a5c31..065750264e1f82b13f77b88ec263d8a1622df03f 100644 --- a/Ccs/poolview_sql.py +++ b/Ccs/poolview_sql.py @@ -650,6 +650,7 @@ class TMPoolView(Gtk.Window): if self.active_pool_info is None: return 0 + new_session = self.session_factory_storage rows = new_session.query( Telemetry[self.decoding_type] @@ -660,6 +661,7 @@ class TMPoolView(Gtk.Window): DbTelemetryPool.pool_name == self.active_pool_info.filename ) if rows.first() is None: + self.logger.warning('Could not find rows for pool {}'.format(self.active_pool_info.filename)) cnt = 0 else: cnt = rows.order_by(Telemetry[self.decoding_type].idx.desc()).first().idx @@ -1544,19 +1546,23 @@ class TMPoolView(Gtk.Window): active_info = selector.get_model()[selector.get_active_iter()] - if not new_pool: + if new_pool is None: pool_name = active_info[3] else: pool_name = new_pool - new_session = self.session_factory_storage + new_session = self.session_factory_storage() try: live = False dbpool = new_session.query(DbTelemetryPool).filter(DbTelemetryPool.pool_name == pool_name).first() + if active_info[0] == active_info[3]: # check if pool is loaded from a file live = True - self.Active_Pool_Info_append([pool_name, dbpool.modification_time, dbpool.pool_name, live]) + if dbpool is not None: + self.Active_Pool_Info_append(pool_info=[pool_name, dbpool.modification_time, os.path.basename(pool_name), live]) + else: + self.Active_Pool_Info_append(pool_info=None) except Exception as err: self.logger.warning(err) @@ -2401,8 +2407,12 @@ class TMPoolView(Gtk.Window): pool[1] = None break - if self.pool_selector.get_active_iter() == pool.iter: - self.select_pool(self.pool_selector, pool_info) + # check via filename if loaded pool is currently viewed + if model[self.pool_selector.get_active_iter()][3] == pool_info.filename: + # self.select_pool(self.pool_selector, pool_info.filename) + self.adj.set_upper(self.count_current_pool_rows(pool_info=pool_info)) + self.adj.set_value(0) + self._on_scrollbar_changed(adj=self.adj) except Exception as err: self.logger.error(err)