.. include:: /../../book/docs/shared/include/defs.rst
.. _lino.changes.2019:

====================
Changes 2019 in Lino
====================


.. contents::
  :local:

2019-03-15
==========

Release Lino 19.3.0

2019-03-15
==========

Fixed file upload dialog not closing correctly. 

2019-03-14
==========

Added ensure_csrf_cookie decorator to all entry point views in extjs.

2019-03-13
==========

Added `mobile_server_url` attr to SITE, for use in sending notification emails. 
Have MailRenderer generate urls using `actor.model.get_default_table().__name__` rather than `actor.model.__name__`
Means that the url will always point to an actor rather than a model which need to be redirected to an actor. 

2019-03-12
==========

Add a new method :meth:`Actor.get_actions_hotkeys` to enable hotkeys binding to actions on table.This method should
return a list of hotkeys.

2019-03-08
==========

Added alert_eval_js responce option, which is a js string that is evaluated 
after the alert dialog is closed.

Added Version checking, so that the server alerts the browser when it's running 
an old version of lino. 

2019-03-06
==========

Added CSS classnames to insert, detail, form and actionForm Panel for use in 
e2e testing.
Also for classnames for confirmation dialogs and main-menu, and action panel 
ok + cancel buttons.

2019-03-04
==========

Make it possible to the actions_hotkeys of a panel to set the 'shift' options.

2019-02-22
==========

Uploading files under Python 3 caused a server error :message:`Exception Value:
a bytes-like object is required, not 'str'` (:ticket:`2845`).

Released Lino 19.2.1.

Fixed a bug in which caused a UnicodeEncodeError in
:ref:`lino.specs.export_excel` on `Travis
<https://travis-ci.org/lino-framework/book/jobs/497045894#L4665>`__ and
possibly in other situations as well.

Released Lino 19.2.2.


2019-02-17
==========

Have the renderer return a js string that when eval'd reloads the dashboard,
rather than a hard-coded string.

2019-02-14
==========

Make the field's label following FileField visible :ticket:`2830`.

2019-02-12
==========

Translations for :ticket:`2834`.

2019-02-11
==========

Added a button "Close and save window" (:ticket:`2816`)


2019-02-09
==========

Released Lino 19.2.0 to PyPI.

Added two columns volume library_file in UploadsByController


2019-02-08
==========

.. currentmodule:: lino.modlib.uploads

The :mod:`lino.modlib.uploads` plugin has been extended to support
:ticket:`2826`. Until now an :class:`Upload` could represent either an uploaded
file (the original meaning) or just an entry representing some external
document to be monitored by its author, without any uploaded file. With
:ticket:`2826` we add a third possibility a "library file", i.e. a file that
has been stored on some volume using some other method than uploading.

Concretely:

- Added a new model :class:`Volume`

- Added two fields :attr:`volume` and :attr:`library_file` to the
  :class:`Upload` model.

- The insert_layout of :class:`UploadsByControler` does *not* include the
  :attr:`volume`, but instead the controller (owner) decides which volume is to
  be used.

  IOW a new method :meth:`UploadController.get_uploads_volume`.  The field
  should be hidden or at least readonly when the owner says that there is no
  volume.



2019-02-05
==========

Fixed :ticket:`2822` (Cannot create new user 'NoneType' object has no attribute 'full_value_from_object')

Fixed ActionFormPanel logic to use action.html_method.

Changed sign_in action to use POST as html_method.

2019-02-02
==========

Field values for actons with paramiers no long need to be an array with a key of 'fv'.
They now can be included in the root of the data object with the field name as the key. 

2019-01-28
==========

We fixed the :ticket:`2782` (Dashboard in Jane is slower than before).
Store has a new attribute `_disabled_fields_storefield`.

2019-01-24
==========

Changed the verbose name for :class:`lino.modlib.printing.BuildMethods` from
"Build method" to "Print method".


2019-01-22
==========

:mod:`lino.sphinxcontrib.help_text_extractor` caused a Sphinx warning
:message:`RemovedInSphinx20Warning: app.info() is now deprecated. Use
sphinx.util.logging instead.` (fixed)

Added intersphinx_urls, srcref_url and doc_trees settings to the main module so
that other doctrees can link to the docs.

2019-01-16
==========
I fixed :ticket:`2785` (Django 2.1.5 under Py3 restore.py fails saying
disable_constraint_checking).
For the test :class:`lino.utils.djangotest.RestoreTestCase`, we need to make
sure that foreign_keys is set to OFF before we actually start the restore.

2019-01-10
==========

I fixed :ticket:`2784` (Some actions are duplicated).  The show action of
:class:`lino_welfare.modlib.integ.ActivityReport` was duplicated in
:attr:`Actor._actions_list` but nobody ever complained because it was not
visible. But since I wrote a test case in :ref:`welfare.specs.integ` which
verifies that the ticket is fixed, I must now do a release on PyPI to get the
test suite on :ref:`travis` passing again.

2019-01-07
==========

We released Lino 19.1.2

Immediately after the release we discovered a bug in Lino 19.1.2 which caused a
missing |insert| button in a critical place in Tera.  So we did a quick bugfix
release 19.1.3.

2019-01-04
==========
We released Lino 19.1.0

New :class:`lino.core.fields.TableRow`.

The message "Form fields may not be submitted with invalid values" says now
"Please check all fields of this form before submitting."
(:xfile:`linoweb.js`)

