def before_map(self, map):
        sm = SubMapper(
            map,
            controller='ckanext.cloudstorage.controller:StorageController'
        )

        # Override the resource download controllers so we can do our
        # lookup with libcloud.
        with sm:
            sm.connect(
                'resource_download',
                '/dataset/{id}/resource/{resource_id}/download',
                action='resource_download'
            )
            sm.connect(
                'resource_download',
                '/dataset/{id}/resource/{resource_id}/download/{filename}',
                action='resource_download'
            )

        return map
Example #2
0
class GobArRouter:

    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = 'ckanext.gobar_theme.controller:GobArHomeController'
        self.home_routes = SubMapper(self.route_map, controller=self.home_controller)
        self.api_controller = 'ckanext.gobar_theme.controller:GobArApiController'

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        self.connect_api()

    def connect_home(self):
        self.home_routes.connect('/', action='index')

    def connect_static(self):
        self.home_routes.connect('gobar_open_data', '/datos-abiertos', action='open_data')
        self.home_routes.connect('gobar_legal', '/marco-legal', action='legal')
        self.home_routes.connect('gobar_platform', '/plataforma', action='platform')
        self.redirect(
            ('/about', '/datos-abiertos')
        )

    def connect_datasets(self):
        self.route_map.connect('/dataset/{id}/archivo/{resource_id}', action='resource_read', controller='package')
        self.redirect(
            ('/dataset/history/{id:.*?}', '/dataset/{id}'),
            ('/dataset/activity/{id:.*?}', '/dataset/{id}'),
            ('/dataset/groups/{id:.*?}', '/dataset/{id}'),
            ('/dataset/followers/{id:.*?}', '/dataset/{id}'),
            ('/dataset/{id}/resource/{resource_id}', '/dataset/{id}/archivo/{resource_id}')
        )

    def remove_dashboard(self):
        self.redirect(
            ('/dashboard', '/'),
            ('/dashboard/datasets', '/'),
            ('/dashboard/groups', '/'),
            ('/dashboard/organizations', '/'),
            ('/dashboard/{url:.*?}', '/dashboard')
        )

    def connect_organizations(self):
        self.route_map.connect('/organizaciones', action='index', controller='organization')
        self.route_map.connect('/organization/new', action='new', controller='organization')
        self.redirect(
            ('/organization', '/organizaciones'),
            ('/organization/list', '/organization'),
            ('/organization/{id}', '/organization/list'),
            ('/organization/activity/{id}/{offset}', '/organization/list'),
            ('/organization/about/{id}', '/organization/list'),
            ('/organization/admins/{id}', '/organization/list'),
            ('/organization/members/{id}', '/organization/list'),
            ('/organization/member_new/{id}', '/organization/list'),
            ('/organization/member_delete/{id}', '/organization/list'),
            ('/organization/history/{id}', '/organization/list'),
            ('/organization/bulk_process/{id}', '/organization/list')
        )

    def connect_groups(self):
        self.route_map.connect('group_new', '/group/new', action='new', controller='group')
        self.redirect(
            ('/group', '/'),
            ('/group/list', '/'),
            ('/group/{id}', '/group/list'),
            ('/group/about/{id}', '/group/list'),
            ('/group/members/{id}', '/group/list'),
            ('/group/member_new/{id}', '/group/list'),
            ('/group/member_delete/{id}', '/group/list'),
            ('/group/history/{id}', '/group/list'),
            ('/group/followers/{id}', '/group/list'),
            ('/group/follow/{id}', '/group/list'),
            ('/group/unfollow/{id}', '/group/list'),
            ('/group/admins/{id}', '/group/list'),
            ('/group/activity/{id}/{offset}', '/group/list')
        )

    def connect_users(self):
        self.route_map.connect('login', '/1401admin', action='login', controller='user')
        self.route_map.connect('/logout', action='logout', controller='user')
        self.redirect(
            ('/user/login', '/'),
            ('/user/generate_key/{id}', '/'),
            ('/user/activity/{id}/{offset}', '/'),
            ('/user/activity/{id}', '/'),
            ('/user/follow/{id}', '/'),
            ('/user/unfollow/{id}', '/'),
            ('/user/followers/{id:.*}', '/'),
            ('/user/delete/{id}', '/'),
            ('/user/reset/{id:.*}', '/'),
            ('/user/register', '/'),
            ('/user/reset', '/'),
            ('/user/set_lang/{lang}', '/'),
            ('/user', '/'),
            ('/user/_logout', '/logout'),
            ('/user/logged_out_redirect', '/'),
            ('/salir', '/logout')
        )

    def remove_tags(self):
        self.redirect(
            ('/tag', '/'),
            ('/tag/{url}', '/')
        )

    def remove_revision(self):
        self.redirect(
            ('/revision', '/'),
            ('/revision/list', '/'),
            ('/revision/edit/{id}', '/revision'),
            ('/revision/diff/{id}', '/revision'),
            ('/revision/{id}', '/revision')
        )

    def connect_api(self):
        with SubMapper(self.route_map, controller=self.api_controller, path_prefix='/api{ver:/3|}', ver='/3') as m:
            m.connect('/action/{logic_function}', action='action', conditions=dict(method=['GET', 'POST']))
