Tuesday, August 1, 2017¶
Traceback (most recent call last): File "/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 380, in get return self.dispatch(request, *args, **kwargs) File "/env/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch return handler(request, *args, **kwargs) File "/repositories/lino/lino/modlib/extjs/views.py", line 577, in get for row in ar.sliced_data_iterator] File "/repositories/lino/lino/core/store.py", line 1122, in row2list v = fld.full_value_from_object(row, ar) File "/repositories/lino/lino/core/store.py", line 374, in full_value_from_object return self.vf.value_from_object(obj, ar) File "/repositories/lino/lino/core/fields.py", line 497, in value_from_object return m(obj, ar) File "/repositories/xl/lino_xl/lib/excerpts/mixins.py", line 168, in printed ex = self.printed_by File "/env/local/lib/python2.7/site-packages/django/db/models/fields/related_descriptors.py", line 184, in __get__ rel_obj = self.get_object(instance) File "/env/local/lib/python2.7/site-packages/django/db/models/fields/related_descriptors.py", line 159, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) File "/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 380, in get self.model._meta.object_name DoesNotExist: Excerpt matching query does not exist. [Tue Aug 01 00:03:29.791879 2017] [authz_core:debug] [pid 3114:tid 140152080881408] mod_authz_core.c(809): [client 127.0.0.1:51489] AH01626: authorization result of <RequireAny>: granted, referer: http://lino-spz:8080/
I fixed it locally with a
from lino.api.shell import * qs = sales.VatProductInvoice.objects.filter(printed_by_id__isnull=False) for o in qs: o.printed_by = None o.save()
The problem is probably reproducible as follows:
print a sales invoices (so that its printed_by field is non-empty)
make a database snapshot
comment out the line with excerpts_excerpt.py
restore the snapshot
try to view your invoice using the web interface
Do we need a command for repairing broken foreign keys (as we have a
lino.modlib.gfks.BrokenGFKs table)? I’d say no because I
consider this situation rather a case of database corruption.
Note that printed_by (defined by
lino_xl.lib.excerpts.Certifiable) is a nullable FK, so we
don’t need to be “careful” when testing whether it is None or not. The
following code was too careful:
if self.printed_by_id is None: return '' ex = self.printed_by if ex is None: return ''
This code is enough:
ex = self.printed_by if ex is None: return '' if ex is None: return ''
Both variants of above code caused a DoesNotExist error in the corrupt database, so there is no need to be careful.
Make Service report usable¶
Here is a use case for when to define a local
workflows_module on a production site.
from lino_noi.lib.noi.workflows import * from lino.api import rt, _ ReportingTypes = rt.models.clocking.ReportingTypes ReportingTypes.clear() add = ReportingTypes.add_item add(‘10’, _(“Time”), ‘regular’)
#ReportingTypes.free.remove() #ReportingTypes.extra.remove() #ReportingTypes.regular.text = _(“Time”)
Note that this required a third little change to support redefining
workflows_module: the plugin’s
default_reporting_type setting must be
post_site_startup, not already in
I then did a release because there was hope that the folllowing issue would get fixed with the newest version of ExtJS 6 front end:
my issue is that when I try to change language for an excerpt from english to german then it doesn’t accept it.
first issue is that i need to click the refresh button after loading that page because after loading the page, the excerpt Type combobox is empty
when i click the refresh action, Lino asks me whether I want to save my changes (though that’s nonsense because I didn’t do any changes)
it works when i just say No (to not save) but then I still cannot change the language from English to German
Some adventure during the release:
make_snapshot.shfailed because it was killed due to low memory. After a reboot of the server it worked. The reboot took much time.
git pull reported three unpushed local commits in Lino. We guess that they were inadvertently there, and it seems that they didn’t actually cause any code change.
After the release it turned out that this did not fix the problem. So the customers got their service reports in English this month.