cubicweb/web/views/igeocodable.py
author Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 03 Nov 2016 15:00:01 +0100
changeset 11794 d8830e2bd2e0
parent 11057 0b59724cb3f2
permissions -rw-r--r--
[req,web] Make it possible to handle page language from URL prefix Adding a short language prefix to URL (like "/en" or "/fr") changes the language the pages are displayed in. This prefix is kept during navigation. This way it is not necessary to do language negotiation, nor to use user preferences to determine which language to apply. This behavior is controlled through a new configuration option "language-mode", which replaces "language-negociation" option and which values may be "http-negotiation", "url-prefix" or "" (to disable language setting and force using "ui.language" property). Migration from previous option is not handled because I could not manage to have it working (users will get prompted with the configuration file diff anyways). Add some tests checking various scenarios. Closes #15743487
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7172
b85396e65d8f [igeocodable] import adapter description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 6864
diff changeset
     1
# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
5421
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     2
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     3
#
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     4
# This file is part of CubicWeb.
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     5
#
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     6
# CubicWeb is free software: you can redistribute it and/or modify it under the
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     7
# terms of the GNU Lesser General Public License as published by the Free
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     8
# Software Foundation, either version 2.1 of the License, or (at your option)
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
     9
# any later version.
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    10
#
5424
8ecbcbff9777 replace logilab-common by CubicWeb in disclaimer
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5421
diff changeset
    11
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
5421
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    13
# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    14
# details.
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    15
#
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    16
# You should have received a copy of the GNU Lesser General Public License along
8167de96c523 proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5389
diff changeset
    17
# with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
5877
0c7b7b76a84f [selectors] provide a new, optimized, is_instance selector that should at some point replace implements (along with the adaptable selector)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5556
diff changeset
    18
"""Specific views for entities implementing IGeocodable"""
692
800592b8d39b replace deprecated cubicweb.common.selectors by its new module path (cubicweb.selectors)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 553
diff changeset
    19
8830
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    20
try:
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    21
    from cubes.geocoding.views import (IGeocodableAdapter,
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    22
                                       GeocodingJsonView,
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    23
                                       GoogleMapBubbleView,
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    24
                                       GoogleMapsView,
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    25
                                       GoogeMapsLegend)
5556
9ab2b4c74baf [entity] introduce a new 'adapters' registry
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 5467
diff changeset
    26
8830
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    27
    from logilab.common.deprecation import class_moved
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    28
8830
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    29
    msg = '[3.17] cubicweb.web.views.igeocodable moved to cubes.geocoding.views'
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    30
    IGeocodableAdapter = class_moved(IGeocodableAdapter, message=msg)
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    31
    GeocodingJsonView = class_moved(GeocodingJsonView, message=msg)
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    32
    GoogleMapBubbleView = class_moved(GoogleMapBubbleView, message=msg)
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    33
    GoogleMapsView = class_moved(GoogleMapsView, message=msg)
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    34
    GoogeMapsLegend = class_moved(GoogeMapsLegend, message=msg)
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    35
except ImportError:
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    36
    from cubicweb.web import LOGGER
7fd6c52ef878 [web/views] extract cube geocoding (closes #353000)
Julien Cristau <julien.cristau@logilab.fr>
parents: 8190
diff changeset
    37
    LOGGER.warning('[3.17] igeocoding extracted to cube geocoding that was not found. try installing it.')