コード例 #1
0
    def run(self):
        package = "veriso.modules.nplso.checks.bauzonenplan"
        try:
            module = "%s.bemerkungen" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.checklayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.nutzungsplanungslayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.referenzlayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.grundlagelayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

        except Exception as e:
            self.message_bar.pushMessage("Error",
                                         str(e),
                                         level=QgsMessageBar.CRITICAL,
                                         duration=0)
コード例 #2
0
    def do_show_complex_check(self, folder, check):

        modules_dir = os.path.join(get_modules_dir())
        module_dir = os.path.join(modules_dir, self.module, 'checks', folder)

        # Search first in the module, if the check doesn't exist, try in the
        # extended module
        if (os.path.exists(module_dir)):
            module = "veriso.modules.%s.checks.%s.%s" % (self.module, folder,
                                                         check["file"])
        else:
            module = "veriso.modules.%s.checks.%s.%s" % (self.module_extended,
                                                         folder, check["file"])

        try:
            module = dynamic_import(module)
            c = module.ComplexCheck(self.iface)
            c.run()
        except Exception:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            self.message_bar.pushMessage(
                self.module_name,
                str(traceback.format_exc(exc_traceback)),
                Qgis.Critical,
                duration=0)
            return
コード例 #3
0
ファイル: all.py プロジェクト: sogis/pnf_veriso
    def run(self):
        package = "veriso.modules.pnf.checks.perimeterrand"
        try:
            module = "%s.maengel" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.checklayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

        except Exception as e:
            self.message_bar.pushMessage("Error", str(e),
                                         level=QgsMessageBar.CRITICAL,
                                         duration=0)
コード例 #4
0
ファイル: all.py プロジェクト: sogis/pnf_veriso
    def run(self):
        package = "veriso.modules.pnf.checks.agi_verifikation"
        try:
            module = "%s.differenzlayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.strassenachsentests" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

        except Exception as e:
            self.message_bar.pushMessage("Error",
                                         str(e),
                                         level=QgsMessageBar.CRITICAL,
                                         duration=0)
コード例 #5
0
ファイル: module.py プロジェクト: HusseinKabbout/veriso
def get_checks_from_files(module_name, topic_dir, modules_dir=None):
    """

    :param module_name:
    :param topic_dir:
    :param modules_dir:
    :return:
    """

    if modules_dir is None:
        modules_dir = get_modules_dir()
    path = os.path.join(modules_dir, module_name, 'checks', topic_dir)
    package = 'veriso.modules.%s.checks.%s' % (module_name, topic_dir)
    checks = []

    files = os.listdir(path)
    # alpha-numeric sorting to assure the same order in the menus
    # see http://stackoverflow.com/a/2669523/1193450
    # files = sorted(files, key=lambda item: (
    #    int(item.partition(' ')[0]) if item[0].isdigit() else float('inf'),
    #    item))
    try:
        locale = QSettings().value('locale/userLocale')[0:2]
    except TypeError:
        locale = 'de'

    for f in files:
        check = {}
        if f.endswith(".py") and f != '__init__.py':
            filename = f[:-3]
            module = '%s.%s' % (package, filename)
            try:
                module = dynamic_import(module)
                check['id'] = filename
                check['file'] = filename
                check['name'] = module.ComplexCheck.get_name()
                if check['name'] is not None:
                    # name is defined in the class
                    check['shortcut'] = module.ComplexCheck.get_shortcut()
                else:
                    # let's see if there is a yaml file as our last resort
                    yaml_path = os.path.join(path, filename + '.yml')
                    check['name'], check['shortcut'] = get_info_from_yaml(
                        yaml_path)

                # if we made it to here, it's all good
                checks.append(check)
            except:
                continue
        elif f.endswith('_separator'):
            check['name'] = 'separator'
            # checks.append(check)
    checks = sorted(checks, key=lambda k: k["name"][locale])
    return checks