Example #3
0
class GobArRouter:
    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = "ckanext.gobar_theme.controller:GobArHomeController"
        self.home_routes = SubMapper(self.route_map, controller=self.home_controller)
        self.api_controller = "ckanext.gobar_theme.controller:GobArApiController"
        self.package_controller = "ckanext.gobar_theme.package_controller:GobArPackageController"

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        self.connect_api()
        self.connectThemeTaxonomy()

    def connect_home(self):
        self.home_routes.connect("/", action="index")

    def connect_static(self):
        self.home_routes.connect("gobar_our_site", "/acerca/nuestro-portal", action="about_our_site")
        self.home_routes.connect("gobar_legal", "/acerca/marco-legal", action="about_legal")
        self.home_routes.connect("gobar_devs", "/acerca/desarrolladores", action="about_developers")
        self.home_routes.connect("gobar_glossary", "/acerca/glosario", action="about_glossary")
        self.redirect(("/acerca", "/acerca/nuestro-portal"), ("/about", "/acerca/nuestro-portal"))

    def connect_datasets(self):
        with SubMapper(self.route_map, controller=self.package_controller) as m:
            m.connect("search", "/dataset", action="search", highlight_actions="index search")
            m.connect("add dataset", "/dataset/new", action="new")
        self.route_map.connect("/dataset/{id}/archivo/{resource_id}", action="resource_read", controller="package")
        self.redirect(
            ("/dataset/history/{id:.*?}", "/dataset/{id}"),
            ("/dataset/activity/{id:.*?}", "/dataset/{id}"),
            ("/dataset/groups/{id:.*?}", "/dataset/{id}"),
            ("/dataset/followers/{id:.*?}", "/dataset/{id}"),
            ("/dataset/{id}/resource/{resource_id}", "/dataset/{id}/archivo/{resource_id}"),
        )

    def remove_dashboard(self):
        self.redirect(
            ("/dashboard", "/"),
            ("/dashboard/datasets", "/"),
            ("/dashboard/groups", "/"),
            ("/dashboard/organizations", "/"),
            ("/dashboard/{url:.*?}", "/dashboard"),
        )

    def connect_organizations(self):
        self.route_map.connect("/organizaciones", action="index", controller="organization")
        self.route_map.connect("/organization/new", action="new", controller="organization")
        self.redirect(
            ("/organization", "/organizaciones"),
            ("/organization/list", "/organization"),
            ("/organization/{id}", "/organization/list"),
            ("/organization/activity/{id}/{offset}", "/organization/list"),
            ("/organization/about/{id}", "/organization/list"),
            ("/organization/admins/{id}", "/organization/list"),
            ("/organization/members/{id}", "/organization/list"),
            ("/organization/member_new/{id}", "/organization/list"),
            ("/organization/member_delete/{id}", "/organization/list"),
            ("/organization/history/{id}", "/organization/list"),
            ("/organization/bulk_process/{id}", "/organization/list"),
        )

    def connect_groups(self):
        self.route_map.connect("group_new", "/group/new", action="new", controller="group")
        self.redirect(
            ("/group", "/"),
            ("/group/list", "/"),
            ("/group/{id}", "/group/list"),
            ("/group/about/{id}", "/group/list"),
            ("/group/members/{id}", "/group/list"),
            ("/group/member_new/{id}", "/group/list"),
            ("/group/member_delete/{id}", "/group/list"),
            ("/group/history/{id}", "/group/list"),
            ("/group/followers/{id}", "/group/list"),
            ("/group/follow/{id}", "/group/list"),
            ("/group/unfollow/{id}", "/group/list"),
            ("/group/admins/{id}", "/group/list"),
            ("/group/activity/{id}/{offset}", "/group/list"),
        )

    def connect_users(self):
        self.route_map.connect("login", "/635511788", action="login", controller="user")
        self.route_map.connect("/logout", action="logout", controller="user")
        self.route_map.connect(
            "user_datasets",
            "/user/{id:.*}",
            action="read",
            controller="ckanext.gobar_theme.controller:GobArUserController",
        )
        self.redirect(
            ("/user/login", "/"),
            ("/user/generate_key/{id}", "/"),
            ("/user/activity/{id}/{offset}", "/"),
            ("/user/activity/{id}", "/"),
            ("/user/follow/{id}", "/"),
            ("/user/unfollow/{id}", "/"),
            ("/user/followers/{id:.*}", "/"),
            ("/user/delete/{id}", "/"),
            ("/user/reset/{id:.*}", "/"),
            ("/user/register", "/"),
            ("/user/reset", "/"),
            ("/user/set_lang/{lang}", "/"),
            ("/user", "/"),
            ("/user/_logout", "/logout"),
            ("/user/logged_out_redirect", "/"),
            ("/salir", "/logout"),
        )

    def remove_tags(self):
        self.redirect(("/tag", "/"), ("/tag/{url}", "/"))

    def remove_revision(self):
        self.redirect(
            ("/revision", "/"),
            ("/revision/list", "/"),
            ("/revision/edit/{id}", "/revision"),
            ("/revision/diff/{id}", "/revision"),
            ("/revision/{id}", "/revision"),
        )

    def connect_api(self):
        with SubMapper(self.route_map, controller=self.api_controller, path_prefix="/api{ver:/3|}", ver="/3") as m:
            m.connect("/action/{logic_function}", action="action", conditions=dict(method=["GET", "POST"]))

    def connectThemeTaxonomy(self):
        self.home_routes.connect("/superThemeTaxonomy.json", action="theme_taxonomy")
    def before_map(self, map):
        m = SubMapper(map,
                      controller='ckanext.hiroshima.controllers.home:\
                HiroshimaHomeController')
        # Connect routes for usepolicy
        m.connect(
            'home.usepolicy',
            '/usepolicy',  #route,URL,action
            action="usePolicy")
        m.connect('home.opinion', '/opinion', action="opinion")
        m.connect('home.about-use', '/about-use', action="aboutUse")
        m.connect('home.index', '/', action="index")

        # /user/register
        map.connect(
            '/user/register',
            controller=
            'ckanext.hiroshima.controllers.user:HiroshimaUserController',
            action='register')

        # /dataset/data-request
        map.connect(
            'package.data-request',
            '/dataset/{id}/resource/{resource_id}/data-request',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='dataRequest')

        # /dataset/questionnaire
        map.connect(
            'package.questionnaire',
            '/dataset/{id}/resource/{resource_id}/questionnaire',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='questionnaire')

        # /dataset/meta-data-request
        map.connect(
            'package.meta-data-request',
            '/dataset/{id}/meta-data-request',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='metaDataRequest',
            ckan_icon='pencil-square-o')

        # /dataset/request-list
        map.connect(
            'package.request-list',
            '/dataset/request-list/{id}',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='requestList',
            ckan_icon='list')

        # /dataset/complete
        map.connect(
            'package.complete',
            '/dataset/complete/{token}',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='complete')

        # /dataset/complete-request
        map.connect(
            'package.complete-request',
            '/dataset/{id}/resource/{resource_id}/complete-request',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='completeRequest')

        # /fiware
        map.connect(
            'fiware',
            '/fiware/{type}/{id}/{attrName}',
            controller=
            'ckanext.hiroshima.controllers.package:HiroshimaPackageController',
            action='fiware')

        return map
