Wednesday, July 7, 2021

I worked on #4245 (Lino deleted the guests from my event) .

The problem happens only when can_edit_guests_manually() returns False. It seems that can_edit_guests_manually() should not base its decision on the state of the event. But when then do we have EntryState.fill_guests

In amici1, log in as robin, create an activity, check a weekday, hit update_events: Lino says “No automatic calendar entries because no entry type is configured.”

The std fixture of lino_xl.lib.cal now sets the event type “Meeting” as SiteConfig.default_event_type.

lino_xl.lib.Course.update_cal_event_type() now returns SiteConfig.default_event_type if the activity has no line (or if the line has no event_type).

I replaced the can_edit_guests_manually() of lino_xl.lib.cal.Event by a new database field lino_xl.lib.cal.Event.guests_edited. This is an invisible field, it is similar to lino_xl.lib.vat.VatDocument.items_edited

Manual tests

  • In Lino Amici, try to make Lino “accidentally” delete my manually entered guests.

  • In Lino Avanti: create a course with 2 enrolments. have it generate some lessons. check that the enrolments have become guests. manually edit the guest list in one event: add an extra guest. Add one new enrolment and remove one enrolment from the course, then run update_guests on the course. Check whether the guests of the first event have remained unchanged while the second event has received the new guest.

The manual tests pass. I run the test suite, which will need some changes because there is a new database field.