def publishGroup(self, tree, explorer): groupname = self.element groups = qgislayers.getGroups() grouplyrs = groups[groupname] cat = selectCatalog(explorer.catalogs()) if cat is None: return catgroup = cat.get_layergroup(groupname) toUpdate = set() toUpdate.add(tree.findAllItems(cat)[0]) overwrite = bool(QSettings().value( "/OpenGeo/Settings/GeoServer/OverwriteGroupLayers", True, bool)) dlg = PublishLayerGroupDialog(cat, groupname, grouplyrs, overwritegroup=True, overwritelayers=overwrite) dlg.exec_() grpName = dlg.definedname toPublish = dlg.topublish if grpName is None: # toPublish can be empty list return catgroup = cat.get_layergroup(grpName) names = [] if toPublish: explorer.setProgressMaximum(len(toPublish), "Publish layers") progress = 0 layernames = [] for layer, catalog, workspace, layername in toPublish: layernames.append(layername) explorer.setProgress(progress) ogcat = OGCatalog(catalog) 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) if catgroup: cat.delete(catgroup) #TODO calculate bounds bbox = None group = UnsavedLayerGroup(cat, grpName, names, names, bbox) explorer.run(cat.save, "Create layer group from group '" + groupname + "'", toUpdate, group)
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)