:date: 2017-09-12

===========================
Tuesday, September 12, 2017
===========================

Two problems after release@cpaschatelet
=======================================

I continue to like the idea (:doc:`0904`) of having no phantom row in
tables that have a (+) button (IOW an insert_layout), but there is at
least one place where it disturbs: when users used a double-click to
that the phantom row from within a slave table. New attribute
:attr:`no_phantom_row <lino.core.tables.Tables.no_phantom_row>`.  But
I realized that the only real solution to Lydia's problem would be a
new argument in the AJAX call where the grid component tells Lino
whether it is a main component (with toolbar) or a slave panel in a
detail window (without toolbar).

`cal.Events` was using two variables `pending_states` and
`fixed_states` when `observed_event` was `EventEvents.stable`
`EventEvents.panding`.  But these lists of states were being filled
(using `EntryStates.filter(fixed=False)`) at *module* scope, i.e. when
models were getting imported. That might have caused some troubles for
them: J'ai trouvé une anomalie pour le filtrage des rendez-vous quand
un "Évènement observé:" est spécifie.


Adapting test suites
====================

I released :mod:`commondata.ee` version 0.0.4 because version 0.0.1
failed on Python 3. Versions 0.0.2 and 0.0.3 were never released to
PyPI due to misunderstandings with the Trove classifiers ("BSD
License" must now have a capital L and natual language estonian
doesn't exist).

I removed the :attr:`is_local_project_dir` Site attribute because it
is no longer needed. The local config dir is always a subdirectory
:xfile:`config` of the :attr:`site_dir
<lino.core.site.Site.site_dir>`

The solution for :ticket:`1296`
===============================

Finally I found the solution for :ticket:`1296`!  The problem occurred
during the Python3 subprocess spawned by appypod when converting the
generated odt file to pdf.  The problem occurred only when running our
test using :command:`setup.py test`.

It was because somehow the :envvar:`PYTHONPATH` of the calling Python
2 process was inherited to the Python 3 process given by
`pythonWithUnoPath`.  That caused the Python 3 process to import
modules of Python 2. And especially `future` doesn't like being
imported by a Python that didn't install it).  I have no proven
explanation, but my guess is that :command:`setup.py test` sets the
:envvar:`PYTHONPATH`.

:meth:`atelier.test.DocTestCase` now explicitly removes
:envvar:`PYTHONPATH` from the environment of the child process.
      


Kontoauszüge erfassen
=====================

- 'DueMovement' object has no attribute 'as_summary_item'
- quick search fields for financial voucher items
- Activate Merge action