Wednesday, July 20, 2016¶
I finished adapting the test suites to my changes of the last days.
TypeError: coercing to Unicode: need string or buffer, NoneType found¶
I received above error message from a production server and tried to
reproduce it. It comes when I select
to Unicode: need string or buffer, NoneType found',). So I wrote the
from lino.api.shell import * obj = ledger.AccountingPeriod.objects.get(pk=6) print obj
And running it gave:
$ python manage.py run 20160720.py Traceback (most recent call last): ... File "20160720.py", line 3, in <module> print obj File "/local/lib/python2.7/site-packages/django/utils/six.py", line 842, in <lambda> klass.__str__ = lambda self: self.__unicode__().encode('utf-8') AttributeError: 'NoneType' object has no attribute 'encode'
It comes because they created a new period with an empty ref.
I removed that bug from the
Wrote a test case for this in
‘line__topic’ is an invalid keyword argument for this function¶
And yet another little bug: #1063 (TypeError: ‘line__topic’
is an invalid keyword argument for this function). This came when
some end-user had tried to create an activity into the
lino_xl.lib.courses.ui.ActivitiesByTopic table. We must set
allow_create to False on this table because the topic of a course
is known only indirectly via the line, and we would not know which
activity line to set for a new activity.
A big set of commits¶
It has been several days that I did not commit because the test suites were broken. Now finally I can show my work to the world ;-) A series of big changesets.
linod command now also runs
checkdata once per
lino.api.dd.schedule_daily() now specifies a time for
running the daily jobs. That time is currently a hard-coded “20:00”. I
plan to move
linod into its own plugin before making this
Side effect: I added django and schedule to the default values for
auto_configure_logger_names (in different projects).
I also removed the no_local parameter from many settings files. This parameter was no longer used and silently being ignored until now. Now Lino raises a ChangedAPI exception if it happens to be still there.