def createStoresFromLayers(self, tree, explorer, selected): layers = [item.element for item in selected] dlg = PublishLayersDialog(explorer.catalogs(), layers) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Upload layers") progress = 0 toUpdate = set() for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) explorer.run( ogcat.createStore, None, #"Create store from layer '" + layer.name() + "'", [], layer, workspace, True) progress += 1 toUpdate.add(tree.findAllItems(catalog)) explorer.setProgress(progress) for item in toUpdate: item.refreshContent(explorer) explorer.resetActivity()
def publishGroup(self, tree, explorer): groupname = self.element groups = qgislayers.getGroups() group = groups[groupname] cat = selectCatalog(explorer.catalogs()) if cat is None: return gslayers = [layer.name for layer in cat.get_layers()] missing = [] overwrite = bool(QSettings().value( "/OpenGeo/Settings/GeoServer/OverwriteGroupLayers", True, bool)) for layer in group: if layer.name() not in gslayers or overwrite: missing.append(layer) toUpdate = set() toUpdate.add(tree.findAllItems(cat)[0]) if missing: catalogs = { k: v for k, v in explorer.catalogs().iteritems() if v == cat } dlg = PublishLayersDialog(catalogs, missing) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() names = [layer.name() for layer in group] def _createGroup(): layergroup = cat.create_layergroup(groupname, names, names) cat.save(layergroup) explorer.run(_createGroup, "Create layer group from group '" + groupname + "'", toUpdate)
def publishGroup(self, tree, explorer): groupname = self.element groups = qgislayers.getGroups() group = groups[groupname] cat = selectCatalog(explorer.catalogs()) if cat is None: return gslayers= [layer.name for layer in cat.get_layers()] missing = [] overwrite = bool(QSettings().value("/OpenGeo/Settings/GeoServer/OverwriteGroupLayers", True, bool)) for layer in group: if layer.name() not in gslayers or overwrite: missing.append(layer) toUpdate = set(); toUpdate.add(tree.findAllItems(cat)[0]) if missing: catalogs = dict([(k ,v) for k, v in explorer.catalogs().iteritems() if v == cat]) dlg = PublishLayersDialog(catalogs, missing) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() names = [layer.name() for layer in group] def _createGroup(): layergroup = cat.create_layergroup(groupname, names, names) cat.save(layergroup) explorer.run(_createGroup, "Create layer group from group '" + groupname + "'", toUpdate)
def publishGroup(self, tree, explorer): groupname = self.element groups = qgislayers.getGroups() group = groups[groupname] cat = selectCatalog(explorer.catalogs()) if cat is None: return gslayers= [layer.name for layer in cat.get_layers()] missing = [] for layer in group: if layer.name() not in gslayers: missing.append(layer) toUpdate = set(); toUpdate.add(tree.findAllItems(cat)[0]) if missing: catalogs = {k :v for k, v in explorer.catalogs().iteritems() if v == cat} dlg = PublishLayersDialog(catalogs, missing) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if not explorer.run(ogcat.publishLayer, None,#"Publish layer '" + layer.name() + "'", [], layer, workspace, True): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() names = [layer.name() for layer in group] layergroup = cat.create_layergroup(groupname, names, names) explorer.run(cat.save, "Create layer group from group '" + groupname + "'", [], layergroup) for item in toUpdate: item.refreshContent(explorer)
def publishLayers(self, tree, explorer, selected): layers = [item.element for item in selected] dlg = PublishLayersDialog(explorer.catalogs(), layers) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 toUpdate = set() for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if explorer.run(publishLayer, None, [], ogcat, layer, workspace, True): toUpdate.add(tree.findAllItems(catalog)[0]) progress += 1 explorer.setProgress(progress) for item in toUpdate: item.refreshContent(explorer) explorer.resetActivity()
def createStoresFromLayers(self, tree, explorer, selected): layers = [item.element for item in selected] dlg = PublishLayersDialog(explorer.catalogs(), layers) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Upload layers") progress = 0 toUpdate = set(); for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) explorer.run(ogcat.createStore, None,#"Create store from layer '" + layer.name() + "'", [], layer, workspace, True) progress += 1 toUpdate.add(tree.findAllItems(catalog)) explorer.setProgress(progress) for item in toUpdate: item.refreshContent(explorer) explorer.resetActivity()
def publishLayers(self, tree, explorer, selected): layers = [item.element for item in selected] dlg = PublishLayersDialog(explorer.catalogs(), layers) dlg.exec_() toPublish = dlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 toUpdate = set(); for layer, catalog, workspace in toPublish: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if explorer.run(publishLayer, None, [], ogcat, layer, workspace, True): toUpdate.add(tree.findAllItems(catalog)[0]) progress += 1 explorer.setProgress(progress) for item in toUpdate: item.refreshContent(explorer) explorer.resetActivity()
def publishProject(tree, explorer): layers = qgislayers.getAllLayers() if not layers: return dlg = PublishProjectDialog(explorer.catalogs()) dlg.exec_() catalog = dlg.catalog if catalog is None: return workspace = dlg.workspace groupName = dlg.groupName ogcat = OGCatalog(catalog) groups = qgislayers.getGroups() grouplyrs = [] for group in groups: grouplyrs.extend([layer for layer in groups[group]]) ungroupedlyrs = [layer for layer in layers if layer not in grouplyrs] publishedLyrs = [] if ungroupedlyrs: lyrsdlg = PublishLayersDialog( {0: catalog}, ungroupedlyrs, workspace=workspace, overwrite=False) lyrsdlg.exec_() toPublish = lyrsdlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish ungrouped layer") progress = 0 for layer, catalog, workspace, layername in toPublish: publishedLyrs.append(layername) explorer.setProgress(progress) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True, layername): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() for group in groups: grouplyrs = [layer for layer in groups[group]] if not grouplyrs: continue # don't publish empty groups, when publishing project dlg = PublishLayerGroupDialog(catalog, group, grouplyrs, workspace=workspace, overwritegroup=False, overwritelayers=False) dlg.exec_() grpName = dlg.definedname toPublish = dlg.topublish if grpName is None: # toPublish can be empty list return explorer.setProgressMaximum(len(toPublish), "Publish grouped layer") progress = 0 layernames = [] for layer, catalog, workspace, layername in toPublish: layernames.append(layername) publishedLyrs.append(layername) explorer.setProgress(progress) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True, layername): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() names = reversed(layernames) layergroup = catalog.create_layergroup(grpName, names, names) if not explorer.run(catalog.save, "Create layer group from group '" + group + "'", [], layergroup): return if groupName is not None: names = reversed(publishedLyrs) layergroup = catalog.create_layergroup(groupName, names, names) if not explorer.run(catalog.save, "Create global layer group", [], layergroup): return tree.findAllItems(catalog)[0].refreshContent(explorer) explorer.setInfo("Project published")