コード例 #6
0
    def do_load_project(self, project):
        # verified on osx, str(project[...]) return future.newstring, that
        # QSettings doesn't use it correctly. With native, use of standard
        # python string is forced.

        self.settings.setValue("project/id", str(project["id"]))
        self.settings.setValue("project/displayname",
                               str(project["displayname"]))
        self.settings.setValue("project/appmodule", str(project["appmodule"]))
        self.settings.setValue("project/appmodulename",
                               str(project["appmodulename"]))
        self.settings.setValue("project/ilimodelname",
                               str(project["ilimodelname"]))
        self.settings.setValue("project/epsg", str(project["epsg"]))
        self.settings.setValue("project/provider", str(project["provider"]))
        if 'dbhost' in project:
            self.settings.setValue("project/dbhost", str(project["dbhost"]))
        if 'dbport' in project:
            self.settings.setValue("project/dbport", str(project["dbport"]))
        if 'dbname' in project:
            self.settings.setValue("project/dbname", str(project["dbname"]))
        self.settings.setValue("project/dbschema", str(project["dbschema"]))
        if 'dbuser' in project:
            self.settings.setValue("project/dbuser", str(project["dbuser"]))
        if 'dbpwd' in project:
            self.settings.setValue("project/dbpwd", str(project["dbpwd"]))
        if 'dbadmin' in project:
            self.settings.setValue("project/dbadmin", str(project["dbadmin"]))
        if 'dbadminpwd' in project:
            self.settings.setValue("project/dbadminpwd",
                                   str(project["dbadminpwd"]))
        if 'projectdir' in project:
            self.settings.setValue("project/projectdir",
                                   str(project["projectdir"]))
        self.settings.setValue("project/max_scale", str(project["max_scale"]))

        module_name = project["appmodule"].lower()
        try:
            module_name = "veriso.modules." + module_name + ".applicationmodule"
            module = dynamic_import(module_name)
            application_module = module.ApplicationModule(self)
            application_module.init_gui()

            if project["max_scale"]:
                self.set_max_scale(project["max_scale"])
            else:
                self.unset_max_scale()

        except Exception as e:
            self.message_bar.pushMessage("VeriSO", str(e),
                                         level=Qgis.Critical, duration=0)
コード例 #7
0
    def run(self):
        package = "veriso.modules.veriso_v_d.checks.bb"
        try:
            module = "%s.utils_realestate" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.checklayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.overview" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

        except Exception as e:
            self.message_bar.pushMessage("Error",
                                         str(e),
                                         level=Qgis.Critical,
                                         duration=0)
コード例 #8
0
ファイル: alle_checks.py プロジェクト: sogis/pnf_veriso
    def run(self):
        package = "veriso.modules.veriso_ee.checks.gebaeudeadressen"
        try:
            module = "%s.lokalisation" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.checklayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

            module = "%s.basislayer" % package
            _temp = dynamic_import(module)
            c = _temp.ComplexCheck(self.iface)
            c.run()

        except Exception as e:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            self.message_bar.pushMessage("Error", str(e),
                                         level=QgsMessageBar.CRITICAL,
                                         duration=0)
コード例 #9
0
 def do_show_complex_check(self, folder, check):
     module = "veriso.modules.%s.checks.%s.%s" % (self.module, folder,
                                                  check["file"])
     try:
         module = dynamic_import(module)
         c = module.ComplexCheck(self.iface)
         c.run()
     except Exception:
         exc_type, exc_value, exc_traceback = sys.exc_info()
         self.message_bar.pushMessage(
             self.module_name,
             str(traceback.format_exc(exc_traceback)),
             QgsMessageBar.CRITICAL,
             duration=0)
         return
コード例 #10
0
ファイル: veriso.py プロジェクト: sogis/nplso_veriso
    def do_load_project(self, project):
        self.settings.setValue("project/id", str(project["id"]))
        self.settings.setValue("project/displayname",
                               str(project["displayname"]))
        self.settings.setValue("project/appmodule", str(project["appmodule"]))
        self.settings.setValue("project/appmodulename",
                               str(project["appmodulename"]))
        self.settings.setValue("project/ilimodelname",
                               str(project["ilimodelname"]))
        self.settings.setValue("project/epsg", str(project["epsg"]))
        self.settings.setValue("project/provider", str(project["provider"]))
        self.settings.setValue("project/dbhost", str(project["dbhost"]))
        self.settings.setValue("project/dbport", str(project["dbport"]))
        self.settings.setValue("project/dbname", str(project["dbname"]))
        self.settings.setValue("project/dbschema", str(project["dbschema"]))
        self.settings.setValue("project/dbuser", str(project["dbuser"]))
        self.settings.setValue("project/dbpwd", str(project["dbpwd"]))
        self.settings.setValue("project/dbadmin", str(project["dbadmin"]))
        self.settings.setValue("project/dbadminpwd",
                               str(project["dbadminpwd"]))
        self.settings.setValue("project/projectdir",
                               str(project["projectdir"]))

        module_name = str(project["appmodule"]).lower()
        try:
            module_name = "veriso.modules." + module_name + ".applicationmodule"
            module = dynamic_import(module_name)
            application_module = module.ApplicationModule(
                self.iface, self.toolbar, self.locale_path)
            application_module.init_gui()

        except Exception as e:
            self.message_bar.pushMessage("VeriSO",
                                         str(e),
                                         QgsMessageBar.CRITICAL,
                                         duration=0)
