Ejemplo n.º 1
0
 def test_convert_without_wms_defaults(self, test_app, layer_wmts_test_data,
                                       dbsession):
     from c2cgeoportal_commons.models.main import LayerWMS
     dbsession.delete(LayerWMS.get_default(dbsession))
     layer = layer_wmts_test_data['layers'][3]
     test_app.post("/layers_wmts/{}/convert_to_wms".format(layer.id),
                   status=200)
Ejemplo n.º 2
0
 def view(self):
     if self._is_new():
         dbsession = self._request.dbsession
         default_wms = LayerWMS.get_default(dbsession)
         if default_wms:
             return self.copy(default_wms, excludes=['name', 'layer'])
     return super().edit()
Ejemplo n.º 3
0
 def view(self) -> Dict[str, Any]:
     if self._is_new():
         dbsession = self._request.dbsession
         default_wms = LayerWMS.get_default(dbsession)
         if default_wms:
             return self.copy(default_wms,
                              excludes=["name", "layer"])  # type: ignore
     return super().edit()  # type: ignore
Ejemplo n.º 4
0
    def convert_to_wms(self):
        src = self._get_object()
        dbsession = self._request.dbsession
        default_wms = LayerWMS.get_default(dbsession)
        values = ({
            "ogc_server_id": default_wms.ogc_server_id,
            "time_mode": default_wms.time_mode,
            "time_widget": default_wms.time_widget,
        } if default_wms else {
            "ogc_server_id":
            dbsession.query(OGCServer.id).order_by(OGCServer.id).first()[0],
            "time_mode":
            "disabled",
            "time_widget":
            "slider",
        })
        with dbsession.no_autoflush:
            d = delete(LayerWMTS.__table__)
            d = d.where(LayerWMTS.__table__.c.id == src.id)
            i = insert(LayerWMS.__table__)
            values.update({
                "id": src.id,
                "layer": src.layer,
                "style": src.style
            })
            i = i.values(values)
            u = update(TreeItem.__table__)
            u = u.where(TreeItem.__table__.c.id == src.id)
            u = u.values({"type": "l_wms"})
            dbsession.execute(d)
            dbsession.execute(i)
            dbsession.execute(u)
            dbsession.expunge(src)

        dbsession.flush()
        mark_changed(dbsession)

        return {
            "success":
            True,
            "redirect":
            self._request.route_url(
                "c2cgeoform_item",
                table="layers_wms",
                id=self._request.matchdict["id"],
                _query=[("msg_col", "submit_ok")],
            ),
        }
Ejemplo n.º 5
0
    def convert_to_wms(self):
        src = self._get_object()
        dbsession = self._request.dbsession
        default_wms = LayerWMS.get_default(dbsession)
        values = {
            'ogc_server_id': default_wms.ogc_server_id,
            'time_mode': default_wms.time_mode,
            'time_widget': default_wms.time_widget
        } if default_wms else {
            'ogc_server_id':
            dbsession.query(OGCServer.id).order_by(OGCServer.id).first()[0],
            'time_mode':
            'disabled',
            'time_widget':
            'slider'
        }
        with dbsession.no_autoflush:
            d = delete(LayerWMTS.__table__)
            d = d.where(LayerWMTS.__table__.c.id == src.id)
            i = insert(LayerWMS.__table__)
            values.update({
                'id': src.id,
                'layer': src.layer,
                'style': src.style
            })
            i = i.values(values)
            u = update(TreeItem.__table__)
            u = u.where(TreeItem.__table__.c.id == src.id)
            u = u.values({'type': 'l_wms'})
            dbsession.execute(d)
            dbsession.execute(i)
            dbsession.execute(u)
            dbsession.expunge(src)

        dbsession.flush()
        mark_changed(dbsession)

        return {
            'success':
            True,
            'redirect':
            self._request.route_url('c2cgeoform_item',
                                    table='layers_wms',
                                    id=self._request.matchdict['id'],
                                    _query=[('msg_col', 'submit_ok')])
        }
Ejemplo n.º 6
0
    def test_convert_without_wms_defaults(self, test_app, layer_wmts_test_data, dbsession):
        from c2cgeoportal_commons.models.main import LayerWMS

        dbsession.delete(LayerWMS.get_default(dbsession))
        layer = layer_wmts_test_data["layers"][3]
        test_app.post(f"/admin/layers_wmts/{layer.id}/convert_to_wms", status=200)