# HG changeset patch # User Sylvain Thénault # Date 1263838890 -3600 # Node ID 6c4f109c2b038751f09333e82841976e226accb9 # Parent 3c6569be1f86707f91d49df47b06c296fbcabd47# Parent 39adce674a0937884b17173077d4ec6fcdfff7a1 backport stable branch diff -r 3c6569be1f86 -r 6c4f109c2b03 __init__.py --- a/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ relations between entitites. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: Library General Public License version 2 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 __pkginfo__.py --- a/__pkginfo__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/__pkginfo__.py Mon Jan 18 19:21:30 2010 +0100 @@ -11,7 +11,7 @@ version = '.'.join(str(num) for num in numversion) license = 'LGPL' -copyright = '''Copyright (c) 2003-2009 LOGILAB S.A. (Paris, FRANCE). +copyright = '''Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). http://www.logilab.fr/ -- mailto:contact@logilab.fr''' author = "Logilab" diff -r 3c6569be1f86 -r 6c4f109c2b03 _exceptions.py --- a/_exceptions.py Mon Jan 18 19:05:08 2010 +0100 +++ b/_exceptions.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 appobject.py --- a/appobject.py Mon Jan 18 19:05:08 2010 +0100 +++ b/appobject.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ You'll also find some convenience classes to build selectors. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 common/__init__.py --- a/common/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/common/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ hg stserver side and on the client side :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 common/mail.py diff -r 3c6569be1f86 -r 6c4f109c2b03 common/mixins.py diff -r 3c6569be1f86 -r 6c4f109c2b03 common/mttransforms.py --- a/common/mttransforms.py Mon Jan 18 19:05:08 2010 +0100 +++ b/common/mttransforms.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,5 +1,101 @@ +<<<<<<< /home/syt/src/fcubicweb/cubicweb/common/mttransforms.py """pre 3.6 bw compat""" # pylint: disable-msg=W0614,W0401 from warnings import warn warn('moved to cubicweb.mttransforms', DeprecationWarning, stacklevel=2) from cubicweb.mttransforms import * +======= +"""mime type transformation engine for cubicweb, based on mtconverter + +:organization: Logilab +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr +:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses +""" +__docformat__ = "restructuredtext en" + +from logilab import mtconverter + +from logilab.mtconverter.engine import TransformEngine +from logilab.mtconverter.transform import Transform +from logilab.mtconverter import (register_base_transforms, + register_pil_transforms, + register_pygments_transforms) + +from cubicweb.common.uilib import rest_publish, html_publish + +HTML_MIMETYPES = ('text/html', 'text/xhtml', 'application/xhtml+xml') + +# CubicWeb specific transformations + +class rest_to_html(Transform): + inputs = ('text/rest', 'text/x-rst') + output = 'text/html' + def _convert(self, trdata): + return rest_publish(trdata.appobject, trdata.decode()) + +class html_to_html(Transform): + inputs = HTML_MIMETYPES + output = 'text/html' + def _convert(self, trdata): + return html_publish(trdata.appobject, trdata.data) + + +# Instantiate and configure the transformation engine + +mtconverter.UNICODE_POLICY = 'replace' + +ENGINE = TransformEngine() +ENGINE.add_transform(rest_to_html()) +ENGINE.add_transform(html_to_html()) + +try: + from cubicweb.ext.tal import compile_template +except ImportError: + HAS_TAL = False + from cubicweb import schema + schema.NEED_PERM_FORMATS.remove('text/cubicweb-page-template') + +else: + HAS_TAL = True + + class ept_to_html(Transform): + inputs = ('text/cubicweb-page-template',) + output = 'text/html' + output_encoding = 'utf-8' + def _convert(self, trdata): + value = trdata.encode(self.output_encoding) + return trdata.appobject.tal_render(compile_template(value), {}) + + ENGINE.add_transform(ept_to_html()) + +if register_pil_transforms(ENGINE, verb=False): + HAS_PIL_TRANSFORMS = True +else: + HAS_PIL_TRANSFORMS = False + +try: + from logilab.mtconverter.transforms import pygmentstransforms + for mt in ('text/plain',) + HTML_MIMETYPES: + try: + pygmentstransforms.mimetypes.remove(mt) + except ValueError: + continue + register_pygments_transforms(ENGINE, verb=False) + + def patch_convert(cls): + def _convert(self, trdata, origconvert=cls._convert): + try: + trdata.appobject.req.add_css('pygments.css') + except AttributeError: # session has no add_css, only http request + pass + return origconvert(self, trdata) + cls._convert = _convert + patch_convert(pygmentstransforms.PygmentsHTMLTransform) + + HAS_PYGMENTS_TRANSFORMS = True +except ImportError: + HAS_PYGMENTS_TRANSFORMS = False + +register_base_transforms(ENGINE, verb=False) +>>>>>>> /tmp/mttransforms.py~other._ijt0a diff -r 3c6569be1f86 -r 6c4f109c2b03 common/tags.py diff -r 3c6569be1f86 -r 6c4f109c2b03 common/uilib.py diff -r 3c6569be1f86 -r 6c4f109c2b03 cwconfig.py --- a/cwconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/cwconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """common configuration utilities for cubicweb :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr diff -r 3c6569be1f86 -r 6c4f109c2b03 cwvreg.py --- a/cwvreg.py Mon Jan 18 19:05:08 2010 +0100 +++ b/cwvreg.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """extend the generic VRegistry with some cubicweb specific stuff :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 dbapi.py --- a/dbapi.py Mon Jan 18 19:05:08 2010 +0100 +++ b/dbapi.py Mon Jan 18 19:21:30 2010 +0100 @@ -5,7 +5,7 @@ (most parts of this document are reported here in docstrings) :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/__init__.py --- a/devtools/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Test tools for cubicweb :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/cwtwill.py --- a/devtools/cwtwill.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/cwtwill.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb extensions for twill :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/dataimport.py --- a/devtools/dataimport.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/dataimport.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """This module provides tools to import tabular data. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/devctl.py --- a/devtools/devctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/devctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ cubes development :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/fake.py --- a/devtools/fake.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/fake.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Fake objects to ease testing of cubicweb without a fully working environment :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/fill.py --- a/devtools/fill.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/fill.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """This modules defines func / methods for creating test repositories :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/htmlparser.py --- a/devtools/htmlparser.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/htmlparser.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """defines a validating HTML parser used in web application tests :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/livetest.py --- a/devtools/livetest.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/livetest.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """provide utilies for web (live) unit testing :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/repotest.py --- a/devtools/repotest.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/repotest.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ This module contains functions to initialize a new repository. :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/stresstester.py --- a/devtools/stresstester.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/stresstester.py Mon Jan 18 19:21:30 2010 +0100 @@ -21,7 +21,7 @@ -o / --report-output Write profiler report into rather than on stdout -Copyright (c) 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/test/data/schema.py --- a/devtools/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/test/data/views/bug.py --- a/devtools/test/data/views/bug.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/test/data/views/bug.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """only for unit tests ! :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/test/unittest_dbfill.py --- a/devtools/test/unittest_dbfill.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/test/unittest_dbfill.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for database value generator :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/test/unittest_fill.py --- a/devtools/test/unittest_fill.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/test/unittest_fill.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """unit tests for cubicweb.devtools.fill module :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/test/unittest_testlib.py --- a/devtools/test/unittest_testlib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/test/unittest_testlib.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """unittests for gct.apptest module :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 devtools/testlib.py --- a/devtools/testlib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/devtools/testlib.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """this module contains base classes and utilities for cubicweb tests :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 doc/book/en/conf.py --- a/doc/book/en/conf.py Mon Jan 18 19:05:08 2010 +0100 +++ b/doc/book/en/conf.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -43,7 +43,7 @@ # General substitutions. project = 'Cubicweb' -copyright = '2008-2009, Logilab' +copyright = '2008-2010, Logilab' # The default replacements for |version| and |release|, also used in various # other places throughout the built documents. diff -r 3c6569be1f86 -r 6c4f109c2b03 doc/book/fr/conf.py --- a/doc/book/fr/conf.py Mon Jan 18 19:05:08 2010 +0100 +++ b/doc/book/fr/conf.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -43,7 +43,7 @@ # General substitutions. project = 'Cubicweb' -copyright = '2008-2009, Logilab' +copyright = '2008-2010, Logilab' # The default replacements for |version| and |release|, also used in various # other places throughout the built documents. diff -r 3c6569be1f86 -r 6c4f109c2b03 doc/tools/generate_modules.py --- a/doc/tools/generate_modules.py Mon Jan 18 19:05:08 2010 +0100 +++ b/doc/tools/generate_modules.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """generate list of modules for sphinx doc :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/__init__.py --- a/entities/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """base application's entities class implementation: `AnyEntity` :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/authobjs.py --- a/entities/authobjs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/authobjs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """entity classes user and group entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -21,6 +21,7 @@ """XXX goa specific""" return self.get('name') + class CWUser(AnyEntity): __regid__ = 'CWUser' fetch_attrs, fetch_order = fetch_config(['login', 'firstname', 'surname']) @@ -77,12 +78,12 @@ groups = frozenset((groups,)) elif isinstance(groups, (tuple, list)): groups = frozenset(groups) - return len(groups & self.groups) + return len(groups & self.groups) # XXX return the resulting set instead of its size def is_in_group(self, group): """convience / shortcut method to test if the user belongs to `group` """ - return self.matching_groups(group) == 1 + return group in self._groups def is_anonymous(self): """ checks if user is an anonymous user""" diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/lib.py --- a/entities/lib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/lib.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """entity classes for optional library entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/schemaobjs.py --- a/entities/schemaobjs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/schemaobjs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """schema definition related entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/test/data/schema.py --- a/entities/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """entities tests schema :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/test/unittest_base.py --- a/entities/test/unittest_base.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/test/unittest_base.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for cubicweb.entities.base module :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entities/wfobjs.py --- a/entities/wfobjs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entities/wfobjs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """workflow definition and history related entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 entity.py --- a/entity.py Mon Jan 18 19:05:08 2010 +0100 +++ b/entity.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Base class for entity objects manipulated in clients :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/__init__.py --- a/etwist/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ CW - nevow/twisted client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/request.py --- a/etwist/request.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/request.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Twisted request handler for CubicWeb :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/server.py --- a/etwist/server.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/server.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """twisted server for CubicWeb web instances :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -15,13 +15,12 @@ from datetime import date, timedelta from urlparse import urlsplit, urlunsplit -from twisted.application import strports from twisted.internet import reactor, task, threads from twisted.internet.defer import maybeDeferred from twisted.web2 import channel, http, server, iweb from twisted.web2 import static, resource, responsecode -from cubicweb import ObjectNotFound, CW_EVENT_MANAGER +from cubicweb import ConfigurationError, CW_EVENT_MANAGER from cubicweb.web import (AuthenticationError, NotFound, Redirect, RemoteCallFailed, DirectResponse, StatusResponse, ExplicitLogin) @@ -296,7 +295,6 @@ content = self.appli.need_login_content(req) return http.Response(code, req.headers_out, content) -from twisted.python import failure from twisted.internet import defer from twisted.web2 import fileupload @@ -387,6 +385,9 @@ reactor.listenTCP(port, channel.HTTPFactory(website)) logger = getLogger('cubicweb.twisted') if not debug: + if sys.platform == 'win32': + raise ConfigurationError("Under windows, you must use the service management " + "commands (e.g : 'net start my_instance)'") print 'instance starting in the background' if daemonize(): return # child process diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/test/unittest_server.py --- a/etwist/test/unittest_server.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/test/unittest_server.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/twconfig.py --- a/etwist/twconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/twconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -8,7 +8,7 @@ if the repository part of the software is installed :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 etwist/twctl.py --- a/etwist/twctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/etwist/twctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb-clt handlers for twisted :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 ext/html4zope.py --- a/ext/html4zope.py Mon Jan 18 19:05:08 2010 +0100 +++ b/ext/html4zope.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 ext/rest.py --- a/ext/rest.py Mon Jan 18 19:05:08 2010 +0100 +++ b/ext/rest.py Mon Jan 18 19:21:30 2010 +0100 @@ -13,7 +13,7 @@ * `sourcecode` (if pygments is installed), source code colorization :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 ext/tal.py --- a/ext/tal.py Mon Jan 18 19:05:08 2010 +0100 +++ b/ext/tal.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """provides simpleTAL extensions for CubicWeb :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 ext/test/unittest_rest.py --- a/ext/test/unittest_rest.py Mon Jan 18 19:05:08 2010 +0100 +++ b/ext/test/unittest_rest.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/__init__.py --- a/goa/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb on google appengine :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/appobjects/components.py --- a/goa/appobjects/components.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/appobjects/components.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """overrides some base views for cubicweb on google appengine :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/appobjects/dbmgmt.py --- a/goa/appobjects/dbmgmt.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/appobjects/dbmgmt.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ restoration). :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/appobjects/gauthservice.py --- a/goa/appobjects/gauthservice.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/appobjects/gauthservice.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """authentication using google authentication service :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/appobjects/sessions.py --- a/goa/appobjects/sessions.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/appobjects/sessions.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """persistent sessions stored in big table :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr XXX TODO: diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/db.py --- a/goa/db.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/db.py Mon Jan 18 19:21:30 2010 +0100 @@ -25,7 +25,7 @@ * XXX ListProperty :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/dbinit.py --- a/goa/dbinit.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/dbinit.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """some utility functions for datastore initialization. :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/dbmyams.py --- a/goa/dbmyams.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/dbmyams.py Mon Jan 18 19:21:30 2010 +0100 @@ -6,7 +6,7 @@ XXX proprify this knowing we'll use goa.db :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/gaesource.py --- a/goa/gaesource.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/gaesource.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Adapter for google appengine source. :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/goaconfig.py --- a/goa/goaconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/goaconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """google appengine configuration :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/goactl.py --- a/goa/goactl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/goactl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb on appengine plugins for cubicweb-ctl :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/goavreg.py --- a/goa/goavreg.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/goavreg.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """goa specific registry :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/__init__.py --- a/goa/overrides/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/mttransforms.py --- a/goa/overrides/mttransforms.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/mttransforms.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """mime type transformation engine for cubicweb, based on mtconverter :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/rqlannotation.py --- a/goa/overrides/rqlannotation.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/rqlannotation.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,6 +1,6 @@ """ :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/server__init__.py --- a/goa/overrides/server__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/server__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/server_utils.py --- a/goa/overrides/server_utils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/server_utils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/overrides/toolsutils.py --- a/goa/overrides/toolsutils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/overrides/toolsutils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/rqlinterpreter.py --- a/goa/rqlinterpreter.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/rqlinterpreter.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """provide a minimal RQL support for google appengine dbmodel :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/skel/custom.py --- a/goa/skel/custom.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/skel/custom.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/skel/loader.py --- a/goa/skel/loader.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/skel/loader.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/skel/main.py --- a/goa/skel/main.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/skel/main.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ to change anything here. :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/skel/schema.py --- a/goa/skel/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/skel/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/skel/views.py --- a/goa/skel/views.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/skel/views.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/data/__init__.py --- a/goa/test/data/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/data/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """zou :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/data/schema.py --- a/goa/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/data/settings.py --- a/goa/test/data/settings.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/data/settings.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/data/views.py --- a/goa/test/data/views.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/data/views.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_db.py --- a/goa/test/unittest_db.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_db.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_editcontroller.py --- a/goa/test/unittest_editcontroller.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_editcontroller.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_metadata.py --- a/goa/test/unittest_metadata.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_metadata.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_rql.py --- a/goa/test/unittest_rql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_rql.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_schema.py --- a/goa/test/unittest_schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/test/unittest_views.py --- a/goa/test/unittest_views.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/test/unittest_views.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/testlib.py --- a/goa/testlib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/testlib.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,6 +1,6 @@ """ :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/tools/__init__.py --- a/goa/tools/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/tools/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """lax tools cube :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/tools/generate_schema_img.py --- a/goa/tools/generate_schema_img.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/tools/generate_schema_img.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 goa/tools/laxctl.py --- a/goa/tools/laxctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/goa/tools/laxctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """provides all lax instances management commands into a single utility script :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 hercule.py --- a/hercule.py Mon Jan 18 19:05:08 2010 +0100 +++ b/hercule.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """RQL client for cubicweb, connecting to instance using pyro :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 hooks/email.py --- a/hooks/email.py Mon Jan 18 19:05:08 2010 +0100 +++ b/hooks/email.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """hooks to ensure use_email / primary_email relations consistency :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 hooks/security.py --- a/hooks/security.py Mon Jan 18 19:05:08 2010 +0100 +++ b/hooks/security.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ the user connected to a session :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 hooks/syncschema.py --- a/hooks/syncschema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/hooks/syncschema.py Mon Jan 18 19:21:30 2010 +0100 @@ -6,7 +6,7 @@ checking for schema consistency is done in hooks.py :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 i18n.py --- a/i18n.py Mon Jan 18 19:05:08 2010 +0100 +++ b/i18n.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Some i18n/gettext utilities. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 i18n/fr.po --- a/i18n/fr.po Mon Jan 18 19:05:08 2010 +0100 +++ b/i18n/fr.po Mon Jan 18 19:21:30 2010 +0100 @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: cubicweb 2.46.0\n" -"PO-Revision-Date: 2009-09-17 12:03+0200\n" +"PO-Revision-Date: 2010-01-15 09:35+0100\n" "Last-Translator: Logilab Team \n" "Language-Team: fr \n" "MIME-Version: 1.0\n" @@ -337,7 +337,7 @@ msgstr "Permissions de supprimer" msgid "Do you want to delete the following element(s) ?" -msgstr "Voulez vous supprimer le(s) élément(s) suivant(s)" +msgstr "Voulez-vous supprimer le(s) élément(s) suivant(s) ?" msgid "Download page as pdf" msgstr "télécharger la page au format PDF" @@ -752,14 +752,10 @@ "a RQL expression which should return some results, else the transition won't " "be available. This query may use X and U variables that will respectivly " "represents the current entity and the current user" -msgstr "" -"une expression RQL devant retourner des résultats pour que la transition " -"puisse être passée. Cette expression peut utiliser les variables X et U qui " -"représente respectivement l'entité à laquelle on veut appliquer la " -"transition et l'utilisateur courant." +msgstr "une expression RQL devant retourner des résultats pour que la transition puisse être passée. Cette expression peut utiliser les variables X et U qui représentent respectivement l'entité à laquelle on veut appliquer la transition et l'utilisateur courant." msgid "a URI representing an object in external data store" -msgstr "une Uri désignant un objet dans un entrepôt de donné externe" +msgstr "une Uri désignant un objet dans un entrepôt de données externe" msgid "" "a simple cache entity characterized by a name and a validity date. The " @@ -1266,8 +1262,7 @@ msgstr "boîte d'actions" msgid "boxes_edit_box_description" -msgstr "" -"boîte affichant les différentes actions possibles sur les données affiches" +msgstr "boîte affichant les différentes actions possibles sur les données affichées" msgid "boxes_filter_box" msgstr "filtrer" @@ -3432,8 +3427,8 @@ "You should also select text/html as default text format to actually get " "fckeditor." msgstr "" -"indique si les champs HTML doivent être éditer avec fckeditor (un\n" -"éditer HTML WYSIWYG). Il est également conseill'de choisir text/html\n" +"indique si les champs HTML doivent être édités avec fckeditor (un\n" +"éditeur HTML WYSIWYG). Il est également conseillé de choisir text/html\n" "comme format de texte par défaut pour pouvoir utiliser fckeditor." #, python-format diff -r 3c6569be1f86 -r 6c4f109c2b03 interfaces.py --- a/interfaces.py Mon Jan 18 19:05:08 2010 +0100 +++ b/interfaces.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for entities implementing IDownloadable :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 mail.py --- a/mail.py Mon Jan 18 19:05:08 2010 +0100 +++ b/mail.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Common utilies to format / semd emails. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 migration.py --- a/migration.py Mon Jan 18 19:05:08 2010 +0100 +++ b/migration.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """utilities for instances migration :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/cwdesklets/rqlsensor/__init__.py --- a/misc/cwdesklets/rqlsensor/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/cwdesklets/rqlsensor/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/cwfs/cwfs.py --- a/misc/cwfs/cwfs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/cwfs/cwfs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/cwfs/cwfs_test.py --- a/misc/cwfs/cwfs_test.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/cwfs/cwfs_test.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/cwzope/cwzope.py --- a/misc/cwzope/cwzope.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/cwzope/cwzope.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/migration/2.99.0_Any.py --- a/misc/migration/2.99.0_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/migration/2.99.0_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/migration/3.1.5_Any.py --- a/misc/migration/3.1.5_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/migration/3.1.5_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/migration/3.2.0_Any.py --- a/misc/migration/3.2.0_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/migration/3.2.0_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/migration/bootstrapmigration_repository.py --- a/misc/migration/bootstrapmigration_repository.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/migration/bootstrapmigration_repository.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ it should only include low level schema changes :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 misc/migration/postcreate.py --- a/misc/migration/postcreate.py Mon Jan 18 19:05:08 2010 +0100 +++ b/misc/migration/postcreate.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb post creation script, set user's workflow :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 mixins.py --- a/mixins.py Mon Jan 18 19:05:08 2010 +0100 +++ b/mixins.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 mttransforms.py --- a/mttransforms.py Mon Jan 18 19:05:08 2010 +0100 +++ b/mttransforms.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """mime type transformation engine for cubicweb, based on mtconverter :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 rqlrewrite.py --- a/rqlrewrite.py Mon Jan 18 19:05:08 2010 +0100 +++ b/rqlrewrite.py Mon Jan 18 19:21:30 2010 +0100 @@ -4,7 +4,7 @@ This is used for instance for read security checking in the repository. :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 rset.py --- a/rset.py Mon Jan 18 19:05:08 2010 +0100 +++ b/rset.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """The `ResultSet` class which is returned as result of a rql query :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 rtags.py --- a/rtags.py Mon Jan 18 19:05:08 2010 +0100 +++ b/rtags.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """relation tags store :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schema.py --- a/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """classes to define schemas for CubicWeb :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schemas/Bookmark.py --- a/schemas/Bookmark.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemas/Bookmark.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """the Bookmark entity type for internal links :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schemas/__init__.py --- a/schemas/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemas/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,3 +1,14 @@ +"""some utilities to define schema permissions + +:organization: Logilab +:copyright: 2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr +""" +__docformat__ = "restructuredtext en" + +from rql.utils import quote +from cubicweb.schema import ERQLExpression, RRQLExpression + # permissions for "meta" entity type (readable by anyone, can only be # added/deleted by managers) META_ETYPE_PERMS = { @@ -22,3 +33,60 @@ 'add': (), 'delete': (), } + +def _perm(names): + if isinstance(names, (list, tuple)): + if len(names) == 1: + names = quote(names[0]) + else: + names = 'IN (%s)' % (','.join(quote(name) for name in names)) + else: + names = quote(names) + #return u' require_permission P, P name %s, U in_group G, P require_group G' % names + return u' require_permission P, P name %s, U has_group_permission P' % names + + +def xperm(*names): + return 'X' + _perm(names) + +def xexpr(*names): + return ERQLExpression(xperm(*names)) + +def xrexpr(relation, *names): + return ERQLExpression('X %s Y, Y %s' % (relation, _perm(names))) + +def xorexpr(relation, etype, *names): + return ERQLExpression('Y %s X, X is %s, Y %s' % (relation, etype, _perm(names))) + + +def sexpr(*names): + return RRQLExpression('S' + _perm(names), 'S') + +def restricted_sexpr(restriction, *names): + rql = '%s, %s' % (restriction, 'S' + _perm(names)) + return RRQLExpression(rql, 'S') + +def restricted_oexpr(restriction, *names): + rql = '%s, %s' % (restriction, 'O' + _perm(names)) + return RRQLExpression(rql, 'O') + +def oexpr(*names): + return RRQLExpression('O' + _perm(names), 'O') + + +# def supdate_perm(): +# return RRQLExpression('U has_update_permission S', 'S') + +# def oupdate_perm(): +# return RRQLExpression('U has_update_permission O', 'O') + +def relxperm(rel, role, *names): + assert role in ('subject', 'object') + if role == 'subject': + zxrel = ', X %s Z' % rel + else: + zxrel = ', Z %s X' % rel + return 'Z' + _perm(names) + zxrel + +def relxexpr(rel, role, *names): + return ERQLExpression(relxperm(rel, role, *names)) diff -r 3c6569be1f86 -r 6c4f109c2b03 schemas/base.py --- a/schemas/base.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemas/base.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """core CubicWeb schema, but not necessary at bootstrap time :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schemas/bootstrap.py --- a/schemas/bootstrap.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemas/bootstrap.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """core CubicWeb schema necessary for bootstrapping the actual instance's schema :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schemas/workflow.py --- a/schemas/workflow.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemas/workflow.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """workflow related schemas :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 schemaviewer.py --- a/schemaviewer.py Mon Jan 18 19:05:08 2010 +0100 +++ b/schemaviewer.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """an helper class to display CubicWeb schema using ureports :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 selectors.py --- a/selectors.py Mon Jan 18 19:05:08 2010 +0100 +++ b/selectors.py Mon Jan 18 19:21:30 2010 +0100 @@ -36,7 +36,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/__init__.py --- a/server/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -4,7 +4,7 @@ This module contains functions to initialize a new repository. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/checkintegrity.py --- a/server/checkintegrity.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/checkintegrity.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ is checked. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/hookhelper.py --- a/server/hookhelper.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/hookhelper.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """helper functions for application hooks :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/hooksmanager.py diff -r 3c6569be1f86 -r 6c4f109c2b03 server/migractions.py --- a/server/migractions.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/migractions.py Mon Jan 18 19:21:30 2010 +0100 @@ -11,7 +11,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/msplanner.py --- a/server/msplanner.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/msplanner.py Mon Jan 18 19:21:30 2010 +0100 @@ -70,7 +70,7 @@ :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/mssteps.py --- a/server/mssteps.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/mssteps.py Mon Jan 18 19:21:30 2010 +0100 @@ -6,7 +6,7 @@ for now) :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/pool.py --- a/server/pool.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/pool.py Mon Jan 18 19:21:30 2010 +0100 @@ -5,7 +5,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/querier.py --- a/server/querier.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/querier.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ security checking and data aggregation. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/repository.py --- a/server/repository.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/repository.py Mon Jan 18 19:21:30 2010 +0100 @@ -11,7 +11,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/rqlannotation.py --- a/server/rqlannotation.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/rqlannotation.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ code generation. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/schemaserial.py --- a/server/schemaserial.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/schemaserial.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """functions for schema / permissions (de)serialization using RQL :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/server.py --- a/server/server.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/server.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Pyro RQL server :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/serverconfig.py --- a/server/serverconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/serverconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """server.serverconfig definition :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/serverctl.py --- a/server/serverctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/serverctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb-ctl commands and command handlers specific to the server.serverconfig :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -29,11 +29,15 @@ """ from getpass import getpass from logilab.common.db import get_connection - dbhost = source['db-host'] + dbhost = source.get('db-host') if dbname is None: dbname = source['db-name'] driver = source['db-driver'] - print '-> connecting to %s database %s@%s' % (driver, dbname, dbhost or 'localhost'), + print '-> connecting to %s database' % driver, + if dbhost: + print '%s@%s' % (dbname, dbhost), + else: + print dbname, if not verbose or (not special_privs and source.get('db-user')): user = source['db-user'] print 'as', user diff -r 3c6569be1f86 -r 6c4f109c2b03 server/session.py --- a/server/session.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/session.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Repository users' and internal' sessions. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/__init__.py --- a/server/sources/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb server sources support :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/extlite.py --- a/server/sources/extlite.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/extlite.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """provide an abstract class for external sources using a sqlite database helper :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/ldapuser.py --- a/server/sources/ldapuser.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/ldapuser.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ this source is for now limited to a read-only CWUser source :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/native.py --- a/server/sources/native.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/native.py Mon Jan 18 19:21:30 2010 +0100 @@ -7,7 +7,7 @@ it for fast querying. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/pyrorql.py --- a/server/sources/pyrorql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/pyrorql.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Source to query another RQL repository using pyro :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sources/rql2sql.py --- a/server/sources/rql2sql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sources/rql2sql.py Mon Jan 18 19:21:30 2010 +0100 @@ -25,7 +25,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/sqlutils.py --- a/server/sqlutils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/sqlutils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """SQL utilities functions and classes. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/ssplanner.py --- a/server/ssplanner.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/ssplanner.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """plan execution of rql queries on a single source :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/extern_mapping.py --- a/server/test/data/extern_mapping.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/extern_mapping.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/hooks.py --- a/server/test/data/hooks.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/hooks.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/migratedapp/schema.py --- a/server/test/data/migratedapp/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/migratedapp/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/migration/postcreate.py --- a/server/test/data/migration/postcreate.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/migration/postcreate.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb post creation script, set note's workflow :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/schema.py --- a/server/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/data/site_erudi.py --- a/server/test/data/site_erudi.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/data/site_erudi.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_checkintegrity.py --- a/server/test/unittest_checkintegrity.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_checkintegrity.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_hook.py --- a/server/test/unittest_hook.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_hook.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit/functional tests for cubicweb.server.hook :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_ldapuser.py --- a/server/test/unittest_ldapuser.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_ldapuser.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb.server.sources.ldapusers unit and functional tests :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_msplanner.py --- a/server/test/unittest_msplanner.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_msplanner.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_multisources.py --- a/server/test/unittest_multisources.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_multisources.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_repository.py --- a/server/test/unittest_repository.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_repository.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for module cubicweb.server.repository :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_rql2sql.py --- a/server/test/unittest_rql2sql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_rql2sql.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_session.py --- a/server/test/unittest_session.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_session.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_ssplanner.py --- a/server/test/unittest_ssplanner.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_ssplanner.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/test/unittest_tools.py --- a/server/test/unittest_tools.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/test/unittest_tools.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 server/utils.py --- a/server/utils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/server/utils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Some utilities for the CubicWeb server. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 setup.py --- a/setup.py Mon Jan 18 19:05:08 2010 +0100 +++ b/setup.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,13 +2,13 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ # pylint: disable-msg=W0142,W0403,W0404,W0613,W0622,W0622,W0704,R0904,C0103,E0611 # -# Copyright (c) 2003-2009 LOGILAB S.A. (Paris, FRANCE). +# Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/__pkginfo__.py.tmpl --- a/skeleton/__pkginfo__.py.tmpl Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/__pkginfo__.py.tmpl Mon Jan 18 19:21:30 2010 +0100 @@ -21,7 +21,7 @@ from os import listdir as _listdir -from os.path import join, isdir, exists, dirname +from os.path import join, isdir, exists from glob import glob THIS_CUBE_DIR = join('share', 'cubicweb', 'cubes', modname) @@ -37,9 +37,9 @@ [THIS_CUBE_DIR, [fname for fname in glob('*.py') if fname != 'setup.py']], ] # check for possible extended cube layout -for dirname in ('entities', 'views', 'sobjects', 'hooks', 'schema', 'data', 'i18n', 'migration'): - if isdir(dirname): - data_files.append([join(THIS_CUBE_DIR, dirname), listdir(dirname)]) +for dname in ('entities', 'views', 'sobjects', 'hooks', 'schema', 'data', 'i18n', 'migration'): + if isdir(dname): + data_files.append([join(THIS_CUBE_DIR, dname), listdir(dname)]) # Note: here, you'll need to add subdirectories if you want # them to be included in the debian package diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/entities.py --- a/skeleton/entities.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/entities.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """this contains the cube-specific entities' classes :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/migration/postcreate.py --- a/skeleton/migration/postcreate.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/migration/postcreate.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/migration/precreate.py --- a/skeleton/migration/precreate.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/migration/precreate.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/schema.py --- a/skeleton/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/setup.py --- a/skeleton/setup.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/setup.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,12 +2,12 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ # pylint: disable-msg=W0404,W0622,W0704,W0613,W0152 -# Copyright (c) 2003-2009 LOGILAB S.A. (Paris, FRANCE). +# Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/test/pytestconf.py --- a/skeleton/test/pytestconf.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/test/pytestconf.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/test/realdb_test_CUBENAME.py --- a/skeleton/test/realdb_test_CUBENAME.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/test/realdb_test_CUBENAME.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/test/test_CUBENAME.py --- a/skeleton/test/test_CUBENAME.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/test/test_CUBENAME.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """template automatic tests :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 skeleton/views.py --- a/skeleton/views.py Mon Jan 18 19:05:08 2010 +0100 +++ b/skeleton/views.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cube-specific forms/views/actions/components :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/__init__.py --- a/sobjects/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """server side objects :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/notification.py --- a/sobjects/notification.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/notification.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """some views to handle notification on data changes :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/supervising.py --- a/sobjects/supervising.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/supervising.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/test/data/schema.py --- a/sobjects/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/test/data/sobjects/__init__.py --- a/sobjects/test/data/sobjects/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/test/data/sobjects/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/test/unittest_email.py --- a/sobjects/test/unittest_email.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/test/unittest_email.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/test/unittest_notification.py --- a/sobjects/test/unittest_notification.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/test/unittest_notification.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/test/unittest_supervising.py --- a/sobjects/test/unittest_supervising.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/test/unittest_supervising.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 sobjects/textparsers.py --- a/sobjects/textparsers.py Mon Jan 18 19:05:08 2010 +0100 +++ b/sobjects/textparsers.py Mon Jan 18 19:21:30 2010 +0100 @@ -5,7 +5,7 @@ linking information are found :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr """ __docformat__ = "restructuredtext en" diff -r 3c6569be1f86 -r 6c4f109c2b03 spa2rql.py --- a/spa2rql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/spa2rql.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """SPARQL -> RQL translator :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 tags.py --- a/tags.py Mon Jan 18 19:05:08 2010 +0100 +++ b/tags.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """helper classes to generate simple (X)HTML tags :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/cubes/file/__pkginfo__.py --- a/test/data/cubes/file/__pkginfo__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/cubes/file/__pkginfo__.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """cubicweb-file packaging information :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -14,7 +14,7 @@ version = '.'.join(str(num) for num in numversion) license = 'LGPL' -copyright = '''Copyright (c) 2003-2009 LOGILAB S.A. (Paris, FRANCE). +copyright = '''Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). http://www.logilab.fr/ -- mailto:contact@logilab.fr''' author = "Logilab" diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/cubes/mycube/__init__.py --- a/test/data/cubes/mycube/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/cubes/mycube/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """mycube's __init__ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/cubes/mycube/__pkginfo__.py --- a/test/data/cubes/mycube/__pkginfo__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/cubes/mycube/__pkginfo__.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/entities.py --- a/test/data/entities.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/entities.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/erqlexpr_on_ertype.py --- a/test/data/erqlexpr_on_ertype.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/erqlexpr_on_ertype.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.0.3_Any.py --- a/test/data/migration/0.0.3_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.0.3_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.0.4_Any.py --- a/test/data/migration/0.0.4_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.0.4_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.1.0_Any.py --- a/test/data/migration/0.1.0_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.1.0_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.1.0_common.py --- a/test/data/migration/0.1.0_common.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.1.0_common.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """common to all configuration :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.1.0_repository.py --- a/test/data/migration/0.1.0_repository.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.1.0_repository.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """repository specific :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.1.0_web.py --- a/test/data/migration/0.1.0_web.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.1.0_web.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """web only :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/migration/0.1.2_Any.py --- a/test/data/migration/0.1.2_Any.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/migration/0.1.2_Any.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/rqlexpr_on_ertype_read.py --- a/test/data/rqlexpr_on_ertype_read.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/rqlexpr_on_ertype_read.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/rrqlexpr_on_attr.py --- a/test/data/rrqlexpr_on_attr.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/rrqlexpr_on_attr.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/rrqlexpr_on_eetype.py --- a/test/data/rrqlexpr_on_eetype.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/rrqlexpr_on_eetype.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/schema.py --- a/test/data/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/data/server_migration/bootstrapmigration_repository.py --- a/test/data/server_migration/bootstrapmigration_repository.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/data/server_migration/bootstrapmigration_repository.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """allways executed before all others in server migration :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_cwconfig.py --- a/test/unittest_cwconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_cwconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_cwctl.py --- a/test/unittest_cwctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_cwctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_dbapi.py --- a/test/unittest_dbapi.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_dbapi.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_entity.py --- a/test/unittest_entity.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_entity.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for cubicweb.web.views.entities module :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_mail.py --- a/test/unittest_mail.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_mail.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for module cubicweb.mail :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_migration.py --- a/test/unittest_migration.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_migration.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """cubicweb.migration unit tests :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_rqlrewrite.py --- a/test/unittest_rqlrewrite.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_rqlrewrite.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_rset.py --- a/test/unittest_rset.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_rset.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unit tests for module cubicweb.utils :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_rtags.py --- a/test/unittest_rtags.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_rtags.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_schema.py --- a/test/unittest_schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """unit tests for module cubicweb.schema :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_selectors.py --- a/test/unittest_selectors.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_selectors.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """unit tests for selectors mechanism :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_uilib.py --- a/test/unittest_uilib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_uilib.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """unittests for cubicweb.uilib :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_utils.py --- a/test/unittest_utils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_utils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """unit tests for module cubicweb.utils :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 test/unittest_vregistry.py --- a/test/unittest_vregistry.py Mon Jan 18 19:05:08 2010 +0100 +++ b/test/unittest_vregistry.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 toolsutils.py --- a/toolsutils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/toolsutils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """some utilities for cubicweb tools :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 uilib.py --- a/uilib.py Mon Jan 18 19:05:08 2010 +0100 +++ b/uilib.py Mon Jan 18 19:21:30 2010 +0100 @@ -4,7 +4,7 @@ contains some functions designed to help implementation of cubicweb user interface :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -39,7 +39,6 @@ # don't translate empty value if you don't want strange results if props is not None and value and props.get('internationalizable'): return req._(value) - return value if attrtype == 'Date': return ustrftime(value, req.property_value('ui.date-format')) diff -r 3c6569be1f86 -r 6c4f109c2b03 utils.py --- a/utils.py Mon Jan 18 19:05:08 2010 +0100 +++ b/utils.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Some utilities for CubicWeb server/clients. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 view.py --- a/view.py Mon Jan 18 19:05:08 2010 +0100 +++ b/view.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -10,6 +10,7 @@ _ = unicode from cStringIO import StringIO +from warnings import warn from simplejson import dumps @@ -97,12 +98,24 @@ __registry__ = 'views' templatable = True - need_navigation = True # content_type = 'application/xhtml+xml' # text/xhtml' binary = False add_to_breadcrumbs = True category = 'view' + @property + @deprecated('[3.6] need_navigation is deprecated, use .paginable') + def need_navigation(self): + return True + + @property + def paginable(self): + if not isinstance(self.__class__.need_navigation, property): + warn('[3.6] %s.need_navigation is deprecated, use .paginable' + % self.__class__, DeprecationWarninig) + return self.need_navigation + return True + def __init__(self, req=None, rset=None, **kwargs): super(View, self).__init__(req, rset=rset, **kwargs) self.w = None diff -r 3c6569be1f86 -r 6c4f109c2b03 vregistry.py --- a/vregistry.py Mon Jan 18 19:05:08 2010 +0100 +++ b/vregistry.py Mon Jan 18 19:21:30 2010 +0100 @@ -15,7 +15,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/__init__.py --- a/web/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/_exceptions.py --- a/web/_exceptions.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/_exceptions.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ """exceptions used in the core of the CubicWeb web application :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/action.py --- a/web/action.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/action.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """abstract action classes for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/application.py --- a/web/application.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/application.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """CubicWeb web client application object :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/box.py --- a/web/box.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/box.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """abstract box classes for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/component.py --- a/web/component.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/component.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """abstract component class and base components definition for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/controller.py --- a/web/controller.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/controller.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/data/cubicweb.ajax.js --- a/web/data/cubicweb.ajax.js Mon Jan 18 19:05:08 2010 +0100 +++ b/web/data/cubicweb.ajax.js Mon Jan 18 19:21:30 2010 +0100 @@ -424,11 +424,16 @@ * takes a list of DOM nodes and removes all empty text nodes */ function stripEmptyTextNodes(nodelist) { + /* this DROPS empty text nodes */ var stripped = []; for (var i=0; i < nodelist.length; i++) { var node = nodelist[i]; - if (isTextNode(node) && !node.textContent.strip()) { - continue; + if (isTextNode(node)) { + /* all browsers but FF -> innerText, FF -> textContent */ + var text = node.innerText || node.textContent; + if (text && !text.strip()) { + continue; + } } else { stripped.push(node); } diff -r 3c6569be1f86 -r 6c4f109c2b03 web/data/cubicweb.edition.js --- a/web/data/cubicweb.edition.js Mon Jan 18 19:05:08 2010 +0100 +++ b/web/data/cubicweb.edition.js Mon Jan 18 19:21:30 2010 +0100 @@ -258,7 +258,10 @@ // if the inlined form contains a file input, we must force // the form enctype to multipart/form-data if (form.find('input:file').length) { - form.closest('form').attr('enctype', 'multipart/form-data'); + // NOTE: IE doesn't support dynamic enctype modification, we have + // to set encoding too. + form.closest('form').attr('enctype', 'multipart/form-data') + .attr('encoding', 'multipart/form-data'); } postAjaxLoad(dom); }); diff -r 3c6569be1f86 -r 6c4f109c2b03 web/data/excanvas.js --- a/web/data/excanvas.js Mon Jan 18 19:05:08 2010 +0100 +++ b/web/data/excanvas.js Mon Jan 18 19:21:30 2010 +0100 @@ -28,80 +28,101 @@ // (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) // or use Box Sizing Behavior from WebFX // (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) +// * Non uniform scaling does not correctly scale strokes. // * Optimize. There is always room for speed improvements. -// only add this code if we do not already have a canvas implementation -if (!window.CanvasRenderingContext2D) { +// Only add this code if we do not already have a canvas implementation +if (!document.createElement('canvas').getContext) { -(function () { +(function() { // alias some functions to make (compiled) code shorter var m = Math; var mr = m.round; var ms = m.sin; var mc = m.cos; + var abs = m.abs; + var sqrt = m.sqrt; // this is used for sub pixel precision var Z = 10; var Z2 = Z / 2; + /** + * This funtion is assigned to the elements as element.getContext(). + * @this {HTMLElement} + * @return {CanvasRenderingContext2D_} + */ + function getContext() { + return this.context_ || + (this.context_ = new CanvasRenderingContext2D_(this)); + } + + var slice = Array.prototype.slice; + + /** + * Binds a function to an object. The returned function will always use the + * passed in {@code obj} as {@code this}. + * + * Example: + * + * g = bind(f, obj, a, b) + * g(c, d) // will do f.call(obj, a, b, c, d) + * + * @param {Function} f The function to bind the object to + * @param {Object} obj The object that should act as this when the function + * is called + * @param {*} var_args Rest arguments that will be used as the initial + * arguments when the function is called + * @return {Function} A new function that has bound this + */ + function bind(f, obj, var_args) { + var a = slice.call(arguments, 2); + return function() { + return f.apply(obj, a.concat(slice.call(arguments))); + }; + } + var G_vmlCanvasManager_ = { - init: function (opt_doc) { - var doc = opt_doc || document; + init: function(opt_doc) { if (/MSIE/.test(navigator.userAgent) && !window.opera) { - var self = this; - doc.attachEvent("onreadystatechange", function () { - self.init_(doc); - }); + var doc = opt_doc || document; + // Create a dummy element so that IE will allow canvas elements to be + // recognized. + doc.createElement('canvas'); + doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); } }, - init_: function (doc) { - if (doc.readyState == "complete") { - // create xmlns - if (!doc.namespaces["g_vml_"]) { - doc.namespaces.add("g_vml_", "urn:schemas-microsoft-com:vml"); - } + init_: function(doc) { + // create xmlns + if (!doc.namespaces['g_vml_']) { + doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', + '#default#VML'); - // setup default css - var ss = doc.createStyleSheet(); - ss.cssText = "canvas{display:inline-block;overflow:hidden;" + - // default size is 300x150 in Gecko and Opera - "text-align:left;width:300px;height:150px}" + - "g_vml_\\:*{behavior:url(#default#VML)}"; - - // find all canvas elements - var els = doc.getElementsByTagName("canvas"); - for (var i = 0; i < els.length; i++) { - if (!els[i].getContext) { - this.initElement(els[i]); - } - } + } + if (!doc.namespaces['g_o_']) { + doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', + '#default#VML'); } - }, - - fixElement_: function (el) { - // in IE before version 5.5 we would need to add HTML: to the tag name - // but we do not care about IE before version 6 - var outerHTML = el.outerHTML; - var newEl = el.ownerDocument.createElement(outerHTML); - // if the tag is still open IE has created the children as siblings and - // it has also created a tag with the name "/FOO" - if (outerHTML.slice(-2) != "/>") { - var tagName = "/" + el.tagName; - var ns; - // remove content - while ((ns = el.nextSibling) && ns.tagName != tagName) { - ns.removeNode(); - } - // remove the incorrect closing tag - if (ns) { - ns.removeNode(); - } + // Setup default CSS. Only add one style sheet per document + if (!doc.styleSheets['ex_canvas_']) { + var ss = doc.createStyleSheet(); + ss.owningElement.id = 'ex_canvas_'; + ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + + // default size is 300x150 in Gecko and Opera + 'text-align:left;width:300px;height:150px}' + + 'g_vml_\\:*{behavior:url(#default#VML)}' + + 'g_o_\\:*{behavior:url(#default#VML)}'; + } - el.parentNode.replaceChild(newEl, el); - return newEl; + + // find all canvas elements + var els = doc.getElementsByTagName('canvas'); + for (var i = 0; i < els.length; i++) { + this.initElement(els[i]); + } }, /** @@ -112,35 +133,37 @@ * @param {HTMLElement} el The canvas element to initialize. * @return {HTMLElement} the element that was created. */ - initElement: function (el) { - el = this.fixElement_(el); - el.getContext = function () { - if (this.context_) { - return this.context_; - } - return this.context_ = new CanvasRenderingContext2D_(this); - }; + initElement: function(el) { + if (!el.getContext) { + + el.getContext = getContext; - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); + // Remove fallback content. There is no way to hide text nodes so we + // just remove all childNodes. We could hide all elements and remove + // text nodes but who really cares about the fallback content. + el.innerHTML = ''; + + // do not use inline function because that will leak memory + el.attachEvent('onpropertychange', onPropertyChange); + el.attachEvent('onresize', onResize); - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + "px"; - } else { - el.width = el.clientWidth; + var attrs = el.attributes; + if (attrs.width && attrs.width.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setWidth_(attrs.width.nodeValue); + el.style.width = attrs.width.nodeValue + 'px'; + } else { + el.width = el.clientWidth; + } + if (attrs.height && attrs.height.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setHeight_(attrs.height.nodeValue); + el.style.height = attrs.height.nodeValue + 'px'; + } else { + el.height = el.clientHeight; + } + //el.getContext().setCoordsize_() } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + "px"; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() return el; } }; @@ -150,11 +173,11 @@ switch (e.propertyName) { case 'width': - el.style.width = el.attributes.width.nodeValue + "px"; + el.style.width = el.attributes.width.nodeValue + 'px'; el.getContext().clearRect(); break; case 'height': - el.style.height = el.attributes.height.nodeValue + "px"; + el.style.height = el.attributes.height.nodeValue + 'px'; el.getContext().clearRect(); break; } @@ -214,43 +237,45 @@ o2.shadowOffsetX = o1.shadowOffsetX; o2.shadowOffsetY = o1.shadowOffsetY; o2.strokeStyle = o1.strokeStyle; + o2.globalAlpha = o1.globalAlpha; o2.arcScaleX_ = o1.arcScaleX_; o2.arcScaleY_ = o1.arcScaleY_; + o2.lineScale_ = o1.lineScale_; } function processStyle(styleString) { var str, alpha = 1; styleString = String(styleString); - if (styleString.substring(0, 3) == "rgb") { - var start = styleString.indexOf("(", 3); - var end = styleString.indexOf(")", start + 1); - var guts = styleString.substring(start + 1, end).split(","); + if (styleString.substring(0, 3) == 'rgb') { + var start = styleString.indexOf('(', 3); + var end = styleString.indexOf(')', start + 1); + var guts = styleString.substring(start + 1, end).split(','); - str = "#"; + str = '#'; for (var i = 0; i < 3; i++) { str += dec2hex[Number(guts[i])]; } - if ((guts.length == 4) && (styleString.substr(3, 1) == "a")) { + if (guts.length == 4 && styleString.substr(3, 1) == 'a') { alpha = guts[3]; } } else { str = styleString; } - return [str, alpha]; + return {color: str, alpha: alpha}; } function processLineCap(lineCap) { switch (lineCap) { - case "butt": - return "flat"; - case "round": - return "round"; - case "square": + case 'butt': + return 'flat'; + case 'round': + return 'round'; + case 'square': default: - return "square"; + return 'square'; } } @@ -260,7 +285,7 @@ * @param {HTMLElement} surfaceElement The element that the 2D context should * be associated with */ - function CanvasRenderingContext2D_(surfaceElement) { + function CanvasRenderingContext2D_(surfaceElement) { this.m_ = createMatrixIdentity(); this.mStack_ = []; @@ -268,12 +293,12 @@ this.currentPath_ = []; // Canvas context properties - this.strokeStyle = "#000"; - this.fillStyle = "#000"; + this.strokeStyle = '#000'; + this.fillStyle = '#000'; this.lineWidth = 1; - this.lineJoin = "miter"; - this.lineCap = "butt"; + this.lineJoin = 'miter'; + this.lineCap = 'butt'; this.miterLimit = Z * 1; this.globalAlpha = 1; this.canvas = surfaceElement; @@ -288,67 +313,88 @@ this.element_ = el; this.arcScaleX_ = 1; this.arcScaleY_ = 1; + this.lineScale_ = 1; } var contextPrototype = CanvasRenderingContext2D_.prototype; contextPrototype.clearRect = function() { - this.element_.innerHTML = ""; - this.currentPath_ = []; + this.element_.innerHTML = ''; }; contextPrototype.beginPath = function() { // TODO: Branch current matrix so that save/restore has no effect // as per safari docs. - this.currentPath_ = []; }; contextPrototype.moveTo = function(aX, aY) { - this.currentPath_.push({type: "moveTo", x: aX, y: aY}); - this.currentX_ = aX; - this.currentY_ = aY; + var p = this.getCoords_(aX, aY); + this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); + this.currentX_ = p.x; + this.currentY_ = p.y; }; contextPrototype.lineTo = function(aX, aY) { - this.currentPath_.push({type: "lineTo", x: aX, y: aY}); - this.currentX_ = aX; - this.currentY_ = aY; + var p = this.getCoords_(aX, aY); + this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); + + this.currentX_ = p.x; + this.currentY_ = p.y; }; contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { - this.currentPath_.push({type: "bezierCurveTo", - cp1x: aCP1x, - cp1y: aCP1y, - cp2x: aCP2x, - cp2y: aCP2y, - x: aX, - y: aY}); - this.currentX_ = aX; - this.currentY_ = aY; + var p = this.getCoords_(aX, aY); + var cp1 = this.getCoords_(aCP1x, aCP1y); + var cp2 = this.getCoords_(aCP2x, aCP2y); + bezierCurveTo(this, cp1, cp2, p); }; + // Helper function that takes the already fixed cordinates. + function bezierCurveTo(self, cp1, cp2, p) { + self.currentPath_.push({ + type: 'bezierCurveTo', + cp1x: cp1.x, + cp1y: cp1.y, + cp2x: cp2.x, + cp2y: cp2.y, + x: p.x, + y: p.y + }); + self.currentX_ = p.x; + self.currentY_ = p.y; + } + contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { // the following is lifted almost directly from // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - var cp1x = this.currentX_ + 2.0 / 3.0 * (aCPx - this.currentX_); - var cp1y = this.currentY_ + 2.0 / 3.0 * (aCPy - this.currentY_); - var cp2x = cp1x + (aX - this.currentX_) / 3.0; - var cp2y = cp1y + (aY - this.currentY_) / 3.0; - this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, aX, aY); + + var cp = this.getCoords_(aCPx, aCPy); + var p = this.getCoords_(aX, aY); + + var cp1 = { + x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), + y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) + }; + var cp2 = { + x: cp1.x + (p.x - this.currentX_) / 3.0, + y: cp1.y + (p.y - this.currentY_) / 3.0 + }; + + bezierCurveTo(this, cp1, cp2, p); }; contextPrototype.arc = function(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { aRadius *= Z; - var arcType = aClockwise ? "at" : "wa"; + var arcType = aClockwise ? 'at' : 'wa'; - var xStart = aX + (mc(aStartAngle) * aRadius) - Z2; - var yStart = aY + (ms(aStartAngle) * aRadius) - Z2; + var xStart = aX + mc(aStartAngle) * aRadius - Z2; + var yStart = aY + ms(aStartAngle) * aRadius - Z2; - var xEnd = aX + (mc(aEndAngle) * aRadius) - Z2; - var yEnd = aY + (ms(aEndAngle) * aRadius) - Z2; + var xEnd = aX + mc(aEndAngle) * aRadius - Z2; + var yEnd = aY + ms(aEndAngle) * aRadius - Z2; // IE won't render arches drawn counter clockwise if xStart == xEnd. if (xStart == xEnd && !aClockwise) { @@ -356,14 +402,18 @@ // that can be represented in binary } + var p = this.getCoords_(aX, aY); + var pStart = this.getCoords_(xStart, yStart); + var pEnd = this.getCoords_(xEnd, yEnd); + this.currentPath_.push({type: arcType, - x: aX, - y: aY, + x: p.x, + y: p.y, radius: aRadius, - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd}); + xStart: pStart.x, + yStart: pStart.y, + xEnd: pEnd.x, + yEnd: pEnd.y}); }; @@ -376,44 +426,55 @@ }; contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - // Will destroy any existing path (same as FF behaviour) + var oldPath = this.currentPath_; this.beginPath(); + this.moveTo(aX, aY); this.lineTo(aX + aWidth, aY); this.lineTo(aX + aWidth, aY + aHeight); this.lineTo(aX, aY + aHeight); this.closePath(); this.stroke(); + + this.currentPath_ = oldPath; }; contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - // Will destroy any existing path (same as FF behaviour) + var oldPath = this.currentPath_; this.beginPath(); + this.moveTo(aX, aY); this.lineTo(aX + aWidth, aY); this.lineTo(aX + aWidth, aY + aHeight); this.lineTo(aX, aY + aHeight); this.closePath(); this.fill(); + + this.currentPath_ = oldPath; }; contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_("gradient"); + var gradient = new CanvasGradient_('gradient'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; return gradient; }; - contextPrototype.createRadialGradient = function(aX0, aY0, - aR0, aX1, - aY1, aR1) { - var gradient = new CanvasGradient_("gradientradial"); - gradient.radius1_ = aR0; - gradient.radius2_ = aR1; - gradient.focus_.x = aX0; - gradient.focus_.y = aY0; + contextPrototype.createRadialGradient = function(aX0, aY0, aR0, + aX1, aY1, aR1) { + var gradient = new CanvasGradient_('gradientradial'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.r0_ = aR0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; + gradient.r1_ = aR1; return gradient; }; - contextPrototype.drawImage = function (image, var_args) { + contextPrototype.drawImage = function(image, var_args) { var dx, dy, dw, dh, sx, sy, sw, sh; // to find the original width we overide the width and height @@ -454,7 +515,7 @@ dw = arguments[7]; dh = arguments[8]; } else { - throw "Invalid number of arguments"; + throw Error('Invalid number of arguments'); } var d = this.getCoords_(dx, dy); @@ -471,7 +532,7 @@ vmlStr.push(' ' , '', ''); - this.element_.insertAdjacentHTML("BeforeEnd", - vmlStr.join("")); + this.element_.insertAdjacentHTML('BeforeEnd', + vmlStr.join('')); }; contextPrototype.stroke = function(aFill) { var lineStr = []; var lineOpen = false; var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); - var color = a[0]; - var opacity = a[1] * this.globalAlpha; + var color = a.color; + var opacity = a.alpha * this.globalAlpha; var W = 10; var H = 10; lineStr.push(' max.x) { - max.x = c.x; + if (max.x == null || p.x > max.x) { + max.x = p.x; } - if (min.y == null || c.y < min.y) { - min.y = c.y; + if (min.y == null || p.y < min.y) { + min.y = p.y; } - if (max.y == null || c.y > max.y) { - max.y = c.y; + if (max.y == null || p.y > max.y) { + max.y = p.y; } } } lineStr.push(' ">'); - if (typeof this.fillStyle == "object") { - var focus = {x: "50%", y: "50%"}; - var width = (max.x - min.x); - var height = (max.y - min.y); - var dimension = (width > height) ? width : height; - - focus.x = mr((this.fillStyle.focus_.x / width) * 100 + 50) + "%"; - focus.y = mr((this.fillStyle.focus_.y / height) * 100 + 50) + "%"; + if (!aFill) { + var lineWidth = this.lineScale_ * this.lineWidth; - var colors = []; - - // inside radius (%) - if (this.fillStyle.type_ == "gradientradial") { - var inside = (this.fillStyle.radius1_ / dimension * 100); - - // percentage that outside radius exceeds inside radius - var expansion = (this.fillStyle.radius2_ / dimension * 100) - inside; - } else { - var inside = 0; - var expansion = 100; + // VML cannot correctly render a line if the width is less than 1px. + // In that case, we dilute the color to make the line look thinner. + if (lineWidth < 1) { + opacity *= lineWidth; } - var insidecolor = {offset: null, color: null}; - var outsidecolor = {offset: null, color: null}; + lineStr.push( + '' + ); + } else if (typeof this.fillStyle == 'object') { + var fillStyle = this.fillStyle; + var angle = 0; + var focus = {x: 0, y: 0}; + + // additional offset + var shift = 0; + // scale factor for offset + var expansion = 1; + + if (fillStyle.type_ == 'gradient') { + var x0 = fillStyle.x0_ / this.arcScaleX_; + var y0 = fillStyle.y0_ / this.arcScaleY_; + var x1 = fillStyle.x1_ / this.arcScaleX_; + var y1 = fillStyle.y1_ / this.arcScaleY_; + var p0 = this.getCoords_(x0, y0); + var p1 = this.getCoords_(x1, y1); + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + angle = Math.atan2(dx, dy) * 180 / Math.PI; - // We need to sort 'colors' by percentage, from 0 > 100 otherwise ie - // won't interpret it correctly - this.fillStyle.colors_.sort(function (cs1, cs2) { + // The angle should be a non-negative number. + if (angle < 0) { + angle += 360; + } + + // Very small angles produce an unexpected result because they are + // converted to a scientific notation string. + if (angle < 1e-6) { + angle = 0; + } + } else { + var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_); + var width = max.x - min.x; + var height = max.y - min.y; + focus = { + x: (p0.x - min.x) / width, + y: (p0.y - min.y) / height + }; + + width /= this.arcScaleX_ * Z; + height /= this.arcScaleY_ * Z; + var dimension = m.max(width, height); + shift = 2 * fillStyle.r0_ / dimension; + expansion = 2 * fillStyle.r1_ / dimension - shift; + } + + // We need to sort the color stops in ascending order by offset, + // otherwise IE won't interpret it correctly. + var stops = fillStyle.colors_; + stops.sort(function(cs1, cs2) { return cs1.offset - cs2.offset; }); - for (var i = 0; i < this.fillStyle.colors_.length; i++) { - var fs = this.fillStyle.colors_[i]; - - colors.push( (fs.offset * expansion) + inside, "% ", fs.color, ","); + var length = stops.length; + var color1 = stops[0].color; + var color2 = stops[length - 1].color; + var opacity1 = stops[0].alpha * this.globalAlpha; + var opacity2 = stops[length - 1].alpha * this.globalAlpha; - if (fs.offset > insidecolor.offset || insidecolor.offset == null) { - insidecolor.offset = fs.offset; - insidecolor.color = fs.color; - } - - if (fs.offset < outsidecolor.offset || outsidecolor.offset == null) { - outsidecolor.offset = fs.offset; - outsidecolor.color = fs.color; - } + var colors = []; + for (var i = 0; i < length; i++) { + var stop = stops[i]; + colors.push(stop.offset * expansion + shift + ' ' + stop.color); } - colors.pop(); - lineStr.push(''); - } else if (aFill) { - lineStr.push(''); + // When colors attribute is used, the meanings of opacity and o:opacity2 + // are reversed. + lineStr.push(''); } else { - lineStr.push( - '' - ); + lineStr.push(''); } - lineStr.push(""); + lineStr.push(''); - this.element_.insertAdjacentHTML("beforeEnd", lineStr.join("")); - - //this.currentPath_ = []; + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); }; contextPrototype.fill = function() { this.stroke(true); - }; + } contextPrototype.closePath = function() { - this.currentPath_.push({type: "close"}); + this.currentPath_.push({type: 'close'}); }; /** * @private */ contextPrototype.getCoords_ = function(aX, aY) { + var m = this.m_; return { - x: Z * (aX * this.m_[0][0] + aY * this.m_[1][0] + this.m_[2][0]) - Z2, - y: Z * (aX * this.m_[0][1] + aY * this.m_[1][1] + this.m_[2][1]) - Z2 + x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, + y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 } }; @@ -710,6 +797,33 @@ this.m_ = this.mStack_.pop(); }; + function matrixIsFinite(m) { + for (var j = 0; j < 3; j++) { + for (var k = 0; k < 2; k++) { + if (!isFinite(m[j][k]) || isNaN(m[j][k])) { + return false; + } + } + } + return true; + } + + function setM(ctx, m, updateLineScale) { + if (!matrixIsFinite(m)) { + return; + } + ctx.m_ = m; + + if (updateLineScale) { + // Get the line scale. + // Determinant of this.m_ means how much the area is enlarged by the + // transformation. So its square root can be used as a scale factor + // for width. + var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; + ctx.lineScale_ = sqrt(abs(det)); + } + } + contextPrototype.translate = function(aX, aY) { var m1 = [ [1, 0, 0], @@ -717,7 +831,7 @@ [aX, aY, 1] ]; - this.m_ = matrixMultiply(m1, this.m_); + setM(this, matrixMultiply(m1, this.m_), false); }; contextPrototype.rotate = function(aRot) { @@ -730,7 +844,7 @@ [0, 0, 1] ]; - this.m_ = matrixMultiply(m1, this.m_); + setM(this, matrixMultiply(m1, this.m_), false); }; contextPrototype.scale = function(aX, aY) { @@ -742,7 +856,27 @@ [0, 0, 1] ]; - this.m_ = matrixMultiply(m1, this.m_); + setM(this, matrixMultiply(m1, this.m_), true); + }; + + contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { + var m1 = [ + [m11, m12, 0], + [m21, m22, 0], + [dx, dy, 1] + ]; + + setM(this, matrixMultiply(m1, this.m_), true); + }; + + contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { + var m = [ + [m11, m12, 0], + [m21, m22, 0], + [dx, dy, 1] + ]; + + setM(this, m, true); }; /******** STUBS ********/ @@ -761,15 +895,20 @@ // Gradient / Pattern Stubs function CanvasGradient_(aType) { this.type_ = aType; - this.radius1_ = 0; - this.radius2_ = 0; + this.x0_ = 0; + this.y0_ = 0; + this.r0_ = 0; + this.x1_ = 0; + this.y1_ = 0; + this.r1_ = 0; this.colors_ = []; - this.focus_ = {x: 0, y: 0}; } CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { aColor = processStyle(aColor); - this.colors_.push({offset: 1-aOffset, color: aColor}); + this.colors_.push({offset: aOffset, + color: aColor.color, + alpha: aColor.alpha}); }; function CanvasPattern_() {} diff -r 3c6569be1f86 -r 6c4f109c2b03 web/data/jquery.flot.js --- a/web/data/jquery.flot.js Mon Jan 18 19:05:08 2010 +0100 +++ b/web/data/jquery.flot.js Mon Jan 18 19:21:30 2010 +0100 @@ -1,1 +1,1 @@ -(function(F){function D(AO,e,f){var W=[],o={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{mode:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null},yaxis:{autoscaleMargin:0.02},x2axis:{autoscaleMargin:null},y2axis:{autoscaleMargin:0.02},points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff"},lines:{show:false,lineWidth:2,fill:false,fillColor:null},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left"},grid:{color:"#545454",backgroundColor:null,tickColor:"#dddddd",labelMargin:5,borderWidth:2,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},selection:{mode:null,color:"#e8cfac"},shadowSize:4},X=null,AP=null,AQ=null,g=null,AX=null,K=AO,AA={xaxis:{},yaxis:{},x2axis:{},y2axis:{}},m={left:0,right:0,top:0,bottom:0},AI=0,Z=0,N=0,AB=0,S={};this.setData=n;this.setupGrid=s;this.draw=AU;this.clearSelection=I;this.setSelection=AC;this.getCanvas=function(){return X};this.getPlotOffset=function(){return m};this.getData=function(){return W};this.getAxes=function(){return AA};this.highlight=AS;this.unhighlight=AH;y(f);n(e);j();s();AU();function n(AY){W=U(AY);c();t()}function U(Ac){var Aa=[];for(var AZ=0;AZ=o.colors.length){Ad=0;++Ac}}var Ae=0,Aj;for(Ad=0;AdAj.datamax){Aj.datamax=Ag+Ah}}if(Af!=null&&!isNaN(Af=+Af)){if(AfAi.datamax){Ai.datamax=Af}}if(Ag==null||Af==null||isNaN(Ag)||isNaN(Af)){Ad[Ac]=null}}}for(Ab in AA){if(AA[Ab].datamin==Aa){AA[Ab].datamin=0}if(AA[Ab].datamax==AZ){AA[Ab].datamax=1}}}function j(){AI=K.width();Z=K.height();K.html("");K.css("position","relative");if(AI<=0||Z<=0){throw"Invalid dimensions for plot, width = "+AI+", height = "+Z}X=F('').appendTo(K).get(0);if(F.browser.msie){X=window.G_vmlCanvasManager.initElement(X)}g=X.getContext("2d");AP=F('').appendTo(K).get(0);if(F.browser.msie){AP=window.G_vmlCanvasManager.initElement(AP)}AX=AP.getContext("2d");AQ=F([AP,X]);if(o.selection.mode!=null||o.grid.hoverable){AQ.each(function(){this.onmousemove=J});if(o.selection.mode!=null){AQ.mousedown(AN)}}if(o.grid.clickable){AQ.click(k)}}function s(){function AY(Ab,Aa){Q(Ab,Aa);L(Ab,Aa);w(Ab,Aa);if(Ab==AA.xaxis||Ab==AA.x2axis){Ab.p2c=function(Ac){return(Ac-Ab.min)*Ab.scale};Ab.c2p=function(Ac){return Ab.min+Ac/Ab.scale}}else{Ab.p2c=function(Ac){return(Ab.max-Ac)*Ab.scale};Ab.c2p=function(Ac){return Ab.max-Ac/Ab.scale}}}for(var AZ in AA){AY(AA[AZ],o[AZ])}AW();p();AV()}function Q(Ab,Ad){var Aa=Ad.min!=null?Ad.min:Ab.datamin;var AY=Ad.max!=null?Ad.max:Ab.datamax;if(AY-Aa==0){var AZ;if(AY==0){AZ=1}else{AZ=0.01}Aa-=AZ;AY+=AZ}else{var Ac=Ad.autoscaleMargin;if(Ac!=null){if(Ad.min==null){Aa-=(AY-Aa)*Ac;if(Aa<0&&Ab.datamin>=0){Aa=0}}if(Ad.max==null){AY+=(AY-Aa)*Ac;if(AY>0&&Ab.datamax<=0){AY=0}}}}Ab.min=Aa;Ab.max=AY}function L(Ad,Ag){var Ac;if(typeof Ag.ticks=="number"&&Ag.ticks>0){Ac=Ag.ticks}else{if(Ad==AA.xaxis||Ad==AA.x2axis){Ac=AI/100}else{Ac=Z/60}}var Al=(Ad.max-Ad.min)/Ac;var Ao,Ah,Aj,Ak,Af,Aa,AZ;if(Ag.mode=="time"){function An(Av,Ap,Ar){var Aq=function(Ax){Ax=""+Ax;return Ax.length==1?"0"+Ax:Ax};var Au=[];var At=false;if(Ar==null){Ar=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}for(var As=0;As=Ab){break}}Ao=Am[Af][0];Aj=Am[Af][1];if(Aj=="year"){Aa=Math.pow(10,Math.floor(Math.log(Al/Ai.year)/Math.LN10));AZ=(Al/Ai.year)/Aa;if(AZ<1.5){Ao=1}else{if(AZ<3){Ao=2}else{if(AZ<7.5){Ao=5}else{Ao=10}}}Ao*=Aa}if(Ag.tickSize){Ao=Ag.tickSize[0];Aj=Ag.tickSize[1]}Ah=function(Ar){var Aw=[],Au=Ar.tickSize[0],Ax=Ar.tickSize[1],Av=new Date(Ar.min);var Aq=Au*Ai[Ax];if(Ax=="second"){Av.setUTCSeconds(C(Av.getUTCSeconds(),Au))}if(Ax=="minute"){Av.setUTCMinutes(C(Av.getUTCMinutes(),Au))}if(Ax=="hour"){Av.setUTCHours(C(Av.getUTCHours(),Au))}if(Ax=="month"){Av.setUTCMonth(C(Av.getUTCMonth(),Au))}if(Ax=="year"){Av.setUTCFullYear(C(Av.getUTCFullYear(),Au))}Av.setUTCMilliseconds(0);if(Aq>=Ai.minute){Av.setUTCSeconds(0)}if(Aq>=Ai.hour){Av.setUTCMinutes(0)}if(Aq>=Ai.day){Av.setUTCHours(0)}if(Aq>=Ai.day*4){Av.setUTCDate(1)}if(Aq>=Ai.year){Av.setUTCMonth(0)}var Az=0,Ay=Number.NaN,As;do{As=Ay;Ay=Av.getTime();Aw.push({v:Ay,label:Ar.tickFormatter(Ay,Ar)});if(Ax=="month"){if(Au<1){Av.setUTCDate(1);var Ap=Av.getTime();Av.setUTCMonth(Av.getUTCMonth()+1);var At=Av.getTime();Av.setTime(Ay+Az*Ai.hour+(At-Ap)*Au);Az=Av.getUTCHours();Av.setUTCHours(0)}else{Av.setUTCMonth(Av.getUTCMonth()+Au)}}else{if(Ax=="year"){Av.setUTCFullYear(Av.getUTCFullYear()+Au)}else{Av.setTime(Ay+Aq)}}}while(AyAY){Ae=AY}Aa=Math.pow(10,-Ae);AZ=Al/Aa;if(AZ<1.5){Ao=1}else{if(AZ<3){Ao=2;if(AZ>2.25&&(AY==null||Ae+1<=AY)){Ao=2.5;++Ae}}else{if(AZ<7.5){Ao=5}else{Ao=10}}}Ao*=Aa;if(Ag.minTickSize!=null&&Ao0){Ac.ticks=Ac.tickGenerator(Ac)}}else{if(Ae.ticks){var Ad=Ae.ticks;if(F.isFunction(Ad)){Ad=Ad({min:Ac.min,max:Ac.max})}var Ab,AY;for(Ab=0;Ab1){AZ=Aa[1]}}else{AY=Aa}if(AZ==null){AZ=Ac.tickFormatter(AY,Ac)}Ac.ticks[Ab]={v:AY,label:AZ}}}}}if(Ae.autoscaleMargin!=null&&Ac.ticks.length>0){if(Ae.min==null){Ac.min=Math.min(Ac.min,Ac.ticks[0].v)}if(Ae.max==null&&Ac.ticks.length>1){Ac.max=Math.min(Ac.max,Ac.ticks[Ac.ticks.length-1].v)}}}function AW(){function AZ(Ac){if(Ac.labelWidth==null){Ac.labelWidth=AI/6}if(Ac.labelHeight==null){labels=[];for(i=0;i'+l+"")}}Ac.labelHeight=0;if(labels.length>0){var Ab=F('
'+labels.join("")+'
').appendTo(K);Ac.labelHeight=Ab.height();Ab.remove()}}}function AY(Ae){if(Ae.labelWidth==null||Ae.labelHeight==null){var Ad,Af=[],Ac;for(Ad=0;Ad'+Ac+"")}}if(Af.length>0){var Ab=F('
'+Af.join("")+"
").appendTo(K);if(Ae.labelWidth==null){Ae.labelWidth=Ab.width()}if(Ae.labelHeight==null){Ae.labelHeight=Ab.find("div").height()}Ab.remove()}if(Ae.labelWidth==null){Ae.labelWidth=0}if(Ae.labelHeight==null){Ae.labelHeight=0}}}AZ(AA.xaxis);AY(AA.yaxis);AZ(AA.x2axis);AY(AA.y2axis);var Aa=o.grid.borderWidth/2;for(i=0;i0){m.bottom=Math.max(Aa,AA.xaxis.labelHeight+o.grid.labelMargin)}if(AA.yaxis.labelWidth>0){m.left=Math.max(Aa,AA.yaxis.labelWidth+o.grid.labelMargin)}if(AA.x2axis.labelHeight>0){m.top=Math.max(Aa,AA.x2axis.labelHeight+o.grid.labelMargin)}if(AA.y2axis.labelWidth>0){m.right=Math.max(Aa,AA.y2axis.labelWidth+o.grid.labelMargin)}N=AI-m.left-m.right;AB=Z-m.bottom-m.top;AA.xaxis.scale=N/(AA.xaxis.max-AA.xaxis.min);AA.yaxis.scale=AB/(AA.yaxis.max-AA.yaxis.min);AA.x2axis.scale=N/(AA.x2axis.max-AA.x2axis.min);AA.y2axis.scale=AB/(AA.y2axis.max-AA.y2axis.min)}function AU(){a();for(var AY=0;AYAd){return{from:Ad,to:Ae,axis:Ab}}return{from:Ae,to:Ad,axis:Ab}}function a(){var Ac;g.save();g.clearRect(0,0,AI,Z);g.translate(m.left,m.top);if(o.grid.backgroundColor){g.fillStyle=o.grid.backgroundColor;g.fillRect(0,0,N,AB)}if(o.grid.markings){var AZ=o.grid.markings;if(F.isFunction(AZ)){AZ=AZ({xmin:AA.xaxis.min,xmax:AA.xaxis.max,ymin:AA.yaxis.min,ymax:AA.yaxis.max,xaxis:AA.xaxis,yaxis:AA.yaxis,x2axis:AA.x2axis,y2axis:AA.y2axis})}for(Ac=0;AcAe.axis.max||Ab.toAb.axis.max){continue}Ae.from=Math.max(Ae.from,Ae.axis.min);Ae.to=Math.min(Ae.to,Ae.axis.max);Ab.from=Math.max(Ab.from,Ab.axis.min);Ab.to=Math.min(Ab.to,Ab.axis.max);if(Ae.from==Ae.to&&Ab.from==Ab.to){continue}Ae.from=Ae.axis.p2c(Ae.from);Ae.to=Ae.axis.p2c(Ae.to);Ab.from=Ab.axis.p2c(Ab.from);Ab.to=Ab.axis.p2c(Ab.to);if(Ae.from==Ae.to||Ab.from==Ab.to){g.strokeStyle=AY.color||o.grid.markingsColor;g.lineWidth=AY.lineWidth||o.grid.markingsLineWidth;g.moveTo(Math.floor(Ae.from),Math.floor(Ab.from));g.lineTo(Math.floor(Ae.to),Math.floor(Ab.to));g.stroke()}else{g.fillStyle=AY.color||o.grid.markingsColor;g.fillRect(Math.floor(Ae.from),Math.floor(Ab.to),Math.floor(Ae.to-Ae.from),Math.floor(Ab.from-Ab.to))}}}g.lineWidth=1;g.strokeStyle=o.grid.tickColor;g.beginPath();var Aa,Ad=AA.xaxis;for(Ac=0;Ac=AA.xaxis.max){continue}g.moveTo(Math.floor(Ad.p2c(Aa))+g.lineWidth/2,0);g.lineTo(Math.floor(Ad.p2c(Aa))+g.lineWidth/2,AB)}Ad=AA.yaxis;for(Ac=0;Ac=Ad.max){continue}g.moveTo(0,Math.floor(Ad.p2c(Aa))+g.lineWidth/2);g.lineTo(N,Math.floor(Ad.p2c(Aa))+g.lineWidth/2)}Ad=AA.x2axis;for(Ac=0;Ac=Ad.max){continue}g.moveTo(Math.floor(Ad.p2c(Aa))+g.lineWidth/2,-5);g.lineTo(Math.floor(Ad.p2c(Aa))+g.lineWidth/2,5)}Ad=AA.y2axis;for(Ac=0;Ac=Ad.max){continue}g.moveTo(N-5,Math.floor(Ad.p2c(Aa))+g.lineWidth/2);g.lineTo(N+5,Math.floor(Ad.p2c(Aa))+g.lineWidth/2)}g.stroke();if(o.grid.borderWidth){g.lineWidth=o.grid.borderWidth;g.strokeStyle=o.grid.color;g.lineJoin="round";g.strokeRect(0,0,N,AB)}g.restore()}function p(){K.find(".tickLabels").remove();var AY='
';function AZ(Ac,Ad){for(var Ab=0;AbAc.max){continue}AY+=Ad(Aa,Ac)}}AZ(AA.xaxis,function(Aa,Ab){return'
'+Aa.label+"
"});AZ(AA.yaxis,function(Aa,Ab){return'
'+Aa.label+"
"});AZ(AA.x2axis,function(Aa,Ab){return'
'+Aa.label+"
"});AZ(AA.y2axis,function(Aa,Ab){return'
'+Aa.label+"
"});AY+="
";K.append(AY)}function AK(AY){if(AY.lines.show||(!AY.bars.show&&!AY.points.show)){h(AY)}if(AY.bars.show){u(AY)}if(AY.points.show){v(AY)}}function h(Aa){function AZ(Aj,Ah,An,Am){var Ag,Ao=null,Ad=null,Ap=null;g.beginPath();for(var Ai=0;Ai=Ak&&Al>Am.max){if(Ak>Am.max){continue}Af=(Am.max-Al)/(Ak-Al)*(Ae-Af)+Af;Al=Am.max}else{if(Ak>=Al&&Ak>Am.max){if(Al>Am.max){continue}Ae=(Am.max-Al)/(Ak-Al)*(Ae-Af)+Af;Ak=Am.max}}if(Af<=Ae&&Af=Ae&&Af>An.max){if(Ae>An.max){continue}Al=(An.max-Af)/(Ae-Af)*(Ak-Al)+Al;Af=An.max}else{if(Ae>=Af&&Ae>An.max){if(Af>An.max){continue}Ak=(An.max-Af)/(Ae-Af)*(Ak-Al)+Al;Ae=An.max}}if(Ad!=An.p2c(Af)||Ap!=Am.p2c(Al)+Ah){g.moveTo(An.p2c(Af),Am.p2c(Al)+Ah)}Ad=An.p2c(Ae);Ap=Am.p2c(Ak)+Ah;g.lineTo(Ad,Ap)}g.stroke()}function Ab(Aj,Aq,Ao){var Ah,Ar=null;var Ad=Math.min(Math.max(0,Ao.min),Ao.max);var Am,Ag=0;var Ap=false;for(var Ai=0;Ai=Ae&&Af>Aq.max){if(Ae>Aq.max){continue}An=(Aq.max-Af)/(Ae-Af)*(Al-An)+An;Af=Aq.max}else{if(Ae>=Af&&Ae>Aq.max){if(Af>Aq.max){continue}Al=(Aq.max-Af)/(Ae-Af)*(Al-An)+An;Ae=Aq.max}}if(!Ap){g.beginPath();g.moveTo(Aq.p2c(Af),Ao.p2c(Ad));Ap=true}if(An>=Ao.max&&Al>=Ao.max){g.lineTo(Aq.p2c(Af),Ao.p2c(Ao.max));g.lineTo(Aq.p2c(Ae),Ao.p2c(Ao.max));continue}else{if(An<=Ao.min&&Al<=Ao.min){g.lineTo(Aq.p2c(Af),Ao.p2c(Ao.min));g.lineTo(Aq.p2c(Ae),Ao.p2c(Ao.min));continue}}var As=Af,Ak=Ae;if(An<=Al&&An=Ao.min){Af=(Ao.min-An)/(Al-An)*(Ae-Af)+Af;An=Ao.min}else{if(Al<=An&&Al=Ao.min){Ae=(Ao.min-An)/(Al-An)*(Ae-Af)+Af;Al=Ao.min}}if(An>=Al&&An>Ao.max&&Al<=Ao.max){Af=(Ao.max-An)/(Al-An)*(Ae-Af)+Af;An=Ao.max}else{if(Al>=An&&Al>Ao.max&&An<=Ao.max){Ae=(Ao.max-An)/(Al-An)*(Ae-Af)+Af;Al=Ao.max}}if(Af!=As){if(An<=Ao.min){Am=Ao.min}else{Am=Ao.max}g.lineTo(Aq.p2c(As),Ao.p2c(Am));g.lineTo(Aq.p2c(Af),Ao.p2c(Am))}g.lineTo(Aq.p2c(Af),Ao.p2c(An));g.lineTo(Aq.p2c(Ae),Ao.p2c(Al));if(Ae!=Ak){if(Al<=Ao.min){Am=Ao.min}else{Am=Ao.max}g.lineTo(Aq.p2c(Ak),Ao.p2c(Am));g.lineTo(Aq.p2c(Ae),Ao.p2c(Am))}Ag=Math.max(Ae,Ak)}if(Ap){g.lineTo(Aq.p2c(Ag),Ao.p2c(Ad));g.fill()}}g.save();g.translate(m.left,m.top);g.lineJoin="round";var Ac=Aa.lines.lineWidth;var AY=Aa.shadowSize;if(AY>0){g.lineWidth=AY/2;g.strokeStyle="rgba(0,0,0,0.1)";AZ(Aa.data,Ac/2+AY/2+g.lineWidth/2,Aa.xaxis,Aa.yaxis);g.lineWidth=AY/2;g.strokeStyle="rgba(0,0,0,0.2)";AZ(Aa.data,Ac/2+g.lineWidth/2,Aa.xaxis,Aa.yaxis)}g.lineWidth=Ac;g.strokeStyle=Aa.color;AD(Aa.lines,Aa.color);if(Aa.lines.fill){Ab(Aa.data,Aa.xaxis,Aa.yaxis)}AZ(Aa.data,0,Aa.xaxis,Aa.yaxis);g.restore()}function v(AZ){function Ac(Ag,Ae,Ah,Ak,Ai){for(var Af=0;AfAk.max||AjAi.max){continue}g.beginPath();g.arc(Ak.p2c(Ad),Ai.p2c(Aj),Ae,0,2*Math.PI,true);if(Ah){g.fill()}g.stroke()}}function Ab(Ag,Ai,Ae,Ak,Ah){for(var Af=0;AfAk.max||AjAh.max){continue}g.beginPath();g.arc(Ak.p2c(Ad),Ah.p2c(Aj)+Ai,Ae,0,Math.PI,false);g.stroke()}}g.save();g.translate(m.left,m.top);var Aa=AZ.lines.lineWidth;var AY=AZ.shadowSize;if(AY>0){g.lineWidth=AY/2;g.strokeStyle="rgba(0,0,0,0.1)";Ab(AZ.data,AY/2+g.lineWidth/2,AZ.points.radius,AZ.xaxis,AZ.yaxis);g.lineWidth=AY/2;g.strokeStyle="rgba(0,0,0,0.2)";Ab(AZ.data,g.lineWidth/2,AZ.points.radius,AZ.xaxis,AZ.yaxis)}g.lineWidth=AZ.points.lineWidth;g.strokeStyle=AZ.color;AD(AZ.points,AZ.color);Ac(AZ.data,AZ.points.radius,AZ.points.fill,AZ.xaxis,AZ.yaxis);g.restore()}function AM(Aj,Ah,Ac,Ai,Aa,Ao,An,Ak,Af){var Am=true,Ae=true,Ab=true,Ad=false,AZ=Aj+Ac,Al=Aj+Ai,AY=0,Ag=Ah;if(AgAn.max||AgAk.max){return }if(AZAn.max){Al=An.max;Ae=false}if(AYAk.max){Ag=Ak.max;Ab=false}if(Ao){Af.beginPath();Af.moveTo(An.p2c(AZ),Ak.p2c(AY)+Aa);Af.lineTo(An.p2c(AZ),Ak.p2c(Ag)+Aa);Af.lineTo(An.p2c(Al),Ak.p2c(Ag)+Aa);Af.lineTo(An.p2c(Al),Ak.p2c(AY)+Aa);Af.fill()}if(Am||Ae||Ab||Ad){Af.beginPath();AZ=An.p2c(AZ);AY=Ak.p2c(AY);Al=An.p2c(Al);Ag=Ak.p2c(Ag);Af.moveTo(AZ,AY+Aa);if(Am){Af.lineTo(AZ,Ag+Aa)}else{Af.moveTo(AZ,Ag+Aa)}if(Ab){Af.lineTo(Al,Ag+Aa)}else{Af.moveTo(Al,Ag+Aa)}if(Ae){Af.lineTo(Al,AY+Aa)}else{Af.moveTo(Al,AY+Aa)}if(Ad){Af.lineTo(AZ,AY+Aa)}else{Af.moveTo(AZ,AY+Aa)}Af.stroke()}}function u(Aa){function AZ(Ae,Ab,Ad,Ah,Af,Ai,Ag){for(var Ac=0;Ac")}Ae.push("");Ac=true}var Ag=W[i].label;if(o.legend.labelFormatter!=null){Ag=o.legend.labelFormatter(Ag)}Ae.push('
'+Ag+"")}if(Ac){Ae.push("")}if(Ae.length==0){return }var Ai=''+Ae.join("")+"
";if(o.legend.container!=null){o.legend.container.html(Ai)}else{var Af="";var AZ=o.legend.position,Aa=o.legend.margin;if(AZ.charAt(0)=="n"){Af+="top:"+(Aa+m.top)+"px;"}else{if(AZ.charAt(0)=="s"){Af+="bottom:"+(Aa+m.bottom)+"px;"}}if(AZ.charAt(1)=="e"){Af+="right:"+(Aa+m.right)+"px;"}else{if(AZ.charAt(1)=="w"){Af+="left:"+(Aa+m.left)+"px;"}}var Ah=F('
'+Ai.replace('style="','style="position:absolute;'+Af+";")+"
").appendTo(K);if(o.legend.backgroundOpacity!=0){var Ad=o.legend.backgroundColor;if(Ad==null){var Ab;if(o.grid.backgroundColor){Ab=o.grid.backgroundColor}else{Ab=A(Ah)}Ad=E(Ab).adjust(null,null,null,1).toString()}var AY=Ah.children();F('
').prependTo(Ah).css("opacity",o.legend.backgroundOpacity)}}}var AG={pageX:null,pageY:null},d={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false},AF=[],P=false,O=null,z=null;function AT(Ae,Ac){var Al=o.grid.mouseActiveRadius,Ar=Al*Al+1,At=null,An=false;function Ai(Ay,Ax){return{datapoint:W[Ay].data[Ax],dataIndex:Ax,series:W[Ay],seriesIndex:Ay}}for(var Aq=0;Aq=Ag+Aa&&Am<=Ag+As&&Ak>=Math.min(0,Af)&&Ak<=Math.max(0,Af)){At=Ai(Aq,Ap)}}if(Au){if((Ag-Am>AZ||Ag-Am<-AZ)||(Af-Ak>AY||Af-Ak<-AY)){continue}var Aj=Math.abs(Ad.p2c(Ag)-Ae),Ah=Math.abs(Ab.p2c(Af)-Ac),Ao=Aj*Aj+Ah*Ah;if(AoAe.max||AfAd.max){return }var Ac=Ab.points.radius+Ab.points.lineWidth/2;AX.lineWidth=Ac;AX.strokeStyle=E(Ab.color).scale(1,1,1,0.5).toString();var AY=1.5*Ac;AX.beginPath();AX.arc(Ae.p2c(AZ),Ad.p2c(Af),AY,0,2*Math.PI,true);AX.stroke()}function AJ(Aa,AY){AX.lineJoin="round";AX.lineWidth=Aa.bars.lineWidth;AX.strokeStyle=E(Aa.color).scale(1,1,1,0.5).toString();AX.fillStyle=E(Aa.color).scale(1,1,1,0.5).toString();var AZ=Aa.bars.align=="left"?0:-Aa.bars.barWidth/2;AM(AY[0],AY[1],AZ,AZ+Aa.bars.barWidth,0,true,Aa.xaxis,Aa.yaxis,AX)}function r(){var AZ=Math.min(d.first.x,d.second.x),AY=Math.max(d.first.x,d.second.x),Ab=Math.max(d.first.y,d.second.y),Aa=Math.min(d.first.y,d.second.y);var Ac={};if(AA.xaxis.used){Ac.xaxis={from:AA.xaxis.c2p(AZ),to:AA.xaxis.c2p(AY)}}if(AA.x2axis.used){Ac.x2axis={from:AA.x2axis.c2p(AZ),to:AA.x2axis.c2p(AY)}}if(AA.yaxis.used){Ac.yaxis={from:AA.yaxis.c2p(Ab),to:AA.yaxis.c2p(Aa)}}if(AA.y2axis.used){Ac.yaxis={from:AA.y2axis.c2p(Ab),to:AA.y2axis.c2p(Aa)}}K.trigger("plotselected",[Ac]);if(AA.xaxis.used&&AA.yaxis.used){K.trigger("selected",[{x1:Ac.xaxis.from,y1:Ac.yaxis.from,x2:Ac.xaxis.to,y2:Ac.yaxis.to}])}}function Y(AY){if(document.onselectstart!==undefined){document.onselectstart=S.onselectstart}if(document.ondrag!==undefined){document.ondrag=S.ondrag}d.active=false;AL(AY);if(b()){r();P=true}return false}function AR(Aa,AY){var AZ=AQ.offset();if(o.selection.mode=="y"){if(Aa==d.first){Aa.x=0}else{Aa.x=N}}else{Aa.x=AY.pageX-AZ.left-m.left;Aa.x=Math.min(Math.max(0,Aa.x),N)}if(o.selection.mode=="x"){if(Aa==d.first){Aa.y=0}else{Aa.y=AB}}else{Aa.y=AY.pageY-AZ.top-m.top;Aa.y=Math.min(Math.max(0,Aa.y),AB)}}function AL(AY){if(AY.pageX==null){return }AR(d.second,AY);if(b()){d.show=true;x()}else{I()}}function I(){if(d.show){d.show=false;x()}}function AC(AZ,AY){var Aa;if(o.selection.mode=="y"){d.first.x=0;d.second.x=N}else{Aa=V(AZ,"x");d.first.x=Aa.axis.p2c(Aa.from);d.second.x=Aa.axis.p2c(Aa.to)}if(o.selection.mode=="x"){d.first.y=0;d.second.y=AB}else{Aa=V(AZ,"y");d.first.y=Aa.axis.p2c(Aa.from);d.second.y=Aa.axis.p2c(Aa.to)}d.show=true;x();if(!AY){r()}}function b(){var AY=5;return Math.abs(d.second.x-d.first.x)>=AY&&Math.abs(d.second.y-d.first.y)>=AY}}F.plot=function(L,J,I){var K=new D(L,J,I);return K};function C(J,I){return I*Math.floor(J/I)}function H(J,K,I){if(KI){return I}else{return K}}}function G(O,N,J,L){var M=["r","g","b","a"];var I=4;while(-1<--I){this[M[I]]=arguments[I]||((I==3)?1:0)}this.toString=function(){if(this.a>=1){return"rgb("+[this.r,this.g,this.b].join(",")+")"}else{return"rgba("+[this.r,this.g,this.b,this.a].join(",")+")"}};this.scale=function(R,Q,S,P){I=4;while(-1<--I){if(arguments[I]!=null){this[M[I]]*=arguments[I]}}return this.normalize()};this.adjust=function(R,Q,S,P){I=4;while(-1<--I){if(arguments[I]!=null){this[M[I]]+=arguments[I]}}return this.normalize()};this.clone=function(){return new G(this.r,this.b,this.g,this.a)};var K=function(Q,P,R){return Math.max(Math.min(Q,R),P)};this.normalize=function(){this.r=K(parseInt(this.r),0,255);this.g=K(parseInt(this.g),0,255);this.b=K(parseInt(this.b),0,255);this.a=K(this.a,0,1);return this};this.normalize()}var B={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};function A(J){var I,K=J;do{I=K.css("background-color").toLowerCase();if(I!=""&&I!="transparent"){break}K=K.parent()}while(!F.nodeName(K.get(0),"body"));if(I=="rgba(0, 0, 0, 0)"){return"transparent"}return I}function E(K){var I;if(I=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(K)){return new G(parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10))}if(I=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(K)){return new G(parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10),parseFloat(I[4]))}if(I=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(K)){return new G(parseFloat(I[1])*2.55,parseFloat(I[2])*2.55,parseFloat(I[3])*2.55)}if(I=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(K)){return new G(parseFloat(I[1])*2.55,parseFloat(I[2])*2.55,parseFloat(I[3])*2.55,parseFloat(I[4]))}if(I=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(K)){return new G(parseInt(I[1],16),parseInt(I[2],16),parseInt(I[3],16))}if(I=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(K)){return new G(parseInt(I[1]+I[1],16),parseInt(I[2]+I[2],16),parseInt(I[3]+I[3],16))}var J=F.trim(K).toLowerCase();if(J=="transparent"){return new G(255,255,255,0)}else{I=B[J];return new G(I[0],I[1],I[2])}}})(jQuery); \ No newline at end of file +(function(){jQuery.color={};jQuery.color.make=function(G,H,J,I){var A={};A.r=G||0;A.g=H||0;A.b=J||0;A.a=I!=null?I:1;A.add=function(C,D){for(var E=0;E=1){return"rgb("+[A.r,A.g,A.b].join(",")+")"}else{return"rgba("+[A.r,A.g,A.b,A.a].join(",")+")"}};A.normalize=function(){function C(E,D,F){return DF?F:D)}A.r=C(0,parseInt(A.r),255);A.g=C(0,parseInt(A.g),255);A.b=C(0,parseInt(A.b),255);A.a=C(0,A.a,1);return A};A.clone=function(){return jQuery.color.make(A.r,A.b,A.g,A.a)};return A.normalize()};jQuery.color.extract=function(E,F){var A;do{A=E.css(F).toLowerCase();if(A!=""&&A!="transparent"){break}E=E.parent()}while(!jQuery.nodeName(E.get(0),"body"));if(A=="rgba(0, 0, 0, 0)"){A="transparent"}return jQuery.color.parse(A)};jQuery.color.parse=function(A){var F,H=jQuery.color.make;if(F=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(A)){return H(parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10))}if(F=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(A)){return H(parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10),parseFloat(F[4]))}if(F=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(A)){return H(parseFloat(F[1])*2.55,parseFloat(F[2])*2.55,parseFloat(F[3])*2.55)}if(F=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(A)){return H(parseFloat(F[1])*2.55,parseFloat(F[2])*2.55,parseFloat(F[3])*2.55,parseFloat(F[4]))}if(F=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(A)){return H(parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16))}if(F=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(A)){return H(parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16))}var G=jQuery.trim(A).toLowerCase();if(G=="transparent"){return H(255,255,255,0)}else{F=B[G];return H(F[0],F[1],F[2])}};var B={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})();(function(C){function B(l,W,X,E){var O=[],g={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{mode:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02},x2axis:{autoscaleMargin:null},y2axis:{autoscaleMargin:0.02},series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,tickColor:"rgba(0,0,0,0.15)",labelMargin:5,borderWidth:2,borderColor:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},P=null,AC=null,AD=null,Y=null,AJ=null,s={xaxis:{},yaxis:{},x2axis:{},y2axis:{}},e={left:0,right:0,top:0,bottom:0},y=0,Q=0,I=0,t=0,L={processOptions:[],processRawData:[],processDatapoints:[],draw:[],bindEvents:[],drawOverlay:[]},G=this;G.setData=f;G.setupGrid=k;G.draw=AH;G.getPlaceholder=function(){return l};G.getCanvas=function(){return P};G.getPlotOffset=function(){return e};G.width=function(){return I};G.height=function(){return t};G.offset=function(){var AK=AD.offset();AK.left+=e.left;AK.top+=e.top;return AK};G.getData=function(){return O};G.getAxes=function(){return s};G.getOptions=function(){return g};G.highlight=AE;G.unhighlight=x;G.triggerRedrawOverlay=q;G.pointOffset=function(AK){return{left:parseInt(T(AK,"xaxis").p2c(+AK.x)+e.left),top:parseInt(T(AK,"yaxis").p2c(+AK.y)+e.top)}};G.hooks=L;b(G);r(X);c();f(W);k();AH();AG();function Z(AM,AK){AK=[G].concat(AK);for(var AL=0;AL=g.colors.length){AP=0;++AO}}var AQ=0,AW;for(AP=0;APAl.datamax){Al.datamax=Aj}}for(Ac=0;Ac0&&Ab[AZ-AX]!=null&&Ab[AZ-AX]!=Ab[AZ]&&Ab[AZ-AX+1]!=Ab[AZ+1]){for(AV=0;AVAU){AU=Ai}}if(Af.y){if(AiAd){Ad=Ai}}}}if(AR.bars.show){var Ag=AR.bars.align=="left"?0:-AR.bars.barWidth/2;if(AR.bars.horizontal){AY+=Ag;Ad+=Ag+AR.bars.barWidth}else{AS+=Ag;AU+=Ag+AR.bars.barWidth}}AN(AR.xaxis,AS,AU);AN(AR.yaxis,AY,Ad)}for(AK in s){if(s[AK].datamin==AW){s[AK].datamin=null}if(s[AK].datamax==AQ){s[AK].datamax=null}}}function c(){function AK(AM,AL){var AN=document.createElement("canvas");AN.width=AM;AN.height=AL;if(C.browser.msie){AN=window.G_vmlCanvasManager.initElement(AN)}return AN}y=l.width();Q=l.height();l.html("");if(l.css("position")=="static"){l.css("position","relative")}if(y<=0||Q<=0){throw"Invalid dimensions for plot, width = "+y+", height = "+Q}if(C.browser.msie){window.G_vmlCanvasManager.init_(document)}P=C(AK(y,Q)).appendTo(l).get(0);Y=P.getContext("2d");AC=C(AK(y,Q)).css({position:"absolute",left:0,top:0}).appendTo(l).get(0);AJ=AC.getContext("2d");AJ.stroke()}function AG(){AD=C([AC,P]);if(g.grid.hoverable){AD.mousemove(D)}if(g.grid.clickable){AD.click(d)}Z(L.bindEvents,[AD])}function k(){function AL(AT,AU){function AP(AV){return AV}var AS,AO,AQ=AU.transform||AP,AR=AU.inverseTransform;if(AT==s.xaxis||AT==s.x2axis){AS=AT.scale=I/(AQ(AT.max)-AQ(AT.min));AO=AQ(AT.min);if(AQ==AP){AT.p2c=function(AV){return(AV-AO)*AS}}else{AT.p2c=function(AV){return(AQ(AV)-AO)*AS}}if(!AR){AT.c2p=function(AV){return AO+AV/AS}}else{AT.c2p=function(AV){return AR(AO+AV/AS)}}}else{AS=AT.scale=t/(AQ(AT.max)-AQ(AT.min));AO=AQ(AT.max);if(AQ==AP){AT.p2c=function(AV){return(AO-AV)*AS}}else{AT.p2c=function(AV){return(AO-AQ(AV))*AS}}if(!AR){AT.c2p=function(AV){return AO-AV/AS}}else{AT.c2p=function(AV){return AR(AO-AV/AS)}}}}function AN(AR,AT){var AQ,AS=[],AP;AR.labelWidth=AT.labelWidth;AR.labelHeight=AT.labelHeight;if(AR==s.xaxis||AR==s.x2axis){if(AR.labelWidth==null){AR.labelWidth=y/(AR.ticks.length>0?AR.ticks.length:1)}if(AR.labelHeight==null){AS=[];for(AQ=0;AQ'+AP+"")}}if(AS.length>0){var AO=C('
'+AS.join("")+'
').appendTo(l);AR.labelHeight=AO.height();AO.remove()}}}else{if(AR.labelWidth==null||AR.labelHeight==null){for(AQ=0;AQ'+AP+"")}}if(AS.length>0){var AO=C('
'+AS.join("")+"
").appendTo(l);if(AR.labelWidth==null){AR.labelWidth=AO.width()}if(AR.labelHeight==null){AR.labelHeight=AO.find("div").height()}AO.remove()}}}if(AR.labelWidth==null){AR.labelWidth=0}if(AR.labelHeight==null){AR.labelHeight=0}}function AM(){var AP=g.grid.borderWidth;for(i=0;i0){e.bottom=Math.max(AP,s.xaxis.labelHeight+AO)}if(s.yaxis.labelWidth>0){e.left=Math.max(AP,s.yaxis.labelWidth+AO)}if(s.x2axis.labelHeight>0){e.top=Math.max(AP,s.x2axis.labelHeight+AO)}if(s.y2axis.labelWidth>0){e.right=Math.max(AP,s.y2axis.labelWidth+AO)}I=y-e.left-e.right;t=Q-e.bottom-e.top}var AK;for(AK in s){K(s[AK],g[AK])}if(g.grid.show){for(AK in s){F(s[AK],g[AK]);p(s[AK],g[AK]);AN(s[AK],g[AK])}AM()}else{e.left=e.right=e.top=e.bottom=0;I=y;t=Q}for(AK in s){AL(s[AK],g[AK])}if(g.grid.show){h()}AI()}function K(AN,AQ){var AM=+(AQ.min!=null?AQ.min:AN.datamin),AK=+(AQ.max!=null?AQ.max:AN.datamax),AP=AK-AM;if(AP==0){var AL=AK==0?1:0.01;if(AQ.min==null){AM-=AL}if(AQ.max==null||AQ.min!=null){AK+=AL}}else{var AO=AQ.autoscaleMargin;if(AO!=null){if(AQ.min==null){AM-=AP*AO;if(AM<0&&AN.datamin!=null&&AN.datamin>=0){AM=0}}if(AQ.max==null){AK+=AP*AO;if(AK>0&&AN.datamax!=null&&AN.datamax<=0){AK=0}}}}AN.min=AM;AN.max=AK}function F(AP,AS){var AO;if(typeof AS.ticks=="number"&&AS.ticks>0){AO=AS.ticks}else{if(AP==s.xaxis||AP==s.x2axis){AO=0.3*Math.sqrt(y)}else{AO=0.3*Math.sqrt(Q)}}var AX=(AP.max-AP.min)/AO,AZ,AT,AV,AW,AR,AM,AL;if(AS.mode=="time"){var AU={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var AY=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var AN=0;if(AS.minTickSize!=null){if(typeof AS.tickSize=="number"){AN=AS.tickSize}else{AN=AS.minTickSize[0]*AU[AS.minTickSize[1]]}}for(AR=0;AR=AN){break}}AZ=AY[AR][0];AV=AY[AR][1];if(AV=="year"){AM=Math.pow(10,Math.floor(Math.log(AX/AU.year)/Math.LN10));AL=(AX/AU.year)/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM}if(AS.tickSize){AZ=AS.tickSize[0];AV=AS.tickSize[1]}AT=function(Ac){var Ah=[],Af=Ac.tickSize[0],Ai=Ac.tickSize[1],Ag=new Date(Ac.min);var Ab=Af*AU[Ai];if(Ai=="second"){Ag.setUTCSeconds(A(Ag.getUTCSeconds(),Af))}if(Ai=="minute"){Ag.setUTCMinutes(A(Ag.getUTCMinutes(),Af))}if(Ai=="hour"){Ag.setUTCHours(A(Ag.getUTCHours(),Af))}if(Ai=="month"){Ag.setUTCMonth(A(Ag.getUTCMonth(),Af))}if(Ai=="year"){Ag.setUTCFullYear(A(Ag.getUTCFullYear(),Af))}Ag.setUTCMilliseconds(0);if(Ab>=AU.minute){Ag.setUTCSeconds(0)}if(Ab>=AU.hour){Ag.setUTCMinutes(0)}if(Ab>=AU.day){Ag.setUTCHours(0)}if(Ab>=AU.day*4){Ag.setUTCDate(1)}if(Ab>=AU.year){Ag.setUTCMonth(0)}var Ak=0,Aj=Number.NaN,Ad;do{Ad=Aj;Aj=Ag.getTime();Ah.push({v:Aj,label:Ac.tickFormatter(Aj,Ac)});if(Ai=="month"){if(Af<1){Ag.setUTCDate(1);var Aa=Ag.getTime();Ag.setUTCMonth(Ag.getUTCMonth()+1);var Ae=Ag.getTime();Ag.setTime(Aj+Ak*AU.hour+(Ae-Aa)*Af);Ak=Ag.getUTCHours();Ag.setUTCHours(0)}else{Ag.setUTCMonth(Ag.getUTCMonth()+Af)}}else{if(Ai=="year"){Ag.setUTCFullYear(Ag.getUTCFullYear()+Af)}else{Ag.setTime(Aj+Ab)}}}while(AjAK){AQ=AK}AM=Math.pow(10,-AQ);AL=AX/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2;if(AL>2.25&&(AK==null||AQ+1<=AK)){AZ=2.5;++AQ}}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM;if(AS.minTickSize!=null&&AZ0){AO.ticks=AO.tickGenerator(AO)}}else{if(AQ.ticks){var AP=AQ.ticks;if(C.isFunction(AP)){AP=AP({min:AO.min,max:AO.max})}var AN,AK;for(AN=0;AN1){AL=AM[1]}}else{AK=AM}if(AL==null){AL=AO.tickFormatter(AK,AO)}AO.ticks[AN]={v:AK,label:AL}}}}}if(AQ.autoscaleMargin!=null&&AO.ticks.length>0){if(AQ.min==null){AO.min=Math.min(AO.min,AO.ticks[0].v)}if(AQ.max==null&&AO.ticks.length>1){AO.max=Math.max(AO.max,AO.ticks[AO.ticks.length-1].v)}}}function AH(){Y.clearRect(0,0,y,Q);var AL=g.grid;if(AL.show&&!AL.aboveData){S()}for(var AK=0;AKAP){return{from:AP,to:AQ,axis:AN}}return{from:AQ,to:AP,axis:AN}}function S(){var AO;Y.save();Y.translate(e.left,e.top);if(g.grid.backgroundColor){Y.fillStyle=R(g.grid.backgroundColor,t,0,"rgba(255, 255, 255, 0)");Y.fillRect(0,0,I,t)}var AL=g.grid.markings;if(AL){if(C.isFunction(AL)){AL=AL({xmin:s.xaxis.min,xmax:s.xaxis.max,ymin:s.yaxis.min,ymax:s.yaxis.max,xaxis:s.xaxis,yaxis:s.yaxis,x2axis:s.x2axis,y2axis:s.y2axis})}for(AO=0;AOAQ.axis.max||AN.toAN.axis.max){continue}AQ.from=Math.max(AQ.from,AQ.axis.min);AQ.to=Math.min(AQ.to,AQ.axis.max);AN.from=Math.max(AN.from,AN.axis.min);AN.to=Math.min(AN.to,AN.axis.max);if(AQ.from==AQ.to&&AN.from==AN.to){continue}AQ.from=AQ.axis.p2c(AQ.from);AQ.to=AQ.axis.p2c(AQ.to);AN.from=AN.axis.p2c(AN.from);AN.to=AN.axis.p2c(AN.to);if(AQ.from==AQ.to||AN.from==AN.to){Y.beginPath();Y.strokeStyle=AK.color||g.grid.markingsColor;Y.lineWidth=AK.lineWidth||g.grid.markingsLineWidth;Y.moveTo(AQ.from,AN.from);Y.lineTo(AQ.to,AN.to);Y.stroke()}else{Y.fillStyle=AK.color||g.grid.markingsColor;Y.fillRect(AQ.from,AN.to,AQ.to-AQ.from,AN.from-AN.to)}}}Y.lineWidth=1;Y.strokeStyle=g.grid.tickColor;Y.beginPath();var AM,AP=s.xaxis;for(AO=0;AO=s.xaxis.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,0);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,t)}AP=s.yaxis;for(AO=0;AO=AP.max){continue}Y.moveTo(0,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}AP=s.x2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,-5);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,5)}AP=s.y2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(I-5,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I+5,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}Y.stroke();if(g.grid.borderWidth){var AR=g.grid.borderWidth;Y.lineWidth=AR;Y.strokeStyle=g.grid.borderColor;Y.strokeRect(-AR/2,-AR/2,I+AR,t+AR)}Y.restore()}function h(){l.find(".tickLabels").remove();var AK=['
'];function AM(AP,AQ){for(var AO=0;AOAP.max){continue}AK.push(AQ(AN,AP))}}var AL=g.grid.labelMargin+g.grid.borderWidth;AM(s.xaxis,function(AN,AO){return'
'+AN.label+"
"});AM(s.yaxis,function(AN,AO){return'
'+AN.label+"
"});AM(s.x2axis,function(AN,AO){return'
'+AN.label+"
"});AM(s.y2axis,function(AN,AO){return'
'+AN.label+"
"});AK.push("
");l.append(AK.join(""))}function AA(AK){if(AK.lines.show){a(AK)}if(AK.bars.show){n(AK)}if(AK.points.show){o(AK)}}function a(AN){function AM(AY,AZ,AR,Ad,Ac){var Ae=AY.points,AS=AY.pointsize,AW=null,AV=null;Y.beginPath();for(var AX=AS;AX=Aa&&Ab>Ac.max){if(Aa>Ac.max){continue}AU=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(Aa>=Ab&&Aa>Ac.max){if(Ab>Ac.max){continue}AT=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Aa=Ac.max}}if(AU<=AT&&AU=AT&&AU>Ad.max){if(AT>Ad.max){continue}Ab=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AU=Ad.max}else{if(AT>=AU&&AT>Ad.max){if(AU>Ad.max){continue}Aa=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AT=Ad.max}}if(AU!=AW||Ab!=AV){Y.moveTo(Ad.p2c(AU)+AZ,Ac.p2c(Ab)+AR)}AW=AT;AV=Aa;Y.lineTo(Ad.p2c(AT)+AZ,Ac.p2c(Aa)+AR)}Y.stroke()}function AO(AX,Ae,Ac){var Af=AX.points,AR=AX.pointsize,AS=Math.min(Math.max(0,Ac.min),Ac.max),Aa,AV=0,Ad=false;for(var AW=AR;AW=AT&&AU>Ae.max){if(AT>Ae.max){continue}Ab=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AU=Ae.max}else{if(AT>=AU&&AT>Ae.max){if(AU>Ae.max){continue}AZ=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AT=Ae.max}}if(!Ad){Y.beginPath();Y.moveTo(Ae.p2c(AU),Ac.p2c(AS));Ad=true}if(Ab>=Ac.max&&AZ>=Ac.max){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.max));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.max));AV=AT;continue}else{if(Ab<=Ac.min&&AZ<=Ac.min){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.min));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.min));AV=AT;continue}}var Ag=AU,AY=AT;if(Ab<=AZ&&Ab=Ac.min){AU=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.min}else{if(AZ<=Ab&&AZ=Ac.min){AT=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.min}}if(Ab>=AZ&&Ab>Ac.max&&AZ<=Ac.max){AU=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(AZ>=Ab&&AZ>Ac.max&&Ab<=Ac.max){AT=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.max}}if(AU!=Ag){if(Ab<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(Ag),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AU),Ac.p2c(Aa))}Y.lineTo(Ae.p2c(AU),Ac.p2c(Ab));Y.lineTo(Ae.p2c(AT),Ac.p2c(AZ));if(AT!=AY){if(AZ<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(AT),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AY),Ac.p2c(Aa))}AV=Math.max(AT,AY)}if(Ad){Y.lineTo(Ae.p2c(AV),Ac.p2c(AS));Y.fill()}}Y.save();Y.translate(e.left,e.top);Y.lineJoin="round";var AP=AN.lines.lineWidth,AK=AN.shadowSize;if(AP>0&&AK>0){Y.lineWidth=AK;Y.strokeStyle="rgba(0,0,0,0.1)";var AQ=Math.PI/18;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/2),Math.cos(AQ)*(AP/2+AK/2),AN.xaxis,AN.yaxis);Y.lineWidth=AK/2;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/4),Math.cos(AQ)*(AP/2+AK/4),AN.xaxis,AN.yaxis)}Y.lineWidth=AP;Y.strokeStyle=AN.color;var AL=V(AN.lines,AN.color,0,t);if(AL){Y.fillStyle=AL;AO(AN.datapoints,AN.xaxis,AN.yaxis)}if(AP>0){AM(AN.datapoints,0,0,AN.xaxis,AN.yaxis)}Y.restore()}function o(AN){function AP(AU,AT,Ab,AR,AV,AZ,AY){var Aa=AU.points,AQ=AU.pointsize;for(var AS=0;ASAZ.max||AWAY.max){continue}Y.beginPath();Y.arc(AZ.p2c(AX),AY.p2c(AW)+AR,AT,0,AV,false);if(Ab){Y.fillStyle=Ab;Y.fill()}Y.stroke()}}Y.save();Y.translate(e.left,e.top);var AO=AN.lines.lineWidth,AL=AN.shadowSize,AK=AN.points.radius;if(AO>0&&AL>0){var AM=AL/2;Y.lineWidth=AM;Y.strokeStyle="rgba(0,0,0,0.1)";AP(AN.datapoints,AK,null,AM+AM/2,Math.PI,AN.xaxis,AN.yaxis);Y.strokeStyle="rgba(0,0,0,0.2)";AP(AN.datapoints,AK,null,AM/2,Math.PI,AN.xaxis,AN.yaxis)}Y.lineWidth=AO;Y.strokeStyle=AN.color;AP(AN.datapoints,AK,V(AN.points,AN.color),0,2*Math.PI,AN.xaxis,AN.yaxis);Y.restore()}function AB(AV,AU,Ad,AQ,AY,AN,AL,AT,AS,Ac,AZ){var AM,Ab,AR,AX,AO,AK,AW,AP,Aa;if(AZ){AP=AK=AW=true;AO=false;AM=Ad;Ab=AV;AX=AU+AQ;AR=AU+AY;if(AbAT.max||AXAS.max){return }if(AMAT.max){Ab=AT.max;AK=false}if(ARAS.max){AX=AS.max;AW=false}AM=AT.p2c(AM);AR=AS.p2c(AR);Ab=AT.p2c(Ab);AX=AS.p2c(AX);if(AL){Ac.beginPath();Ac.moveTo(AM,AR);Ac.lineTo(AM,AX);Ac.lineTo(Ab,AX);Ac.lineTo(Ab,AR);Ac.fillStyle=AL(AR,AX);Ac.fill()}if(AO||AK||AW||AP){Ac.beginPath();Ac.moveTo(AM,AR+AN);if(AO){Ac.lineTo(AM,AX+AN)}else{Ac.moveTo(AM,AX+AN)}if(AW){Ac.lineTo(Ab,AX+AN)}else{Ac.moveTo(Ab,AX+AN)}if(AK){Ac.lineTo(Ab,AR+AN)}else{Ac.moveTo(Ab,AR+AN)}if(AP){Ac.lineTo(AM,AR+AN)}else{Ac.moveTo(AM,AR+AN)}Ac.stroke()}}function n(AM){function AL(AS,AR,AU,AP,AT,AW,AV){var AX=AS.points,AO=AS.pointsize;for(var AQ=0;AQ")}AP.push("");AN=true}if(AV){AR=AV(AR,AU)}AP.push('
'+AR+"")}if(AN){AP.push("")}if(AP.length==0){return }var AT=''+AP.join("")+"
";if(g.legend.container!=null){C(g.legend.container).html(AT)}else{var AQ="",AL=g.legend.position,AM=g.legend.margin;if(AM[0]==null){AM=[AM,AM]}if(AL.charAt(0)=="n"){AQ+="top:"+(AM[1]+e.top)+"px;"}else{if(AL.charAt(0)=="s"){AQ+="bottom:"+(AM[1]+e.bottom)+"px;"}}if(AL.charAt(1)=="e"){AQ+="right:"+(AM[0]+e.right)+"px;"}else{if(AL.charAt(1)=="w"){AQ+="left:"+(AM[0]+e.left)+"px;"}}var AS=C('
'+AT.replace('style="','style="position:absolute;'+AQ+";")+"
").appendTo(l);if(g.legend.backgroundOpacity!=0){var AO=g.legend.backgroundColor;if(AO==null){AO=g.grid.backgroundColor;if(AO&&typeof AO=="string"){AO=C.color.parse(AO)}else{AO=C.color.extract(AS,"background-color")}AO.a=1;AO=AO.toString()}var AK=AS.children();C('
').prependTo(AS).css("opacity",g.legend.backgroundOpacity)}}}var w=[],J=null;function AF(AR,AP,AM){var AX=g.grid.mouseActiveRadius,Aj=AX*AX+1,Ah=null,Aa=false,Af,Ad;for(Af=0;AfAL||AT-AZ<-AL||AS-AW>AK||AS-AW<-AK){continue}var AV=Math.abs(AQ.p2c(AT)-AR),AU=Math.abs(AO.p2c(AS)-AP),Ab=AV*AV+AU*AU;if(Ab<=Aj){Aj=Ab;Ah=[Af,Ad/Ac]}}}if(AY.bars.show&&!Ah){var AN=AY.bars.align=="left"?0:-AY.bars.barWidth/2,Ag=AN+AY.bars.barWidth;for(Ad=0;Ad=Math.min(Ai,AT)&&AW>=AS+AN&&AW<=AS+Ag):(AZ>=AT+AN&&AZ<=AT+Ag&&AW>=Math.min(Ai,AS)&&AW<=Math.max(Ai,AS))){Ah=[Af,Ad/Ac]}}}}if(Ah){Af=Ah[0];Ad=Ah[1];Ac=O[Af].datapoints.pointsize;return{datapoint:O[Af].datapoints.points.slice(Ad*Ac,(Ad+1)*Ac),dataIndex:Ad,series:O[Af],seriesIndex:Af}}return null}function D(AK){if(g.grid.hoverable){H("plothover",AK,function(AL){return AL.hoverable!=false})}}function d(AK){H("plotclick",AK,function(AL){return AL.clickable!=false})}function H(AL,AK,AM){var AN=AD.offset(),AS={pageX:AK.pageX,pageY:AK.pageY},AQ=AK.pageX-AN.left-e.left,AO=AK.pageY-AN.top-e.top;if(s.xaxis.used){AS.x=s.xaxis.c2p(AQ)}if(s.yaxis.used){AS.y=s.yaxis.c2p(AO)}if(s.x2axis.used){AS.x2=s.x2axis.c2p(AQ)}if(s.y2axis.used){AS.y2=s.y2axis.c2p(AO)}var AT=AF(AQ,AO,AM);if(AT){AT.pageX=parseInt(AT.series.xaxis.p2c(AT.datapoint[0])+AN.left+e.left);AT.pageY=parseInt(AT.series.yaxis.p2c(AT.datapoint[1])+AN.top+e.top)}if(g.grid.autoHighlight){for(var AP=0;APAQ.max||ARAP.max){return }var AO=AN.points.radius+AN.points.lineWidth/2;AJ.lineWidth=AO;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AK=1.5*AO;AJ.beginPath();AJ.arc(AQ.p2c(AL),AP.p2c(AR),AK,0,2*Math.PI,false);AJ.stroke()}function z(AN,AK){AJ.lineWidth=AN.bars.lineWidth;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AM=C.color.parse(AN.color).scale("a",0.5).toString();var AL=AN.bars.align=="left"?0:-AN.bars.barWidth/2;AB(AK[0],AK[1],AK[2]||0,AL,AL+AN.bars.barWidth,0,function(){return AM},AN.xaxis,AN.yaxis,AJ,AN.bars.horizontal)}function R(AM,AL,AQ,AO){if(typeof AM=="string"){return AM}else{var AP=Y.createLinearGradient(0,AQ,0,AL);for(var AN=0,AK=AM.colors.length;AN12){K=K-12}else{if(K==0){K=12}}}for(var F=0;F\n') diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/baseviews.py --- a/web/views/baseviews.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/baseviews.py Mon Jan 18 19:21:30 2010 +0100 @@ -7,7 +7,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/bookmark.py --- a/web/views/bookmark.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/bookmark.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Primary view for bookmarks + user's bookmarks box :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/boxes.py --- a/web/views/boxes.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/boxes.py Mon Jan 18 19:21:30 2010 +0100 @@ -9,7 +9,7 @@ * startup views box :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/calendar.py --- a/web/views/calendar.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/calendar.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """html calendar views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -40,7 +40,7 @@ Does apply to ICalendarable compatible entities """ __select__ = implements(ICalendarable) - need_navigation = False + paginable = False content_type = 'text/calendar' title = _('iCalendar') templatable = False @@ -73,7 +73,7 @@ """ __regid__ = 'hcal' __select__ = implements(ICalendarable) - need_navigation = False + paginable = False title = _('hCalendar') #templatable = False @@ -131,7 +131,7 @@ """At some point, this view will probably replace ampm calendars""" __regid__ = 'onemonthcal' __select__ = implements(ICalendarable) - need_navigation = False + paginable = False title = _('one month') def call(self): @@ -322,7 +322,7 @@ """At some point, this view will probably replace ampm calendars""" __regid__ = 'oneweekcal' __select__ = implements(ICalendarable) - need_navigation = False + paginable = False title = _('one week') def call(self): diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/csvexport.py --- a/web/views/csvexport.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/csvexport.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """csv export views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/cwproperties.py --- a/web/views/cwproperties.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/cwproperties.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for CWProperty :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -67,6 +67,7 @@ """site-wide properties edition form""" __regid__ = 'systempropertiesform' __select__ = none_rset() & match_user_groups('managers') + form_buttons = [SubmitButton()] title = _('site configuration') category = 'startupview' @@ -187,10 +188,9 @@ return entity def form(self, formid, keys, splitlabel=False): - buttons = [SubmitButton()] - form = self._cw.vreg['forms'].select( - 'composite', self._cw, domid=formid, action=self._cw.build_url(), - form_buttons=buttons, + form = self.vreg['forms'].select( + 'composite', self.req, domid=formid, action=self.build_url(), + form_buttons=self.form_buttons, onsubmit="return validatePrefsForm('%s')" % formid, submitmsg=self._cw._('changes applied')) path = self._cw.relative_path() diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/cwuser.py --- a/web/views/cwuser.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/cwuser.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for users :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/debug.py --- a/web/views/debug.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/debug.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/editcontroller.py --- a/web/views/editcontroller.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/editcontroller.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """The edit controller, handling form submitting. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/editforms.py --- a/web/views/editforms.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/editforms.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ or a list of entities of the same type :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -77,7 +77,7 @@ title = _('delete') # don't use navigation, all entities asked to be deleted should be displayed # else we will only delete the displayed page - need_navigation = False + paginable = False def call(self, onsubmit=None): """ask for confirmation before real deletion""" diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/editviews.py --- a/web/views/editviews.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/editviews.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Some views used to help to the edition process :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/emailaddress.py --- a/web/views/emailaddress.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/emailaddress.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for email addresses entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/embedding.py --- a/web/views/embedding.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/embedding.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/error.py --- a/web/views/error.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/error.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ as startup views and are used for standard error pages (404, 500, etc.) :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/facets.py --- a/web/views/facets.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/facets.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """the facets box and some basic facets :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -57,7 +57,7 @@ else: rset = self.cw_rset vid, divid = None, 'pageContent' - paginate = view and view.need_navigation + paginate = view and view.paginable return rset, vid, divid, paginate def call(self, view=None): diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/formrenderers.py --- a/web/views/formrenderers.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/formrenderers.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """form renderers, responsible to layout a form to html :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/forms.py --- a/web/views/forms.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/forms.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """some base form classes for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -189,39 +189,15 @@ internal_fields = FieldsForm.internal_fields + ('__type', 'eid', '__maineid') domid = 'entityForm' - @iclassmethod - def field_by_name(cls_or_self, name, role=None, eschema=None): - """return field with the given name and role. If field is not explicitly - defined for the form but `eclass` is specified, guess_field will be - called. - """ - try: - return super(EntityFieldsForm, cls_or_self).field_by_name(name, role) - except form.FieldNotFound: - if eschema is None or role is None or not name in eschema.schema: - raise - rschema = eschema.schema.rschema(name) - # XXX use a sample target type. Document this. - tschemas = rschema.targets(eschema, role) - fieldcls = _AFF.etype_get(eschema, rschema, role, tschemas[0]) - kwargs = _AFF_KWARGS.etype_get(eschema, rschema, role, tschemas[0]) - if kwargs is None: - kwargs = {} - if fieldcls: - if not isinstance(fieldcls, type): - return fieldcls # already and instance - return fieldcls(name=name, role=role, eidparam=True, **kwargs) - field = guess_field(eschema, rschema, role, eidparam=True, **kwargs) - if field is None: - raise - return field - - def __init__(self, *args, **kwargs): - self.edited_entity = kwargs.pop('entity', None) + def __init__(self, req, rset=None, row=None, col=None, *args, **kwargs): + # entity was either explicitly specified or we have a one line rset + if 'entity' in kwargs: + self.edited_entity = kwargs.pop('entity') + else: + self.edited_entity = rset.complete_entity(row or 0, col or 0) + self.edited_entity.complete() msg = kwargs.pop('submitmsg', None) - super(EntityFieldsForm, self).__init__(*args, **kwargs) - if self.edited_entity is None: - self.edited_entity = self.cw_rset.complete_entity(self.cw_row or 0, self.cw_col or 0) + super(EntityFieldsForm, self).__init__(req, rset, row, col, *args, **kwargs) self.add_hidden('__type', self.edited_entity.__regid__, eidparam=True) self.add_hidden('eid', self.edited_entity.eid) if kwargs.get('mainform', True): # mainform default to true in parent diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/ibreadcrumbs.py --- a/web/views/ibreadcrumbs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/ibreadcrumbs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """navigation components definition for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/idownloadable.py --- a/web/views/idownloadable.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/idownloadable.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for entities implementing IDownloadable :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/igeocodable.py --- a/web/views/igeocodable.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/igeocodable.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for entities implementing IGeocodable :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -70,7 +70,8 @@ __regid__ = 'gmap-view' __select__ = implements(IGeocodable) - need_navigation = False + __select__ = implements(IGeocodable) + paginable = False def call(self, gmap_key, width=400, height=400, uselabel=True, urlparams=None): self._cw.demote_to_html() diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/iprogress.py --- a/web/views/iprogress.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/iprogress.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for entities implementing IProgress :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/isioc.py --- a/web/views/isioc.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/isioc.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for SIOC interfaces :organization: Logilab -:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/magicsearch.py --- a/web/views/magicsearch.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/magicsearch.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/management.py --- a/web/views/management.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/management.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/massmailing.py --- a/web/views/massmailing.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/massmailing.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Mass mailing form views :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/navigation.py --- a/web/views/navigation.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/navigation.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """navigation components definition for CubicWeb web client :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -148,38 +148,6 @@ self.w(u'') -def limit_rset_using_paged_nav(self, req, rset, w, forcedisplay=False, - show_all_option=True, page_size=None): - if not (forcedisplay or req.form.get('__force_display') is not None): - nav = self._cw.vreg['components'].select_or_none('navigation', req, - rset=rset, page_size=page_size) - if nav: - # get boundaries before component rendering - start, stop = nav.page_boundaries() - nav.render(w=w) - params = dict(req.form) - nav.clean_params(params) - # make a link to see them all - if show_all_option: - url = xml_escape(self._cw.build_url(__force_display=1, **params)) - w(u'%s\n' - % (url, req._('show %s results') % len(rset))) - rset.limit(offset=start, limit=stop-start, inplace=True) - - -# monkey patch base View class to add a .pagination(req, rset, w, forcedisplay) -# method to be called on view's result set and printing pages index in the view -from cubicweb.view import View -View.pagination = deprecated('.pagination is deprecated, use paginate')(limit_rset_using_paged_nav) - -def paginate(view, show_all_option=True, w=None, page_size=None, rset=None): - if rset is None: - rset = view.cw_rset - limit_rset_using_paged_nav(view, view._cw, rset, w or view.w, - not view.need_navigation, show_all_option, - page_size=page_size) -View.paginate = paginate - class NextPrevNavigationComponent(EntityVComponent): __regid__ = 'prevnext' # register msg not generated since no entity implements IPrevNext in cubicweb @@ -223,3 +191,55 @@ xml_escape(next.absolute_url()), self._cw._('i18nprevnext_next'), xml_escape(cut(next.dc_title(), textsize))) + + +def do_paginate(view, rset=None, w=None, show_all_option=True, page_size=None): + """write pages index in w stream (default to view.w) and then limit the result + set (default to view.rset) to the currently displayed page + """ + req = view.req + if rset is None: + rset = view.rset + nav = req.vreg['components'].select_or_none( + 'navigation', req, rset=rset, page_size=page_size) + if nav: + if w is None: + w = view.w + # get boundaries before component rendering + start, stop = nav.page_boundaries() + nav.render(w=w) + params = dict(req.form) + nav.clean_params(params) + # make a link to see them all + if show_all_option: + url = xml_escape(view.build_url(__force_display=1, **params)) + w(u'%s\n' + % (url, req._('show %s results') % len(rset))) + rset.limit(offset=start, limit=stop-start, inplace=True) + + +def paginate(view, show_all_option=True, w=None, page_size=None, rset=None): + """paginate results if the view is paginable and we're not explictly told to + display everything (by setting __force_display in req.form) + """ + if not (view.paginable or view.req.form.get('__force_display')): + do_paginate(view, rset, w or view.w, show_all_option, page_size) + +# monkey patch base View class to add a .paginate([...]) +# method to be called to write pages index in the view and then limit the result +# set to the current page +from cubicweb.view import View +View.do_paginate = do_paginate +View.paginate = paginate + + +#@deprecated (see below) +def limit_rset_using_paged_nav(self, req, rset, w, forcedisplay=False, + show_all_option=True, page_size=None): + if not (forcedisplay or req.form.get('__force_display') is not None): + do_paginate(self, rset, w, show_all_option, page_size) + +View.pagination = deprecated('[3.2] .pagination is deprecated, use paginate')( + limit_rset_using_paged_nav) +limit_rset_using_paged_nav = deprecated('[3.6] limit_rset_using_paged_nav is deprecated, use do_paginate')( + limit_rset_using_paged_nav) diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/old_calendar.py --- a/web/views/old_calendar.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/old_calendar.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """html calendar views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -26,7 +26,7 @@ class _CalendarView(EntityView): """base calendar view containing helpful methods to build calendar views""" __select__ = implements(ICalendarViews,) - need_navigation = False + paginable = False # Navigation building methods / views #################################### diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/owl.py --- a/web/views/owl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/owl.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """produces some Ontology Web Language schema and views :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/plots.py --- a/web/views/plots.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/plots.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """basic plot views :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -78,15 +78,19 @@ class FlotPlotWidget(PlotWidget): """PlotRenderer widget using Flot""" - onload = u''' -%(plotdefs)s -jQuery.plot(jQuery("#%(figid)s"), [%(plotdata)s], - {points: {show: true}, - lines: {show: true}, - grid: {hoverable: true}, - xaxis: {mode: %(mode)s}}); -jQuery("#%(figid)s").bind("plothover", onPlotHover); -''' + onload = u""" +var fig = jQuery("#%(figid)s"); +if (fig.attr('cubicweb:type') != 'prepared-plot') { + %(plotdefs)s + jQuery.plot(jQuery("#%(figid)s"), [%(plotdata)s], + {points: {show: true}, + lines: {show: true}, + grid: {hoverable: true}, + xaxis: {mode: %(mode)s}}); + jQuery("#%(figid)s").bind("plothover", onPlotHover); + fig.attr('cubicweb:type','prepared-plot'); +} +""" def __init__(self, labels, plots, timemode=False): self.labels = labels @@ -102,8 +106,9 @@ return dumps(plot) def _render(self, req, width=500, height=400): - # XXX IE requires excanvas.js - req.add_js( ('jquery.flot.js', 'cubicweb.flot.js', 'excanvas.js') ) + if req.ie_browser(): + req.add_js('excanvas.js') + req.add_js(('jquery.flot.js', 'cubicweb.flot.js')) figid = u'figure%s' % req.varmaker.next() plotdefs = [] plotdata = [] diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/primary.py --- a/web/views/primary.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/primary.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """The default primary view :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/pyviews.py --- a/web/views/pyviews.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/pyviews.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Views to display bare python values :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/schema.py --- a/web/views/schema.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/schema.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Specific views for schema related entities :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/searchrestriction.py --- a/web/views/searchrestriction.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/searchrestriction.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ a search :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/sessions.py --- a/web/views/sessions.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/sessions.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ object :/ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/sparql.py --- a/web/views/sparql.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/sparql.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """SPARQL integration :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/startup.py --- a/web/views/startup.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/startup.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ apply to a result set. :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/tableview.py --- a/web/views/tableview.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/tableview.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/tabs.py --- a/web/views/tabs.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/tabs.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """base classes to handle tabbed views :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/timeline.py --- a/web/views/timeline.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/timeline.py Mon Jan 18 19:21:30 2010 +0100 @@ -3,7 +3,7 @@ cf. http://code.google.com/p/simile-widgets/ :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -105,7 +105,7 @@ __regid__ = 'timeline' title = _('timeline') __select__ = implements(ICalendarable) - need_navigation = False + paginable = False def call(self, tlunit=None): self._cw.html_headers.define_var('Timeline_urlPrefix', self._cw.datadir_url) rql = self.cw_rset.printable_rql() diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/timetable.py --- a/web/views/timetable.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/timetable.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """html calendar views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ @@ -28,7 +28,7 @@ __regid__ = 'timetable' title = _('timetable') __select__ = implements(ITimetableViews) - need_navigation = False + paginable = False def call(self, title=None): """Dumps a timetable from a resultset composed of a note (anything diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/treeview.py --- a/web/views/treeview.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/treeview.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Set of tree-building widgets, based on jQuery treeview plugin :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/urlpublishing.py --- a/web/views/urlpublishing.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/urlpublishing.py Mon Jan 18 19:21:30 2010 +0100 @@ -18,7 +18,7 @@ because of redirecting instead of direct traversal :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/urlrewrite.py --- a/web/views/urlrewrite.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/urlrewrite.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """Rules based url rewriter component, to get configurable RESTful urls :organization: Logilab -:copyright: 2007-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2007-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/vcard.py --- a/web/views/vcard.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/vcard.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """vcard import / export :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/wdoc.py --- a/web/views/wdoc.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/wdoc.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """inline help system, using ReST file in products `wdoc` directory :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/workflow.py --- a/web/views/workflow.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/workflow.py Mon Jan 18 19:21:30 2010 +0100 @@ -4,7 +4,7 @@ * workflow entities views (State, Transition, TrInfo) :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/xbel.py --- a/web/views/xbel.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/xbel.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """xbel views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/views/xmlrss.py --- a/web/views/xmlrss.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/views/xmlrss.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """base xml and rss views :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/webconfig.py --- a/web/webconfig.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/webconfig.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """common web configuration for twisted/modpython instances :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 web/webctl.py --- a/web/webctl.py Mon Jan 18 19:05:08 2010 +0100 +++ b/web/webctl.py Mon Jan 18 19:21:30 2010 +0100 @@ -2,7 +2,7 @@ web configuration :organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 wsgi/__init__.py --- a/wsgi/__init__.py Mon Jan 18 19:05:08 2010 +0100 +++ b/wsgi/__init__.py Mon Jan 18 19:21:30 2010 +0100 @@ -7,7 +7,7 @@ WSGI corresponding PEP: http://www.python.org/dev/peps/pep-0333/ :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 wsgi/handler.py --- a/wsgi/handler.py Mon Jan 18 19:05:08 2010 +0100 +++ b/wsgi/handler.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """WSGI request handler for cubicweb :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 wsgi/request.py --- a/wsgi/request.py Mon Jan 18 19:05:08 2010 +0100 +++ b/wsgi/request.py Mon Jan 18 19:21:30 2010 +0100 @@ -5,7 +5,7 @@ http://www.djangoproject.com/ :organization: Logilab -:copyright: 2008-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2008-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ diff -r 3c6569be1f86 -r 6c4f109c2b03 xy.py --- a/xy.py Mon Jan 18 19:05:08 2010 +0100 +++ b/xy.py Mon Jan 18 19:21:30 2010 +0100 @@ -1,7 +1,7 @@ """map standard cubicweb schema to xml vocabularies :organization: Logilab -:copyright: 2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:copyright: 2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """