==================================== 20131224 (Tuesday, 24 December 2013) ==================================== How to make money with Lino --------------------------- I made more changes to :lino:`/about/license`. Especially I added another way to make money with Lino (which existed before, but I didn't mention it). Groupware à la Lino ------------------- :ref:`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 :mod:`lino_faggio.migrate` since a first :ref:`faggio` 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 }