Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
2018¶
December¶
Fixed #2710 in lino.modlib.extjs
Checking date change. When
lino.modlib.system.SiteConfig.next_partner_id
was inadvertently set to
the id of an existing Company, creating a Person caused Lino to overwrite the
data of the company instead of noticing the problem.
(20181226) Removed the pisa build method for printable documents. Lino Così
now uses lino_xl.lib.weasyprint
as the default build method. You will get
an error at the data migration if there are objects (e.g. calendar entries)
pointing to this print method. In that you can probably simply deactivate the
following line in create_cal_event()
:
kw.update(build_method=build_method)
Released Lino Così 18.12.1
(20181225) Installing Lino Così with the pip command now works with Python3 as described in Install your Lino developer environment.
Fixed #2715 in lino_xl.lib.contacts
.
(20181226) Removed the pisa build method for printable documents. Lino Così
now uses lino_xl.lib.weasyprint
as the default build method.
Released Lino Così 18.12.1
(20181225) Installing Lino Così with the pip command now works with Python3 as described in Install your Lino developer environment.
(20181224) fixed #2773 in lino_xl.lib.beid
: when calling
eidreader while no id card was inserted into the reader sometimes caused a
server error message instead of just telling the user that there was no card.
(20181222) lino_xl.lib.topics
: Interest
now has
allow_cascaded_delete
set
to ["partner"]
. IOW the interests of a partner should not prevent a user
from deleting the partner. If the user decides to delete a partner and some
existing Interest
refers to the partner, it should be deleted
automatically.
(20181221) lino_xl.lib.beid
: New error message Invalid
urlhandler_prefix {} (must end with '://')
when urlhandler_prefix
does not end with "://"
.
2018-12-18¶
Released Lino version 18.12.5.
Lino was not yet installable using pip under Python 3. Now it is (hopefully).
A new command-line option --quick
has been added to restore.py
.
The idea was that calling Model.full_clean()
on every restored database
row might make things very slow. This was used to try #2755 on the
field. First tests on real data indicate that it doesn’t give very much.
Released XL version 18.12.5
The lino_xl.lib.xl.Priorities
choicelist was moved from
lino_xl.lib.tickets
to lino_xl.lib.xl
so that it can be used by
any plugin of the XL. The cal.Priority
model and its FK in
cal.Event
have been removed. Added a
choicelist field lino_xl.lib.cal.Component.priority
pointing to
Priorities
. Priorities can’t be
configured using the web interface any more, this is now done using a local
choicelists module.
Applications using lino_xl.lib.cal
must do a database migration:
def create_cal_event(id, modified, created, start_date, start_time, end_date, e$
...
#kw.update(priority_id=priority_id)
...
def main(args):
...
#execfile("cal_priority.py", *args)
...
The get_table_summary()
of lino_xl.lib.blog.LatestEntries
now
also returns an etree element (instead of a string with HTML).
2018-12-13¶
Released Lino 18.12.2
The new lino.modlib.summaries.Summarized
mixin didn’t yet update its
fields during checkdata
. And I had no pangs of conscience to
completely review the API at that occasion: Summarizable becomes Summarized,
Summary becomes MonthlySlaveSummary, a new attribute delete_them_all
to make sure the developer
knows what it means.
lino.utils.jsgen.py2js()
now has a keyword argument “compact” that
defaults to True. Because the default behaviour of py2js returns a massive
1-line response which makes it almost impossible to find where an issue in the
json is if there is some problem. In the react renderer im having it using the
lino.core.site.Site.is_demo_site
value to determine if it wants to have
it be compact or not.
Released XL 18.12.3
2018-12-12¶
Released version 18.12.1.
#2745 (Summaries without master) caused some changes in
lino.modlib.summaries
:Added a new type of summary: a
lino.modlib.summaries.Summarizable
. Models inheriting this have a lightning button to the ticket and makes the summary fields get updated duringcomputesummaries
, but unlike it subclasses the objects are not considered temporary data (i.e. not being deleted duringcomputesummaries
.Actions for updating summaries now have a “∑” as button_text instead of a ‘lightning’ icon.
First usage example is
lino_noi.lib.tickets.Ticket
which now shows the total work time (one sum per reporting type) of a ticket.The summary panel of SessionsByTicket no longer has a ▶ button for starting a session from ticket. Because the same button exists already in the workflow buttons where it is more intelligent because the ▶ cheanges to ■ when the user has an open session on this ticket.
#2744 (How to use locally injected fields in a layout) : new method
lino.core.model.Model.get_layout_aliases()
.Fixed an unreported bug: the
checksummary
task was maybe not being run daily bylinod
.A solution for #2746. The virtual field
lino.core.model.Model.overview
was being used for two different things: (1) in detail layouts to create customizable “overview panels” and (2) in table layouts to create a “clickable description”, functionally equivalent to double clicking on the row.The latter use should now be done with the new virtual field
lino.core.model.Model.detail_link
whose verbose_name is automatically set to the model’s verbose_name. This is done during startup and probably you cannot override this.The
lino.core.model.Model.overview
field no longer has a verbose_name, so application code no longer needs to set it explicitly to None usingdd.update_field()
.
Released XL version 18.12.1
lino_noi.lib.tickets.Ticket
now shows the total work time (one sum per reporting type) of a ticket.The summary panel of SessionsByTicket no longer has a ▶ button for starting a session from ticket. Because the same button exists already in the workflow buttons where it is more intelligent because the ▶ cheanges to ■ when the user has an open session on this ticket.
2018-12-11¶
Released version 18.12.0
We are still working on #2741 (Have book test pass with PyPI version of lino and lino_xl).
2018-12-10¶
Released version 18.11.0
The default value for verbose_name_plural
of a
lino.core.workflows.Workflow
is now more intelligent: if the workflow
is being used on a single model (which is the case for most workflows), the
text is now “{} states” where {} is the model’s verbose name.
lino.modlib.memo.parser.Parser.register_django_model()
now says an understandable
error message “Duplicate renderer for %s” when an application tries to redefine
another renderer on the same model.
lino.modlib.uploads
: the summary of AreaUploads now supports being
shown in a grid. It shows contant as a single paragraph (instead of an UL and
adds an action for opening the salve table in a separate window.
Fixed #2731 in lino_xl.lib.cal
:
lino_xl.lib.cal.MyTasks
no longer hides open tasks that were started
in the past. PublishEvent is now allowed for a meeting that lies in the past.
lino_xl.lib.courses
: the Explorer menu now shows courses.CourseStates
November 2018¶
#2682 Optionally allow dashboard items with no data to display
#2670 Leaving a combobox before its store is loaded
#2668 Grid keyboard nav optimizations
#2660 Configure the choices of a TimeField
#2648 Show toolbar list actions in display_type “html”
#2646 Cell cursor jumps to home after inserting a line
#2644 Show current state’s button_text in workflow_buttons
#2632 Hovering over the column header of a grid doesn’t display the help_text
#2497 Comboboxes sometimes show the value instead of the text (#2628 ForeignKey fields are not rendered correctly when detail loads first time)
#2623 Inconsistent meaning of Ctrl-S and Enter
#2596 Search field is disabled by loadmask
#2577 Row-level edit locking
#2544 SiteSearch fails when it finds a name containing “&”
2018-10-30¶
Database changes
Subclasses of
lino.mixins.refs.Referrable
now always have max_length=200.
Internal changes:
release tags in 18.8 were missing in the git repo because atelier did not yet push them.
New model mixin
lino.mixins.refs.StructuredReferrable
.New model mixin
lino.modlib.users.UserPlan
.plain html tables now use
class="text-cell"
instead of a hard-coded set of attributesalign="left"
.The
lino.core.renderer.HtmlRenderer.table2story()
method now yields a sequence of elements instead of returning a single one.We have a new method
lino.core.requests.BaseRequest.show_story()
which is used in the template for the report (accounting/Report/default.weazy.html
).in
lino.api.doctest
, show_sql_queries and show_sql_summary no longer call reset_sql_queries.we continued to improve the documentation
lino.api.doctest.show_sql_summary()
now supports INSERT INTO and DELETE FROM statements. It now uses sqlparse.
New features visible to end-users:
A new implementation of the Accounting Report.
sheets.Report
replaces theaccounting.AccountingReport
. It now includes subtotals, analytic accounts balances, balance sheet and income statement. It is no longer a virtual table but alino.modlib.users.UserPlan
.Optimizations in
lino_xl.lib.cal
OverdueAppointments
: the default view no longer includes today, it stops yesterday. Because today’s appointments are shown bylino_xl.lib.cal.MyAppointmentsToday
.
2018-08-31¶
Version 18.8 was the first release for which pip install worked. At least under Python 2.
Released packages: lino
, lino_xl
, lino_cosi
,
lino_noi
, lino_tera
, lino_amici
,
lino_avanti
, lino_welfare
, lino_vilma
,
lino_care
.
There were many changes… we just didn’t collect descriptions of them yet.