20111220 ======== Hier ist noch ein Schöner:: 201112-19 09:22:50 ERROR base : Internal Server Error: /api/dsbe/Persons/22659 Traceback (most recent call last): File "/var/snapshots/django/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/var/snapshots/lino/lino/ui/extjs3/ext_ui.py", line 1452, in api_element_view datarec = elem2rec_detailed(ar,ah,elem) File "/var/snapshots/lino/lino/ui/extjs3/ext_ui.py", line 236, in elem2rec_detailed "len(id_list) is %d while ar.total_count is %d" % (len(id_list),ar.total_count) AssertionError: len(id_list) is 7777 while ar.total_count is 7778 201112-19 09:23:12 ERROR base : Internal Server Error: /api/dsbe/Persons/22659 Das passiert beim Ermitteln der Record-Ids für die Buttons `first`, `last`, `prev` und `next`:: first = None prev = None next = None last = None recno = 0 if ar.total_count > 0: # this algorithm is clearly quicker on reports with a few thousand Persons id_list = list(ar.queryset.values_list('pk',flat=True)) assert len(id_list) == ar.total_count, \ "len(id_list) is %d while ar.total_count is %d" % (len(id_list),ar.total_count) first = id_list[0] last = id_list[-1] try: i = id_list.index(elem.pk) except ValueError: pass else: recno = i + 1 if i > 0: #~ prev = ar.queryset[i-1] prev = id_list[i-1] if i < ar.total_count - 1: #~ next = ar.queryset[i+1] next = id_list[i+1] Lustig ist, dass die Situation mehrmals hintereinander kommt. Kann es sein, dass die Länge in irgendeinem QuerySet gecached ist? Keine weiteren Records, Detail wird geschlossen ----------------------------------------------- Das war ein eher dringender Bug: wenn man z.B. in :menuselection:`Konfigurierung --> Eigenschaften --> Fachkompetenzen` das Detail eines Records anfragte, kam sogleich die Meldung "Keine weiteren Records, Detail wird geschlossen". Das lag daran, dass das Detail-Fenster die Parameter mt und mk nicht richtig anfragte. Die Standardbreite einer ForeignKey-Kolonne ------------------------------------------- :attr:`lino.modlib.contacts.models.Contact._lino_preferred_width` Noch Bugs --------- - Seit gestern funktionierte der Kalender nicht mehr. Also dass ich request2kw() vom UI zum ActionRequest verschoben hatte, war nicht bloß weil's schöner aussah. Die neue Lösung gefällt mir: ReportActionRequest und ViewActionReportRequest sind jetzt eine einzige Klasse ListActionRequest - Personensuche nach Alter funktionierte nicht: wenn man eine Altersgrenze angab, wurden überhaupt keine Personen gefunden. Check-in, Release :lino:`/releases/2011/1.3.1` und Feierabend.