[GRASS-SVN] r65932 - in grass-addons/grass7/gui/wxpython/wx.metadata: db.csw.admin db.csw.harvest db.csw.run g.gui.cswbrowser g.gui.metadata mdlib r.info.iso t.info.iso v.info.iso

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Aug 14 08:15:10 PDT 2015


Author: krejcmat
Date: 2015-08-14 08:15:10 -0700 (Fri, 14 Aug 2015)
New Revision: 65932

Modified:
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.html
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.py
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.html
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.py
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.html
   grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.py
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.html
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.py
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlRequest.html
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlResponse.html
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.html
   grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.py
   grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/cswlib.py
   grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdeditorfactory.py
   grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdpdffactory.py
   grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.html
   grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.py
   grass-addons/grass7/gui/wxpython/wx.metadata/t.info.iso/t.info.iso.py
   grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.html
   grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.py
Log:
wx.metadata addons: fix path to libs, polish code

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -15,35 +15,39 @@
 
 In configure file must be setup few parameters for proper work of pycsw library.
 <ul>
-<li>server.home<br>
-Path to folder with installed pycsw</li>
-<li>database.homez<br>
-Path to database with data of catalog. By default is set to SQLite database. E.g GRASS GIS sqlite database.</li>
-<li>server.url<br>
-For using local serever this parameter should by set to <a href="http://localhost:8000/">http://localhost:8000/</a></li>
+    <li>server.home<br>
+        Path to folder with installed pycsw
+    </li>
+    <li>database.homez<br>
+        Path to database with data of catalog. By default is set to SQLite database. E.g GRASS GIS sqlite database.
+    </li>
+    <li>server.url<br>
+        For using local serever this parameter should by set to <a
+                href="http://localhost:8000/">http://localhost:8000/</a></li>
 </ul>
 
 
 <div class="code"><pre>
 v.harvest.iso source=http://www.rndt.gov.it/RNDT/CSW destionantion=http://localhost:8000/
-</pre></div>
+</pre>
+</div>
 
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
-  <a href="g.gui.cswbrowser.html">g.gui.cswbrowser</a>
-  <a href="db.csw.harvest">db.csw.harvest</a>
-  <a href="db.csw.run">db.csw.run</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="g.gui.cswbrowser.html">g.gui.cswbrowser</a>
+    <a href="db.csw.harvest">db.csw.harvest</a>
+    <a href="db.csw.run">db.csw.run</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 <h2>AUTHOR</h2>
 Matej Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2015</a> (mentors: Martin Landa)
+    Summer of Code 2015</a> (mentors: Martin Landa)

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.admin/db.csw.admin.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -14,7 +14,7 @@
 """
 
 
-#%module
+# %module
 #% description: CSW database manager
 #% keyword: csw
 #% keyword: metadata
@@ -118,23 +118,22 @@
 import os
 import ConfigParser
 
-from grass.pygrass.modules import Module
-from grass.script import parse_key_val
 from grass.script import core as grass
 
-sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'mdlib'))
-from subprocess import PIPE
+
+sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'wx.metadata', 'mdlib'))
+
 import getopt
 from cswutil import *
-import shutil
+
 try:
     from pycsw.core import admin, config
 
 except:
-    sys.exit('pycsw library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
+    sys.exit(
+        'pycsw library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
 
 
-
 class CswAdmin():
     def __init__(self):
         self.COMMAND = None
@@ -246,7 +245,7 @@
         try:
             OPTS, ARGS = getopt.getopt(argv, 'c:f:ho:p:ru:x:s:t:y')
         except getopt.GetoptError as err:
-            grass.error( '\nERROR: %s' % err)
+            grass.error('\nERROR: %s' % err)
             #print usage()
 
         for o, a in OPTS:
@@ -311,6 +310,8 @@
 
         elif self.COMMAND == 'delete_records':
             admin.delete_records(self.CONTEXT, self.DATABASE, self.TABLE)
+
+
 '''#TODO
     def initDatabase(self):
         driverDB = Module('db.connect',
@@ -319,8 +320,8 @@
                           stdout_=PIPE)
         self.database = parse_key_val(driverDB.outputs.stdout, sep=': ')
         conf = 'default.cfg'
-        modif = os.path.join(os.getenv('GRASS_ADDON_BASE') ,'etc','config','default.cfg')
-        defaultConf = os.path.join(os.getenv('GRASS_ADDON_BASE') ,'etc','config','default-sample.cfg')
+        modif = os.path.join(os.getenv('GRASS_ADDON_BASE') ,'wx.metadata','etc','config','default.cfg')
+        defaultConf = os.path.join(os.getenv('GRASS_ADDON_BASE'),'wx.metadata' ,'etc','config','default-sample.cfg')
         print self.database
 
         SCP = ConfigParser.SafeConfigParser()
@@ -364,6 +365,8 @@
 #% guisection: Auto Config
 #%end
 '''
+
+
 def main():
     defaultConf = options['configure']
     load_records = options['load_records']
@@ -381,7 +384,7 @@
 
     csw = CswAdmin()
     #if flags['a']:
-        #csw.initDatabase()
+    #csw.initDatabase()
     args = csw.argParser(defaultConf,
                          load_records,
                          loadRecurs,

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -10,28 +10,29 @@
 
 <h2>EXAMPLES</h2>
 <p>
-Harvesting of remote cataloge to local:
+    Harvesting of remote cataloge to local:
 
 <div class="code"><pre>
 db.csw.harvest source=http://www.rndt.gov.it/RNDT/CSW destionantion=http://localhost:8000/
-</pre></div>
+</pre>
+</div>
 
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
-  <a href="g.gui.cswbrowser.html">g.gui.cswbrowser</a>
-  <a href="db.csw.admin">db.csw.admin</a>
-  <a href="db.csw.run">db.csw.run</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="g.gui.cswbrowser.html">g.gui.cswbrowser</a>
+    <a href="db.csw.admin">db.csw.admin</a>
+    <a href="db.csw.run">db.csw.run</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 <h2>AUTHOR</h2>
 Matej Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2015</a> (mentors: Martin Landa)
+    Summer of Code 2015</a> (mentors: Martin Landa)

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.harvest/db.csw.harvest.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -18,7 +18,7 @@
 
 """
 
-#%module
+# %module
 #% description: CSW database manager
 #% keyword: csw
 #% keyword: metadata
@@ -46,23 +46,27 @@
 #% type: integer
 #%end
 
-import sys,os
-sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'mdlib'))
+import sys
+import os
+
+sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'wx.metadata', 'mdlib'))
 from grass.script import core as grass
+
 try:
     from owslib.csw import CatalogueServiceWeb
     from owslib.ows import ExceptionReport
 except:
-    sys.exit('owslib python library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
+    sys.exit(
+        'owslib python library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
 
 #from __future__ import absolute_import
 #from __future__ import print_function
 
 
-def harvest(source,dst):
-    maxrecords=options['max']
-    if options['max']==0 or None:
-        maxrecords=10
+def harvest(source, dst):
+    maxrecords = options['max']
+    if options['max'] == 0 or None:
+        maxrecords = 10
     stop = 0
     flag = 0
 
@@ -80,28 +84,28 @@
         print(src.results)
 
         if src.results['nextrecord'] == 0 \
-            or src.results['returned'] == 0 \
-            or src.results['nextrecord'] > src.results['matches']:  # end the loop, exhausted all records
+                or src.results['returned'] == 0 \
+                or src.results['nextrecord'] > src.results['matches']:  # end the loop, exhausted all records
             stop = 1
             break
 
         # harvest each record to destination CSW
         for i in list(src.records):
             source = '%s?service=CSW&version=2.0.2&request=GetRecordById&id=%s' % \
-                (sys.argv[1], i)
+                     (sys.argv[1], i)
             dest.harvest(source=source, \
-                resourcetype='http://www.isotc211.org/2005/gmd')
+                         resourcetype='http://www.isotc211.org/2005/gmd')
             #print dest.request
             #print dest.response
 
         flag = 1
 
 
-def _get_csw(catalog_url,timeout=10):
+def _get_csw(catalog_url, timeout=10):
     """function to init owslib.csw.CatalogueServiceWeb"""
     # connect to the server
     try:
-        catalog = CatalogueServiceWeb(catalog_url,timeout=timeout)
+        catalog = CatalogueServiceWeb(catalog_url, timeout=timeout)
         return catalog
     except ExceptionReport, err:
         msg = 'Error connecting to service: %s' % err
@@ -109,16 +113,16 @@
         msg = 'Value Error: %s' % err
     except Exception, err:
         msg = 'Unknown Error: %s' % err
-    grass.error( 'CSW Connection error: %s' % msg)
+    grass.error('CSW Connection error: %s' % msg)
 
     return False
 
+
 def main():
-
     if not _get_csw(options['source']):
         return
 
-    harvest(options['source'],options['destination'])
+    harvest(options['source'], options['destination'])
 
 
 if __name__ == "__main__":

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -8,16 +8,16 @@
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
-  <a href="db.csw.harvest">db.csw.harvest</a>
-  <a href="db.csw.admin">db.csw.admin</a>
-  <a href="db.csw.run">db.csw.run</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="db.csw.harvest">db.csw.harvest</a>
+    <a href="db.csw.admin">db.csw.admin</a>
+    <a href="db.csw.run">db.csw.run</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 
 <h2>AUTHOR</h2>
@@ -26,7 +26,7 @@
 Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
+    Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
 
 <p>
-<i>Last changed: $Date$</i>
+    <i>Last changed: $Date$</i>

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/db.csw.run/db.csw.run.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -41,7 +41,7 @@
 # WSGIScriptAlias /pycsw-wsgi /var/www/pycsw/csw.wsgi
 #
 # <Directory /var/www/pycsw>
-#  Order deny,allow
+# Order deny,allow
 #  Allow from all
 # </Directory>
 #
@@ -76,17 +76,21 @@
 #%end
 
 from StringIO import StringIO
-import os, sys
+import os
+import sys
+import contextlib
 
 from grass.script import core as grass
-import contextlib
 
+
 try:
     from pycsw import server
 except:
-    sys.exit('pycsw library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
-app_path=None
+    sys.exit(
+        'pycsw library is missing. Check requirements on the manual page < https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support >')
+app_path = None
 
+
 @contextlib.contextmanager
 def application(env, start_response):
     """WSGI wrapper"""
@@ -112,7 +116,7 @@
 
     gzip = False
     if ('HTTP_ACCEPT_ENCODING' in env and
-            env['HTTP_ACCEPT_ENCODING'].find('gzip') != -1):
+                env['HTTP_ACCEPT_ENCODING'].find('gzip') != -1):
         # set for gzip compressed response
         gzip = True
 
@@ -147,10 +151,11 @@
 
     return [contents]
 
+
 def main():
-    path=options['path']
+    path = options['path']
     port = int(options['port'])
-    path=os.path.dirname(path)
+    path = os.path.dirname(path)
 
     app_path = os.path.dirname(path)
     sys.path.append(app_path)
@@ -159,8 +164,8 @@
 
     try:
         httpd = make_server('', port, application)
-        grass.message( "Serving on port %d..." % port)
-    except Exception,e:
+        grass.message("Serving on port %d..." % port)
+    except Exception, e:
         grass.error(str(e))
         sys.stdout.flush()
         sys.exit()
@@ -168,6 +173,7 @@
     httpd.serve_forever()
     sys.stdout.flush()
 
+
 if __name__ == "__main__":
     options, flags = grass.parser()
     main()

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -1,10 +1,10 @@
 <h2>DESCRIPTION</h2>
 
 <em>g.gui.cswbrowser</em> support searching and browsing metadata catalog based on
- <a href="http://www.opengeospatial.org/standards/cat">Catalogue Service(CSW)</a> standard .
+<a href="http://www.opengeospatial.org/standards/cat">Catalogue Service(CSW)</a> standard .
 
 <p>
-The module allows to setting up connection to csw by uri and search metadata with using advanced filter.
+    The module allows to setting up connection to csw by uri and search metadata with using advanced filter.
 
 <h2>NOTES</h2>
 
@@ -30,27 +30,34 @@
 <h3>Bounding box</h3>
 
 <ul>
-  <li>Bounding box<br>
-    Bounding box defined spatial extent for limitation of area. Button "Map extends" allows to set
-      up values from current GRASS region.</li>
-  <li>Keywords<br>
-    This filter allows to use basic or advance keyword filtering. In the simple case user can define
-    single keywords or multiple keywords with button "+". Logic operator between keywords is AND(&&).
-    Second, advanced is based on OGC list of expressions which means that can be set filtr with logic
-    relations between keywords or sets of keywords. Dialog for settings kewords text string is under
-    "Advanced" checkbox. Syntax of constraints is based on python list syntax. Each keywords must be
-    in braces<'>or<">.</li>
-    <li><ul>
-    <li>OR condition<br>
-    a || b || c
-    ["a","b","c"]</li>
-    <li>AND condition<br>
-        a && b && c
-        [["a","b","c"]]</li>
-    <li>composition<br>
-         (a && b) || c || d || e
-         [["a","b"],["c"],["d"],["e"]] or [["a","b"],"c","d","e"]</li>
-    </ul></li>
+    <li>Bounding box<br>
+        Bounding box defined spatial extent for limitation of area. Button "Map extends" allows to set
+        up values from current GRASS region.
+    </li>
+    <li>Keywords<br>
+        This filter allows to use basic or advance keyword filtering. In the simple case user can define
+        single keywords or multiple keywords with button "+". Logic operator between keywords is AND(&&).
+        Second, advanced is based on OGC list of expressions which means that can be set filtr with logic
+        relations between keywords or sets of keywords. Dialog for settings kewords text string is under
+        "Advanced" checkbox. Syntax of constraints is based on python list syntax. Each keywords must be
+        in braces<'>or<">.
+    </li>
+    <li>
+        <ul>
+            <li>OR condition<br>
+                a || b || c
+                ["a","b","c"]
+            </li>
+            <li>AND condition<br>
+                a && b && c
+                [["a","b","c"]]
+            </li>
+            <li>composition<br>
+                (a && b) || c || d || e
+                [["a","b"],["c"],["d"],["e"]] or [["a","b"],"c","d","e"]
+            </li>
+        </ul>
+    </li>
 </ul>
 
 <h3>Browsing of metadata</h3>
@@ -62,16 +69,16 @@
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>,
-  <a href="db.csw.harvest">db.csw.harvest</a>,
-  <a href="db.csw.admin">db.csw.admin</a>,
-  <a href="db.csw.run">db.csw.run</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>,
+    <a href="db.csw.harvest">db.csw.harvest</a>,
+    <a href="db.csw.admin">db.csw.admin</a>,
+    <a href="db.csw.run">db.csw.run</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 
 <h2>AUTHOR</h2>
@@ -79,7 +86,7 @@
 Matej Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2015</a> (mentors: Martin Landa)
+    Summer of Code 2015</a> (mentors: Martin Landa)
 
 <p>
-<i>Last changed: $Date$</i>
+    <i>Last changed: $Date$</i>

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/g.gui.cswbrowser.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -10,13 +10,15 @@
 @author Matej Krejci <matejkrejci gmail.com> (GSoC 2015)
 """
 
-import sys, os
+import sys
+import os
 
-sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]),'etc','wx.metadata','mdlib'))
+sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'wx.metadata', 'mdlib'))
 import wx
-from cswlib import CSWBrowserPanel,CSWConnectionPanel
+from cswlib import CSWBrowserPanel, CSWConnectionPanel
 import grass.script as grass
 
+
 class CswBrowserMainDialog(wx.Frame):
     def __init__(self):
         wx.Frame.__init__(self, None, title="Metadata browser", size=(1024, 760))
@@ -35,12 +37,14 @@
         self.mainsizer.Add(self.mainNotebook, 1, wx.EXPAND, )
         self.SetSizer(self.mainsizer)
 
+
 def main():
     app = wx.App()
     a = CswBrowserMainDialog()
     a.Show()
     app.MainLoop()
 
+
 if __name__ == '__main__':
     grass.parser()
     main()
\ No newline at end of file

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlRequest.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlRequest.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlRequest.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -13,12 +13,23 @@
 </head>
 <body>
 <div class="highlight"><pre><span class="cp"><?xml version="1.0" ?></span>
-<span class="nt"><csw:GetRecords</span> <span class="na">maxRecords=</span><span class="s">"20"</span> <span class="na">outputFormat=</span><span class="s">"application/xml"</span> <span class="na">outputSchema=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span class="na">resultType=</span><span class="s">"results"</span> <span class="na">service=</span><span class="s">"CSW"</span> <span class="na">version=</span><span class="s">"2.0.2"</span> <span class="na">xmlns:csw=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span> <span class="na">xsi:schemaLocation=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"</span><span class="nt">></span>
-	<span class="nt"><csw:Query</span> <span class="na">typeNames=</span><span class="s">"csw:Record"</span><span class="nt">></span>
+<span class="nt"><csw:GetRecords</span> <span class="na">maxRecords=</span><span
+            class="s">"20"</span> <span class="na">outputFormat=</span><span class="s">"application/xml"</span> <span
+            class="na">outputSchema=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span
+            class="na">resultType=</span><span class="s">"results"</span> <span
+            class="na">service=</span><span class="s">"CSW"</span> <span class="na">version=</span><span
+            class="s">"2.0.2"</span> <span class="na">xmlns:csw=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span
+            class="na">xmlns:xsi=</span><span
+            class="s">"http://www.w3.org/2001/XMLSchema-instance"</span> <span
+            class="na">xsi:schemaLocation=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"</span><span
+            class="nt">></span>
+	<span class="nt"><csw:Query</span> <span class="na">typeNames=</span><span
+            class="s">"csw:Record"</span><span class="nt">></span>
 		<span class="nt"><csw:ElementSetName></span>full<span class="nt"></csw:ElementSetName></span>
 	<span class="nt"></csw:Query></span>
 <span class="nt"></csw:GetRecords></span>
-</pre></div>
+</pre>
+</div>
 
 </body>
 </html>
\ No newline at end of file

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlResponse.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlResponse.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.cswbrowser/htmlResponse.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -12,18 +12,33 @@
     </style>
 </head>
 <body>
-<div class="highlight"><pre><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
-<span class="nt"><csw:GetRecordsResponse</span> <span class="na">xmlns:csw=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span class="na">xmlns:dc=</span><span class="s">"http://purl.org/dc/elements/1.1/"</span> <span class="na">xmlns:ogc=</span><span class="s">"http://www.opengis.net/ogc"</span> <span class="na">xmlns:dct=</span><span class="s">"http://purl.org/dc/terms/"</span> <span class="na">xmlns:ows=</span><span class="s">"http://www.opengis.net/ows"</span> <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span><span class="nt">></span>
+<div class="highlight">
+<pre><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
+<span class="nt"><csw:GetRecordsResponse</span> <span class="na">xmlns:csw=</span><span class="s">"http://www.opengis.net/cat/csw/2.0.2"</span> <span
+        class="na">xmlns:dc=</span><span class="s">"http://purl.org/dc/elements/1.1/"</span> <span class="na">xmlns:ogc=</span><span
+        class="s">"http://www.opengis.net/ogc"</span> <span class="na">xmlns:dct=</span><span class="s">"http://purl.org/dc/terms/"</span> <span
+        class="na">xmlns:ows=</span><span class="s">"http://www.opengis.net/ows"</span> <span class="na">xmlns:xsi=</span><span
+        class="s">"http://www.w3.org/2001/XMLSchema-instance"</span><span class="nt">></span>
 <span class="nt"><csw:RequestId</span> <span class="nt">/></span>
 <span class="nt"><csw:SearchStatus</span> <span class="nt">/></span>
-<span class="nt"><csw:SearchResults</span> <span class="na">elementSet=</span><span class="s">"full"</span> <span class="na">recordSchema=</span><span class="s">"http://schemas.opengis.net/csw/2.0.2/record.xsd"</span> <span class="na">numberOfRecordsMatched=</span><span class="s">"17527"</span> <span class="na">numberOfRecordsReturned=</span><span class="s">"20"</span> <span class="na">nextRecord=</span><span class="s">"40"</span><span class="nt">></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:SearchResults</span> <span class="na">elementSet=</span><span class="s">"full"</span> <span
+        class="na">recordSchema=</span><span
+        class="s">"http://schemas.opengis.net/csw/2.0.2/record.xsd"</span> <span class="na">numberOfRecordsMatched=</span><span
+        class="s">"17527"</span> <span class="na">numberOfRecordsReturned=</span><span class="s">"20"</span> <span
+        class="na">nextRecord=</span><span class="s">"40"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>p_AR:00001:20120112:171634<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>PFVP Provincia di Arezzo - Zone di rispetto venatorio<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2005-12-28<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Istituite dalle Province su richiesta delle ATC sul territorio destinato alla caccia programmata possono essere previste in due tipologie:<span class="ni">&#xd;</span>
-									- zone vaste in cui  prevista la possibilit di prelievo sulle specie non in indirizzo:<span class="ni">&#xd;</span>
-									- zone di limitata estensione istituite soprattutto con riguardo alla piccola selvaggina stanziale.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>Istituite dalle Province su richiesta delle ATC sul territorio destinato alla caccia programmata possono essere previste in due tipologie:<span
+        class="ni">&#xd;</span>
+									- zone vaste in cui  prevista la possibilit di prelievo sulle specie non in indirizzo:<span
+        class="ni">&#xd;</span>
+									- zone di limitata estensione istituite soprattutto con riguardo alla piccola selvaggina stanziale.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>pianificazione<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>gestione ambientale<span class="nt"></dc:subject></span>
@@ -42,11 +57,15 @@
 <span class="nt"><ows:UpperCorner></span>12.3714 43.513237<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>r_molise:{E1CCB7E3-AE4F-48E0-A418-A6205DB72B83}<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>MOLISEDB.GIS.W_G_S381114<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2012-04-03<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>La feature class rappresenta un foglio della Carta Tecnica Regionale 1:5000. Il dato  stato ricevuto dalla Regione Molise in formato shapefile.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>La feature class rappresenta un foglio della Carta Tecnica Regionale 1:5000. Il dato  stato ricevuto dalla Regione Molise in formato shapefile.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>map<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>Utilizzo del territorio<span class="nt"></dc:subject></span>
@@ -64,11 +83,15 @@
 <span class="nt"><ows:UpperCorner></span>14.874149 41.899003<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>r_molise:{B9315A15-C9C8-4080-A42B-D8998B24DD31}<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>MOLISEDB.GIS.W_G_S394083<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2012-04-06<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>La feature class rappresenta un foglio della Carta Tecnica Regionale 1:5000. Il dato  stato ricevuto dalla Regione Molise in formato shapefile.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>La feature class rappresenta un foglio della Carta Tecnica Regionale 1:5000. Il dato  stato ricevuto dalla Regione Molise in formato shapefile.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>map<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>Utilizzo del territorio<span class="nt"></dc:subject></span>
@@ -86,11 +109,15 @@
 <span class="nt"><ows:UpperCorner></span>14.957496 41.724031<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>r_molise:{677D9AFF-0950-4067-B9A3-AFD8371C5FFA}<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>MOLISEDB.GIS.MO_DBP01G_Centri_Molise<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2012-03-08<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Feature Class dei centri abitati DBPrior 10k livello 2 per intera Regione Molise. Dato consegnato dalla Regione Molise.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>Feature Class dei centri abitati DBPrior 10k livello 2 per intera Regione Molise. Dato consegnato dalla Regione Molise.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>land use classification<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>Utilizzo del territorio<span class="nt"></dc:subject></span>
@@ -107,12 +134,17 @@
 <span class="nt"><ows:UpperCorner></span>15.080393 42.034867<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
-<span class="nt"><dc:identifier></span>r_umbria:00019:20100607:143032<span class="nt"></dc:identifier></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><dc:identifier></span>r_umbria:00019:20100607:143032<span
+        class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Rete geodetica Regione Umbria<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2010-06-07<span class="nt"></dct:modified></span>
 <span class="nt"><dct:abstract></span>La rete geodetica planoaltimetrica della Regione Umbria<span class="ni">&#xd;</span>
-Costituisce un raffittimento della rete fondamentale IGM95 e nella sua configurazione definitiva  costituita da 294 nuovi vertici che si aggiungono agli 87 vertici IGM95 esistenti, per un totale di 381 punti uniformemente distribuiti sul territorio regionale.<span class="nt"></dct:abstract></span>
+Costituisce un raffittimento della rete fondamentale IGM95 e nella sua configurazione definitiva  costituita da 294 nuovi vertici che si aggiungono agli 87 vertici IGM95 esistenti, per un totale di 381 punti uniformemente distribuiti sul territorio regionale.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Sistemi di coordinate<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>geoscientificInformation<span class="nt"></dc:subject></span>
@@ -129,11 +161,15 @@
 <span class="nt"><ows:UpperCorner></span>13.2641895503866 43.6173443846477<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>r_molise:{F9F2F9E0-3898-4C3E-AE17-FE276C809F4E}<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>MOLISEDB.GIS.MM_Tmax_Ottobre<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2012-03-14<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>La feature class MM_Tmax_Ottobre,  una feature class poligonale che rappresenta le aree con temperature massime misurate nel mese di Ottobre omogenee. Delle Temperature Massime sono considerati la massima, la media e la minima mensile. Ogni area  stata calcolata per interpolazione a partire dai dati rilevati dalle singole stazioni di misura.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>La feature class MM_Tmax_Ottobre,  una feature class poligonale che rappresenta le aree con temperature massime misurate nel mese di Ottobre omogenee. Delle Temperature Massime sono considerati la massima, la media e la minima mensile. Ogni area  stata calcolata per interpolazione a partire dai dati rilevati dalle singole stazioni di misura.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Condizioni atmosferiche<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>climatologyMeteorologyAtmosphere<span class="nt"></dc:subject></span>
@@ -149,11 +185,16 @@
 <span class="nt"><ows:UpperCorner></span>15.161064 42.069535<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
-<span class="nt"><dc:identifier></span>r_umbria:00001:20091013:152425<span class="nt"></dc:identifier></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><dc:identifier></span>r_umbria:00001:20091013:152425<span
+        class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Carta fitoclimatica<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-12-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Contiene le unit fitoclimatiche dell'Umbria che rientrano in due Regioni (Temperata Semioceanica di Transizione e Temperata Semioceanica) con l'individuazione sul territorio regionale dei 7 Piani bioclimatici (Collinare Submediterraneo, Basso-Collinare, Alto-Collinare, Collinare Subcontinentale, Basso-Montano, Alto-Montano, Subalpino-Alpino) e delle relative varianti.<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>Contiene le unit fitoclimatiche dell'Umbria che rientrano in due Regioni (Temperata Semioceanica di Transizione e Temperata Semioceanica) con l'individuazione sul territorio regionale dei 7 Piani bioclimatici (Collinare Submediterraneo, Basso-Collinare, Alto-Collinare, Collinare Subcontinentale, Basso-Montano, Alto-Montano, Subalpino-Alpino) e delle relative varianti.<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Regioni biogeografiche<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>biota<span class="nt"></dc:subject></span>
@@ -169,16 +210,23 @@
 <span class="nt"><ows:LowerCorner></span>11.8918873189186 42.3644489025728<span class="nt"></ows:LowerCorner></span>
 <span class="nt"><ows:UpperCorner></span>13.2641895503866 43.6173443846477<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
-<span class="nt"><dc:URI</span> <span class="na">protocol=</span><span class="s">"WWW:DOWNLOAD-1.0-http--download"</span><span class="nt">></span>http://www.umbriaterritorio.it/CarteTematichePDF/004_.pdf<span class="nt"></dc:URI></span>
+<span class="nt"><dc:URI</span> <span class="na">protocol=</span><span class="s">"WWW:DOWNLOAD-1.0-http--download"</span><span
+        class="nt">></span>http://www.umbriaterritorio.it/CarteTematichePDF/004_.pdf<span
+        class="nt"></dc:URI></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:403:20091007:081436<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Refresh Provincia Belluno 2009<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>copertura del suolo per usi agricoli della Provincia Belluno  rappresentata nella proiezione conforme di Gauss-Boaga<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>copertura del suolo per usi agricoli della Provincia Belluno  rappresentata nella proiezione conforme di Gauss-Boaga<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
-<span class="nt"><dc:subject></span>copertura del suolo per usi agricoli<span class="nt"></dc:subject></span>
+<span class="nt"><dc:subject></span>copertura del suolo per usi agricoli<span
+        class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>farming<span class="nt"></dc:subject></span>
 <span class="nt"><dc:language></span>ita<span class="nt"></dc:language></span>
@@ -194,11 +242,15 @@
 <span class="nt"><ows:UpperCorner></span>12.74959784 46.68037467<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:386:20090911:093825<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Mantova 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Mantova alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Mantova alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -218,11 +270,15 @@
 <span class="nt"><ows:UpperCorner></span>11.42766438 45.42804199<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:329:20090911:084441<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Alessandria 2009<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Alessandria alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Alessandria alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>ortofoto<span class="nt"></dc:subject></span>
@@ -242,11 +298,15 @@
 <span class="nt"><ows:UpperCorner></span>9.21425034 45.20541861<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00389:20090911:094023<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Vibo Valentia 2009<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Vibo Valentia alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Vibo Valentia alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -266,11 +326,16 @@
 <span class="nt"><ows:UpperCorner></span>16.43470805 38.82446257<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
-<span class="nt"><dc:identifier></span>r_campan:16050018:20090527:103952<span class="nt"></dc:identifier></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><dc:identifier></span>r_campan:16050018:20090527:103952<span
+        class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Parchi Nazionali<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-31<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Perimetrazioni dei Parchi Regionali presenti in Regione Campania<span class="nt"></dct:abstract></span>
+<span class="nt"><dct:abstract></span>Perimetrazioni dei Parchi Regionali presenti in Regione Campania<span
+        class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Siti protetti<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>parchi nazionali<span class="nt"></dc:subject></span>
@@ -286,11 +351,15 @@
 <span class="nt"><ows:UpperCorner></span>15.698097 40.873218<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00377:20090911:093144<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Trento 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Trento alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Trento alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -310,11 +379,15 @@
 <span class="nt"><ows:UpperCorner></span>11.96285745 46.53297967<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00373:20090911:092903<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Terni 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Terni alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Terni alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>fotografia aerea (immagine)<span class="nt"></dc:subject></span>
@@ -334,11 +407,15 @@
 <span class="nt"><ows:UpperCorner></span>12.89633447 42.94310311<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00342:20090911:090542<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Piacenza 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Piacenza alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Piacenza alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>ortofoto<span class="nt"></dc:subject></span>
@@ -358,11 +435,15 @@
 <span class="nt"><ows:UpperCorner></span>10.08347854 45.13907144<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00330:20090911:084602<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Novara 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Novara alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Novara alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -382,11 +463,15 @@
 <span class="nt"><ows:UpperCorner></span>9.82710733 40.86492774<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:332:20090911:085547<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Asti 2009<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Asti alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Asti alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -406,11 +491,15 @@
 <span class="nt"><ows:UpperCorner></span>8.51258103 45.13293242<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:377:20090911:093146<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Gorizia 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Gorizia alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Gorizia alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>ortofoto<span class="nt"></dc:subject></span>
@@ -430,11 +519,15 @@
 <span class="nt"><ows:UpperCorner></span>13.64284038 46.05129914<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:00367:20090911:092454<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Ortofotocarta Salerno 2008<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2008-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Salerno alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>Ortofotocarta della Provincia Salerno alla scala 1:10.000 rappresentata nella proiezione conforme di Gauss-Boaga. Una sezione rappresenta la sedicesima parte di un foglio della serie IGM 1:50.000<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
@@ -454,14 +547,19 @@
 <span class="nt"><ows:UpperCorner></span>15.80638769 40.84875212<span class="nt"></ows:UpperCorner></span>
 <span class="nt"></ows:BoundingBox></span>
 <span class="nt"></csw:Record></span>
-<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
+<span class="nt"><csw:Record</span> <span class="na">xmlns:ns2=</span><span class="s">"http://www.cnipa.gov.it/RNDT/Service"</span> <span
+        class="na">xmlns:srv=</span><span class="s">"http://www.isotc211.org/2005/srv"</span> <span
+        class="na">xmlns:gmd=</span><span class="s">"http://www.isotc211.org/2005/gmd"</span> <span
+        class="na">xmlns:gco=</span><span class="s">"http://www.isotc211.org/2005/gco"</span><span class="nt">></span>
 <span class="nt"><dc:identifier></span>agea:419:20091012:090325<span class="nt"></dc:identifier></span>
 <span class="nt"><dc:title></span>Refresh Provincia Cuneo 2009<span class="nt"></dc:title></span>
 <span class="nt"><dct:modified></span>2009-07-01<span class="nt"></dct:modified></span>
-<span class="nt"><dct:abstract></span>copertura del suolo per usi agricoli della Provincia Cuneo  rappresentata nella proiezione conforme di Gauss-Boaga<span class="ni">&#xd;</span>
+<span class="nt"><dct:abstract></span>copertura del suolo per usi agricoli della Provincia Cuneo  rappresentata nella proiezione conforme di Gauss-Boaga<span
+        class="ni">&#xd;</span>
                                        <span class="nt"></dct:abstract></span>
 <span class="nt"><dc:type></span>Dataset<span class="nt"></dc:type></span>
-<span class="nt"><dc:subject></span>copertura del suolo per usi agricoli<span class="nt"></dc:subject></span>
+<span class="nt"><dc:subject></span>copertura del suolo per usi agricoli<span
+        class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>Orto immagini<span class="nt"></dc:subject></span>
 <span class="nt"><dc:subject></span>farming<span class="nt"></dc:subject></span>
 <span class="nt"><dc:language></span>ita<span class="nt"></dc:language></span>
@@ -479,7 +577,8 @@
 <span class="nt"></csw:Record></span>
 <span class="nt"></csw:SearchResults></span>
 <span class="nt"></csw:GetRecordsResponse></span>
-</pre></div>
+</pre>
+</div>
 
 </body>
 </html>
\ No newline at end of file

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -1,17 +1,21 @@
 <h2>DESCRIPTION</h2>
 
-<em>g.gui.metadata</em> support advanced tools for metadata management according to <a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=26020">ISO
-19115</a>.
+<em>g.gui.metadata</em> support advanced tools for metadata management according to <a
+        href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=26020">ISO
+    19115</a>.
 
 
 <p>
-Metadata editor includes graphical interface for conversion metadata from r.info and v.info to ISO based metadata, editing metadata files and creating metadata templates. In addition, the graphical module allows validating of INSPIRE and GRASS Basic profile.
+    Metadata editor includes graphical interface for conversion metadata from r.info and v.info to ISO based metadata,
+    editing metadata files and creating metadata templates. In addition, the graphical module allows validating of
+    INSPIRE and GRASS Basic profile.
 
 <h2>NOTES</h2>
 
-For dependencies and installation instructions see <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+For dependencies and installation instructions see <a
+        href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
-<h3>Naming of metadata files and storage</h3> 
+<h3>Naming of metadata files and storage</h3>
 
 
 Default location for exported metadata files is
@@ -20,8 +24,8 @@
 maps <em>vector</em>. File ends with <em>.xml</em> extension.
 
 <p>
-For example default metadata file name for vector map
-"roads" is <em>vector_roads.xml</em>.
+    For example default metadata file name for vector map
+    "roads" is <em>vector_roads.xml</em>.
 
 
 <h3>Metadata profile</h3>
@@ -47,7 +51,8 @@
 The basis of this editor is similar to r|v.info.iso. After selection of map, the editor convert native metadata of map to ISO based. By exported xml file is metadata editor initialized.
 There are three options to select:
 <b>basic</b>,
-<b>inspire</b> or <b>load custom</b>. Last one allows to load metadata profile from file. For example in case of using predefined template. The intersection of GRASS Basic profile(all available metadata for selected map) and loaded custom profile will proced with this selection.
+<b>inspire</b> or <b>load
+    custom</b>. Last one allows to load metadata profile from file. For example in case of using predefined template. The intersection of GRASS Basic profile(all available metadata for selected map) and loaded custom profile will proced with this selection.
 
 
 <h4> External metadata editor</h4>
@@ -57,16 +62,21 @@
 <h3>Defining templates</h3>
 
 <p>
-This function allows to create pattern of metadata profile. In other words it support defining fixed values to template. With using created template, the editor does not initialize texts inputs of defined values. These attributes is able to see only in Tree Browser in editor. Direct link on this function is multiple editing mode (see below). 
+    This function allows to create pattern of metadata profile. In other words it support defining fixed values to
+    template. With using created template, the editor does not initialize texts inputs of defined values. These
+    attributes is able to see only in Tree Browser in editor. Direct link on this function is multiple editing mode (see
+    below).
 <p>
-If check-box of metadata attribute is checked, the OWSLib object in template will be replaced by value. Unchecked attributes will not change this 'part' of the template.
+    If check-box of metadata attribute is checked, the OWSLib object in template will be replaced by value. Unchecked
+    attributes will not change this 'part' of the template.
 <p>
-The yellow background of text fields indicates metadata attributes, which are not possible get from GRASS map information. 
+    The yellow background of text fields indicates metadata attributes, which are not possible get from GRASS map
+    information.
 
 
 <h3>Editing metadata of multiple map selection</h3>
 
-This option can be used by selection of multiple maps in data catalog. To use pre-defined templete for this editing mode is suitable 
+This option can be used by selection of multiple maps in data catalog. To use pre-defined templete for this editing mode is suitable
 
 
 <h3>Validation of metadata profile </h3>
@@ -84,21 +94,20 @@
 This function allows to automatically generate  metadata reports to PDF document. Missed values are filled by "Unknown" string.
 
 
-
 This tools supports ato generating report
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
-  <a href="db.csw.harvest">db.csw.harvest</a>
-  <a href="db.csw.admin">db.csw.admin</a>
-  <a href="db.csw.run">db.csw.run</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="db.csw.harvest">db.csw.harvest</a>
+    <a href="db.csw.admin">db.csw.admin</a>
+    <a href="db.csw.run">db.csw.run</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 
 <h2>AUTHOR</h2>
@@ -107,7 +116,7 @@
 Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
+    Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
 
 <p>
-<i>Last changed: $Date$</i>
+    <i>Last changed: $Date$</i>

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata/g.gui.metadata.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -21,17 +21,19 @@
 @author Matej Krejci <matejkrejci gmail.com> (GSoC 2014)
 """
 
-#%module
-#% description: Tool for creating and modifying map's metadata.
+# %module
+# % description: Tool for creating and modifying map's metadata.
 #% keyword: general
 #% keyword: GUI
 #% keyword: metadata
 #%end
 
 
-import sys,os
-sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]),'etc', 'mdlib'))
+import sys
+import os
 
+sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'wx.metadata' 'mdlib'))
+
 from lxml import etree
 import wx
 from wx.lib.buttons import ThemedGenBitmapTextButton as BitmapBtnTxt
@@ -55,8 +57,9 @@
 #===============================================================================
 # MAIN FRAME
 #===============================================================================
-MAINFRAME=None
+MAINFRAME = None
 
+
 class MdMainFrame(wx.Frame):
     '''Main frame of metadata editor
     '''
@@ -81,33 +84,35 @@
         self.second = False
         self.secondAfterChoice = False
         self.secondMultiEdit = False
-        self.md=None
+        self.md = None
         self.templateEditor = False
         self.sb = self.CreateStatusBar()
 
         self.cres = 0  # resizeFrame
         self.nameTMPteplate = None
         self.batch = False
-        self.mdCreator=None
-        self.editStatus=None
+        self.mdCreator = None
+        self.editStatus = None
         self.onInitEditor()
 
-        dispatcher.connect(self.initNewMD,signal= 'NEW_MD.create',sender=dispatcher.Any)
-        dispatcher.connect(self.onEditingMode,signal= 'EDITING_MODE.update',sender=dispatcher.Any)
-        dispatcher.connect(self.setStatusbarText,signal= 'STATUS_BAR_TEXT.update',sender=dispatcher.Any)
-        dispatcher.connect(self.onRefreshTreeBrowser,signal= 'REFRESH_TREE_BROWSER.update',sender=dispatcher.Any)
-        dispatcher.connect(self.onChangeEditMapProfile,signal= 'ISO_PROFILE.update',sender=dispatcher.Any)
-        dispatcher.connect(self.onUpdateGrassMetadata,signal= 'GRASS_METADATA.update',sender=dispatcher.Any)
+        dispatcher.connect(self.initNewMD, signal='NEW_MD.create', sender=dispatcher.Any)
+        dispatcher.connect(self.onEditingMode, signal='EDITING_MODE.update', sender=dispatcher.Any)
+        dispatcher.connect(self.setStatusbarText, signal='STATUS_BAR_TEXT.update', sender=dispatcher.Any)
+        dispatcher.connect(self.onRefreshTreeBrowser, signal='REFRESH_TREE_BROWSER.update', sender=dispatcher.Any)
+        dispatcher.connect(self.onChangeEditMapProfile, signal='ISO_PROFILE.update', sender=dispatcher.Any)
+        dispatcher.connect(self.onUpdateGrassMetadata, signal='GRASS_METADATA.update', sender=dispatcher.Any)
 
     def initConfigurePanel(self):