コード例 #11
0
ファイル: module.py プロジェクト: sogis/nplso_veriso
def get_checks_from_files(module_name, topic_dir, modules_dir=None):
    """

    :param module_name:
    :param topic_dir:
    :param modules_dir:
    :return:
    """

    if modules_dir is None:
        modules_dir = get_modules_dir()
    path = os.path.join(modules_dir, module_name, 'checks', topic_dir)
    package = 'veriso.modules.%s.checks.%s' % (module_name, topic_dir)
    checks = []

    files = os.listdir(path)
    # alpha-numeric sorting to assure the same order in the menus
    # see http://stackoverflow.com/a/2669523/1193450
    files = sorted(files, key=lambda item: (
        int(item.partition(' ')[0]) if item[0].isdigit() else float('inf'),
        item))
    for f in files:
        check = {}
        if f.endswith(".py") and f != '__init__.py':
            filename = f[:-3]
            module = '%s.%s' % (package, filename)
            try:
                module = dynamic_import(module)
                check['id'] = filename
                check['file'] = filename
                check['shortcut'] = module.ComplexCheck.get_shortcut()
                check['name'] = module.ComplexCheck.get_name()
                checks.append(check)
            except:
                continue
    return checks
コード例 #12
0
 def do_load_defects(self):
     defects_module = 'veriso.modules.tools.loaddefects'
     defects_module = dynamic_import(defects_module)
     d = defects_module.LoadDefects(self.iface, self.module,
                                    self.module_name)
     d.run()
コード例 #13
0
 def test_dynamic_import(self):
     dynamic_import('veriso.base.utils.exceptions')
     with self.assertRaises(VerisoError):
         dynamic_import('veriso.base.utils.lalala')
コード例 #14
0
 def do_load_defects(self):
     defects_module = 'veriso.modules.loaddefects_base'
     defects_module = dynamic_import(defects_module)
     d = defects_module.LoadDefectsBase(self.iface, self.module_name)
     return d.run()
コード例 #15
0
 def do_export_defects(self):
     defects_module = 'veriso.modules.tools.exportdefects'
     defects_module = dynamic_import(defects_module)
     d = defects_module.ExportDefects(self.iface, self.module,
                                      self.module_name)
     d.run()
コード例 #16
0
ファイル: applicationmodule.py プロジェクト: pka/veribe_ee
    def do_load_defects(self):
        # example of how to add your own defect layers or fields
        defects_module = 'veriso.modules.loaddefects_base'
        defects_module = dynamic_import(defects_module)
        d = defects_module.LoadDefectsBase(self.iface, self.module_name)

        fields = {
            'ogc_fid': {
                'widget': 'TextEdit',
                'readonly': True,
                'config': {
                    "Editable": False
                }
            },
            'topic': {
                'widget': 'Enumeration',
                'default': 'Bodenbedeckung',
                'alias': 'Topic:',
                'writable_only_by': ['agi', 'avor']
            },
            'bezeichnun': {
                'widget': 'Enumeration',
                'alias': 'Bezeichnung:',
                'writable_only_by': ['agi', 'avor']
            },
            'abrechnung': {
                'widget': 'Enumeration',
                'default': 'PNF',
                'alias': 'Abrechnung:',
                'writable_only_by': ['agi', 'avor']
            },
            'bem_avor': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung AVOR:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'avor']
            },
            'datum': {
                'widget': 'Hidden'
            },
            'bem_nfg': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung NFG:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'geometer']
            },
            'forstorgan': {
                'widget': 'Enumeration',
                'alias': 'Forstorgan:',
                'writable_only_by': ['agi', 'forst']
            },
            'bem_forst': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung Forst:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'forst']
            },
            'verifikati': {
                'widget': 'Enumeration',
                'alias': 'Verifikation:',
                'writable_only_by': ['agi']
            },
            'bem_verifi': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung Verifikation:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi']
            },
            'erledigt': {
                'widget': 'CheckBox',
                'alias': 'Erledigt:',
                'config': {
                    'CheckedState': 't',
                    'UncheckedState': 'f'
                },
                'writable_only_by': ['agi']
            }
        }

        d.layers['point']['fields'] = fields
        d.layers['line']['fields'] = fields
        d.layers['polygon']['fields'] = fields

        d.layers['point']['readonly'] = True
        d.layers['line']['readonly'] = True
        d.layers['polygon']['readonly'] = True

        return d.run()
