doc/book/pyramid/quickstart.rst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Wed, 09 Nov 2016 16:14:17 +0100
changeset 11888 0849a5eb57b8
parent 11631 faf279e33298
child 11945 ef6b18c56b5a
permissions -rw-r--r--
[rtags] Allow to 'derive' rtags Since some releases, rtags (structure underlying uicfg) have selector and may be copied using something like: new_rtags = deepcopy(original_rtags) new_rtags.__module__ = __name__ new_rtags.__select__ = custom_selector The problem is that starting from that, both rtags wil diverge and changes in original_rtags won't be considered, while we usually want to set a few specific rules only in new_rtags. To fix this problem, this cset introduces the notion of "derivated/parent" rtag, eg: new_rtags = original_rtags.derive(__name__, custom_selector) Beside easier copying, when using the above method changes in original_rtags which are not overriden by new_rtags will be considered since it only hold its specific rules but look among its parent chain for non-found keys. Along the way, flake8 unittest_rtags. Closes #16164880

Quick start
===========

.. highlight:: bash

Prerequites
-----------

-   Install everything (here with pip, possibly in a virtualenv)::

        pip install pyramid-cubicweb cubicweb-pyramid pyramid_debugtoolbar

-   Have a working Cubicweb instance, for example:


    -   Make sure CubicWeb is in user mode::

            export CW_MODE=user

    -   Create a CubicWeb instance, and install the 'pyramid' cube on it (see
        :ref:`configenv` for more details on this step)::

            cubicweb-ctl create pyramid myinstance

-   Edit your ``~/etc/cubicweb.d/myinstance/all-in-one.conf`` and set values for
    :confval:`pyramid-auth-secret` and :confval:`pyramid-session-secret`.
    *required if cubicweb.pyramid.auth and pyramid_cubiweb.session get
    included, which is the default*

From CubicWeb
-------------

-   Start the instance with the :ref:`'pyramid' command <cubicweb-ctl_pyramid>`
    instead of 'start'::

        cubicweb-ctl pyramid --debug myinstance

In a pyramid application
------------------------

-   Create a pyramid application

-   Include cubicweb.pyramid:

    .. code-block:: python

        def includeme(config):
            # ...
            config.include('cubicweb.pyramid')
            # ...

-   Configure the instance name (in the .ini file):

    .. code-block:: ini

        cubicweb.instance = myinstance

-   Configure the base-url and https-url in all-in-one.conf to match the ones
    of the pyramid configuration (this is a temporary limitation).