-        self.configPanelLeft=wx.Panel(self.leftPanel, id=wx.ID_ANY)
+        self.configPanelLeft = wx.Panel(self.leftPanel, id=wx.ID_ANY)
         self.SetMinSize((240, -1))
         self.mapGrassEdit = True
 
-        self.rbGrass = wx.RadioButton(self.configPanelLeft, id=wx.ID_ANY, label='Metadata map editor', style=wx.RB_GROUP)
+        self.rbGrass = wx.RadioButton(self.configPanelLeft, id=wx.ID_ANY, label='Metadata map editor',
+                                      style=wx.RB_GROUP)
         self.rbExternal = wx.RadioButton(self.configPanelLeft, id=wx.ID_ANY, label='Metadata external editor')
-        self.comboBoxProfile = wx.ComboBox(self.configPanelLeft, choices=['INSPIRE', 'GRASS BASIC', 'TEMPORAL','Load Custom'])
-        dispatcher.connect( self.onSetProfile, signal='SET_PROFILE.update', sender=dispatcher.Any )
+        self.comboBoxProfile = wx.ComboBox(self.configPanelLeft,
+                                           choices=['INSPIRE', 'GRASS BASIC', 'TEMPORAL', 'Load Custom'])
+        dispatcher.connect(self.onSetProfile, signal='SET_PROFILE.update', sender=dispatcher.Any)
         self.comboBoxProfile.SetStringSelection('INSPIRE')
 
         self.Bind(wx.EVT_RADIOBUTTON, self.onSetRadioType, id=self.rbGrass.GetId())