Example #5
0
class GobArRouter:

    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = 'ckanext.gobar_theme.controller:GobArHomeController'
        self.home_routes = SubMapper(self.route_map, controller=self.home_controller)
        self.api_controller = 'ckanext.gobar_theme.controller:GobArApiController'

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        self.connect_api()

    def connect_home(self):
        self.home_routes.connect('/', action='index')

    def connect_static(self):
        self.home_routes.connect('gobar_open_data', '/datos-abiertos', action='open_data')
        self.home_routes.connect('gobar_legal', '/marco-legal', action='legal')
        self.home_routes.connect('gobar_platform', '/plataforma', action='platform')
        self.redirect(
            ('/about', '/datos-abiertos')
        )

    def connect_datasets(self):
        self.route_map.connect('/dataset/{id}/archivo/{resource_id}', action='resource_read', controller='package')
        self.redirect(
            ('/dataset/history/{id:.*?}', '/dataset/{id}'),
            ('/dataset/activity/{id:.*?}', '/dataset/{id}'),
            ('/dataset/groups/{id:.*?}', '/dataset/{id}'),
            ('/dataset/followers/{id:.*?}', '/dataset/{id}'),
            ('/dataset/{id}/resource/{resource_id}', '/dataset/{id}/archivo/{resource_id}')
        )

    def remove_dashboard(self):
        self.redirect(
            ('/dashboard', '/'),
            ('/dashboard/datasets', '/'),
            ('/dashboard/groups', '/'),
            ('/dashboard/organizations', '/'),
            ('/dashboard/{url:.*?}', '/dashboard')
        )

    def connect_organizations(self):
        self.route_map.connect('/organizaciones', action='index', controller='organization')
        self.route_map.connect('/organization/new', action='new', controller='organization')
        self.redirect(
            ('/organization', '/organizaciones'),
            ('/organization/list', '/organization'),
            ('/organization/{id}', '/organization/list'),
            ('/organization/activity/{id}/{offset}', '/organization/list'),
            ('/organization/about/{id}', '/organization/list'),
            ('/organization/admins/{id}', '/organization/list'),
            ('/organization/members/{id}', '/organization/list'),
            ('/organization/member_new/{id}', '/organization/list'),
            ('/organization/member_delete/{id}', '/organization/list'),
            ('/organization/history/{id}', '/organization/list'),
            ('/organization/bulk_process/{id}', '/organization/list')
        )

    def connect_groups(self):
        self.route_map.connect('group_new', '/group/new', action='new', controller='group')
        self.redirect(
            ('/group', '/'),
            ('/group/list', '/'),
            ('/group/{id}', '/group/list'),
            ('/group/about/{id}', '/group/list'),
            ('/group/members/{id}', '/group/list'),
            ('/group/member_new/{id}', '/group/list'),
            ('/group/member_delete/{id}', '/group/list'),
            ('/group/history/{id}', '/group/list'),
            ('/group/followers/{id}', '/group/list'),
            ('/group/follow/{id}', '/group/list'),
            ('/group/unfollow/{id}', '/group/list'),
            ('/group/admins/{id}', '/group/list'),
            ('/group/activity/{id}/{offset}', '/group/list')
        )

    def connect_users(self):
        self.route_map.connect('login', '/635511788', action='login', controller='user')
        self.route_map.connect('/logout', action='logout', controller='user')
        self.redirect(
            ('/user/login', '/'),
            ('/user/generate_key/{id}', '/'),
            ('/user/activity/{id}/{offset}', '/'),
            ('/user/activity/{id}', '/'),
            ('/user/follow/{id}', '/'),
            ('/user/unfollow/{id}', '/'),
            ('/user/followers/{id:.*}', '/'),
            ('/user/delete/{id}', '/'),
            ('/user/reset/{id:.*}', '/'),
            ('/user/register', '/'),
            ('/user/reset', '/'),
            ('/user/set_lang/{lang}', '/'),
            ('/user', '/'),
            ('/user/_logout', '/logout'),
            ('/user/logged_out_redirect', '/'),
            ('/salir', '/logout')
        )

    def remove_tags(self):
        self.redirect(
            ('/tag', '/'),
            ('/tag/{url}', '/')
        )

    def remove_revision(self):
        self.redirect(
            ('/revision', '/'),
            ('/revision/list', '/'),
            ('/revision/edit/{id}', '/revision'),
            ('/revision/diff/{id}', '/revision'),
            ('/revision/{id}', '/revision')
        )

    def connect_api(self):
        with SubMapper(self.route_map, controller=self.api_controller, path_prefix='/api{ver:/3|}', ver='/3') as m:
            m.connect('/action/{logic_function}', action='action', conditions=dict(method=['GET', 'POST']))
