コード例 #1
0
    def refresh(self, user):
        cloud_connections_key = u"/qgiscloud/connections/%s" % user
        settings = QSettings()

        cloud_dbs_from_server = self._dbs.keys()
        stored_connections = settings.value(cloud_connections_key) or []
        cloud_dbs_from_settings = map(lambda conn: str(conn), pystringlist(stored_connections))

        # remove obsolete connections
        for db_name in (set(cloud_dbs_from_settings) - set(cloud_dbs_from_server)):
            for connection in DbConnectionCfg.get_cloud_db_connections(db_name):
                DbConnectionCfg.remove_connection(connection)

        # add missing connections
        for db_name in cloud_dbs_from_server:
            if len(DbConnectionCfg.get_cloud_db_connections(db_name)) == 0:
                self.db(db_name).store_connection()

        # store cloud db names in settings
        if len(cloud_dbs_from_server) > 0:
            settings.setValue(cloud_connections_key, cloud_dbs_from_server)
        else:
            settings.remove(cloud_connections_key)

        self._dbs_refreshed = True
コード例 #2
0
    def refresh(self, user):
        cloud_connections_key = u"/qgiscloud/connections/%s" % user
        settings = QSettings()

        cloud_dbs_from_server = self._dbs.keys()
        stored_connections = settings.value(cloud_connections_key) or []
        cloud_dbs_from_settings = map(lambda conn: str(conn),
                                      pystringlist(stored_connections))

        # remove obsolete connections
        for db_name in (set(cloud_dbs_from_settings) -
                        set(cloud_dbs_from_server)):
            for connection in DbConnectionCfg.get_cloud_db_connections(
                    db_name):
                DbConnectionCfg.remove_connection(connection)

        # add missing or changed connections
        for db_name in cloud_dbs_from_server:
            cfg = self.db(db_name)
            if len(DbConnectionCfg.get_cloud_db_connections(db_name)) == 0 or \
                    cfg.changed:
                cfg.store_connection()

        # store cloud db names in settings
        if len(cloud_dbs_from_server) > 0:
            settings.setValue(cloud_connections_key, cloud_dbs_from_server)
        else:
            settings.remove(cloud_connections_key)

        self._dbs_refreshed = True
コード例 #3
0
 def cloud_layer_uri(self, db_name, table_name, geom_column):
     uri = None
     # find db connection and create uri
     connections = DbConnectionCfg.get_cloud_db_connections(db_name)
     if len(connections) > 0:
         conn = DbConnectionCfg.from_settings(connections[0])
         uri = conn.data_source_uri()
         uri.setDataSource("", table_name, geom_column)
     return uri
コード例 #4
0
 def cloud_layer_uri(self, db_name, table_name, geom_column):
     uri = None
     # find db connection and create uri
     connections = DbConnectionCfg.get_cloud_db_connections(db_name)
     if len(connections) > 0:
         conn = DbConnectionCfg.from_settings(connections[0])
         uri = conn.data_source_uri()
         uri.setDataSource("", table_name, geom_column)
     return uri
コード例 #5
0
 def add_from_json(self, db):
     self._dbs[db['name']] = DbConnectionCfg(db['host'], db['port'],
                                             db['name'], db['username'],
                                             db['password'])