@@ -143,59 +148,59 @@
         bitmaSettings = wx.Image(
             os.path.join(os.environ['GISBASE'], 'gui', 'icons', 'grass', 'settings.png'),
             wx.BITMAP_TYPE_PNG).ConvertToBitmap()
-    #-------------------------------------------------------------------- EDIT
+        #-------------------------------------------------------------------- EDIT
         self.toolbar.AddSeparator()
         bitmapEdit = wx.Image(
             os.path.join(os.environ['GISBASE'], 'gui', 'icons', 'grass', 'edit.png'),
             wx.BITMAP_TYPE_PNG).ConvertToBitmap()
 
-    #-------------------------------------------------------------------- EDIT
-        self.bttEdit = BitmapBtnTxt(self.toolbar, -1, bitmapEdit,size=(40, -1))
+        #-------------------------------------------------------------------- EDIT
+        self.bttEdit = BitmapBtnTxt(self.toolbar, -1, bitmapEdit, size=(40, -1))
         self.toolbar.AddControl(control=self.bttEdit)
         self.bttEdit.Disable()
-    #-------------------------------------------------------------------- NEW SESION
+        #-------------------------------------------------------------------- NEW SESION
         #self.toolbar.AddSeparator()
         self.bttNew = BitmapBtnTxt(self.toolbar, -1, bitmapNew, '', size=(40, -1))
         self.toolbar.AddControl(control=self.bttNew)
         self.bttNew.Disable()
-    #-------------------------------------------------------------------- NEW TEMPLATE
+        #-------------------------------------------------------------------- NEW TEMPLATE
         self.bttCreateTemplate = BitmapBtnTxt(self.toolbar, -1, bitmapNew, "template", size=(100, -1))
         self.toolbar.AddControl(control=self.bttCreateTemplate)
         self.bttCreateTemplate.Disable()
         self.toolbar.AddSeparator()
 
-    #----------------------------------------------------------------- OPEN TEMPLATE
+        #----------------------------------------------------------------- OPEN TEMPLATE
         self.bttLoad = BitmapBtnTxt(self.toolbar, -1, bitmapLoad, "profile", size=(100, -1))
         self.toolbar.AddControl(control=self.bttLoad)
         self.bttLoad.Disable()
-    #---------------------------------------------------------------------- OPEN XML
+        #---------------------------------------------------------------------- OPEN XML
         self.bttLoadXml = BitmapBtnTxt(self.toolbar, -1, bitmapLoad, "xml")
         self.toolbar.AddControl(control=self.bttLoadXml)
         self.bttLoadXml.Disable()
         self.toolbar.AddSeparator()
-    #-------------------------------------------------------------------------- export xml
+        #-------------------------------------------------------------------------- export xml
         self.bttSave = BitmapBtnTxt(self.toolbar, -1, bitmapSave, "xml")
         self.bttSave.Disable()
         self.toolbar.AddControl(control=self.bttSave)
-    #-------------------------------------------------------------------------- export template
+        #-------------------------------------------------------------------------- export template
         self.bttSaveTemplate = BitmapBtnTxt(self.toolbar, -1, bitmapSave, "template", size=(100, -1))
         self.bttSaveTemplate.Disable()
         self.toolbar.AddControl(control=self.bttSaveTemplate)
-    #-------------------------------------------------------------------------- update grass
+        #-------------------------------------------------------------------------- update grass
         self.bttUpdateGRASS = BitmapBtnTxt(self.toolbar, -1, bitmapSave, "GRASS", size=(100, -1))
         self.bttUpdateGRASS.Disable()
         self.toolbar.AddControl(control=self.bttUpdateGRASS)
-    #-------------------------------------------------------------------------- export pdf
+        #-------------------------------------------------------------------------- export pdf
         self.bttExportPdf = BitmapBtnTxt(self.toolbar, -1, bitmapSave, "pdf", size=(100, -1))
         self.bttExportPdf.Disable()
         self.toolbar.AddControl(control=self.bttExportPdf)
         self.toolbar.AddSeparator()
-    #-------------------------------------------------------------------------- publish csw
+        #-------------------------------------------------------------------------- publish csw
         self.bttExportCSW = BitmapBtnTxt(self.toolbar, -1, bitmapSave, "csw", size=(100, -1))
         self.bttExportCSW.Disable()
         self.toolbar.AddControl(control=self.bttExportCSW)
         self.toolbar.AddSeparator()
-    #-------------------------------------------------------------------------- Config
+        #-------------------------------------------------------------------------- Config
         self.bttConfig = BitmapBtnTxt(self.toolbar, -1, bitmaSettings, "", size=(40, -1))
         self.toolbar.AddControl(control=self.bttConfig)
         self.toolbar.AddSeparator()
@@ -212,16 +217,16 @@
         self.bttExportCSW.Bind(wx.EVT_BUTTON, self.onExportCSW)
         self.bttCreateTemplate.Bind(wx.EVT_BUTTON, self.onCreateTemplate)
         self.bttExportPdf.Bind(wx.EVT_BUTTON, self.onExportPdf)
-        self.bttConfig.Bind(wx.EVT_BUTTON,self.onSettings)
+        self.bttConfig.Bind(wx.EVT_BUTTON, self.onSettings)
 
-    def onExportCSW(self,evt):
+    def onExportCSW(self, evt):
         self.cswDialog = wx.Dialog(self, id=wx.ID_ANY,
-                                  title='Geometry creator',
-                                  style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
-                                  size=wx.DefaultSize,
-                                  pos=wx.DefaultPosition)
+                                   title='Geometry creator',
+                                   style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
+                                   size=wx.DefaultSize,
+                                   pos=wx.DefaultPosition)
 
-        self.cswPanel=CswPublisher(self.cswDialog,self)
+        self.cswPanel = CswPublisher(self.cswDialog, self)
         self.cswDialog.SetSize((1024, 760))
 
         self.cswPanel.publishBtt.Bind(wx.EVT_BUTTON, self._onExportCsw)
@@ -232,29 +237,29 @@
         self.cswDialog.ShowModal()
         self.cswDialog.Destroy()
 
-    def _onExportCsw(self,evt):
+    def _onExportCsw(self, evt):
         self.exportXMLTemp()
         XMLhead, XMLtail = os.path.split(self.xmlPath)
-        outPath=tempfile.gettempdir()
-        path=os.path.join(outPath,XMLtail)
+        outPath = tempfile.gettempdir()
+        path = os.path.join(outPath, XMLtail)
         self.cswPanel.publishCSW(str(path))
 
-    def onExportPdf(self,evt):
+    def onExportPdf(self, evt):
         XMLhead, XMLtail = os.path.split(self.xmlPath)
         dlg = wx.FileDialog(self,
                             message="Set output file",
                             defaultDir=self.mdDestination,
-                            defaultFile=XMLtail.split('.')[0]+'.pdf',
+                            defaultFile=XMLtail.split('.')[0] + '.pdf',
                             wildcard="*.pdf",
                             style=wx.SAVE | wx.FD_OVERWRITE_PROMPT)
 
         if dlg.ShowModal() == wx.ID_OK:
-            outPath=dlg.GetDirectory()
-            outFileName=dlg.GetFilename()
+            outPath = dlg.GetDirectory()
+            outFileName = dlg.GetFilename()
 
