Changes 2019 in Lino XL¶
2019-05-07¶
Released Lino XL 19.5.0 to PyPI.
Removed the changed handler for lino_xl.lib.cal.Event.end_time
because it was irritating.
Released Lino XL 19.5.1 to PyPI.
Minor changes in lino_xl.lib.cal
:
The new calendar views are now visible for all applications (no longer only presto).
The required_roles for the new calendar views were not yet set as it should. In
general you must be lino_xl.lib.office.OfficeUser
or
lino_xl.lib.office.OfficeOperator
(or both). Note that avanti overrides
the required_roles of lino_xl.lib.cal.CalendarView
because they have
different rules: only users who may see client names may see the calendar.
The default calendar view is now monthly instead of weekly.
Restored Event.__str__()
from previous version.
Renamed some classes (e.g. “CalView” became “CalendarView”).
2019-05-06¶
New field invoicing.Plan.min_date
can be used to specify a start date.
lino_xl.lib.invoicing
now injects two fields invoicing_min_date
and invoicing_max_date
to the voucher_model
. These are set for every
generated invoice to those specified in the invoicing plan. They can be printed
on the invoice so the customer sees the invoiced period.
Fixed a bug in VoucherTypes.get_for_model
which caused it to simply
return the first possible candidate. But it is possible to have two voucher
types which use the same model. It is now an error to call
VoucherTypes.get_for_model
(or
VoucherTypes.get_for_table
) with a model (or a table) for
which we don’t have a unique voucher type.
2019-05-03¶
The new calendar view seems ready for a first presentation. Congratulations to Tonis and Hamza who implemented this mostly without any assistance by Luc.
Quite some changes in the lino_xl.lib.healthcare
plugin. This plugin
is in proof-of-concept phase and not yet used in any production site.
2019-05-02¶
Lino now handles topics with an empty reference more elegantly
lino_xl.lib.topics.Topic
with emptyref
field.Orders are now printable.
2019-05-01¶
Changes in lino_xl.lib.invoicing
: Added a new model Area
to be
configured by the site admin via . New field Plan.area
. Removed field
Plan.journal
(which is replaced by Area.journal
). Removed the
StartInvoicingForJournal
action which anyway wasn’t used by anybody.
The detail_layout
of lino_xl.lib.ledger.Journals
is now
specified as a string. Used by lino_presto.lib.ledger
which overrides
the class.
2019-04-22¶
lino_xl.lib.orders
no longer stores the room per order but expects a
field room per journal. Order items and Workers of an order are now deleted in
cascade with the order.
2019-04-17¶
Fixed order of the lino_xl.lib.cal.Events
table.
(#2969) :
A few modifications for Lino Noi
lino_xl.lib.tickets
:
Renamed state “Started” to “Working”.
lino_xl.lib.tickets
had ‘lino_noi.lib.noi’ in needed_plugins.
Bullshit. Removed.
Renamed TicketsNeedingFeedback
to TicketsNeedingMyFeedback
.
And the labels of the two feedback tables are now more similar to the internal $
2019-04-15¶
The new lino_xl.lib.cal.DailyView
table shows a
basic calendar navigator. Looks promising, though there is more to do. For
example we also need a WeeklyView and a MonthlyView. They will share the same
navigator.
This change requires the newest version of Lino as well.
The table is currently visible only in Lino Presto.
2019-04-11¶
Override the visible text for the lino_xl.lib.vat.VatAccountInvoice.your_ref
field for the purchase invoice. And add this field to the grid panel.
Released Lino XL 19.4.0 to PyPI.
2019-04-10¶
The lino_xl.lib.orders.Order.room
field is no longer nullable.
When adding the workers of an order as guests of a calendar entry, Lino no
longer sorts them by name. This behaviour came from lino_xl.lib.courses
where it is useful, but the workers of an order should remain in their natural
order.
2019-04-09¶
New property lino_xl.lib.vat.VatRegime.needs_vat_id
. The chooser
for lino_xl.lib.contacts.Partner.vat_regime
now also depends on
whether the partner has a VAT id or not. The choicelist of the vat_regime
field of a voucher wasn’t yet filtered. New function
lino_xl.lib.vat.get_vat_regime_choices()
used by both choosers.
The lino_xl.lib.vat.VatRegimes
table now shows all these properties.
Changes in lino_xl.lib.eevat
: removed regime “Private person
(reduced)”. The regime “Private person” can now be used for any area.
Selling to private persons in other countries was not yet allowed.
In lino_xl.lib.vat
I changed declaration_plugins
to declaration_plugin
because I realized that you
can have only one declaration plugin.
New config setting eu_country_codes
, and the list is now complete
(at least at the moment of writing this).
lino_xl.lib.sepa.Payable
now gives a more comprehensible warning
“No trade type for {}” when the trade type for the voucher is undefined.
I reviewed the demo
fixture of lino_xl.lib.contacts
. It has
become more readable. It no longer creates cities which don’t exist (and
instead omits partners in these cities). I removed München and Kelmis
because these are difficult to lookup because their name varies with the
languages used on the site. Each contact now has at least a city.
The demo
fixture for lino_xl.lib.vat
now sets fictive VAT
numbers for each company.
Minor changes in the ordering of menu commands.
New property lino_xl.lib.vat.VatColumn.common_account
and a new data
checker to verify that every VAT column has an account configured if it
requires one.
2019-04-03¶
Invoice generators have a new attribute default_invoiceable_qty
whose default
value is 1
(as it was until now, but now we can change the hard-coded
default value per application).
New field lino_xl.lib.cal.EventType.default_duration
per calendar entry
type. If a calendar entry has a type (event_type
) and if that type has a default duration,
Lino will change the end_time
of an entry when the start_date
is changed (and the start_time
when the end_date
)
New field lino_xl.lib.cal.EventType.default_duration
.
If a calendar entry has a type (event_type
) and if that type has a
default duration (EventTypedefault_duration
), Lino will change the
end_time
of an entry when the start_date
is changed.
The lino_xl.lib.products
plugin adds one menu entry per product type
(lino_xl.lib.products.ProductTypes
).
When doing this, until now, it used the label of the
lino_xl.lib.products.ProductType.table_name
, now it uses the
lino_xl.lib.products.ProductType.text
.
The (description
) of an
order item is now a single-line CharField
(not a multi-line
RichTextField
)
2019-03-28¶
Limit the choices of
Partner.vat_regime
depending on the Partner.country
and the available lino_xl.lib.vat.VatRules
. (#2924)
Changes in lino_xl.lib.orders
and lino_xl.lib.cal
for #2776:
lino_xl.lib.orders.Order.project
andlino_xl.lib.orders.Order.invoice_recipient
were missing in OrderDetail.lino_xl.lib.orders.Order.update_all_guests
caused a UNIQUE error because the workers were being suggested twice.Optimized the layout of
lino_xl.lib.cal.EventDetail
When a user manually creates an event on a controller (
lino.modlib.gfks.Controllable
), then Lino now also callslino_xl.lib.cal.RecurrenceSet.before_auto_event_save()
andlino_xl.lib.cal.EventGenerator.auto_cal_event_type()
(if the controller is an instance of these)The Explorer menu now shows the
lino_xl.lib.products.PriceFactors
.
2019-03-27 (v19.3.3 and v19.3.4)¶
Minor changes in lino_xl.lib.eevat
: VAT rate 20% (not 21%). Removed
regime “Delay in collection”.
Released Lino XL 19.3.3 and 19.3.4 to PyPI. In 19.3.3 lino_xl.lib.eevat
failed.
2019-03-19¶
Released Lino XL 19.3.2 to PyPI.
2019-03-18¶
New config setting
lino_xl.lib.vat.Plugin.declaration_plugins
.
2019-03-17¶
Added a new plugin
lino_xl.lib.eevat
. This is a quickly adapted copy of bevat where we just removed the regimes that make no sense in Estonia. The declaration itself will need more work.
2019-03-16¶
lino_xl.lib.bevat
has been cleaned up and documented because it will serve as template for the newlino_xl.lib.eevat
plugin.
2019-03-15¶
lino_xl.lib.vat
can now be used without also using any oflino_xl.lib.bevat
orlino_xl.lib.bevats
. It defines a VAT regimenormal
and a VAT rule which allows everything.lino_xl.lib.ledger.MatchRule
now hasallow_cascaded_delete
set to “journal” (when you delete a journal, related match rules should delete automatically)
2019-03-11 (v 19.3.1)¶
Moved read_card_data_from_file()
out of load_card_data()
.
This is just an internal change used for writing test cases.
Released XL 19.3.1 to PyPI.
2019-03-07 (v 19.3.0)¶
Released XL 19.3.0 to PyPI.
2019-03-04¶
Add new action lino_xl.lib.ledger.Voucher.changing_state()
to the lino_xl.lib.ledger.Voucher
. This action
changes the invoice between the two Registered and Draft states. This action can be trigger using the Ctrl+X keyboard
shortcut. It is defined in the lino_xl.lib.ledger.ui.Vouchers.get_actions_hotkeys()
.
2019-02-27¶
Courses with a Course.max_date before today are now longer available as choices when creating a new enrolment. As it was already before for Course.enrolments_until
2019-02-25¶
Fixed #2811 (UnicodeError when re-reading a beid card where the diff contained non-ascii chars).
2019-02-20¶
It is now possible to easily redefine the detail layout for
lino_xl.lib.cal.Rooms
by overriding
lino_xl.lib.cal.RoomDetail
2019-02-13¶
lino_xl.lib.ledger.Voucher.get_wanted_movements()
now has a default
implementation which returns no movements.
2019-02-12¶
More changes in the lino_xl.lib.orders
plugin which is still work in
progress for Lino Presto.
2019-02-09¶
Released Lino XL 19.2.0 to PyPI.
2019-02-08¶
Changes in lino_xl.lib.vat
and lino_xl.lib.ledger
to use the new
“volumes” feature (library uploads). For #2826.
Concretely:
The detail of a
lino_xl.lib.vat.VatAccountInvoice
now shows theUploadsByController
slave table.But what if an application wants to use
lino_xl.lib.vat
withoutlino.modlib.uploads
? e.g. Lino Tera. Quick fix : add plugins also to these applications.And
lino_xl.lib.vat.VatAccountInvoice
should implement this method by asking the journal. New fieldlino_xl.lib.ledger.Journal.uploads_volume
.Every voucher is now potentially an upload controller:
ledger.Voucher
inherits fromUploadController
.Added a new field
lino_xl.lib.ledger.Journal.uploads_volume
, and theUploadController.get_uploads_volume()
for a voucher returns this.
2019-02-03¶
In lino_xl.lib.beid
we moved some functionality from
BeIdCardHolder
into a separate new mixin SSIN
which can be
used also when the plugin is not installed. Existing applications don’t need
to adapt. Converted docstrings to prosa docs.
More changes in the lino_xl.lib.orders
plugin which is still work in
progress.
2019-01-31¶
In lino_xl.lib.products
we now have a new model PriceRule
and a
new choicelist PriceFactors
(taken from lino_tera.lib.courses
).
For Lino Tera this means a minor data migration: change “courses.PriceRule”
to “products.PriceRule” in the restore.py
field.
We have a new plugin lino_xl.lib.orders
that is being developed for
Lino Presto. Not yet stable.
2019-01-24¶
The field lino_xl.lib.contacts.Role.type
had a verbose name “Role”
which was useless and irritating because “Function” is clear enough and the
same word as in .
Optimized the detail layout of
lino_xl.lib.ledger.Journal
and
the library base class for partner details (lino_xl.lib.contacts.PartnerDetail
).
Fixed #2813 (the summary of lino_xl.lib.blogs.LatestEntries
inserted an additional line break when rendering links to database objects using
a memo command. Also the German translation did not correctly show date and author
of a blog entry in this summary.
2019-01-22¶
Fixed a little bug in lino_xl.lib.vat
: when you created an invoice in a
journal with edit_totals and leave the total field empty, Lino said
“TypeError: unsupported operand type(s) for -: ‘NoneType’ and ‘Decimal’”
Added intersphinx_urls, srcref_url and doc_trees settings to the main module so that other doctrees can link to the docs.
Released version 19.1.1
2019-01-21¶
The change notes for Lino XL docs are now separated from those of Lino core docs.
New plugin attribute lino_xl.lib.tim2lino.Plugin.timloader_kwargs
to be
used e.g. as follows:
def setup_plugins(self):
self.plugins.tim2lino.configure(
languages='de fr',
timloader_kwargs=dict(etat_registered="C"))
super(Site, self).setup_plugins()
This new feature is not tested because the reason was just a missing “u” prefix.
2019-01-18¶
The categories (lino_xl.lib.products.ProductCat
) now have a field
product_type
(i.e. all
applications that depend on it need to migrate). This is because I realized
that categories are not useless. The difference between the “category” and the
“type” of a product is that end-users can edit the former while the latter are
to be provided by the application developer.
I fixed a subtle bug in the lino_xl.lib.ledger.Plugin.setup_main_menu()
method: the Accounting menu came before the Sales menu because a menu for
“ledger” was being created before looping over the journal groups. I removed an
unused plugin attribute intrusive_menu
(whether a journal group is
“intrusive” or not now depends on its menu_group
).
2019-01-17¶
The ref_max_length
for
lino_xl.lib.ledger.Journal
is now 5 instead of the default 40.
Printing invoices was broken (since we changed the default build method from
appy to weasy). It said “No template found for
sales/VatProductInvoice/default.weasy.html, excerpts/default.weasy.html”. We
created a new template sales/VatProductInvoice/default.weasy.html
(in
the config
directory of lino_xl.lib.sales
).
2019-01-04¶
We released XL 19.1.0
The fields addr2
and prefix
are now mostly hidden in forms. We
consider them obsolete. lino_xl.lib.contacts
.