Example #6
0
class GobArRouter:
    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = 'ckanext.gobar_theme.controller:GobArHomeController'
        self.home_routes = SubMapper(self.route_map,
                                     controller=self.home_controller)
        self.api_controller = 'ckanext.gobar_theme.controller:GobArApiController'
        self.package_controller = 'ckanext.gobar_theme.package_controller:GobArPackageController'
        self.config_controller = 'ckanext.gobar_theme.config_controller:GobArConfigController'
        self.user_controller = 'ckanext.gobar_theme.user_controller:GobArUserController'
        self.google_analytics_controller = 'ckanext.gobar_theme.google_analytics_controller:GobArGAController'
        self.spatial_controller = 'ckanext.gobar_theme.spatial_controller:GobArSpatialController'
        self.datajson_controller = 'ckanext.gobar_theme.datajson_controller:GobArDatajsonController'

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_section()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_apis()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        # self.remove_admin()
        self.connect_api()
        self.connect_template_config()
        self.connect_google_analytics()
        self.connect_spatial()
        self.connect_datajson()
        self.connect_super_theme_taxonomy()

    def connect_home(self):
        self.home_routes.connect('/', action='index')

    def connect_super_theme_taxonomy(self):
        self.home_routes.connect('/superThemeTaxonomy.json',
                                 action='super_theme_taxonomy')

    def connect_static(self):
        self.home_routes.connect('gobar_about', '/acerca', action='about')
        self.home_routes.connect('gobar_about_ckan',
                                 '/acerca/ckan',
                                 action='about_ckan')
        self.redirect(('/about', '/acerca'))

    def connect_section(self):
        self.home_routes.connect('section',
                                 '/acerca/seccion/{title}',
                                 action='view_about_section')

    def connect_google_analytics(self):
        with SubMapper(self.route_map,
                       controller=self.google_analytics_controller) as m:
            m.connect('resource view embed',
                      '/dataset/resource_view_embed/{resource_id}',
                      action='resource_view_embed')

    def connect_spatial(self):
        with SubMapper(self.route_map,
                       controller=self.spatial_controller) as m:
            m.connect('countries', '/spatial/paises', action='paises'),
            m.connect('provinces', '/spatial/provincias', action='provincias'),
            m.connect('districts',
                      '/spatial/localidades',
                      action='localidades'),
            m.connect('districts',
                      '/spatial/localidades/{province_id}',
                      action='localidades'),
            m.connect('districts', '/spatial/municipios', action='municipios'),
            m.connect('districts',
                      '/spatial/municipios/{province_id}',
                      action='municipios'),

    def connect_apis(self):
        self.home_routes.connect('gobar_apis', '/apis', action='apis')
        self.redirect(('/apis', '/apis'), )

    def connect_datasets(self):
        with SubMapper(self.route_map,
                       controller=self.package_controller) as m:
            m.connect('search',
                      '/dataset',
                      action='search',
                      highlight_actions='index search')
            m.connect('add dataset', '/dataset/new', action='new')
            m.connect('edit dataset', '/dataset/edit/{id}', action='edit')
            m.connect('delete dataset',
                      '/dataset/delete/{id}',
                      action='delete')
            m.connect('new resource',
                      '/dataset/new_resource/{id}',
                      action='new_resource')
            m.connect('edit resource',
                      '/dataset/{id}/resource_edit/{resource_id}',
                      action='resource_edit')
            m.connect('delete resource',
                      '/dataset/{id}/resource_delete/{resource_id}',
                      action='resource_delete')
        self.route_map.connect('/dataset/{id}/archivo/{resource_id}',
                               action='resource_read',
                               controller='package')
        self.redirect(('/dataset/history/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/activity/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/groups/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/followers/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/{id}/resource/{resource_id}',
                       '/dataset/{id}/archivo/{resource_id}'))

    def remove_dashboard(self):
        self.redirect(('/dashboard', '/'), ('/dashboard/datasets', '/'),
                      ('/dashboard/groups', '/'),
                      ('/dashboard/organizations', '/'),
                      ('/dashboard/{url:.*?}', '/dashboard'))

    def connect_organizations(self):
        self.route_map.connect('/organizaciones',
                               action='index',
                               controller='organization')
        self.route_map.connect('/organization/new',
                               action='new',
                               controller='organization')
        self.redirect(
            ('/organization', '/organizaciones'),
            ('/organization/list', '/organization'),
            ('/organization/{id}', '/organization/list'),
            ('/organization/activity/{id}/{offset}', '/organization/list'),
            ('/organization/about/{id}', '/organization/list'),
            ('/organization/admins/{id}', '/organization/list'),
            ('/organization/members/{id}', '/organization/list'),
            ('/organization/member_new/{id}', '/organization/list'),
            ('/organization/member_delete/{id}', '/organization/list'),
            ('/organization/history/{id}', '/organization/list'),
            ('/organization/bulk_process/{id}', '/organization/list'))

    def connect_groups(self):
        self.route_map.connect('group_new',
                               '/group/new',
                               action='new',
                               controller='group')
        self.redirect(('/group', '/'), ('/group/list', '/'),
                      ('/group/{id}', '/group/list'),
                      ('/group/about/{id}', '/group/list'),
                      ('/group/members/{id}', '/group/list'),
                      ('/group/member_new/{id}', '/group/list'),
                      ('/group/member_delete/{id}', '/group/list'),
                      ('/group/history/{id}', '/group/list'),
                      ('/group/followers/{id}', '/group/list'),
                      ('/group/follow/{id}', '/group/list'),
                      ('/group/unfollow/{id}', '/group/list'),
                      ('/group/admins/{id}', '/group/list'),
                      ('/group/activity/{id}/{offset}', '/group/list'))

    def connect_users(self):
        self.route_map.connect('/logout', action='logout', controller='user')
        with SubMapper(self.route_map, controller=self.user_controller) as m:
            m.connect('/borradores', action="drafts")
            m.connect('/user/reset/{user_id}', action="password_reset")
            m.connect('user_datasets', '/user/{id:.*}', action='read')
            m.connect('login', '/ingresar', action='login')
            m.connect('/olvide_mi_contraseƱa', action="password_forgot")
            m.connect('/configurar/mi_cuenta', action="my_account")
            m.connect('/configurar/mi_cuenta/cambiar_email',
                      action="my_account_edit_email")
            m.connect('/configurar/mi_cuenta/cambiar_contraseƱa',
                      action="my_account_edit_password")
            m.connect('/configurar/crear_usuarios', action="create_users")
            m.connect('/configurar/editar_usuario', action="edit_user")
            m.connect('/configurar/borrar_usuario', action="delete_user")
            m.connect('/configurar/historial', action="user_history")
            m.connect('/configurar/historial.json', action="user_history_json")

        self.redirect(
            ('/user/login', '/'), ('/user/generate_key/{id}', '/'),
            ('/user/activity/{id}/{offset}', '/'),
            ('/user/activity/{id}', '/'), ('/user/follow/{id}', '/'),
            ('/user/unfollow/{id}', '/'), ('/user/followers/{id:.*}', '/'),
            ('/user/delete/{id}', '/'), ('/user/register', '/'),
            ('/user/reset', '/'), ('/user/set_lang/{lang}', '/'),
            ('/user', '/'), ('/user/_logout', '/logout'),
            ('/user/logged_out_redirect', '/'), ('/salir', '/logout'))

    def remove_tags(self):
        self.redirect(('/tag', '/'), ('/tag/{url}', '/'))

    def remove_revision(self):
        self.redirect(('/revision', '/'), ('/revision/list', '/'),
                      ('/revision/edit/{id}', '/revision'),
                      ('/revision/diff/{id}', '/revision'),
                      ('/revision/{id}', '/revision'))

    def remove_admin(self):
        self.redirect(('/ckan-admin', '/'), ('/ckan-admin/config', '/'),
                      ('/ckan-admin/trash', '/'),
                      ('/ckan-admin/{action}', '/'))

    def connect_api(self):
        with SubMapper(self.route_map,
                       controller=self.api_controller,
                       path_prefix='/api{ver:/3|}',
                       ver='/3') as m:
            m.connect('/action/{logic_function}',
                      action='action',
                      conditions=dict(method=['GET', 'POST']))
            m.connect('/util/status', action='status')

    def connect_template_config(self):
        with SubMapper(self.route_map, controller=self.config_controller) as m:
            m.connect('/configurar/titulo', action='edit_title')
            m.connect('/configurar/portada', action='edit_home')
            m.connect('/configurar/encabezado', action='edit_header')
            m.connect('/configurar/temas', action='edit_groups')
            m.connect('/configurar/redes', action='edit_social')
            m.connect('/configurar/pie-de-pagina', action='edit_footer')
            m.connect('/configurar/datasets', action='edit_datasets')
            m.connect('/configurar/organizaciones',
                      action='edit_organizations')
            m.connect('/configurar/acerca', action='edit_about')
            m.connect('/configurar/apis', action='edit_apis')
            m.connect('/configurar/metadata/google_fb',
                      action='edit_metadata_google_fb')
            m.connect('/configurar/metadata/tw', action='edit_metadata_tw')
            m.connect('/configurar/metadata/portal',
                      action='edit_metadata_portal')
            m.connect('/configurar/mensaje_de_bienvenida',
                      action='edit_greetings')
            m.connect('/configurar/series', action='edit_series')

        self.redirect(('/configurar', '/configurar/titulo'),
                      ('/configurar', '/configurar/metadata'))

    def connect_datajson(self):
        with SubMapper(self.route_map,
                       controller=self.datajson_controller) as m:
            m.connect('datajson', '/data.json', action='datajson')
        self.redirect(('/datajson', '/datajson'), )

        disable_catalog_xlsx_url = config.get(
            'andino.disable_catalog_xlsx_url')
        if disable_catalog_xlsx_url in (
                'True',
                'true',
                '1',
                'Yes',
                'yes',
        ):
            self.redirect(
                ('/catalog.xlsx', '/'),  # Redirecciono a la home
            )
        else:
            with SubMapper(self.route_map,
                           controller=self.datajson_controller) as m:
                m.connect('catalog_xlsx',
                          '/catalog.xlsx',
                          action='catalog_xlsx')
