Wednesday, July 20, 2016¶
I finished adapting the test suites to my changes of the last days.
The event type “System note” is now being created in the demo
fixture of lino_xl.lib.notes
(and not in std
).
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 Unprintable AccountingPeriod(pk=6L,error=TypeError('coercing
to Unicode: need string or buffer, NoneType found',)
. So I wrote the
following script:
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
__str__()
oflino_xl.lib.accounting.models.AccountingPeriod
.Wrote a test case for this in
lino_cosi.projects.std.tests.test_cosi
Created #1062.
‘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.
Incorrect links to source code of modules¶
The links to the source code of in lino_book
modules did not
work because the srcref_url
in the lino_book
module was
not correctly set.
I realized this problem after Grigorij had stumbled over it
after reading in my blog about
lino_book.projects.polly.settings.demo
. He wrote “I don’t find
in lino_book/projects/polly/settings/demo.py any strings that set
DEBUG. There aren’t DEBUG configuration as I saw.” If the link would
not have been broken, he would probably have been able to understand
what I was talking about.
Add checkdata
to scheduler¶
The linod
command now also runs checkdata
once per
day. 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
configurable.
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.