-            self.exportPDF(outPath=outPath,outFileName=outFileName)
-            if mdutil.yesNo(self,'Do you want to open report?'):
-                webbrowser.open(os.path.join(outPath,outFileName))
+            self.exportPDF(outPath=outPath, outFileName=outFileName)
+            if mdutil.yesNo(self, 'Do you want to open report?'):
+                webbrowser.open(os.path.join(outPath, outFileName))
 
     def onSettings(self, evt):
         dlg = wx.DirDialog(self,
@@ -297,7 +302,8 @@
         try:  # if  multiediting mode ON
             if self.numOfMap > 1:
                 XMLhead, XMLtail = os.path.split(self.xmlPath)
-                self.batch = mdutil.yesNo(self, 'Do you want to save metadata of: <%s> without editing ? ' % XMLtail, 'Multiple editing')
+                self.batch = mdutil.yesNo(self, 'Do you want to save metadata of: <%s> without editing ? ' % XMLtail,
+                                          'Multiple editing')
             if self.batch:
                 self.onSaveXML()
         except:
@@ -348,7 +354,7 @@
 
         if dlg.ShowModal() == wx.ID_OK:
             self.onExportTemplate(outPath=dlg.GetDirectory(),
-                            outFileName=dlg.GetFilename())
+                                  outFileName=dlg.GetFilename())
 
     def onLoadTemplate(self, evt):
         dlg = wx.FileDialog(self,
@@ -365,7 +371,7 @@
             self.updateXMLorTemplate()
         dlg.Destroy()
 
-    def onSaveXML(self, evt=None,path=None):
+    def onSaveXML(self, evt=None, path=None):
         self.XMLhead, self.XMLtail = os.path.split(self.xmlPath)
         if not self.batch:  # if  normal saving with user-task-dialog
             dlg = wx.FileDialog(self,
@@ -378,19 +384,19 @@
             if dlg.ShowModal() == wx.ID_OK:
                 self.exportXML(outPath=dlg.GetDirectory(), outFileName=dlg.GetFilename())
                 if self.bttSave.GetLabelText() == 'next':
-                    self.editMapMetadata( multipleEditing=True)
+                    self.editMapMetadata(multipleEditing=True)
             else:
                 if self.bttSave.GetLabelText() == 'next':
                     ask = mdutil.yesNo(self, 'File is not saved. Do you want to save it? ', 'Save dialog')
                     if ask:
                         self.onSaveXML()
-                    self.editMapMetadata( multipleEditing=True)
+                    self.editMapMetadata(multipleEditing=True)
                 else:
                     GMessage('File not saved')
             dlg.Destroy()
         else:
-            self.exportXML( outPath=None, outFileName=None)
-            self.editMapMetadata( multipleEditing=True)
+            self.exportXML(outPath=None, outFileName=None)
+            self.editMapMetadata(multipleEditing=True)
 
     def onUpdateGrassMetadata(self):
         '''Update r.support and v.support
@@ -456,28 +462,28 @@
 
     def exportPDF(self, outPath, outFileName):
         self.initNewMD()
-        pdfFile=os.path.join(outPath,outFileName)
+        pdfFile = os.path.join(outPath, outFileName)
 
-        if self.mdCreator is None and self.extendEdit: #if editing map from grass database
-            profileName=os.path.basename(self.jinjaPath)
-            xmlFile=os.path.basename(self.xmlPath)
-            doc = PdfCreator(self.md, pdfFile, map=None, type=None,filename=xmlFile,profile=profileName)
-        else: #if editing map from external editor
-            filename,type,map,profile=self.mdCreator.getMapInfo()
-            doc = PdfCreator(self.md, pdfFile, map, type,filename,profile)
+        if self.mdCreator is None and self.extendEdit:  #if editing map from grass database
+            profileName = os.path.basename(self.jinjaPath)
+            xmlFile = os.path.basename(self.xmlPath)
+            doc = PdfCreator(self.md, pdfFile, map=None, type=None, filename=xmlFile, profile=profileName)
+        else:  #if editing map from external editor
+            filename, type, map, profile = self.mdCreator.getMapInfo()
+            doc = PdfCreator(self.md, pdfFile, map, type, filename, profile)
         try:
-            path=doc.createPDF()
-            GMessage('Metadata report has been exported to < %s >'%path)
+            path = doc.createPDF()
+            GMessage('Metadata report has been exported to < %s >' % path)
         except:
-            GError('Export pdf error %s'% sys.exc_info()[0])
+            GError('Export pdf error %s' % sys.exc_info()[0])
 
     def exportXMLTemp(self):
         XMLhead, XMLtail = os.path.split(self.xmlPath)
-        outPath=tempfile.gettempdir()
+        outPath = tempfile.gettempdir()
         self.editor.exportToXml(self.jinjaPath,
-                                    outPath=outPath,
-                                    xmlOutName=XMLtail,
-                                    msg=False)
+                                outPath=outPath,
+                                xmlOutName=XMLtail,
+                                msg=False)
 
     def exportXML(self, outPath, outFileName):
         '''Save metadta xml file
@@ -525,7 +531,7 @@
     def initNewMD(self):
         '''Init new md OWSLib  object
         '''
-        self.md=self.editor.saveMDfromGUI()
+        self.md = self.editor.saveMDfromGUI()
         self.ntbRight.md = self.editor.md
 
     def resizeFrame(self, x1=1, y1=0):
@@ -547,7 +553,7 @@
 
     def onEditingMode(self, editStatus):
         self.resizeFrame()
-        self.editStatus=editStatus
+        self.editStatus = editStatus
         self.Layout()
         if editStatus:
             self.MdDataCatalogPanelLeft.Show()
@@ -562,17 +568,17 @@
             self.sb.SetStatusText('')
             self.MdDataCatalogPanelLeft.UnselectAll()
 
-    def chckProfileSelection(self,type):
-        parent=self.MdDataCatalogPanelLeft.GetSelection()
+    def chckProfileSelection(self, type):
+        parent = self.MdDataCatalogPanelLeft.GetSelection()
         while True:
-            text=self.MdDataCatalogPanelLeft.GetItemText(parent)
+            text = self.MdDataCatalogPanelLeft.GetItemText(parent)
             if text == 'Temporal maps':
-                baseType='temporal'
+                baseType = 'temporal'
                 break
-            elif  text == 'Spatial maps':
-                baseType='spatial'
+            elif text == 'Spatial maps':
+                baseType = 'spatial'
                 break
-            parent=self.MdDataCatalogPanelLeft.GetItemParent(parent)
+            parent = self.MdDataCatalogPanelLeft.GetItemParent(parent)
         if baseType == type:
             return True
         else:
@@ -596,10 +602,10 @@
 
         # if editing just one map
         if self.numOfMap == 1 and multipleEditing is False:
-            if self.profileChoice == 'INSPIRE' :
+            if self.profileChoice == 'INSPIRE':
                 if self.chckProfileSelection('spatial'):
                     self.mdCreator = mdgrass.GrassMD(self.ListOfMapTypeDict[-1][self.ListOfMapTypeDict[-1].keys()[0]],
-                                             self.ListOfMapTypeDict[-1].keys()[0])
+                                                     self.ListOfMapTypeDict[-1].keys()[0])
                     self.mdCreator.createGrassInspireISO()
                     self.jinjaPath = self.mdCreator.profilePathAbs
                 else:
@@ -609,7 +615,7 @@
             elif self.profileChoice == 'GRASS BASIC':
                 if self.chckProfileSelection('spatial'):
                     self.mdCreator = mdgrass.GrassMD(self.ListOfMapTypeDict[-1][self.ListOfMapTypeDict[-1].keys()[0]],
-                                             self.ListOfMapTypeDict[-1].keys()[0])
+                                                     self.ListOfMapTypeDict[-1].keys()[0])
                     self.mdCreator.createGrassBasicISO()
                     self.jinjaPath = self.mdCreator.profilePathAbs
                 else:
@@ -619,7 +625,7 @@
             elif self.profileChoice == 'TEMPORAL':
                 if self.chckProfileSelection('temporal'):
                     self.mdCreator = mdgrass.GrassMD(self.ListOfMapTypeDict[-1][self.ListOfMapTypeDict[-1].keys()[0]],
-                                             self.ListOfMapTypeDict[-1].keys()[0])
+                                                     self.ListOfMapTypeDict[-1].keys()[0])
                     self.mdCreator.createTemporalISO()
                     self.jinjaPath = self.mdCreator.profilePathAbs
                 else:
@@ -630,7 +636,7 @@
             self.onInitEditor()
         # if editing multiple maps or just one but with loading own custom profile
         if self.profileChoice == 'Load Custom' and self.numOfMap != 0:
-        # load profile. IF - just one map, ELSE - multiple editing
+            # load profile. IF - just one map, ELSE - multiple editing
             if multipleEditing is False:
                 dlg = wx.FileDialog(self, "Select profile", os.getcwd(), "", "*.xml", wx.OPEN)
                 if dlg.ShowModal() == wx.ID_OK:
@@ -670,7 +676,8 @@
 
         if self.batch and multipleEditing:
             XMLhead, XMLtail = os.path.split(self.xmlPath)
-            self.batch = mdutil.yesNo(self, 'Do you want to save metadata of : %s without editing ? ' % XMLtail, 'Multiple editing')
+            self.batch = mdutil.yesNo(self, 'Do you want to save metadata of : %s without editing ? ' % XMLtail,
+                                      'Multiple editing')
 
             if self.batch:
                 self.batch = True
@@ -682,7 +689,7 @@
         '''
         if self.firstAfterChoice and not self.secondMultiEdit:
             self.splitter = SplitterWindow(self, style=wx.SP_3D |
-                                           wx.SP_LIVE_UPDATE | wx.SP_BORDER)
+                                                       wx.SP_LIVE_UPDATE | wx.SP_BORDER)
             self.Hsizer.Add(self.splitter, proportion=1, flag=wx.EXPAND)
 
             self.firstAfterChoice = False
@@ -708,7 +715,7 @@
             self.secondAfterChoice = True
             self.onInitEditor()
 
-    def onInitEditor(self,):
+    def onInitEditor(self, ):
         '''Initialize editor
         @var first: True= First initialize main frame
         @var firstAfterChoice: True=Init editor editor after set configuration and click onEdit in toolbar
@@ -817,11 +824,12 @@
 
         self.resizeFrame(300, 0)
         self.Layout()
+
+
 #===============================================================================
 # DATA CATALOG
 #===============================================================================
 class MdDataCatalog(datacatalog.LocationMapTree):
-
     '''Data catalog for selecting GRASS maps for editing
     '''
 
@@ -829,14 +837,14 @@
         """Test Tree constructor."""
         super(MdDataCatalog, self).__init__(parent=parent,
                                             style=wx.TR_MULTIPLE | wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS |
-                                            wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_COLUMN_LINES)
+                                                  wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_COLUMN_LINES)
         tgis.init(True)
         self.dbif = tgis.SQLDatabaseInterfaceConnection()
         self.dbif.connect()
         self.InitTreeItems()
         self.map = None
         self.mapType = None
