20131224 (Tuesday, 24 December 2013)

How to make money with Lino

I made more changes to /about/license. Especially I added another way to make money with Lino (which existed before, but I didn’t mention it).

Groupware à la Lino

Lino Presto is already almost a groupware. Some modules are missing:

  • lino.apps.news : Newsletters
  • lino.apps.lists : Mailing lists
  • lino.apps.forums : Discussion forums

Before doing these, I think I should do certain model renames to make things easier:

  • countries: City -> Place
  • contacts: Role -> Contact, Company -> Group, CompanyType -> GroupType (and later, when all production sites have migrated: RoleType -> Role)

This is also the beginning of lino_faggio.migrate since a first Renamed “Lino Faggio” to “Lino Voga” has gone into production.

After renaming countries.City to countries.Place I understood that this is enough code change for today. But I changed already verbose_name from “Company” to “Group” and verbose_name_plural from “Companies” to “Groups”. Existing applications which want to preserve the old label can override the new default by overriding the model.

How to have landslides use typographic quotes

I just discovered Adam Zapletal’s landslides module. Coool!

Here is my first contribution: I use landslides with restructuredtext markup. I then had the problem that landslides does not convert plain quotes to typographic ones.

In docutils this is a parser option called smart_quotes.

How to tell landslides to activate that option? It seems that this kind of configuration is not yet implemented. There should be a [docutils] section in the config file.

I solved it for my by editing the source code directly. In file landslide/rst.py I find the place qhere it says:

overrides = {
    'input_encoding': input_encoding,
    'doctitle_xform': doctitle,
    'initial_header_level': initial_header_level,
    'report_level': 'quiet',
}

And I add a line to that dictionary:

overrides = {
    'input_encoding': input_encoding,
    'doctitle_xform': doctitle,
    'initial_header_level': initial_header_level,
    'report_level': 'quiet',
    'smart_quotes': 'on'  # LS 20131224
}