예제 #1
0
    def set_metadata_layer(self, request, **kwargs):

        self.layer = self.get_layer_by_params(kwargs)

        # set layer_name
        self.layer_name = self.layer.origname

        geomodel, self.database_to_use, geometrytype = create_geomodel_from_qdjango_layer(
            self.layer)

        if geometrytype is None:
            geometrytype = QGIS_LAYER_TYPE_NO_GEOM

        # set bbox_filter_field with geomentry model field
        if geometrytype != QGIS_LAYER_TYPE_NO_GEOM:
            serializer = QGISGeoLayerSerializer
            self.bbox_filter_field = get_geometry_column(geomodel).name
        else:
            serializer = QGISLayerSerializer

        # create model and add to editing_layers
        self.metadata_layer = MetadataVectorLayer(geomodel,
                                                  serializer,
                                                  geometrytype,
                                                  self.layer.origname,
                                                  layer_id=self.layer.pk)
예제 #2
0
    def __init__(self, *args, **kwargs):

        # to avoid model interrelations on parallel api call
        self.set_meta(kwargs)

        # set geometry column
        geometryfield = get_geometry_column(self.Meta.model)
        self.Meta.geo_field = geometryfield.name

        super(QGISGeoLayerSerializer, self).__init__(*args, **kwargs)