-        self.baseType=None
+        self.baseType = None
 
     def __del__(self):
         """Close the database interface and stop the messenger and C-interface
@@ -849,9 +857,9 @@
 
     def InitTreeItems(self):
         """Add locations and layers to the tree"""
-        self.rootTmp=self.root
-        var=self.AppendItem(self.root,'Spatial maps')
-        self.root=var
+        self.rootTmp = self.root
+        var = self.AppendItem(self.root, 'Spatial maps')
+        self.root = var
 
         gisenv = grass.gisenv()
         location = gisenv['LOCATION_NAME']
@@ -860,7 +868,7 @@
         self.initTemporalTree(location=location, mapset=self.mapset)
 
 
-    def initGrassTree(self,location , mapset):
+    def initGrassTree(self, location, mapset):
         """Add locations, mapsets and layers to the tree."""
 
         self.ChangeEnvironment(location)
@@ -893,7 +901,7 @@
 
             self.AppendItem(vartype, mlayer)
 
-    def initTemporalTree(self,location , mapset ):
+    def initTemporalTree(self, location, mapset):
         varloc = self.AppendItem(self.rootTmp, 'Temporal maps')
         tDict = tgis.tlist_grouped('stds', group_type=True, dbif=self.dbif)
         # nested list with '(map, mapset, etype)' items
@@ -906,22 +914,12 @@
             mapsets = tgis.get_tgis_c_library_interface().available_mapsets()
             allDatasets = [i for i in sorted(allDatasets,
                                              key=lambda l: mapsets.index(l[1]))]
-        #print allDatasets
-        #if not location:
-        #    location = GetListOfLocations(self.gisdbase)
-        #if not self.mapset:
-        #    mapsets = ['*']
 
         first = True
-        #for loc in location:
-            #location = loc
-            #self.ChangeEnvironment(location)
-        loc=location
+        loc = location
         varloc = self.AppendItem(varloc, loc)
-        #self.ChangeEnvironment(loc)
-        # add all mapsets
+
         self.AppendItem(varloc, mapset)
-
         # get list of all maps in location
         for ml in allDatasets:
             # add mapset
@@ -953,9 +951,9 @@
         self.ListOfMapTypeDict = list()
         maps = list()
         if evt is not None:
-            item=evt.Item
+            item = evt.Item
         else:
-            item=self.GetSelection()
+            item = self.GetSelection()
 
         if self.GetChildrenCount(item) == 0:  # is selected map
             #check temporal selection
@@ -991,27 +989,26 @@
             status += map + '  '
 
         if len(maps) > 1:
-            dispatcher.send( signal='SET_PROFILE.update',profile='Load Custom')
+            dispatcher.send(signal='SET_PROFILE.update', profile='Load Custom')
             MAINFRAME.bttUpdateGRASS.Disable()
             MAINFRAME.bttCreateTemplate.Disable()
 
         else:
             MAINFRAME.bttCreateTemplate.Enable(True)
 
-        dispatcher.send( signal='STATUS_BAR_TEXT.update',text=status)
+        dispatcher.send(signal='STATUS_BAR_TEXT.update', text=status)
 
+
 #===============================================================================
 # NOTEBOOK ON THE RIGHT SIDE-xml browser+validator
 #===============================================================================
 
 
 class NotebookRight(wx.Notebook):
-
     '''Include pages with xml tree browser and validator of metadata
     '''
 
     def __init__(self, parent, path):
-
         wx.Notebook.__init__(self, parent=parent, id=wx.ID_ANY)
         # first panel
         self.notebookValidator = wx.Panel(self, wx.ID_ANY)
@@ -1043,7 +1040,7 @@
         pass
 
     def onRefreshXmlBrowser(self, evt=None):
-        dispatcher.send( signal='REFRESH_TREE_BROWSER.update')
+        dispatcher.send(signal='REFRESH_TREE_BROWSER.update')
 
     def refreshXmlBrowser(self, path):
         treeBCK = self.tree
@@ -1056,8 +1053,8 @@
     def validate(self, evt):
         self.md = None
 
-        dispatcher.send( signal='NEW_MD.create')
-        dispatcher.send( signal='ISO_PROFILE.update')
+        dispatcher.send(signal='NEW_MD.create')
+        dispatcher.send(signal='ISO_PROFILE.update')
 
         self.validator.validate(self.md, self.profile)
 
@@ -1076,13 +1073,14 @@
         #panelSizer2 = wx.BoxSizer(wx.VERTICAL)
         # self.notebook_panel2.SetSizer(panelSizer2)
         # panelSizer2.Add(self.notebook_panel2,flag=wx.EXPAND, proportion=1)
+
+
 #===============================================================================
 # HELP
 #===============================================================================
 
 
 class MDHelp(wx.Panel):
-
     """
     class MyHtmlPanel inherits wx.Panel and adds a button and HtmlWindow
     """
@@ -1099,13 +1097,14 @@
         self.mainSizer = wx.BoxSizer(wx.VERTICAL)
         self.SetSizer(self.mainSizer)
         self.mainSizer.Add(self.html1, proportion=1, flag=wx.EXPAND)
+
+
 #===============================================================================
 # TREE EDITOR
 #===============================================================================
 
 
 class TreeBrowser(wx.TreeCtrl):
-
     '''Filling text tree by xml file.
     @note: to enable editing mode of init xml uncomment blocks below
     '''
@@ -1180,13 +1179,13 @@
         else:
             self.CollapseAllChildren(evt.Item)
 
+
 #===============================================================================
 # INSPIRE VALIDATOR PANEL
 #===============================================================================
 
 
 class MdValidator(wx.Panel):
-
     '''wx panel of notebook which supports validating two natively implemented profiles
     '''
 
@@ -1194,8 +1193,8 @@
         wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
         self.text = wx.TextCtrl(parent, id=wx.ID_ANY, size=(0, 55),
                                 style=wx.VSCROLL |
-                                wx.TE_MULTILINE | wx.TE_NO_VSCROLL |
-                                wx.TAB_TRAVERSAL | wx.RAISED_BORDER | wx.HSCROLL)
+                                      wx.TE_MULTILINE | wx.TE_NO_VSCROLL |
+                                      wx.TAB_TRAVERSAL | wx.RAISED_BORDER | wx.HSCROLL)
         self._layout()
 
     def _layout(self):
@@ -1233,21 +1232,23 @@
 # CSW
 #===============================================================================
 class CswPublisher(CSWConnectionPanel):
-    def __init__(self,parent,main):
-        super(CswPublisher, self).__init__(parent, main,cswBrowser=False)
-        self.publishBtt=wx.Button(self.panelLeft,label='Publish')
+    def __init__(self, parent, main):
+        super(CswPublisher, self).__init__(parent, main, cswBrowser=False)
+        self.publishBtt = wx.Button(self.panelLeft, label='Publish')
         self.configureSizer.AddSpacer(40, 10, 1, wx.EXPAND)
         self.configureSizer.Add(self.publishBtt, 0, wx.EXPAND)
         self.publishBtt.SetBackgroundColour((255, 127, 80))
 
+
 #----------------------------------------------------------------------
 
 def main():
     global MAINFRAME
     app = wx.App(False)
-    MAINFRAME=MdMainFrame()
+    MAINFRAME = MdMainFrame()
     app.MainLoop()
 
+
 if __name__ == '__main__':
     grass.parser()
     main()

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/cswlib.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/cswlib.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/cswlib.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -100,7 +100,6 @@
         self.constString = ''
         sizeConst = 55
         self.splitterBrowser = SplitterWindow(self, style=wx.SP_3D | wx.SP_LIVE_UPDATE | wx.SP_BORDER)
-       # self.connectionFilePath = os.path.join('config', 'connections_resources.xml')
         self.context=StaticContext()
         self.connectionFilePath = os.path.join(self.context.addonsPath, 'connections_resources.xml')
         self.pnlLeft = wx.Panel(self.splitterBrowser, id=wx.ID_ANY)
@@ -110,15 +109,12 @@
         self.numResultsLbl = wx.StaticText(self.pnlLeft, -1, 'Max')
         self.catalogLbl = wx.StaticText(self.pnlLeft, -1, 'Catalog')
         self.findResNumLbl = wx.StaticText(self.pnlLeft, -1, '')
-        # self.advancedFilter = wx.Button(self.pnlLeft,-1,'Advanced')
 
         self.advanceChck = wx.CheckBox(self.pnlLeft, label='Advanced')
         self.advanceChck.Bind(wx.EVT_CHECKBOX, self.OnKeywordDialog)
         self.stbFind = wx.StaticBox(self.pnlLeft, -1, 'Filter')
         self.stbSearch = wx.StaticBox(self.pnlLeft, -1, 'Search settings')
 
-        # self.abstractCtrl = wx.TextCtrl(self.pnlRight, style=wx.TE_MULTILINE | wx.HSCROLL)
-
         self.catalogCmb = wx.ComboBox(self.pnlLeft, id=-1, pos=wx.DefaultPosition)
         self.keywordCtr = wx.TextCtrl(self.pnlLeft)
         self.catalogCmb.Bind(wx.EVT_COMBOBOX, self.OnSetCatalog)
@@ -235,9 +231,7 @@
         self.constString = self.constrPnl.constrCtrl.GetValue()
         if self.constString == '':
             return
-        # print self.constString
         constString = 'self.constraints=' + self.constString
-        # print(constString)
         try:
             exec (constString)
         except:
@@ -270,7 +264,6 @@
         self.Fit()
 
     def OnShowReguest(self, evt):
-        # if self.webBrowser.GetValue:
         request_html = encodeString(highlight_xml(self.context, self.catalog.request))
         path = 'htmlRequest.html'
 
@@ -282,8 +275,6 @@
         self.htmlView.SetPage((renderXML(self.context, self.catalog.request)))
 
     def OnShowResponse(self, evt):
-        # if self.webBrowser.GetValue:
-        # print self.catalog.response
         response_html = encodeString(highlight_xml(self.context, self.catalog.response))
         path ='htmlResponse.html'
         f = open(path, 'w')
@@ -494,7 +485,6 @@
         """function to init owslib.csw.CatalogueServiceWeb"""
         # connect to the server
         try:
-            # QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
             self.catalog = CatalogueServiceWeb(self.catalog_url,
                                                timeout=self.timeout)
             return True
@@ -675,8 +665,7 @@
             return self.idResults[index]['link']
 
     def set_item_data(self, index, field, value):
-        """set identifier for a QTreeWidgetItem"""
-        # self.resultList.SetStringItem(, self._get_field_value(field), value)
+        """set identifier"""
 
         try:
             self.idResults[index]
@@ -688,7 +677,6 @@
             if field == "identifier":
                 self.idResults[index]['identifier'] = value
             if field == "link":
-                # print value
                 self.idResults[index]['link'] = value
         else:
             d = {}
@@ -703,8 +691,6 @@
         """display search results"""
 
         self.refreshResultList()
-        # print "display"
-        # self.resultList.SetItem(index,0,'ahoj')
         position = self.catalog.results['returned'] + self.startfrom
 
         msg = 'Showing %s - %s of %s result(s)' % ( self.startfrom + 1,
@@ -712,12 +698,10 @@
                                                     self.catalog.results['matches'],
 
         )
-        # % (self.startfrom + 1,position)
 
         self.findResNumLbl.SetLabel(msg)
         index = 0
         for rec in self.catalog.records:
-            # tem = QTreeWidgetItem(self.treeRecords)
             if self.catalog.records[rec].type:
                 item = wx.ListItem()
                 self.resultList.InsertStringItem(index, normalize_text(self.catalog.records[rec].type))
@@ -727,11 +711,8 @@
                 self.resultList.SetStringItem(index, 1, normalize_text(self.catalog.records[rec].title))
 
             if self.catalog.records[rec].identifier:
-                # self.resultList.SetStringItem(index,1,normalize_text(self.catalog.records[rec].identifier))
                 self.set_item_data(index, 'identifier',
                                    self.catalog.records[rec].identifier)
-                # print index
-
             if index % 2:
                 self.resultList.SetItemBackgroundColour(index, "LIGHT GREY")
             index += 1
@@ -745,8 +726,6 @@
         ).start()
 
     def updateCatalogBox(self, evt=None):
-        # print('update')
-
         if self.catalogCmb.GetCount() == 0:
             msg = 'No services/connections defined.'
             self.htmlView.SetPage('<p><h3>%s</h3></p>' % msg)
@@ -764,7 +743,6 @@
 
         upSearchSizer.Add(self.qtypeCb, 1, wx.EXPAND)
 
-
         self.leftSearchSizer.Add(upSearchSizer, 1 ,wx.EXPAND )
         self.rightSearchSizer.Add(wx.StaticText(self), 0)
         mainSearchSizer.Add(self.leftSearchSizer, wx.EXPAND)
@@ -987,8 +965,6 @@
                     root.remove(bad)
 
             tree.write(self.connectionFilePath)
-            # n=self.connectionLBox.GetSelection()
-            # self.connectionLBox.Remove(n)
             self.updateConnectionList()
 
     def publishCSW(self,path):
@@ -1070,7 +1046,6 @@
 
     def addDefaultConnections(self, path=None):
         """add default connections from file"""
-        # print path
         if path is not None:
             self.connectionFilePath = path
             if yesNo(self, "Do you want to remove temporary connections?", "Remove tmp connections"):
@@ -1127,7 +1102,6 @@
                     self.parent.BrowserPanel.catalogCmb.Append(value)
                 self.connectionLBox.Append(value)
                 more, value, index = self.config.GetNextGroup(index)
-                # print value
             n = self.connectionLBox.GetCount()
             self.connectionLBox.SetString(n + 1, first)
             if self.connectionLBox.GetCount() == 0:

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdeditorfactory.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdeditorfactory.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdeditorfactory.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -54,7 +54,6 @@
 # MD filework
 #=========================================================================
 
-
 class MdFileWork():
 
     ''' initializer of metadata in OWSLib and export OWSLib object to xml by jinja template system
@@ -162,8 +161,6 @@
 # CREATE BOX (staticbox+button(optional)
 #=========================================================================
 
-    
-
 class MdBox(wx.Panel):
 
     '''widget(static box) which include metadata items (MdItem)
@@ -221,8 +218,6 @@
             self.rmBoxButt = wx.Button(self, id=ID_ANY, size=(30, 30), label='-')
             self.boxButtonSizer.Add(self.rmBoxButt, 0)
             self.rmBoxButt.Bind(EVT_BUTTON, self.removeBox)
-
-
         
     def addDuplicatedItem(self, item):
         self.stBoxSizer.Add(item, flag=wx.EXPAND, proportion=1)
@@ -1579,7 +1574,7 @@
         self.md = self.mdo.initMD()
         # most of objects from OWSLib is initialized in configure file
         #dirpath = os.path.dirname(os.path.realpath(__file__))
-        path = os.path.join(os.path.join(sys.path[0],'..'), 'config','wx.metadata','init_md.txt')
+        path = os.path.join(os.getenv('GRASS_ADDON_BASE'), 'etc','wx.metadata',,'config','init_md.txt'))
 
         mdInitData = open(path, 'r')
         mdExec = mdInitData.read()

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdpdffactory.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdpdffactory.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/mdlib/mdpdffactory.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -11,8 +11,10 @@
 from grass.script import core as grass
 
 sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]), 'etc', 'pdf'))
+sys.path.insert(1, os.path.join(os.path.dirname(sys.path[0]),'etc','wx.metadata','mdlib'))
 
 
+
 class MyTheme(DefaultTheme):
     doc = {
         'leftMargin': 25,

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -1,19 +1,19 @@
 <h2>DESCRIPTION</h2>
 
-<em>r.info.iso</em> creates metadata of raster maps according 
+<em>r.info.iso</em> creates metadata of raster maps according
 to <a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=26020">ISO
-19115</a>.
+    19115</a>.
 
 <p>
-The module also allows conversion of metadata from native GRASS GIS format
-to ISO-based format.
+    The module also allows conversion of metadata from native GRASS GIS format
+    to ISO-based format.
 
 <h2>NOTES</h2>
 
 For dependencies and installation instructions see
 <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
-<h3>Naming of metadata files and storage</h3> 
+<h3>Naming of metadata files and storage</h3>
 
 
 Default location for exported metadata files is
@@ -24,8 +24,8 @@
 maps <em>vector</em>. File ends with <em>.xml</em> extension.
 
 <p>
-For example default metadata file name for raster map
-"elevation" is <em>cell_elevation.xml</em>.
+    For example default metadata file name for raster map
+    "elevation" is <em>cell_elevation.xml</em>.
 
 <h3>Metadata profile</h3>
 
@@ -44,25 +44,27 @@
 
 <div class="code"><pre>
 r.info.iso map=elevation
-</pre></div>
+</pre>
+</div>
 
 <p>
-Export metadata using <i>inspire</i> profile:
+    Export metadata using <i>inspire</i> profile:
 
 <div class="code"><pre>
 r.info.iso map=elevation profile=inspire
-</pre></div>
+</pre>
+</div>
 
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="r.info.html">r.info</a>,
-  <a href="v.info.iso.html">v.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="r.info.html">r.info</a>,
+    <a href="v.info.iso.html">v.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 
 <h2>AUTHOR</h2>
@@ -70,7 +72,7 @@
 Matej Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
+    Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
 
 <p>
-<i>Last changed: $Date$</i>
+    <i>Last changed: $Date$</i>

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso/r.info.iso.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -11,7 +11,7 @@
 @author Matej Krejci <matejkrejci gmail.com> (GSoC 2014)
 """
 
-#%module
+# %module
 #% description: Creates metadata based on ISO standard for specified raster map.
 #% keyword: raster
 #% keyword: metadata
@@ -40,12 +40,14 @@
 from grass.script import parser, fatal
 from grass.pygrass.utils import get_lib_path
 
+
 def load_mdlib():
     path = get_lib_path(modname='mdlib', libname='mdgrass')
     if path is None:
         fatal("Not able to find the metadata library directory")
     sys.path.append(path)
 
+
 def main():
     # load metadata library
     load_mdlib()
@@ -78,6 +80,7 @@
             md.readXML(xml_file)
             print md.validate_basic()
 
+
 if __name__ == "__main__":
     options, flags = parser()
     main()

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/t.info.iso/t.info.iso.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/t.info.iso/t.info.iso.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/t.info.iso/t.info.iso.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -10,7 +10,7 @@
 
 @author Matej Krejci <matejkrejci gmail.com> (GSoC 2015)
 """
-#%module
+# %module
 #% description: Lists information about space time datasets and maps.
 #% keyword: temporal
 #% keyword: metadata
@@ -39,8 +39,8 @@
 import grass.script as grass
 from grass.script import parser, fatal
 from grass.pygrass.utils import get_lib_path
-from core.gcmd import GError, GMessage,GException
 
+
 def load_mdlib():
     path = get_lib_path(modname='mdlib', libname='mdgrass')
     if path is None:
@@ -80,11 +80,10 @@
     md = GrassMD(id_, type=type_)
     md.createTemporalISO()
     md.saveXML(path=destination,
-              xml_out_name=name,
-              overwrite=os.getenv('GRASS_OVERWRITE', False))
+               xml_out_name=name,
+               overwrite=os.getenv('GRASS_OVERWRITE', False))
 
 
-
 if __name__ == "__main__":
     options, flags = parser()
     main()

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.html	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.html	2015-08-14 15:15:10 UTC (rev 65932)
@@ -2,18 +2,18 @@
 
 <em>v.info.iso</em> creates metadata of vector maps according
 to <a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=26020">ISO
-19115</a>.
+    19115</a>.
 
 <p>
-The module also allows conversion of metadata from native GRASS GIS format
-to ISO-based format.
+    The module also allows conversion of metadata from native GRASS GIS format
+    to ISO-based format.
 
 <h2>NOTES</h2>
 
 For dependencies and installation instructions see
 <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
-<h3>Naming of metadata files and storage</h3> 
+<h3>Naming of metadata files and storage</h3>
 
 
 Default location for exported metadata files is
@@ -24,8 +24,8 @@
 maps <em>vector</em>. File ends with <em>.xml</em> extension.
 
 <p>
-For example default metadata file name for raster map
-"basins" is <em>vector_basins.xml</em>.
+    For example default metadata file name for raster map
+    "basins" is <em>vector_basins.xml</em>.
 
 <h3>Metadata profile</h3>
 
@@ -45,25 +45,27 @@
 
 <div class="code"><pre>
 v.info.iso map=basins
-</pre></div>
+</pre>
+</div>
 
 <p>
-Export metadata using <i>inspire</i> profile:
+    Export metadata using <i>inspire</i> profile:
 
 <div class="code"><pre>
 v.info.iso map=basins profile=inspire
-</pre></div>
+</pre>
+</div>
 
 <h2>SEE ALSO</h2>
 
 <em>
-  <a href="v.info.html">v.info</a>,
-  <a href="r.info.iso.html">r.info.iso</a>,
-  <a href="g.gui.metadata.html">g.gui.metadata</a>
+    <a href="v.info.html">v.info</a>,
+    <a href="r.info.iso.html">r.info.iso</a>,
+    <a href="g.gui.metadata.html">g.gui.metadata</a>
 </em>
 
 <p>
-See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
+    See also related <a href="http://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support">wiki page</a>.
 
 
 <h2>AUTHOR</h2>
@@ -71,7 +73,7 @@
 Matej Krejci, <a href="http://geo.fsv.cvut.cz/gwiki/osgeorel">OSGeoREL</a>
 at the Czech Technical University in Prague, developed
 during <a href="http://trac.osgeo.org/grass/wiki/GSoC/2014/MetadataForGRASS">Google
-Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
+    Summer of Code 2014</a> (mentors: Margherita Di Leo, Martin Landa)
 
 <p>
-<i>Last changed: $Date$</i>
+    <i>Last changed: $Date$</i>

Modified: grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.py	2015-08-14 14:01:58 UTC (rev 65931)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso/v.info.iso.py	2015-08-14 15:15:10 UTC (rev 65932)
@@ -11,7 +11,7 @@
 @author Matej Krejci <matejkrejci gmail.com> (GSoC 2014)
 """
 
-#%module
+# %module
 #% description: Creates metadata based on ISO standard for specified vector map.
 #% keyword: vector
 #% keyword: metadata
@@ -39,12 +39,14 @@
 from grass.script import parser, fatal
 from grass.pygrass.utils import get_lib_path
 
+
 def load_mdlib():
     path = get_lib_path(modname='mdlib', libname='mdgrass')
     if path is None:
         fatal("Not able to find the metadata library directory")
     sys.path.append(path)
 
+
 def main():
     # load metadata library
     load_mdlib()
@@ -77,6 +79,7 @@
             md.readXML(xml_file)
             print md.validate_basic()
 
+
 if __name__ == "__main__":
     options, flags = parser()
     main()



More information about the grass-commit mailing list