diff options
Diffstat (limited to 'chimere/utils.py')
| -rw-r--r-- | chimere/utils.py | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/chimere/utils.py b/chimere/utils.py index f5ddcd5..ddc9471 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2012-2015  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2012-2016  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU General Public License as @@ -333,7 +333,7 @@ class ShapefileManager(ImportManager):           - number of item updated ;           - error detail on error          """ -        from models import Marker, Route +        from models import Marker, Route, Polygon          new_item, updated_item, msg = 0, 0, ''          tmpdir = tempfile.mkdtemp()          sources, msg = self.get_source_file(['.shp', '.dbf', '.prj', '.shx'], @@ -379,11 +379,20 @@ class ShapefileManager(ImportManager):              lbl_name = lyr.fields[1]          elif id_name:              lbl_name = id_name -        if lyr.geom_type not in ('Point', 'LineString'): +        if lyr.geom_type not in ('Point', 'LineString', 'Polygon'):              return (0, 0, _(u"Type of geographic item (%s) of this shapefile "                              u"is not managed by Chimère.") % lyr.geom_type) -        geom_key = 'point' if lyr.geom_type == 'Point' else 'route' -        geom_cls = Marker if lyr.geom_type == 'Point' else Route +        geom_key = '' +        geom_cls = None +        if lyr.geom_type == 'Point': +            geom_key = 'point' +            geom_cls = Marker +        elif lyr.geom_type == 'Polygon': +            geom_key = 'polygon' +            geom_cls = Polygon +        else: +            geom_key = 'route' +            geom_cls = Route          # indexes = []          for idx, feat in enumerate(lyr):              name = unicode(idx) | 
