lino 25.1.5__py3-none-any.whl → 25.1.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lino/__init__.py +1 -1
- lino/core/actions.py +4 -3
- lino/help_texts.py +1 -0
- lino/management/commands/demotest.py +6 -3
- lino/modlib/comments/fixtures/demo2.py +4 -2
- lino/utils/dbfreader.py +18 -24
- {lino-25.1.5.dist-info → lino-25.1.6.dist-info}/METADATA +1 -1
- {lino-25.1.5.dist-info → lino-25.1.6.dist-info}/RECORD +11 -11
- {lino-25.1.5.dist-info → lino-25.1.6.dist-info}/WHEEL +0 -0
- {lino-25.1.5.dist-info → lino-25.1.6.dist-info}/licenses/AUTHORS.rst +0 -0
- {lino-25.1.5.dist-info → lino-25.1.6.dist-info}/licenses/COPYING +0 -0
lino/__init__.py
CHANGED
lino/core/actions.py
CHANGED
@@ -1088,6 +1088,7 @@ class CreateRow(Action):
|
|
1088
1088
|
# if ar.actor.stay_in_grid and ar.requesting_panel:
|
1089
1089
|
if ar.actor.stay_in_grid:
|
1090
1090
|
# do not open a detail window on the new instance
|
1091
|
+
ar.set_response(refresh_all=True)
|
1091
1092
|
return
|
1092
1093
|
|
1093
1094
|
ar.goto_instance(elem)
|
@@ -1122,7 +1123,7 @@ class CreateRow(Action):
|
|
1122
1123
|
|
1123
1124
|
ar.goto_instance(elems[0])
|
1124
1125
|
|
1125
|
-
# No need to ask refresh_all since closing the window will
|
1126
|
+
# No need to ask refresh_all since closing the detail window will
|
1126
1127
|
# automatically refresh the underlying window.
|
1127
1128
|
|
1128
1129
|
|
@@ -1155,11 +1156,11 @@ class SubmitInsert(CreateRow):
|
|
1155
1156
|
# Multiple uploads possible, note plural method names.
|
1156
1157
|
elems = ar.create_instances_from_request(**kwargs)
|
1157
1158
|
self.save_new_instances(ar, elems)
|
1158
|
-
ar.set_response(close_window=True)
|
1159
1159
|
else:
|
1160
1160
|
elem = ar.create_instance_from_request(**kwargs)
|
1161
1161
|
self.save_new_instance(ar, elem)
|
1162
|
-
|
1162
|
+
|
1163
|
+
ar.set_response(close_window=True)
|
1163
1164
|
# if settings.SITE.is_installed("react"):
|
1164
1165
|
# ar.goto_instance(elem)
|
1165
1166
|
|
lino/help_texts.py
CHANGED
@@ -174,6 +174,7 @@ help_texts = {
|
|
174
174
|
'lino.modlib.uploads.Plugin' : _("""See /dev/plugins."""),
|
175
175
|
'lino.modlib.uploads.Plugin.remove_orphaned_files' : _("""Whether checkdata –fix should automatically delete orphaned files in the uploads folder."""),
|
176
176
|
'lino.modlib.uploads.Plugin.with_thumbnails' : _("""Whether to use PIL, the Python Imaging Library."""),
|
177
|
+
'lino.modlib.uploads.Plugin.with_volumes' : _("""Whether to use library files (volumes)."""),
|
177
178
|
'lino.modlib.weasyprint.Plugin' : _("""See /dev/plugins."""),
|
178
179
|
'lino.modlib.weasyprint.Plugin.header_height' : _("""Height of header in mm. Set to None if you want no header."""),
|
179
180
|
'lino.modlib.weasyprint.Plugin.footer_height' : _("""Height of footer in mm. Set to None if you want no header."""),
|
@@ -59,6 +59,7 @@ class TestCase(DemoTestCase):
|
|
59
59
|
|
60
60
|
def test_ipdict(self):
|
61
61
|
if not settings.SITE.use_ipdict:
|
62
|
+
# print("20250126 no test because use_ipdict is False")
|
62
63
|
return
|
63
64
|
ipdict = dd.plugins.ipdict
|
64
65
|
|
@@ -100,7 +101,7 @@ class TestCase(DemoTestCase):
|
|
100
101
|
# every new failure will now blacklist it again, the
|
101
102
|
# max_failed_auth_per_ip no longer counts.
|
102
103
|
|
103
|
-
time.sleep(1)
|
104
|
+
time.sleep(1.5)
|
104
105
|
self.assertEqual(login("bad"), "Failed to sign in as robin.")
|
105
106
|
self.assertEqual(rec.login_failures, 5)
|
106
107
|
self.assertEqual(
|
@@ -108,8 +109,10 @@ class TestCase(DemoTestCase):
|
|
108
109
|
)
|
109
110
|
self.assertEqual(rec.login_failures, 5)
|
110
111
|
|
111
|
-
time.sleep(1)
|
112
|
-
self.assertEqual(
|
112
|
+
time.sleep(1.5)
|
113
|
+
self.assertEqual(
|
114
|
+
login(dd.plugins.users.demo_password),
|
115
|
+
"Now signed in as Robin Rood")
|
113
116
|
|
114
117
|
# Once you manage to authenticate, your ip address gets removed from the
|
115
118
|
# blacklist, i.e. when you log out and in for some reason, you get again
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2016-
|
1
|
+
# Copyright 2016-2025 Rumma & Ko Ltd
|
2
2
|
# License: GNU Affero General Public License v3 (see file COPYING for details)
|
3
3
|
"""
|
4
4
|
Adds some demo comments.
|
@@ -61,7 +61,9 @@ def objects():
|
|
61
61
|
if dd.get_plugin_setting("uploads", "with_volumes", False):
|
62
62
|
Upload = rt.models.uploads.Upload
|
63
63
|
SCREENSHOTS = Cycler(Upload.objects.filter(volume__ref="screenshots"))
|
64
|
-
|
64
|
+
if len(SCREENSHOTS) == 0:
|
65
|
+
# e.g. when lino_book is not installed
|
66
|
+
SCREENSHOTS = None
|
65
67
|
else:
|
66
68
|
SCREENSHOTS = None
|
67
69
|
|
lino/utils/dbfreader.py
CHANGED
@@ -1,20 +1,26 @@
|
|
1
|
-
# Copyright 2003-
|
1
|
+
# Copyright 2003-2025 Rumma & Ko Ltd
|
2
2
|
# License: GNU Affero General Public License v3 (see file COPYING for details)
|
3
3
|
|
4
|
-
# Based on original work by Lars Garshol
|
5
|
-
# http://www.garshol.priv.no/download/software/python/dbfreader.py
|
6
|
-
|
7
|
-
# modified by Luc Saffre who is interested in support for Clipper
|
8
|
-
# rather than FoxPro support.
|
9
4
|
"""
|
10
|
-
What's the format of a Clipper .dbf file?
|
11
|
-
http://www.the-oasis.net/clipper-12.html#ss12.4
|
12
5
|
|
13
|
-
|
6
|
+
Defines the :class:`DBFFile` class, used by :doc:`lino_xl.lib.tim2lino` to read
|
7
|
+
DBF and DBT files when both settings :attr:`use_dbfread
|
8
|
+
<lino_xl.lib.tim2lino.Plugin.use_dbfread>` and :attr:`use_dbf_py
|
9
|
+
<lino_xl.lib.tim2lino.Plugin.use_dbf_py>` are `False` (which is default).
|
10
|
+
|
11
|
+
Based on original work by Lars Garshol
|
12
|
+
http://www.garshol.priv.no/download/software/python/dbfreader.py
|
13
|
+
|
14
|
+
Modified by Luc Saffre to add support for Clipper dialect.
|
15
|
+
|
16
|
+
Sources of information:
|
17
|
+
|
18
|
+
- `What's the format of a Clipper .dbf file?
|
19
|
+
<https://www.the-oasis.net/clipper-12.html#ss12.4>`__ (broken link)
|
20
|
+
|
21
|
+
`Xbase & dBASE File Format Description by Erik Bachmann
|
22
|
+
<https://www.clicketyclick.dk/databases/xbase/format/>`__
|
14
23
|
"""
|
15
|
-
# from builtins import hex
|
16
|
-
# from builtins import str
|
17
|
-
# from builtins import object
|
18
24
|
|
19
25
|
import datetime
|
20
26
|
from dateutil import parser as dateparser
|
@@ -56,20 +62,8 @@ def hex_analyze(number):
|
|
56
62
|
print("%s\t%s\t%d" % (hex(ch), ch, ch))
|
57
63
|
|
58
64
|
|
59
|
-
# def sort_by_key(list,key_func):
|
60
|
-
# for ix in range(len(list)):
|
61
|
-
# list[ix]=(key_func(list[ix]),list[ix])
|
62
|
-
|
63
|
-
# list.sort()
|
64
|
-
|
65
|
-
# for ix in range(len(list)):
|
66
|
-
# list[ix]=list[ix][1]
|
67
|
-
|
68
|
-
# return list
|
69
|
-
|
70
65
|
# --- A class for the entire file
|
71
66
|
|
72
|
-
|
73
67
|
class DBFFile(object):
|
74
68
|
"Represents a single DBF file."
|
75
69
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lino
|
3
|
-
Version: 25.1.
|
3
|
+
Version: 25.1.6
|
4
4
|
Summary: A framework for writing desktop-like web applications using Django and ExtJS or React
|
5
5
|
Project-URL: Homepage, https://www.lino-framework.org
|
6
6
|
Project-URL: Repository, https://gitlab.com/lino-framework/lino
|
@@ -1,10 +1,10 @@
|
|
1
1
|
lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
|
2
2
|
lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
|
3
|
-
lino/__init__.py,sha256=
|
3
|
+
lino/__init__.py,sha256=0yrHbVQ2XWyabku43gsxie9HdEs3B8JvaUfMah_yJXM,5584
|
4
4
|
lino/ad.py,sha256=AQ-vJ4scac1mx3xegXezxnxyOQpV-a0q3VFMJSDbj2s,142
|
5
5
|
lino/apps.py,sha256=ECq-dPARDkuhngwNrcipse3b4Irj70HxJs44uWEZFc4,27
|
6
6
|
lino/hello.py,sha256=7-PJg7PnEiznyETqGjOwXcKh8rda0qLetpbS2gvRYy0,532
|
7
|
-
lino/help_texts.py,sha256=
|
7
|
+
lino/help_texts.py,sha256=xLCUrDYM6fiYJSevxi6iq8xAO7XyKikm29HEJMv8HLo,90895
|
8
8
|
lino/api/__init__.py,sha256=WmzHU-rHdZ68se_nI0SmepQTGE8-cd9tPpovHRH9aag,512
|
9
9
|
lino/api/ad.py,sha256=F6SrcKPRRalHKOZ7QLwsRWGq9hhykQIeo0b85cEk9NQ,314
|
10
10
|
lino/api/dd.py,sha256=-mjuoflZilnFM97we-N1H_sEf1TQiNs62JwZ5m4XV1s,7813
|
@@ -28,7 +28,7 @@ lino/config/unused/403.html,sha256=ePwDIUXhz1iD8xXWWyt5xEvpcGIHU4LMnXma8x0ik1c,2
|
|
28
28
|
lino/config/unused/404.html,sha256=GOJrAyF6NcM69ETdSHgjff_-lvYs_-bOYhyZBem7x3I,220
|
29
29
|
lino/config/unused/500.html,sha256=aWmP37uPoMS-PJgPuBloxdx0nEreU7AvkXxsex3yVYs,544
|
30
30
|
lino/core/__init__.py,sha256=T7106QxQpa3jXAouGTIer6AXEwpkJ0NAQ9B7Q3-K6qE,686
|
31
|
-
lino/core/actions.py,sha256=
|
31
|
+
lino/core/actions.py,sha256=B8jCkE__GNIL820LCc10yOzJ7inCUyxn9u1KupS9y84,46398
|
32
32
|
lino/core/actors.py,sha256=lsp-w2kC_t_-iqeHtIYIkIPoS_jbHgZ3MZlGJWH2dyc,73663
|
33
33
|
lino/core/boundaction.py,sha256=tb0C4WwbJpAP3yKbR6OaibzcAkwVs3nfeuD0RjXTjIg,6665
|
34
34
|
lino/core/callbacks.py,sha256=xkosb1l48o6WeSdj82k5udK9OmjI7-p6x4AJFjXiOf8,7518
|
@@ -97,7 +97,7 @@ lino/locale/zh_Hant/LC_MESSAGES/django.po,sha256=KWejkd_imTiK-SX6BG_bfEGtGIWEQ-b
|
|
97
97
|
lino/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
98
|
lino/management/commands/__init__.py,sha256=raVDRiXns3SegyXEhaLZMcxfEDs7ggy2nFUN5D0f5F0,47
|
99
99
|
lino/management/commands/buildcache.py,sha256=QjhvKKdp1mX6rl8Y5rcS6kUK2LVOBVAd6wrUKLYSGF8,448
|
100
|
-
lino/management/commands/demotest.py,sha256=
|
100
|
+
lino/management/commands/demotest.py,sha256=zb9gSrgqOH2S-OJSKUNezprUEbJLBQf8tVGSVdSENik,5017
|
101
101
|
lino/management/commands/diag.py,sha256=vt-NlZUx5gf7T4EpbM-gle3tAwMuwfPQY8lUgxjFaUw,478
|
102
102
|
lino/management/commands/dump2py.py,sha256=DyvhXYPJY7-Tt_xyw4_U5WjVeobcOU5AhWRZB6l4esI,20329
|
103
103
|
lino/management/commands/dump_settings.py,sha256=tGOR4h_ueVe2DOk84ILFvzvndt0doshvaxRkybB-rnY,2009
|
@@ -180,7 +180,7 @@ lino/modlib/comments/roles.py,sha256=z3gctvlTa_5PAs-D4pounyzNyuEc31jTFq9g33r6Z1w
|
|
180
180
|
lino/modlib/comments/ui.py,sha256=w72vOmK8fn6H13t2aPS7ydYU1fCsbbMH2-TSNWt3pwA,9799
|
181
181
|
lino/modlib/comments/config/comments/comments.js,sha256=7oAnNyx_MKM1iWPu-QSp6iKfnOVdgq7EciQPpxTvYU8,242
|
182
182
|
lino/modlib/comments/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
183
|
-
lino/modlib/comments/fixtures/demo2.py,sha256=
|
183
|
+
lino/modlib/comments/fixtures/demo2.py,sha256=FGsX1_r9h2Zz11wbemkqx_AcFIRmYKMx9TineWs_ic0,25328
|
184
184
|
lino/modlib/dashboard/__init__.py,sha256=_PFbmakUn8DShXyJY3EfAcuZtX5ofWnS-8dk7s1CrLw,1420
|
185
185
|
lino/modlib/dashboard/models.py,sha256=EgRNg88dmz-OlIdi1SyEuerWMsRqKIfqE2MgKL7kApw,3510
|
186
186
|
lino/modlib/dupable/__init__.py,sha256=fIQ8wj-T8ZbkjwQgW_-ankJsHLjPMepOTo32mJXNCvI,532
|
@@ -4605,7 +4605,7 @@ lino/utils/cycler.py,sha256=2LGMhMJX5At5ln4yZvmNleWROs-CA_YE_UCzxzvxK4U,1548
|
|
4605
4605
|
lino/utils/daemoncommand.py,sha256=NjGShiz09fddIV0WU0jK2nzO_CwPj1MfdmgwAOYZi4M,11525
|
4606
4606
|
lino/utils/dataserializer.py,sha256=-_xHXaGwDSO6-sYEHEa2BtEmKS8bW6gsYx4dV-GbvDs,3779
|
4607
4607
|
lino/utils/dates.py,sha256=eWF5WxA5uJf51Y9PKvDVBWD8yIf6yBF6oO6TeU3ujzw,1030
|
4608
|
-
lino/utils/dbfreader.py,sha256=
|
4608
|
+
lino/utils/dbfreader.py,sha256=4sXOGBKX6DFQCEPkCMfnJAVneHMyDzJQB5tsYAq90vQ,12205
|
4609
4609
|
lino/utils/dblogger.py,sha256=kr0YxQY6veymvNg5A4tsvkqW8haRWdwqL0C-_9_QTg0,721
|
4610
4610
|
lino/utils/diag.py,sha256=evkU818hZSGpWdL0Du11QakT5_frvc5z4C93IEBlECg,18307
|
4611
4611
|
lino/utils/djangotest.py,sha256=Phz1qNp0wDonZRja5dxbCk0Xl3a73gZNiKK8v9tAgZg,8334
|
@@ -4649,8 +4649,8 @@ lino/utils/xml.py,sha256=4Z44W1e5HvTVrU8erkohgnwqY-5Cr2NHywaAJ5OgRvw,989
|
|
4649
4649
|
lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
|
4650
4650
|
lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
|
4651
4651
|
lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
|
4652
|
-
lino-25.1.
|
4653
|
-
lino-25.1.
|
4654
|
-
lino-25.1.
|
4655
|
-
lino-25.1.
|
4656
|
-
lino-25.1.
|
4652
|
+
lino-25.1.6.dist-info/METADATA,sha256=WqVqvSO_n0TLfSy-ydW7pz01iQW5IDz8nz90x5fge4I,42534
|
4653
|
+
lino-25.1.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4654
|
+
lino-25.1.6.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
|
4655
|
+
lino-25.1.6.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
4656
|
+
lino-25.1.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|