コード例 #17
0
    def do_load_defects(self, defects_type):
        defects_module = 'veriso.modules.loaddefects_base'
        defects_module = dynamic_import(defects_module)
        tr_tag = self.module_name
        d = defects_module.LoadDefectsBase(self.iface, tr_tag, defects_type)
        if defects_type == "forest":
            d.group = tr("Mängel Wald", tr_tag)
            d.group += " (" + str(d.project_id) + ")"

        fields = {
            'ogc_fid': {
                'widget': 'TextEdit',
                'readonly': True,
                'config': {
                    "Editable": False
                }
            },
            'topic': {
                'widget': 'Enumeration',
                'default': 'Bodenbedeckung',
                'alias': 'Topic:',
                'writable_only_by': ['agi', 'avor']
            },
            'bezeichnun': {
                'widget': 'Enumeration',
                'alias': 'Bezeichnung:',
                'writable_only_by': ['agi', 'avor']
            },
            'abrechnung': {
                'widget': 'Enumeration',
                'default': 'PNF',
                'alias': 'Abrechnung:',
                'writable_only_by': ['agi', 'avor']
            },
            'bem_avor': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung AVOR:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'avor']
            },
            'datum': {
                'widget': 'Hidden',
                'alias': tr('datum', tr_tag)
            },
            'bem_nfg': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung NFG:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'geometer']
            },
            'forstorgan': {
                'widget': 'Enumeration',
                'alias': 'Forstorgan:',
                'writable_only_by': ['agi', 'forst']
            },
            'bem_forst': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung Forst:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'forst']
            },
            'verifikati': {
                'widget': 'Enumeration',
                'alias': 'Verifikation:',
                'writable_only_by': ['agi']
            },
            'bem_verifi': {
                'widget': 'TextEdit',
                'alias': 'Bemerkung Verifikation:',
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi']
            },
            'erledigt': {
                'widget': 'CheckBox',
                'alias': 'Erledigt:',
                'config': {
                    'CheckedState': 't',
                    'UncheckedState': 'f'
                },
                'writable_only_by': ['agi']
            }
        }

        forest_fields = {
            'ogc_fid': {
                'widget': 'TextEdit',
                'readonly': True,
                'config': {
                    "Editable": False
                }
            },
            'bezeichnung': {
                'widget': 'Enumeration',
                'alias': tr('Bezeichnung:', tr_tag),
                'writable_only_by': ['agi', 'avor']
            },
            'bem_av': {
                'widget': 'TextEdit',
                'alias': tr('Bemerkung AV:', tr_tag),
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'avor']
            },
            'datum': {
                'widget': 'Hidden',
                'alias': tr('datum', tr_tag)
            },
            'bem_forst': {
                'widget': 'TextEdit',
                'alias': tr('Bemerkung Forst:', tr_tag),
                'config': {
                    "IsMultiline": True
                },
                'writable_only_by': ['agi', 'forst']
            },
        }

        d.layers = {
            'default': {
                'point': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Punkte)", tr_tag),
                    "featuretype": "t_maengel_punkt",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_punkte.qml",
                    "fields": fields
                },
                'pointdesc': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Punkte) Beschreibung", tr_tag),
                    "featuretype": "t_maengel_punkt",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_punkte_beschreibung.qml",
                    "fields": fields
                },
                'line': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Linien)", tr_tag),
                    "featuretype": "t_maengel_linie",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_linien.qml",
                    "fields": fields
                },
                'linedesc': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Linien) Beschreibung", tr_tag),
                    "featuretype": "t_maengel_linie",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_linien_beschreibung.qml",
                    "fields": fields
                },
                'polygon': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Polygone)", tr_tag),
                    "featuretype": "t_maengel_polygon",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_polygone.qml",
                    "fields": fields
                },
                'polygondesc': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Polygone) Beschreibung", tr_tag),
                    "featuretype": "t_maengel_polygon",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_polygone_beschreibung.qml",
                    "fields": fields
                }
            },
            'forest': {
                'point': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Punkte)", tr_tag),
                    "featuretype": "t_forest_maengel_punkt",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style": "maengel/maengelliste_wald_punkte.qml",
                    "fields": forest_fields
                },
                'pointdesc': {
                    "type": "postgres",
                    "title": tr("Mängelliste (Punkte) Beschreibung", tr_tag),
                    "featuretype": "t_forest_maengel_punkt",
                    "geom": "the_geom",
                    "key": "ogc_fid",
                    "readonly": True,
                    "sql": "",
                    "group": d.group,
                    "style":
                    "maengel/maengelliste_wald_punkte_beschreibung.qml",
                    "fields": forest_fields
                }
            }
        }

        return d.run()