lino 25.1.3__py3-none-any.whl → 25.1.4__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 +1 -0
- lino/core/fields.py +1 -0
- lino/core/layouts.py +3 -1
- lino/core/requests.py +5 -5
- lino/core/store.py +5 -4
- lino/locale/fr/LC_MESSAGES/django.mo +0 -0
- lino/locale/fr/LC_MESSAGES/django.po +4 -5
- lino/modlib/comments/fixtures/demo2.py +2 -1
- lino/utils/dbfreader.py +51 -50
- {lino-25.1.3.dist-info → lino-25.1.4.dist-info}/METADATA +1 -1
- {lino-25.1.3.dist-info → lino-25.1.4.dist-info}/RECORD +15 -15
- {lino-25.1.3.dist-info → lino-25.1.4.dist-info}/WHEEL +0 -0
- {lino-25.1.3.dist-info → lino-25.1.4.dist-info}/licenses/AUTHORS.rst +0 -0
- {lino-25.1.3.dist-info → lino-25.1.4.dist-info}/licenses/COPYING +0 -0
lino/__init__.py
CHANGED
lino/core/actions.py
CHANGED
@@ -1091,6 +1091,7 @@ class CreateRow(Action):
|
|
1091
1091
|
return
|
1092
1092
|
|
1093
1093
|
ar.goto_instance(elem)
|
1094
|
+
# print(f"20250121d eval_js response for {ar} is {ar.response['eval_js']}")
|
1094
1095
|
|
1095
1096
|
# No need to ask refresh_all since closing the window will
|
1096
1097
|
# automatically refresh the underlying window.
|
lino/core/fields.py
CHANGED
@@ -1336,6 +1336,7 @@ class TableRow(object):
|
|
1336
1336
|
if dt is not None:
|
1337
1337
|
a = dt.get_request_detail_action(ar)
|
1338
1338
|
# a = dt.detail_action
|
1339
|
+
# print(f"20250121 {ar} {ar.actor} {dt} {a}")
|
1339
1340
|
if a is None or ar is None:
|
1340
1341
|
return a
|
1341
1342
|
if a.get_view_permission(ar.get_user().user_type):
|
lino/core/layouts.py
CHANGED
@@ -805,7 +805,9 @@ class ParamsLayout(BaseLayout):
|
|
805
805
|
def get_data_elem(self, name):
|
806
806
|
de = self._datasource.get_param_elem(name)
|
807
807
|
if de is None:
|
808
|
-
|
808
|
+
# no longer return a data element when no param element exists:
|
809
|
+
raise Exception(f"No parameter '{name}' in {self._datasource}")
|
810
|
+
# de = self._datasource.get_data_elem(name)
|
809
811
|
de.editable = True # 20200425
|
810
812
|
# if "__" in name:
|
811
813
|
# print("20200425 ParamsLayout.get_data_elem()", name, de)
|
lino/core/requests.py
CHANGED
@@ -2123,11 +2123,11 @@ class ActionRequest(BaseRequest):
|
|
2123
2123
|
if self._status is not None and not kw:
|
2124
2124
|
return self._status
|
2125
2125
|
if self.actor.parameters:
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
)
|
2126
|
+
pv = self.actor.params_layout.params_store.pv2dict(self, self.param_values)
|
2127
|
+
# print(f"20250121c {self}\n{self.actor.params_layout.params_store.__class__}\n{self.actor.params_layout.params_store.param_fields}")
|
2128
|
+
# print(f"20250121c {self} {self.param_values.keys()}\n{self.actor.params_layout}\n{pv.keys()}")
|
2129
|
+
# print(f"20250121c {self}|{self.actor.params_layout.params_store}\n{}")
|
2130
|
+
kw.update(param_values=pv)
|
2131
2131
|
|
2132
2132
|
kw = self.bound_action.action.get_status(self, **kw)
|
2133
2133
|
bp = kw.setdefault("base_params", {})
|
lino/core/store.py
CHANGED
@@ -1078,11 +1078,12 @@ class BaseStore(object):
|
|
1078
1078
|
|
1079
1079
|
|
1080
1080
|
class ParameterStore(BaseStore):
|
1081
|
-
# instantiated in `lino.core.layouts`
|
1081
|
+
# Lazily instantiated in `lino.core.layouts`
|
1082
1082
|
def __init__(self, params_layout_handle, url_param):
|
1083
|
-
|
1083
|
+
param_fields = []
|
1084
1084
|
|
1085
1085
|
holder = params_layout_handle.layout.get_chooser_holder()
|
1086
|
+
# print(f"20250121e {holder}")
|
1086
1087
|
# debug = False
|
1087
1088
|
for pf in params_layout_handle._data_elems:
|
1088
1089
|
sf = create_atomizer(holder, pf, pf.name)
|
@@ -1090,12 +1091,12 @@ class ParameterStore(BaseStore):
|
|
1090
1091
|
# if "__" in pf.name:
|
1091
1092
|
# print("20200423 ParameterStore", pf.name, sf)
|
1092
1093
|
# debug = True
|
1093
|
-
|
1094
|
+
param_fields.append(sf)
|
1094
1095
|
|
1095
1096
|
# if debug:
|
1096
1097
|
# print("20200423 ParameterStore2", self.param_fields)
|
1097
1098
|
|
1098
|
-
self.param_fields = tuple(
|
1099
|
+
self.param_fields = tuple(param_fields)
|
1099
1100
|
self.url_param = url_param
|
1100
1101
|
self.params_layout_handle = params_layout_handle
|
1101
1102
|
|
Binary file
|
@@ -8,7 +8,7 @@ msgstr ""
|
|
8
8
|
"Project-Id-Version: \n"
|
9
9
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
10
10
|
"POT-Creation-Date: 2024-11-16 21:41+0200\n"
|
11
|
-
"PO-Revision-Date:
|
11
|
+
"PO-Revision-Date: 2025-01-18 21:35+0200\n"
|
12
12
|
"Last-Translator: Luc Saffre <luc.saffre@gmail.com>\n"
|
13
13
|
"Language-Team: \n"
|
14
14
|
"Language: fr\n"
|
@@ -5716,7 +5716,7 @@ msgstr "Bienvenue sur <b>%s</b>."
|
|
5716
5716
|
|
5717
5717
|
#: lino/modlib/publisher/choicelists.py:234
|
5718
5718
|
msgid "Terms and conditions"
|
5719
|
-
msgstr ""
|
5719
|
+
msgstr "Conditions générales"
|
5720
5720
|
|
5721
5721
|
#: lino/modlib/publisher/choicelists.py:235
|
5722
5722
|
msgid "Privacy policy"
|
@@ -5729,12 +5729,11 @@ msgstr "Mes préférences"
|
|
5729
5729
|
|
5730
5730
|
#: lino/modlib/publisher/choicelists.py:237
|
5731
5731
|
msgid "Copyright"
|
5732
|
-
msgstr ""
|
5732
|
+
msgstr "Droits d'auteur"
|
5733
5733
|
|
5734
5734
|
#: lino/modlib/publisher/choicelists.py:238
|
5735
|
-
#, fuzzy
|
5736
5735
|
msgid "About us"
|
5737
|
-
msgstr "
|
5736
|
+
msgstr "À propos"
|
5738
5737
|
|
5739
5738
|
#: lino/modlib/publisher/models.py:55
|
5740
5739
|
#, fuzzy
|
@@ -29,7 +29,8 @@ cond_comment = (
|
|
29
29
|
"<p><!--[if gte foo 123]>A conditional comment<![endif]--></p>\n<p>Hello</p>"
|
30
30
|
)
|
31
31
|
plain1 = "Some plain text."
|
32
|
-
plain2 = "Two paragraphs of plain text.\n\nThe second paragraph.
|
32
|
+
plain2 = "Two paragraphs of plain text.\n\nThe second paragraph."
|
33
|
+
# plain2 += " With an 👁 (U+1F441)." #5855 (Jane fails to store certain unicode characters)
|
33
34
|
|
34
35
|
BODIES = Cycler(
|
35
36
|
[styled, table, lorem, short_lorem, breaking, cond_comment, plain1, plain2]
|
lino/utils/dbfreader.py
CHANGED
@@ -12,16 +12,15 @@ http://www.the-oasis.net/clipper-12.html#ss12.4
|
|
12
12
|
|
13
13
|
http://www.clicketyclick.dk/databases/xbase/format/
|
14
14
|
"""
|
15
|
-
from
|
16
|
-
from builtins import
|
17
|
-
from builtins import
|
18
|
-
from builtins import object
|
15
|
+
# from builtins import hex
|
16
|
+
# from builtins import str
|
17
|
+
# from builtins import object
|
19
18
|
|
20
19
|
import datetime
|
21
20
|
from dateutil import parser as dateparser
|
22
21
|
|
23
22
|
import sys
|
24
|
-
import string
|
23
|
+
# import string
|
25
24
|
|
26
25
|
codepages = {
|
27
26
|
"\x01": "cp437",
|
@@ -32,28 +31,29 @@ codepages = {
|
|
32
31
|
|
33
32
|
|
34
33
|
def unpack_long(number):
|
35
|
-
|
36
|
-
|
34
|
+
# print(f"20250123 unpack_long {number}")
|
35
|
+
return number[0] + 256 * (
|
36
|
+
number[1] + 256 * (number[2] + 256 * number[3])
|
37
37
|
)
|
38
38
|
|
39
39
|
|
40
40
|
def unpack_long_rev(number):
|
41
|
-
return
|
42
|
-
|
41
|
+
return number[3] + 256 * (
|
42
|
+
number[2] + 256 * (number[1] + 256 * number[0])
|
43
43
|
)
|
44
44
|
|
45
45
|
|
46
46
|
def unpack_int(number):
|
47
|
-
return
|
47
|
+
return number[0] + 256 * number[1]
|
48
48
|
|
49
49
|
|
50
50
|
def unpack_int_rev(number):
|
51
|
-
return
|
51
|
+
return number[1] + 256 * number[0]
|
52
52
|
|
53
53
|
|
54
54
|
def hex_analyze(number):
|
55
55
|
for ch in number:
|
56
|
-
print("%s\t%s\t%d" % (hex(
|
56
|
+
print("%s\t%s\t%d" % (hex(ch), ch, ch))
|
57
57
|
|
58
58
|
|
59
59
|
# def sort_by_key(list,key_func):
|
@@ -76,56 +76,52 @@ class DBFFile(object):
|
|
76
76
|
HAS_MEMO_FILE = 128 # "\x80"
|
77
77
|
|
78
78
|
versionmap = {
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
79
|
+
0x03: "dBASE III",
|
80
|
+
0x83: "dBASE III+ with memo",
|
81
|
+
0x8B: "dBASE IV with memo",
|
82
|
+
0xF5: "FoxPro with memo",
|
83
83
|
}
|
84
84
|
|
85
85
|
def __init__(self, filename, codepage=None):
|
86
86
|
self.filename = filename
|
87
|
-
|
88
87
|
infile = open(self.filename, "rb")
|
89
88
|
|
90
|
-
# Read header
|
91
|
-
|
89
|
+
# Read header:
|
92
90
|
header = infile.read(32)
|
93
|
-
|
94
91
|
self.version = header[0]
|
95
|
-
year =
|
96
|
-
month =
|
97
|
-
day =
|
92
|
+
year = header[1] + 2000
|
93
|
+
month = header[2]
|
94
|
+
day = header[3]
|
98
95
|
self.lastUpdate = datetime.date(year, month, day)
|
99
|
-
|
96
|
+
# print(f"20250123 Loading {filename} (last updated {self.lastUpdate})")
|
100
97
|
self.rec_num = unpack_long(header[4:8])
|
101
|
-
|
102
98
|
self.first_rec = unpack_int(header[8:10])
|
103
|
-
|
104
99
|
self.rec_len = unpack_int(header[10:12])
|
105
|
-
|
106
100
|
self.codepage = codepage # s[header[29]]
|
107
101
|
|
108
|
-
# Read field defs
|
109
|
-
|
102
|
+
# Read field defs:
|
110
103
|
self.fields = {}
|
111
104
|
self.field_list = []
|
112
105
|
while 1:
|
113
106
|
ch = infile.read(1)
|
114
|
-
if ch ==
|
107
|
+
# if ch == 0x0D:
|
108
|
+
if ch == b'\r':
|
115
109
|
break
|
116
110
|
field = DBFField(ch + infile.read(31), self)
|
117
111
|
self.fields[field.name] = field
|
118
112
|
self.field_list.append(field)
|
113
|
+
# if len(self.field_list) > 20:
|
114
|
+
# sys.exit(1)
|
119
115
|
|
120
116
|
infile.close()
|
121
117
|
if self.has_memo():
|
122
|
-
if self.version ==
|
118
|
+
if self.version == 0x83:
|
123
119
|
self.blockfile = DBTFile(self)
|
124
120
|
else:
|
125
121
|
self.blockfile = FPTFile(self)
|
126
122
|
|
127
123
|
def has_memo(self):
|
128
|
-
if
|
124
|
+
if self.version & self.HAS_MEMO_FILE:
|
129
125
|
return True
|
130
126
|
return False
|
131
127
|
|
@@ -166,12 +162,12 @@ class DBFFile(object):
|
|
166
162
|
values = {}
|
167
163
|
ch = self.infile.read(1)
|
168
164
|
self.recno += 1
|
169
|
-
if ch ==
|
165
|
+
if ch == 0x1A or len(ch) == 0:
|
166
|
+
return None
|
167
|
+
if ch == b"*":
|
170
168
|
deleted = True
|
171
169
|
# Skip the record
|
172
170
|
# return self.get_next_record()
|
173
|
-
elif ch == "\x1A" or ch == "":
|
174
|
-
return None
|
175
171
|
else:
|
176
172
|
deleted = False
|
177
173
|
|
@@ -259,14 +255,15 @@ class DBFField(object):
|
|
259
255
|
}
|
260
256
|
|
261
257
|
def __init__(self, buf, dbf):
|
262
|
-
pos =
|
258
|
+
pos = buf.find(0)
|
263
259
|
if pos == -1 or pos > 11:
|
264
260
|
pos = 11
|
265
|
-
self.name = buf[:pos]
|
266
|
-
self.
|
261
|
+
self.name = buf[:pos].decode()
|
262
|
+
# print(f"20250123 field {self.name}")
|
263
|
+
self.field_type = chr(buf[11])
|
267
264
|
self.field_pos = unpack_long(buf[12:16])
|
268
|
-
self.field_len =
|
269
|
-
self.field_places =
|
265
|
+
self.field_len = buf[16]
|
266
|
+
self.field_places = buf[17]
|
270
267
|
self.dbf = dbf
|
271
268
|
|
272
269
|
# if self.field_type=="M" or self.field_type=="P" or \
|
@@ -289,6 +286,8 @@ class DBFField(object):
|
|
289
286
|
return self.field_len
|
290
287
|
|
291
288
|
def interpret(self, data):
|
289
|
+
# raise Exception("20250123 good")
|
290
|
+
# print(f"20250123 interpret {repr(self.field_type)}")
|
292
291
|
if self.field_type == "C":
|
293
292
|
if not self.dbf.codepage is None:
|
294
293
|
data = data.decode(self.dbf.codepage)
|
@@ -301,7 +300,8 @@ class DBFField(object):
|
|
301
300
|
return data == "Y" or data == "y" or data == "T" or data == "t"
|
302
301
|
elif self.field_type == "M":
|
303
302
|
try:
|
304
|
-
num = string.atoi(data)
|
303
|
+
# num = string.atoi(data)
|
304
|
+
num = int(data)
|
305
305
|
except ValueError:
|
306
306
|
if len(data.strip()) == 0:
|
307
307
|
# ~ return None
|
@@ -311,7 +311,8 @@ class DBFField(object):
|
|
311
311
|
|
312
312
|
elif self.field_type == "N":
|
313
313
|
try:
|
314
|
-
return string.atoi(data)
|
314
|
+
# return string.atoi(data)
|
315
|
+
return int(data)
|
315
316
|
except ValueError:
|
316
317
|
return 0
|
317
318
|
elif self.field_type == "D":
|
@@ -366,28 +367,28 @@ class DBTFile(object):
|
|
366
367
|
def __init__(self, dbf):
|
367
368
|
self.dbf = dbf
|
368
369
|
self.filename = dbf.filename[:-4] + ".DBT"
|
369
|
-
# print "DBTFile", self.filename
|
370
370
|
self.blocksize = 512
|
371
|
+
# print(f"20250123 Opening DBTFile {self.filename}")
|
371
372
|
|
372
373
|
def get_block(self, number):
|
373
374
|
infile = open(self.filename, "rb")
|
374
375
|
infile.seek(512 + self.blocksize * (number - 1))
|
375
|
-
data = ""
|
376
|
+
data = b""
|
376
377
|
while True:
|
377
378
|
buf = infile.read(self.blocksize)
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
379
|
+
if len(buf) != self.blocksize:
|
380
|
+
raise Exception(f"20250123 {number}:{len(buf)}")
|
381
|
+
data += buf
|
382
|
+
break
|
382
383
|
data += buf
|
383
|
-
pos = data.find(
|
384
|
+
pos = data.find(0x1A)
|
384
385
|
# pos = data.find("\x1A\x1A")
|
385
386
|
if pos != -1:
|
386
387
|
data = data[:pos]
|
387
388
|
break
|
388
389
|
|
389
390
|
infile.close()
|
390
|
-
if
|
391
|
+
if self.dbf.codepage is not None:
|
391
392
|
data = data.decode(self.dbf.codepage)
|
392
393
|
# clipper adds "soft CR's" to memo texts. we convert them to
|
393
394
|
# simple spaces:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lino
|
3
|
-
Version: 25.1.
|
3
|
+
Version: 25.1.4
|
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,6 +1,6 @@
|
|
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=5iUFhz4TNfwjFGIjiyQTXaMFRg1C8lAmxgHDQV6XFEU,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
|
@@ -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=RiyuaK5F-VE6S7FVgSivOBx74F9H4uwGFOMEhXt66Rg,46395
|
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
|
@@ -42,25 +42,25 @@ lino/core/ddh.py,sha256=dYScxWKTOCDEgow7wJNJe812ESasmmITPK2ovraBQno,3172
|
|
42
42
|
lino/core/diff.py,sha256=XQ-oQQDS_v3kXd4eRP9Hwr5UCgp-TPZIPVav9ZblUno,5882
|
43
43
|
lino/core/elems.py,sha256=wgRDDDHlEjN1el37Mgt8yvsLlLNgunr4_vSA4iFLsUM,108454
|
44
44
|
lino/core/exceptions.py,sha256=QDxDo5cllSyXQ8VWet9hGXzNadxCOmwMVrFXc6V-vpE,665
|
45
|
-
lino/core/fields.py,sha256=
|
45
|
+
lino/core/fields.py,sha256=0vK0F4LCqwwjLXA3sA7qG4jR9OvQF9EgIDVcsac9Qh0,57335
|
46
46
|
lino/core/frames.py,sha256=ISxgq9zyZfqW3tDZMWdKi9Ij455lT_81qBH0xex0bfE,1161
|
47
47
|
lino/core/gfks.py,sha256=6VXn2FSIXOrwVq0stfbPevT37EWg1tg4Fn-HMNVnbmk,1970
|
48
48
|
lino/core/help.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
49
|
lino/core/inject.py,sha256=o9pHxWBuo15vpGN5pwCsWVNk2awrMuBigOHiua78v4I,13413
|
50
50
|
lino/core/kernel.py,sha256=gqx1dqVpahdxNPejLcVm9c7JX3qlajosEJ-yEQTgHCU,48275
|
51
51
|
lino/core/keyboard.py,sha256=imdO-J5npZijtddhM2C7CLo2K6Hp30egsXgOOa4-AqQ,1137
|
52
|
-
lino/core/layouts.py,sha256=
|
52
|
+
lino/core/layouts.py,sha256=Wojx5UUyhy7PsZE8FWmiXcmZDj4wz2y_1_wlz1G560Q,28663
|
53
53
|
lino/core/menus.py,sha256=BoPtcqtTB1-ADp3ffnzEXyIx8lQ4HLaZWxo0eQrj-T4,10850
|
54
54
|
lino/core/merge.py,sha256=sKtTeZtHdoDKerdHj4NXuXXNzpKDsfdPaiq-CY0NqQc,9094
|
55
55
|
lino/core/model.py,sha256=MNTlg53WbKXPIne5wOHtO5V3nLdxoYTBMosz9JdFQJU,36386
|
56
56
|
lino/core/permissions.py,sha256=Fnemz3NwWz21X0YATI9Q7ba2FcAdg-EMLHjIcbt_AVU,6840
|
57
57
|
lino/core/plugin.py,sha256=oVvTsGoBBYmjvRgtyiFPIiHZQErH0ZlNjiUFtOk2dOM,6834
|
58
58
|
lino/core/renderer.py,sha256=jIXxNSpljZhb9tBMhUfDNbZD3XmxYzaS6SlipHx29L4,47291
|
59
|
-
lino/core/requests.py,sha256=
|
59
|
+
lino/core/requests.py,sha256=DijyPSRmwVbuco-JAHy7gZZMyOxA-cXPnVQ3rbpw9Fs,92834
|
60
60
|
lino/core/roles.py,sha256=PXwk436xUupxdbJcygRSYFu7ixfKjAJPQRUQ8sy0lB0,4425
|
61
61
|
lino/core/signals.py,sha256=0JT89mkjSbRm57QZcSI9DoThoKUGkyi-egNhuLUKEds,948
|
62
62
|
lino/core/site.py,sha256=lEPAEF4OyBsF8NLy3y9O0GOcC5C1REc9ug9mIZR-mIs,83150
|
63
|
-
lino/core/store.py,sha256=
|
63
|
+
lino/core/store.py,sha256=6B_sYwkIKuIRsibx8iRrICyqJggqHh7pMC5K3-e7k7I,51372
|
64
64
|
lino/core/tables.py,sha256=VXfUDENJ-Zl6M3tRvEdLr1LGjmJcAmwXUWSG4EWLFDE,24413
|
65
65
|
lino/core/urls.py,sha256=06QlmN1vpxjmb5snO3SPpP6lX1pMdE60bTiBiC77_vQ,2677
|
66
66
|
lino/core/user_types.py,sha256=0iSYmzr2M9v2Mn2y6hzAZeqareUT-gD7l3MfIPyG9ZI,867
|
@@ -85,8 +85,8 @@ lino/locale/es/LC_MESSAGES/django.mo,sha256=r2zi4aulC-1zX1XcoGddo0mpdOpuuOpUxpWx
|
|
85
85
|
lino/locale/es/LC_MESSAGES/django.po,sha256=JKSABlHW8LZFD6oK9Oh-gw9hwCAlfZjDg1Nl2nZUkTE,153744
|
86
86
|
lino/locale/et/LC_MESSAGES/django.mo,sha256=1RH5dX6YOBgk2tX_xpkriBRDh6qkxJDPrWysVeio_eM,5519
|
87
87
|
lino/locale/et/LC_MESSAGES/django.po,sha256=0jGqXMllcz_7-T2S-lSeR-BeTMfI4_Rgz1h5Jy_D1xE,217301
|
88
|
-
lino/locale/fr/LC_MESSAGES/django.mo,sha256=
|
89
|
-
lino/locale/fr/LC_MESSAGES/django.po,sha256=
|
88
|
+
lino/locale/fr/LC_MESSAGES/django.mo,sha256=N7TxEPKmUBjDLu-EabjGUm1VB-CqKjZH1AzRRJ2M5OM,18078
|
89
|
+
lino/locale/fr/LC_MESSAGES/django.po,sha256=xRP1JGSmqAk3IuCohb6qCtUsokA90oaEj701WX-qhJ4,162550
|
90
90
|
lino/locale/nl/LC_MESSAGES/django.mo,sha256=cQ3DTQqc4dbwrAdm5d95Kf4pDoYqKdMdElAaRerC0XA,8115
|
91
91
|
lino/locale/nl/LC_MESSAGES/django.po,sha256=u_oZzTdxdEdyMKAJfNVI3Vm1D-uKPCKYDPSXa1vn_qc,339218
|
92
92
|
lino/locale/pt/LC_MESSAGES/django.mo,sha256=OCKgnomRXLl_QsikdFsqUwKXkVexvLvSWf5kizPJrRE,42461
|
@@ -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=YxzgXaQeH3bum5_7473ie4hJtHfKSChuR19sTBSd4fo,24466
|
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
|
@@ -4604,7 +4604,7 @@ lino/utils/cycler.py,sha256=2LGMhMJX5At5ln4yZvmNleWROs-CA_YE_UCzxzvxK4U,1548
|
|
4604
4604
|
lino/utils/daemoncommand.py,sha256=NjGShiz09fddIV0WU0jK2nzO_CwPj1MfdmgwAOYZi4M,11525
|
4605
4605
|
lino/utils/dataserializer.py,sha256=-_xHXaGwDSO6-sYEHEa2BtEmKS8bW6gsYx4dV-GbvDs,3779
|
4606
4606
|
lino/utils/dates.py,sha256=eWF5WxA5uJf51Y9PKvDVBWD8yIf6yBF6oO6TeU3ujzw,1030
|
4607
|
-
lino/utils/dbfreader.py,sha256=
|
4607
|
+
lino/utils/dbfreader.py,sha256=lTIHkqmWJnKTdMwtF7amlSVBZZe2bW81fWF22Y4f5nM,12131
|
4608
4608
|
lino/utils/dblogger.py,sha256=kr0YxQY6veymvNg5A4tsvkqW8haRWdwqL0C-_9_QTg0,721
|
4609
4609
|
lino/utils/diag.py,sha256=evkU818hZSGpWdL0Du11QakT5_frvc5z4C93IEBlECg,18307
|
4610
4610
|
lino/utils/djangotest.py,sha256=Phz1qNp0wDonZRja5dxbCk0Xl3a73gZNiKK8v9tAgZg,8334
|
@@ -4648,8 +4648,8 @@ lino/utils/xml.py,sha256=4Z44W1e5HvTVrU8erkohgnwqY-5Cr2NHywaAJ5OgRvw,989
|
|
4648
4648
|
lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
|
4649
4649
|
lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
|
4650
4650
|
lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
|
4651
|
-
lino-25.1.
|
4652
|
-
lino-25.1.
|
4653
|
-
lino-25.1.
|
4654
|
-
lino-25.1.
|
4655
|
-
lino-25.1.
|
4651
|
+
lino-25.1.4.dist-info/METADATA,sha256=k3hFLehospJnAypZq6TLEZbj_UZ5sh2UwBbKAWImOFo,42534
|
4652
|
+
lino-25.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4653
|
+
lino-25.1.4.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
|
4654
|
+
lino-25.1.4.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
4655
|
+
lino-25.1.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|