Example #7
0
class GobArRouter:
    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = 'ckanext.gobar_theme.controller:GobArHomeController'
        self.home_routes = SubMapper(self.route_map,
                                     controller=self.home_controller)
        self.api_controller = 'ckanext.gobar_theme.controller:GobArApiController'
        self.package_controller = 'ckanext.gobar_theme.package_controller:GobArPackageController'
        self.config_controller = 'ckanext.gobar_theme.config_controller:GobArConfigController'

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        self.connect_api()
        self.connect_template_config()

    def connect_home(self):
        self.home_routes.connect('/', action='index')

    def connect_static(self):
        self.home_routes.connect('gobar_about', '/about', action='about')
        self.redirect(('/about', '/about'))

    def connect_datasets(self):
        with SubMapper(self.route_map,
                       controller=self.package_controller) as m:
            m.connect('search',
                      '/dataset',
                      action='search',
                      highlight_actions='index search')
            m.connect('add dataset', '/dataset/new', action='new')
        self.route_map.connect('/dataset/{id}/archive/{resource_id}',
                               action='resource_read',
                               controller='package')
        self.redirect(('/dataset/history/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/activity/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/groups/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/followers/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/{id}/resource/{resource_id}',
                       '/dataset/{id}/archive/{resource_id}'))

    def remove_dashboard(self):
        self.redirect(('/dashboard', '/'), ('/dashboard/datasets', '/'),
                      ('/dashboard/groups', '/'),
                      ('/dashboard/organizations', '/'),
                      ('/dashboard/{url:.*?}', '/dashboard'))

    def connect_organizations(self):
        self.route_map.connect('/organization',
                               action='index',
                               controller='organization')
        self.route_map.connect('/organization/new',
                               action='new',
                               controller='organization')
        self.redirect(
            ('/organization', '/organization'),
            ('/organization/list', '/organization'),
            ('/organization/{id}', '/organization/list'),
            ('/organization/activity/{id}/{offset}', '/organization/list'),
            ('/organization/about/{id}', '/organization/list'),
            ('/organization/admins/{id}', '/organization/list'),
            ('/organization/members/{id}', '/organization/list'),
            ('/organization/member_new/{id}', '/organization/list'),
            ('/organization/member_delete/{id}', '/organization/list'),
            ('/organization/history/{id}', '/organization/list'),
            ('/organization/bulk_process/{id}', '/organization/list'))

    def connect_groups(self):
        self.route_map.connect('group_new',
                               '/group/new',
                               action='new',
                               controller='group')
        self.redirect(('/group', '/'), ('/group/list', '/'),
                      ('/group/{id}', '/group/list'),
                      ('/group/about/{id}', '/group/list'),
                      ('/group/members/{id}', '/group/list'),
                      ('/group/member_new/{id}', '/group/list'),
                      ('/group/member_delete/{id}', '/group/list'),
                      ('/group/history/{id}', '/group/list'),
                      ('/group/followers/{id}', '/group/list'),
                      ('/group/follow/{id}', '/group/list'),
                      ('/group/unfollow/{id}', '/group/list'),
                      ('/group/admins/{id}', '/group/list'),
                      ('/group/activity/{id}/{offset}', '/group/list'))

    def connect_users(self):
        self.route_map.connect('login',
                               '/login',
                               action='login',
                               controller='user')
        self.route_map.connect('/logout', action='logout', controller='user')
        self.route_map.connect(
            'user_datasets',
            '/user/{id:.*}',
            action='read',
            controller='ckanext.gobar_theme.controller:GobArUserController')
        self.redirect(
            ('/user/login', '/'), ('/user/generate_key/{id}', '/'),
            ('/user/activity/{id}/{offset}', '/'),
            ('/user/activity/{id}', '/'), ('/user/follow/{id}', '/'),
            ('/user/unfollow/{id}', '/'), ('/user/followers/{id:.*}', '/'),
            ('/user/delete/{id}', '/'), ('/user/reset/{id:.*}', '/'),
            ('/user/register', '/'), ('/user/reset', '/'),
            ('/user/set_lang/{lang}', '/'), ('/user', '/'),
            ('/user/_logout', '/logout'), ('/user/logged_out_redirect', '/'),
            ('/salir', '/logout'))

    def remove_tags(self):
        self.redirect(('/tag', '/'), ('/tag/{url}', '/'))

    def remove_revision(self):
        self.redirect(('/revision', '/'), ('/revision/list', '/'),
                      ('/revision/edit/{id}', '/revision'),
                      ('/revision/diff/{id}', '/revision'),
                      ('/revision/{id}', '/revision'))

    def connect_api(self):
        with SubMapper(self.route_map,
                       controller=self.api_controller,
                       path_prefix='/api{ver:/3|}',
                       ver='/3') as m:
            m.connect('/action/{logic_function}',
                      action='action',
                      conditions=dict(method=['GET', 'POST']))

    def connect_template_config(self):
        with SubMapper(self.route_map, controller=self.config_controller) as m:
            m.connect('/config/titulo', action='edit_title')
            m.connect('/config/portada', action='edit_home')
            m.connect('/config/encabezado', action='edit_header')
            m.connect('/config/temas', action='edit_groups')
            m.connect('/config/redes', action='edit_social')
            m.connect('/config/pie-de-pagina', action='edit_footer')
            m.connect('/config/datasets', action='edit_datasets')
            m.connect('/config/organization', action='edit_organization')
            m.connect('/config/about', action='edit_about')
            m.connect('/config/metadata/google_fb',
                      action='edit_metadata_google_fb')
            m.connect('/config/metadata/tw', action='edit_metadata_tw')
            m.connect('/config/mensaje_de_bienvenida', action='edit_greetings')

        self.redirect(('/config', '/config/titulo'),
                      ('/config', '/config/metadata'))
