def teardown_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Functionality, OGCServer, Role from c2cgeoportal_commons.models.static import User transaction.commit() for user_name in ("__test_user1", "__test_user2", "__test_user3"): for o in DBSession.query(User).filter( User.username == user_name).all(): o.functionalities = [] DBSession.delete(o) for role_name in ("__test_role1", "__test_role2", "__test_role3", "__test_role4"): for o in DBSession.query(Role).filter( Role.name == role_name).all(): o.functionalities = [] DBSession.delete(o) for func_name in ("__test_s", "__test_a", "__test_b"): DBSession.query(Functionality).filter( Functionality.name == func_name).delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import FullTextSearch, Interface, Role from c2cgeoportal_commons.models.static import User DBSession.delete(DBSession.query(User).filter(User.username == "__test_user1").one()) DBSession.delete(DBSession.query(User).filter(User.username == "__test_user2").one()) DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label1").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label2").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label3").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label4").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label5").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "label6").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "A 7 simi").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "A 70 simi").delete() DBSession.query(FullTextSearch).filter(FullTextSearch.label == "A 71 simi").delete() DBSession.query(Interface).filter(Interface.name == "main").delete() DBSession.query(Role).filter(Role.name == "__test_role1").delete() DBSession.query(Role).filter(Role.name == "__test_role2").delete() transaction.commit()
def invalidate_authorization_code( self, client_id: str, code: str, request: oauthlib.common.Request, *args: Any, **kwargs: Any, ) -> None: """ Invalidate an authorization code after use. Arguments: client_id: Unicode client identifier code: The authorization code grant (request.code). request: The HTTP Request Method is used by: - Authorization Code Grant """ del args, kwargs LOG.debug("invalidate_authorization_code %s", client_id) from c2cgeoportal_commons.models import DBSession, static # pylint: disable=import-outside-toplevel DBSession.delete( DBSession.query(static.OAuth2AuthorizationCode).join( static.OAuth2AuthorizationCode.client).filter( static.OAuth2AuthorizationCode.code == code).filter( static.OAuth2Client.client_id == client_id).filter( static.OAuth2AuthorizationCode.user_id == request.user.id).one())
def setup_method(self, _): setup_module() import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, Role from c2cgeoportal_commons.models.static import User setup_db() self.metadata = None self.layer_ids = [] for o in DBSession.query(User).all(): DBSession.delete(o) self.role = Role(name="__test_role") self.user = User(username="******", password="******", settings_role=self.role, roles=[self.role]) self.main = Interface(name="main") DBSession.add(self.user) DBSession.add(self.role) DBSession.add(self.main) create_default_ogcserver() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import TreeItem, Interface, OGCServer for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter(Interface.name == "main").delete() transaction.commit()
def teardown_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role from c2cgeoportal_commons.models.static import User transaction.commit() DBSession.delete( DBSession.query(User).filter_by(username="******").one()) DBSession.query(Role).filter_by(name="__test_role").delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, Metadata, TreeItem for t in DBSession.query(Metadata).all(): DBSession.delete(t) for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(Interface).filter(Interface.name == "desktop").delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import TreeItem, Interface, OGCServer for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter( Interface.name == "main" ).delete() transaction.commit()
def teardown_method(self, _): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, Interface, OGCServer from c2cgeoportal_commons.models.static import User DBSession.delete( DBSession.query(User).filter( User.username == "__test_user1").one()) ra = DBSession.query(RestrictionArea).filter( RestrictionArea.name == "__test_ra1").one() ra.roles = [] ra.layers = [] DBSession.delete(ra) r = DBSession.query(Role).filter(Role.name == "__test_role1").one() DBSession.delete(r) for layer in (DBSession.query(LayerWMS).filter( LayerWMS.name.in_( ["testpoint_group_name", "testpoint_protected_2_name"])).all()): DBSession.delete(layer) DBSession.query(Interface).filter(Interface.name == "main").delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import TreeItem, Interface, Metadata for t in DBSession.query(Metadata).all(): DBSession.delete(t) for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(Interface).filter( Interface.name == "desktop" ).delete() transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None setup_db() self._tables = [] import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import ( OGCSERVER_AUTH_NOAUTH, Interface, LayerGroup, Role, Theme, TreeItem, ) from c2cgeoportal_commons.models.static import User for treeitem in DBSession.query(TreeItem).all(): DBSession.delete(treeitem) self.role = Role(name="__test_role") self.user = User(username="******", password="******", settings_role=self.role, roles=[self.role]) self.main = Interface(name="main") self.ogc_server = create_default_ogcserver() self.ogc_server.auth = OGCSERVER_AUTH_NOAUTH self.metadata = None self.layer_ids = [] self.layer_group_1 = LayerGroup(name="__test_layer_group_1") theme = Theme(name="__test_theme") theme.interfaces = [self.main] theme.children = [self.layer_group_1] DBSession.add_all( [self.main, self.user, self.role, theme, self.layer_group_1]) transaction.commit()
def clean(): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import User from c2cgeoportal_commons.models.main import TreeItem, Interface, Role, RestrictionArea, OGCServer for o in DBSession.query(RestrictionArea).all(): o.roles = [] o.layers = [] DBSession.delete(o) for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter(Interface.name == "main").delete() DBSession.query(User).filter(User.username == "__test_user").delete() DBSession.query(Role).filter(Role.name == "__test_role").delete() transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None cleanup_db() self._tables = [] import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Interface, TreeItem, Theme, \ LayerGroup, OGCSERVER_AUTH_NOAUTH from c2cgeoportal_commons.models.static import User for treeitem in DBSession.query(TreeItem).all(): DBSession.delete(treeitem) self.role = Role(name="__test_role") self.user = User( username="******", password="******", role=self.role ) self.main = Interface(name="main") self.ogc_server, external_ogc_server = create_default_ogcserver() self.ogc_server.auth = OGCSERVER_AUTH_NOAUTH external_ogc_server.auth = OGCSERVER_AUTH_NOAUTH self.metadata = None self.layer_ids = [] self.layer_group_1 = LayerGroup(name="__test_layer_group_1") theme = Theme(name="__test_theme") theme.interfaces = [self.main] theme.children = [self.layer_group_1] DBSession.add_all([self.main, self.user, self.role, theme, self.layer_group_1]) transaction.commit()
def cleanup_db(): """ Cleanup the database """ import transaction import c2cgeoportal_geoportal.lib from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import OGCServer, TreeItem, Role, RestrictionArea, \ Interface, Functionality, FullTextSearch from c2cgeoportal_commons.models.static import Shorturl, User transaction.commit() for ra in DBSession.query(RestrictionArea).all(): ra.roles = [] DBSession.delete(ra) for ti in DBSession.query(TreeItem).all(): DBSession.delete(ti) DBSession.query(OGCServer).delete() DBSession.query(Interface).delete() for r in DBSession.query(Role).all(): r.functionnalities = [] DBSession.delete(r) DBSession.query(User).delete() DBSession.query(Functionality).delete() DBSession.query(FullTextSearch).delete() DBSession.query(Shorturl).delete() transaction.commit() c2cgeoportal_geoportal.lib.ogc_server_wms_url_ids = None c2cgeoportal_geoportal.lib.ogc_server_wfs_url_ids = None caching.init_region({ "backend": "dogpile.cache.null", }) caching.invalidate_region()
def teardown_method(self, _): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, \ Interface, OGCServer from c2cgeoportal_commons.models.static import User DBSession.query(User).filter(User.username == "__test_user1").delete() ra = DBSession.query(RestrictionArea).filter( RestrictionArea.name == "__test_ra1" ).one() ra.roles = [] ra.layers = [] DBSession.delete(ra) r = DBSession.query(Role).filter(Role.name == "__test_role1").one() DBSession.delete(r) for layer in DBSession.query(LayerWMS).filter( LayerWMS.name.in_(["testpoint_group_name", "testpoint_protected_2_name"]) ).all(): DBSession.delete(layer) DBSession.query(Interface).filter( Interface.name == "main" ).delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() functionality.FUNCTIONALITIES_TYPES = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Layer, \ RestrictionArea, Theme, LayerGroup, Interface, OGCServer from c2cgeoportal_commons.models.static import User DBSession.query(User).filter(User.username == "__test_user1").delete() DBSession.query(User).filter(User.username == "__test_user2").delete() ra = DBSession.query(RestrictionArea).filter( RestrictionArea.name == "__test_ra1").one() ra.roles = [] DBSession.delete(ra) ra = DBSession.query(RestrictionArea).filter( RestrictionArea.name == "__test_ra2").one() ra.roles = [] DBSession.delete(ra) DBSession.query(Role).filter(Role.name == "__test_role1").delete() DBSession.query(Role).filter(Role.name == "__test_role2").delete() for t in DBSession.query(Theme).filter( Theme.name == "__test_theme").all(): DBSession.delete(t) for g in DBSession.query(LayerGroup).all(): DBSession.delete(g) for layer in DBSession.query(Layer).all(): DBSession.delete(layer) DBSession.query(Interface).filter(Interface.name == "main").delete() DBSession.query(OGCServer).delete() for table in self._tables[::-1]: table.drop(checkfirst=True) transaction.commit()
def clean(): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import User from c2cgeoportal_commons.models.main import TreeItem, Interface, Role, RestrictionArea, OGCServer for o in DBSession.query(RestrictionArea).all(): o.roles = [] o.layers = [] DBSession.delete(o) for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter( Interface.name == "main" ).delete() DBSession.query(User).filter( User.username == "__test_user" ).delete() DBSession.query(Role).filter( Role.name == "__test_role" ).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import LayerGroup, LayerWMS, OGCServer, Theme for t in DBSession.query(Theme).filter(Theme.name == "__test_theme").all(): DBSession.delete(t) for g in DBSession.query(LayerGroup).all(): DBSession.delete(g) for layer in DBSession.query(LayerWMS).all(): DBSession.delete(layer) DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import LayerWMS, Theme, LayerGroup, Interface, OGCServer for t in DBSession.query(Theme).all(): DBSession.delete(t) for g in DBSession.query(LayerGroup).all(): DBSession.delete(g) for layer in DBSession.query(LayerWMS).all(): DBSession.delete(layer) # pragma: no cover DBSession.query(Interface).filter(Interface.name == "main").delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Functionality, OGCServer from c2cgeoportal_commons.models.static import User functionality.FUNCTIONALITIES_TYPES = None transaction.commit() for o in DBSession.query(User).filter( User.username == "__test_user1").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(User).filter( User.username == "__test_user2").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(Role).filter( Role.name == "__test_role1").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(Role).filter( Role.name == "__test_role2").all(): o.functionalities = [] DBSession.delete(o) DBSession.query(Functionality).filter( Functionality.name == "__test_s").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_a").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_s").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_a").delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Functionality, OGCServer from c2cgeoportal_commons.models.static import User functionality.FUNCTIONALITIES_TYPES = None transaction.commit() for o in DBSession.query(User).filter( User.username == "__test_user1").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(User).filter( User.username == "__test_user2").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(Role).filter( Role.name == "__test_role1").all(): o.functionalities = [] DBSession.delete(o) for o in DBSession.query(Role).filter( Role.name == "__test_role2").all(): o.functionalities = [] DBSession.delete(o) DBSession.query(Functionality).filter( Functionality.name == "__test_s").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_a").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_s").delete() DBSession.query(Functionality).filter( Functionality.name == "__test_a").delete() DBSession.query(OGCServer).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Layer, Theme, LayerGroup, OGCServer, Interface for layer in DBSession.query(Layer).all(): DBSession.delete(layer) for g in DBSession.query(LayerGroup).all(): DBSession.delete(g) for t in DBSession.query(Theme).all(): DBSession.delete(t) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter( Interface.name == "main" ).delete() transaction.commit()
def clean(): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, OGCServer, RestrictionArea, Role, TreeItem from c2cgeoportal_commons.models.static import User for obj in DBSession.query(RestrictionArea).all(): obj.roles = [] obj.layers = [] DBSession.delete(obj) for item in DBSession.query(TreeItem).all(): DBSession.delete(item) DBSession.query(OGCServer).delete() DBSession.query(Interface).filter(Interface.name == "main").delete() for name in ("__test_user", "__test_user2"): for user in DBSession.query(User).filter( User.username == name).all(): DBSession.delete(user) for name in ("__test_role", "__test_role2"): DBSession.query(Role).filter(Role.name == name).delete() transaction.commit()
def teardown_method(self, _): testing.tearDown() from c2cgeoportal_geoportal.lib import functionality functionality.FUNCTIONALITIES_TYPES = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import LayerV1, \ Theme, LayerGroup, Interface, OGCServer for t in DBSession.query(Theme).all(): DBSession.delete(t) for g in DBSession.query(LayerGroup).all(): DBSession.delete(g) for layer in DBSession.query(LayerV1).all(): DBSession.delete(layer) # pragma: no cover DBSession.query(Interface).filter( Interface.name == "main" ).delete() DBSession.query(OGCServer).delete() transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None self._tables = [] from c2cgeoportal_geoportal.lib import functionality functionality.FUNCTIONALITIES_TYPES = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, \ RestrictionArea, TreeItem, Theme, LayerGroup, Interface, LayerWMS from c2cgeoportal_commons.models.static import User from sqlalchemy import Column, Table, types from sqlalchemy.ext.declarative import declarative_base from geoalchemy2 import Geometry for o in DBSession.query(RestrictionArea).all(): DBSession.delete(o) for o in DBSession.query(Role).all(): DBSession.delete(o) for o in DBSession.query(User).all(): DBSession.delete(o) for o in DBSession.query(TreeItem).all(): DBSession.delete(o) ogcserver = create_default_ogcserver() role1 = Role(name="__test_role1") role1.id = 999 user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) user1.email = "*****@*****.**" role2 = Role(name="__test_role2", extent=WKTElement( "POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))", srid=21781 )) user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) main = Interface(name="main") engine = DBSession.c2c_rw_bind engine.connect() a_geo_table = Table( "a_geo_table", declarative_base(bind=engine).metadata, Column("id", types.Integer, primary_key=True), Column("geom", Geometry("POINT", srid=21781)), schema="geodata" ) self._tables = [a_geo_table] a_geo_table.drop(checkfirst=True) a_geo_table.create() private_layer = LayerWMS(name="__test_private_layer", public=False) private_layer.layer = "__test_private_layer" private_layer.geo_table = "geodata.a_geo_table" private_layer.interfaces = [main] private_layer.ogc_server = ogcserver group = LayerGroup(name="__test_layer_group") group.children = [private_layer] theme = Theme(name="__test_theme") theme.children = [group] theme.interfaces = [main] DBSession.add(RestrictionArea( name="__test_ra1", description="", layers=[private_layer], roles=[role1], )) DBSession.add(RestrictionArea( name="__test_ra2", description="", layers=[private_layer], roles=[role2], readwrite=True, )) DBSession.add_all([ user1, user2, role1, role2, theme, group, private_layer, ]) transaction.commit()
def lux_report_get(self): ref = self.request.matchdict.get("ref") job = DBSession.query(LuxPrintJob).get(ref) if job is None: return HTTPNotFound() try: resp, content = self._proxy("%s/report/%s" % (job.print_url, ref)) attributes = json.loads(job.spec)["attributes"] is_pdf = json.loads(job.spec)["format"] == "pdf" print_title = attributes.get("name") if print_title is None or len(print_title) == 0: print_title = "map_geoportal_lu" print_title = re.sub(r" ", "_", print_title) print_title = re.sub(r"[^a-zA-Z0-9\-\_]", "", print_title) if is_pdf and "firstPagesUrls" in attributes and\ attributes["firstPagesUrls"] is not None and\ len(attributes["firstPagesUrls"]) > 0: attributes["firstPagesUrls"].reverse() for pageUrl in attributes["firstPagesUrls"]: try: merger = PdfFileMerger(strict=False) if pageUrl['type'].lower() == 'pdf': opener = urllib.request.build_opener( urllib.request.HTTPHandler()) pdf_content = opener.open(pageUrl['url']).read() merger.append(BytesIO(pdf_content)) else: first_page = BytesIO() weasyprint.HTML( pageUrl['url']).write_pdf(first_page) merger.append(first_page) merger.append(BytesIO(content)) content = BytesIO() merger.write(content) content = content.getvalue() except Exception as e: log.exception(e) if is_pdf and "legend" in attributes and\ attributes["legend"] is not None: merger = PdfFileMerger(strict=False) merger.append(BytesIO(content)) lang = attributes.get("lang") for item in attributes["legend"]: if "restUrl" in item and item["restUrl"] is not None: merger.append( self._create_legend_from_url(item["restUrl"])) elif "legendUrl" in item and item["legendUrl"] is not None: legend_title = "" if "legendTitle" in item and\ item["legendTitle"] is not None: legend_title = item["legendTitle"] access_constraints = "" if "accessConstraints" in item and\ item["accessConstraints"] is not None: access_constraints = item["accessConstraints"] merger.append( self._create_legend_from_image( item["legendUrl"], legend_title, access_constraints)) elif "name" in item and item["name"] is not None: merger.append(self._get_legend(item["name"], lang)) content = BytesIO() merger.write(content) content = content.getvalue() if is_pdf and "queryResults" in attributes and\ attributes["queryResults"] is not None: css = weasyprint.CSS( string=".ng-hide {display: none !important;} " + ".no-print {display: none !important;} " + "body {font-size: 60%;} " + ".route-details-step { font-family: " + "Arial,sans-serif; font-size: 14px; " + "line-height: 20px; border-bottom: 1px " + "solid #8394A0; padding: 10px 10px 10px 30px; " + "margin: 0 -12px 0 0; position: relative;} " + ".route-info-title {font-size: 18px; " + "line-height: 19px; font-weight: 700;} " + ".route-general-info-container {display: " + "table; width: 100%;} " + ".route-single-info {display: table-cell; " + "width: auto;} " + ".route-info-general-data {font-size: 18px; " + "font-weight: 700; line-height: 22px; " + "padding-top: 10px;} " + ".route-info-data {color: #8394A0;} " + ".route-instruction-data {font-size: 16px; " + "line-height: 19px; display: inline-block; " + "margin: 0 10px 0 0;} " + ".route-instruction {margin-bottom: 10px;" + "position: relative;} " + ".icon-Direction {position: absolute; top: 0;" + "right: 100%; margin-right: 6px;} " + ".icon-Direction:before {font-family: " + "apart-geoportail!important;content: '\e903';" + "font-size: 6px;color:'#000';} " + ".south {transform: rotate(90deg);} " + ".north {transform: rotate(270deg);} " + ".west {transform: rotate(180deg);} " + ".east {transform: rotate(0deg);} " + ".n-e {transform: rotate(315deg);} " + ".n-w {transform: rotate(225deg);} " + ".s-w {transform: rotate(135deg);} " + ".s-e {transform: rotate(45deg);} ") merger = PdfFileMerger(strict=False) merger.append(BytesIO(content)) query_results = BytesIO() weasyprint.HTML(string=attributes["queryResults"]).write_pdf( query_results, stylesheets=[css]) merger.append(query_results) content = BytesIO() merger.write(content) content = content.getvalue() DBSession.delete(job) if is_pdf: resp["content-disposition"] =\ "attachment; filename=%s.pdf" % (str(print_title)) else: resp["content-disposition"] =\ "attachment; filename=%s.png" % (str(print_title)) return self._build_response(resp, content, NO_CACHE, "print") except Exception as e: log.exception(e) log.error("reference is : " + ref) if job is not None: job.is_error = True return HTTPInternalServerError()
def main(): parser = ArgumentParser( prog=sys.argv[0], add_help=True, description= "Tool used to migrate your old layers from the old structure to the new one.", ) parser.add_argument( "-i", "--app-config", default="geoportal/production.ini", dest="app_config", help= "the application .ini config file (optional, default is 'production.ini')" ) parser.add_argument( "-n", "--app-name", default="app", dest="app_name", help="the application name (optional, default is 'app')") parser.add_argument("--no-layers", dest="layers", action="store_false", help="do not import the layers") parser.add_argument("--no-groups", dest="groups", action="store_false", help="do not import the groups") parser.add_argument("--no-themes", dest="themes", action="store_false", help="do not import the themes") options = parser.parse_args() app_config = options.app_config app_name = options.app_name if app_name is None and "#" in app_config: app_config, app_name = app_config.split("#", 1) env = {} env.update(os.environ) env["LOG_LEVEL"] = "INFO" env["GUNICORN_ACCESS_LOG_LEVEL"] = "INFO" env["C2CGEOPORTAL_LOG_LEVEL"] = "WARN" fileConfig(app_config, defaults=env) app = get_app(app_config, app_name, options=env) # must be done only once we have loaded the project config from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import OGCServer, Theme, LayerWMS, LayerWMTS, LayerV1, LayerGroup session = DBSession() if options.layers: table_list = [LayerWMTS, LayerWMS, OGCServer] for table in table_list: print(("Emptying table {0!s}.".format(table.__table__))) # must be done exactly this way otherwise the cascade config in the # models are not used for t in session.query(table).all(): session.delete(t) # list and create all distinct ogc_server ogc_server(session, app.registry.settings) print("Converting layerv1.") for layer in session.query(LayerV1).all(): layer_v1tov2(session, layer) if options.groups: print("Converting layer groups.") for group in session.query(LayerGroup).all(): layergroup_v1tov2(session, group) if options.themes: print("Converting themes.") for theme in session.query(Theme).all(): theme_v1tov2(session, theme) transaction.commit()
def main(): parser = ArgumentParser( prog=sys.argv[0], add_help=True, description="Tool used to migrate your old layers from the old structure to the new one.", ) parser.add_argument( "-i", "--app-config", default="geoportal/production.ini", dest="app_config", help="the application .ini config file (optional, default is 'production.ini')" ) parser.add_argument( "-n", "--app-name", default="app", dest="app_name", help="the application name (optional, default is 'app')" ) parser.add_argument( "--no-layers", dest="layers", action="store_false", help="do not import the layers" ) parser.add_argument( "--no-groups", dest="groups", action="store_false", help="do not import the groups" ) parser.add_argument( "--no-themes", dest="themes", action="store_false", help="do not import the themes" ) options = parser.parse_args() app_config = options.app_config app_name = options.app_name if app_name is None and "#" in app_config: app_config, app_name = app_config.split("#", 1) fileConfig(app_config, defaults=os.environ) app = get_app(app_config, app_name, options=os.environ) # must be done only once we have loaded the project config from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import OGCServer, Theme, LayerWMS, LayerWMTS, LayerV1, LayerGroup session = DBSession() if options.layers: table_list = [LayerWMTS, LayerWMS, OGCServer] for table in table_list: print(("Emptying table {0!s}.".format(table.__table__))) # must be done exactly this way otherwise the cascade config in the # models are not used for t in session.query(table).all(): session.delete(t) # list and create all distinct ogc_server ogc_server(session, app.registry.settings) print("Converting layerv1.") for layer in session.query(LayerV1).all(): layer_v1tov2(session, layer) if options.groups: print("Converting layer groups.") for group in session.query(LayerGroup).all(): layergroup_v1tov2(session, group) if options.themes: print("Converting themes.") for theme in session.query(Theme).all(): theme_v1tov2(session, theme) transaction.commit()