Example #8
0
class GobArRouter:
    def __init__(self, route_map):
        self.route_map = route_map

        self.home_controller = 'ckanext.gobar_theme.controller:GobArHomeController'
        self.home_routes = SubMapper(self.route_map,
                                     controller=self.home_controller)
        self.api_controller = 'ckanext.gobar_theme.controller:GobArApiController'

    def redirect(self, *routes):
        for url_from, url_to in routes:
            self.route_map.redirect(url_from, url_to)

    def set_routes(self):
        self.connect_home()
        self.connect_static()
        self.connect_datasets()
        self.connect_organizations()
        self.connect_groups()
        self.connect_apis()
        self.connect_users()
        self.remove_dashboard()
        self.remove_tags()
        self.remove_revision()
        #self.remove_admin()
        self.connect_api()
        self.connectThemeTaxonomy()
        self.connect_error_pages()

    def connect_home(self):
        self.home_routes.connect('/', action='index')

    def connect_static(self):
        self.home_routes.connect('gobar_our_site',
                                 '/acerca/nuestro-portal',
                                 action='about_our_site')
        self.home_routes.connect('gobar_legal',
                                 '/acerca/marco-legal',
                                 action='about_legal')
        self.home_routes.connect('gobar_devs',
                                 '/acerca/ckan',
                                 action='about_ckan')
        self.home_routes.connect('gobar_glossary',
                                 '/acerca/glosario',
                                 action='about_glossary')
        self.redirect(('/acerca', '/acerca/nuestro-portal'),
                      ('/about', '/acerca/nuestro-portal'))

    def connect_apis(self):
        self.home_routes.connect('gobar_apis', '/apis', action='apis')
        self.redirect(('/apis', '/apis'), )

    def connect_datasets(self):
        with SubMapper(self.route_map, controller='package') as m:
            m.connect('search',
                      '/dataset',
                      action='search',
                      highlight_actions='index search')
            m.connect('add dataset', '/dataset/new', action='new')
            m.connect('edit dataset', '/dataset/edit/{id}', action='edit')
            m.connect('new resource',
                      '/dataset/new_resource/{id}',
                      action='new_resource')
        self.route_map.connect('/dataset/{id}/archivo/{resource_id}',
                               action='resource_read',
                               controller='package')
        self.redirect(('/dataset/history/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/activity/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/groups/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/followers/{id:.*?}', '/dataset/{id}'),
                      ('/dataset/{id}/resource/{resource_id}',
                       '/dataset/{id}/archivo/{resource_id}'))

    def remove_dashboard(self):
        self.redirect(('/dashboard', '/'), ('/dashboard/datasets', '/'),
                      ('/dashboard/groups', '/'),
                      ('/dashboard/organizations', '/'),
                      ('/dashboard/{url:.*?}', '/dashboard'))

    def connect_organizations(self):
        self.route_map.connect('/organizaciones',
                               action='index',
                               controller='organization')
        self.route_map.connect('/organization/new',
                               action='new',
                               controller='organization')
        self.redirect(
            ('/organization', '/organizaciones'),
            ('/organization/list', '/organization'),
            ('/organization/{id}', '/organization/list'),
            ('/organization/activity/{id}/{offset}', '/organization/list'),
            ('/organization/about/{id}', '/organization/list'),
            ('/organization/admins/{id}', '/organization/list'),
            ('/organization/members/{id}', '/organization/list'),
            ('/organization/member_new/{id}', '/organization/list'),
            ('/organization/member_delete/{id}', '/organization/list'),
            ('/organization/history/{id}', '/organization/list'),
            ('/organization/bulk_process/{id}', '/organization/list'))

    def connect_groups(self):
        self.route_map.connect('group_new',
                               '/group/new',
                               action='new',
                               controller='group')
        self.redirect(('/group', '/'), ('/group/list', '/'),
                      ('/group/{id}', '/group/list'),
                      ('/group/about/{id}', '/group/list'),
                      ('/group/members/{id}', '/group/list'),
                      ('/group/member_new/{id}', '/group/list'),
                      ('/group/member_delete/{id}', '/group/list'),
                      ('/group/history/{id}', '/group/list'),
                      ('/group/followers/{id}', '/group/list'),
                      ('/group/follow/{id}', '/group/list'),
                      ('/group/unfollow/{id}', '/group/list'),
                      ('/group/admins/{id}', '/group/list'),
                      ('/group/activity/{id}/{offset}', '/group/list'))

    def connect_users(self):
        self.route_map.connect('login',
                               '/ingresar',
                               action='login',
                               controller='user')
        self.route_map.connect('/logout', action='logout', controller='user')
        self.route_map.connect(
            'user_datasets',
            '/user/{id:.*}',
            action='read',
            controller='ckanext.gobar_theme.controller:GobArUserController')
        self.redirect(
            ('/ingresar', '/user/login'), ('/user/login', '/'),
            ('/user/generate_key/{id}', '/'),
            ('/user/activity/{id}/{offset}', '/'),
            ('/user/activity/{id}', '/'), ('/user/follow/{id}', '/'),
            ('/user/unfollow/{id}', '/'), ('/user/followers/{id:.*}', '/'),
            ('/user/delete/{id}', '/'), ('/user/reset/{id:.*}', '/'),
            ('/user/register', '/'), ('/user/reset', '/'),
            ('/user/set_lang/{lang}', '/'), ('/user', '/'),
            ('/user/_logout', '/logout'), ('/user/logged_out_redirect', '/'),
            ('/salir', '/logout'))

    def remove_tags(self):
        self.redirect(('/tag', '/'), ('/tag/{url}', '/'))

    def remove_revision(self):
        self.redirect(('/revision', '/'), ('/revision/list', '/'),
                      ('/revision/edit/{id}', '/revision'),
                      ('/revision/diff/{id}', '/revision'),
                      ('/revision/{id}', '/revision'))

    def remove_admin(self):
        self.redirect(('/ckan-admin', '/'), ('/ckan-admin/config', '/'),
                      ('/ckan-admin/trash', '/'),
                      ('/ckan-admin/{action}', '/'))

    def connect_api(self):
        with SubMapper(self.route_map,
                       controller=self.api_controller,
                       path_prefix='/api{ver:/3|}',
                       ver='/3') as m:
            m.connect('/action/{logic_function}',
                      action='action',
                      conditions=dict(method=['GET', 'POST']))

    def connectThemeTaxonomy(self):
        self.home_routes.connect('/superThemeTaxonomy.json',
                                 action='theme_taxonomy')

    def connect_error_pages(self):
        self.home_routes.connect('technical_problems',
                                 '/problemas-tecnicos',
                                 action='technical_problems')
        self.home_routes.connect('server_overload',
                                 '/muchas-visitas',
                                 action='server_overload')
        self.home_routes.connect('upgrading_server',
                                 '/mejorando-el-sitio',
                                 action='upgrading_server')
    def before_map(self, mapper):
        from routes.mapper import SubMapper
        controller_map = SubMapper(
            mapper,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI')

        m = SubMapper(controller_map,
                      path_prefix="/" + constants.DATAREQUESTS_MAIN_PATH)

        # Data Requests index
        m.connect('datarequests_index',
                  '',
                  action='index',
                  conditions={'method': ['GET']})
        m.connect('datarequest.index',
                  '',
                  action='index',
                  conditions={'method': ['GET']})

        # Create a Data Request
        m.connect('datarequest.new',
                  '/new',
                  action='new',
                  conditions={'method': ['GET', 'POST']})

        # Show a Data Request
        m.connect('show_datarequest',
                  '/{id}',
                  action='show',
                  conditions={'method': ['GET']},
                  ckan_icon=common.get_question_icon())
        m.connect('datarequest.show',
                  '/{id}',
                  action='show',
                  conditions={'method': ['GET']},
                  ckan_icon=common.get_question_icon())

        # Update a Data Request
        m.connect('datarequest.update',
                  '/edit/{id}',
                  action='update',
                  conditions={'method': ['GET', 'POST']})

        # Delete a Data Request
        m.connect('datarequest.delete',
                  '/delete/{id}',
                  action='delete',
                  conditions={'method': ['POST']})

        # Close a Data Request
        m.connect('datarequest.close',
                  '/close/{id}',
                  action='close',
                  conditions={'method': ['GET', 'POST']})

        # Follow & Unfollow
        m.connect('datarequest.follow',
                  '/follow/{id}',
                  action='follow',
                  conditions={'method': ['POST']})

        m.connect('datarequest.unfollow',
                  '/unfollow/{id}',
                  action='unfollow',
                  conditions={'method': ['POST']})

        if self.comments_enabled:
            # Comment, update and view comments (of) a Data Request
            m.connect('comment_datarequest',
                      '/comment/{id}',
                      action='comment',
                      conditions={'method': ['GET', 'POST']},
                      ckan_icon='comment')
            m.connect('datarequest.comment',
                      '/comment/{id}',
                      action='comment',
                      conditions={'method': ['GET', 'POST']},
                      ckan_icon='comment')

            # Delete data request
            m.connect('datarequest.delete_comment',
                      '/comment/{datarequest_id}/delete/{comment_id}',
                      action='delete_comment',
                      conditions={'method': ['GET', 'POST']})

        list_datarequests_map = SubMapper(controller_map,
                                          conditions={'method': ['GET']},
                                          ckan_icon=common.get_question_icon())

        # Data Requests that belong to an organization
        list_datarequests_map.connect('organization_datarequests',
                                      '/organization/%s/{id}' %
                                      constants.DATAREQUESTS_MAIN_PATH,
                                      action='organization_datarequests')
        list_datarequests_map.connect('datarequest.organization',
                                      '/organization/%s/{id}' %
                                      constants.DATAREQUESTS_MAIN_PATH,
                                      action='organization_datarequests')

        # Data Requests that belong to a user
        list_datarequests_map.connect('user_datarequests',
                                      '/user/%s/{id}' %
                                      constants.DATAREQUESTS_MAIN_PATH,
                                      action='user_datarequests')
        list_datarequests_map.connect('datarequest.user',
                                      '/user/%s/{id}' %
                                      constants.DATAREQUESTS_MAIN_PATH,
                                      action='user_datarequests')

        return mapper