lino 25.2.2__py3-none-any.whl → 25.3.0__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.
Files changed (70) hide show
  1. lino/__init__.py +8 -3
  2. lino/api/dd.py +11 -35
  3. lino/api/doctest.py +49 -17
  4. lino/api/selenium.py +1 -1
  5. lino/core/actions.py +25 -23
  6. lino/core/actors.py +52 -23
  7. lino/core/choicelists.py +10 -8
  8. lino/core/dbtables.py +1 -1
  9. lino/core/elems.py +47 -31
  10. lino/core/fields.py +19 -9
  11. lino/core/kernel.py +26 -20
  12. lino/core/model.py +27 -16
  13. lino/core/renderer.py +2 -2
  14. lino/core/requests.py +103 -56
  15. lino/core/site.py +5 -5
  16. lino/core/store.py +5 -2
  17. lino/core/utils.py +12 -7
  18. lino/help_texts.py +7 -8
  19. lino/mixins/duplicable.py +6 -4
  20. lino/mixins/sequenced.py +17 -6
  21. lino/modlib/__init__.py +0 -2
  22. lino/modlib/changes/models.py +21 -10
  23. lino/modlib/checkdata/models.py +59 -24
  24. lino/modlib/comments/fixtures/demo2.py +12 -3
  25. lino/modlib/comments/models.py +7 -7
  26. lino/modlib/comments/ui.py +8 -5
  27. lino/modlib/export_excel/models.py +7 -5
  28. lino/modlib/extjs/__init__.py +2 -2
  29. lino/modlib/extjs/views.py +66 -22
  30. lino/modlib/help/config/makehelp/conf.tpl.py +1 -1
  31. lino/modlib/jinja/mixins.py +73 -0
  32. lino/modlib/jinja/models.py +6 -0
  33. lino/modlib/linod/__init__.py +1 -0
  34. lino/modlib/linod/choicelists.py +21 -0
  35. lino/modlib/linod/consumers.py +13 -4
  36. lino/modlib/linod/fixtures/__init__.py +0 -0
  37. lino/modlib/linod/fixtures/linod.py +32 -0
  38. lino/modlib/linod/management/commands/linod.py +6 -2
  39. lino/modlib/linod/mixins.py +18 -14
  40. lino/modlib/linod/models.py +4 -2
  41. lino/modlib/memo/mixins.py +2 -1
  42. lino/modlib/memo/parser.py +1 -1
  43. lino/modlib/notify/models.py +19 -11
  44. lino/modlib/printing/actions.py +47 -42
  45. lino/modlib/printing/choicelists.py +17 -15
  46. lino/modlib/printing/mixins.py +22 -20
  47. lino/modlib/publisher/models.py +5 -5
  48. lino/modlib/summaries/models.py +3 -2
  49. lino/modlib/system/models.py +28 -29
  50. lino/modlib/uploads/__init__.py +14 -11
  51. lino/modlib/uploads/actions.py +2 -8
  52. lino/modlib/uploads/choicelists.py +10 -10
  53. lino/modlib/uploads/fixtures/std.py +17 -0
  54. lino/modlib/uploads/mixins.py +20 -8
  55. lino/modlib/uploads/models.py +62 -38
  56. lino/modlib/uploads/ui.py +15 -9
  57. lino/utils/__init__.py +0 -1
  58. lino/utils/jscompressor.py +4 -4
  59. lino/utils/media.py +45 -23
  60. lino/utils/report.py +5 -4
  61. lino/utils/restify.py +2 -2
  62. lino/utils/soup.py +26 -8
  63. lino/utils/xml.py +19 -5
  64. {lino-25.2.2.dist-info → lino-25.3.0.dist-info}/METADATA +1 -1
  65. {lino-25.2.2.dist-info → lino-25.3.0.dist-info}/RECORD +68 -65
  66. lino/mixins/uploadable.py +0 -3
  67. lino/utils/requests.py +0 -55
  68. {lino-25.2.2.dist-info → lino-25.3.0.dist-info}/WHEEL +0 -0
  69. {lino-25.2.2.dist-info → lino-25.3.0.dist-info}/licenses/AUTHORS.rst +0 -0
  70. {lino-25.2.2.dist-info → lino-25.3.0.dist-info}/licenses/COPYING +0 -0
lino/utils/xml.py CHANGED
@@ -2,14 +2,19 @@
2
2
  # Copyright 2013-2024 Rumma & Ko Ltd
3
3
  # License: GNU Affero General Public License v3 (see file COPYING for details)
4
4
 
5
+ import subprocess
6
+
5
7
  from lxml import etree
6
8
  from lxml import isoschematron
7
9
 
8
10
 
11
+ # def validate_xml(doc, xsdfile):
9
12
  def validate_xml(xmlfile, xsdfile):
10
13
  """
11
14
 
12
15
  Validate the given :attr:`xmlfile` using the given :attr:`xsdfile`.
16
+ Validate the given XML document `doc` using the given :attr:`xsdfile`.
17
+ The document must be an ElementTree root element.
13
18
 
14
19
  When :attr:`xsdfile` ends with :file:`.xsd`, the generated :attr:`xmlfile`
15
20
  file is validated using :class:`lxml.etree.XMLSchema`. When it ends with
@@ -19,11 +24,20 @@ def validate_xml(xmlfile, xsdfile):
19
24
 
20
25
  """
21
26
  doc = etree.parse(xmlfile)
22
- if xsdfile.endswith(".xsd"):
27
+ if xsdfile.suffix == ".xsd":
23
28
  # xsd = etree.XMLSchema(etree.parse(xsdfile))
24
29
  xsd = etree.XMLSchema(file=xsdfile)
25
30
  xsd.assertValid(doc)
26
- elif xsdfile.endswith(".sch"):
27
- # schematron = isoschematron.Schematron(etree.parse(xsdfile))
28
- schematron = isoschematron.Schematron(file=xsdfile)
29
- schematron.assertValid(doc)
31
+ elif xsdfile.suffix == ".sch":
32
+ if False:
33
+ jarfile = "/home/luc/Downloads/saxon/saxon-he-12.5.jar"
34
+ # cmd = ["/usr/bin/java", "-jar", jarfile, "-xsl:", xsdfile, "-s:", xmlfile]
35
+ cmd = ["/usr/bin/java", "-jar", jarfile, f"-xsd:{xsdfile}", f"-s:{xmlfile}"]
36
+ cp = subprocess.run(cmd)
37
+
38
+ if False:
39
+ # # sch = etree.parse(xsdfile)
40
+ # # schematron = isoschematron.Schematron(sch, store_report=True)
41
+ schematron = isoschematron.Schematron(file=xsdfile, store_report=True)
42
+ schematron.assertValid(doc)
43
+ # schematron.validation_report
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lino
3
- Version: 25.2.2
3
+ Version: 25.3.0
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,16 +1,16 @@
1
1
  lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
2
2
  lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
3
- lino/__init__.py,sha256=YtNOcVKh2rB06MddYDsdCB0P7SljYCG4kHzpM-pZy1w,5584
3
+ lino/__init__.py,sha256=I00_fLo0ACv3xw2JJgUbix4avwqvEzuZEqSESBDHG9A,5916
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=yBhYx2QaAHzNOtzvZgoLerNpNAVucak52Dc8q45xeN0,91293
7
+ lino/help_texts.py,sha256=vUzlgM7weq0jYOceqRDKS0VJnWKygD1KTP-5CC2X5eQ,91095
8
8
  lino/api/__init__.py,sha256=WmzHU-rHdZ68se_nI0SmepQTGE8-cd9tPpovHRH9aag,512
9
9
  lino/api/ad.py,sha256=F6SrcKPRRalHKOZ7QLwsRWGq9hhykQIeo0b85cEk9NQ,314
10
- lino/api/dd.py,sha256=-mjuoflZilnFM97we-N1H_sEf1TQiNs62JwZ5m4XV1s,7813
11
- lino/api/doctest.py,sha256=cDnnkvci-6K2evlaJ6ih6BopiSEYhchN7Y2UhmyIdNE,25575
10
+ lino/api/dd.py,sha256=n8y5WocGipmiFAjWINU7w7kIglhJhnU1aicFiABENCI,7368
11
+ lino/api/doctest.py,sha256=PrmUSTT7AsUjjN0TjvVlzuCJ8ViUUeOq9wz8QXgDhG0,26349
12
12
  lino/api/rt.py,sha256=WX0I7oOJIFtqN1JXK1sVC_OmByY5hct4lDIaELDFkgs,1378
13
- lino/api/selenium.py,sha256=07BQuC6KW2tBUlIUcPGeCQHIfogz-wuHJqPshSzLDp0,9384
13
+ lino/api/selenium.py,sha256=bOu8UaNz3Q7lGVvxjmvrtYtSWn1xfI1f5MN5sVcdYr8,9383
14
14
  lino/api/shell.py,sha256=epyjwEZ396TiJ0AHqhVIvzX8TBIXU8xR4UHJlYOrRhc,536
15
15
  lino/config/about.html.tmpl,sha256=Vt3drpxP5f26wb1meXq_Kc8ZUAl_TGfr1bcuWuz-7L4,705
16
16
  lino/config/admin_main.html,sha256=uq179bSDST-ACy0iuOFqMfs501mdwnR7Zw9ICDFZfsc,37
@@ -28,44 +28,44 @@ 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=2QGQYpjQ_Fyvb3wb4TBGj8GO4f857aQ3YX3Uz6u15dw,46622
32
- lino/core/actors.py,sha256=0MhLLWf3uXzO5nEV5D8Bc12dedlgLCWVBo4WcJyLQCc,73865
31
+ lino/core/actions.py,sha256=S3vtuXmn3VxqcL_P5BmmZnaqucwIbdLm0zVX5QKoIxU,46740
32
+ lino/core/actors.py,sha256=YqdLhwj2iiZq9EY16xh7cmAeMTvB9viFU1Q7z_9D5Jo,74591
33
33
  lino/core/boundaction.py,sha256=9LgEsN3pM2DzG28_WZ7DgXKRRMdGW2E5yTVB1uWcsww,6674
34
34
  lino/core/callbacks.py,sha256=uu1-znzxVDD-JETUebw-hYsNg_9ExQb1vfwbc7Psjro,7549
35
- lino/core/choicelists.py,sha256=rR1FutDfYRRJUtBPJPl_aMuy6r6vqmZGkatcCe2wSUg,36519
35
+ lino/core/choicelists.py,sha256=RkgDhPjjC5lS0Zew1F5yNL2y3wYTIJOmqYEAnz5prxA,36530
36
36
  lino/core/classproperty.py,sha256=_E95WPAs7BWbAuFpPvoYM2ZwW_mbq3rvF7o43WsMq_8,4316
37
37
  lino/core/constants.py,sha256=chvG1TrwD2gVMmL4nTOZtO8NcffcclcUv3zBE8mMoiQ,4503
38
38
  lino/core/dashboard.py,sha256=p7EevOgKfyq4I_xs5ToXK_MhoivE-tky9YU4-zzGNMg,6514
39
- lino/core/dbtables.py,sha256=nSZgFOar2-XuDX3U5_BLJb7Im7ZvFcyP2iMQCxSTTaA,29134
39
+ lino/core/dbtables.py,sha256=wOnJT3eN8MDbBKSiM5YsZveqkmRwnK_ngWpSfWM5FZ8,29146
40
40
  lino/core/dbutils.py,sha256=_QHcWd-ajLUwt5G8uOp8d47lZQKD3VseHnqKJke18rA,263
41
41
  lino/core/ddh.py,sha256=dYScxWKTOCDEgow7wJNJe812ESasmmITPK2ovraBQno,3172
42
42
  lino/core/diff.py,sha256=XQ-oQQDS_v3kXd4eRP9Hwr5UCgp-TPZIPVav9ZblUno,5882
43
- lino/core/elems.py,sha256=CsYl9fLn5Jlt1HWrOEamcAC8xtMKeulhS3R2uRg4XcE,108453
43
+ lino/core/elems.py,sha256=3PZ-0RDr6c8QoZa9sWKV36w-wn1Oj2xFpjW8eHrEpzs,108811
44
44
  lino/core/exceptions.py,sha256=QDxDo5cllSyXQ8VWet9hGXzNadxCOmwMVrFXc6V-vpE,665
45
- lino/core/fields.py,sha256=C14cCHHJclk0z6NlJFRPyXPJaVS1DhngQLTE6gPR0BE,57407
45
+ lino/core/fields.py,sha256=3gABbUlQDvP67xVeyDDa5uQhXKr6giGyDt53Yv2Uiuk,57624
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
- lino/core/kernel.py,sha256=gqx1dqVpahdxNPejLcVm9c7JX3qlajosEJ-yEQTgHCU,48275
50
+ lino/core/kernel.py,sha256=dYnQ4wCqoR3lKRYPUqLlXJavhULtJbU7OWOHgJqWJpE,48424
51
51
  lino/core/keyboard.py,sha256=W3jA6qtB5HMppoNnd_6PgIM7ZlyHilJEhBvdeZTY7Xk,1283
52
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
- lino/core/model.py,sha256=wKxb0bWi_5FgcZn8Pz-bjDGo-5Y1cwOVTZPrJbv5ljQ,36408
55
+ lino/core/model.py,sha256=8PZfQTIDn868_0MAhMKB6Y9eEx5TCFEpm3rDfBjshCI,36694
56
56
  lino/core/permissions.py,sha256=Fnemz3NwWz21X0YATI9Q7ba2FcAdg-EMLHjIcbt_AVU,6840
57
57
  lino/core/plugin.py,sha256=oVvTsGoBBYmjvRgtyiFPIiHZQErH0ZlNjiUFtOk2dOM,6834
58
- lino/core/renderer.py,sha256=jIXxNSpljZhb9tBMhUfDNbZD3XmxYzaS6SlipHx29L4,47291
59
- lino/core/requests.py,sha256=I9feB-w8XnMRF7vkjFs63crzWMkojeLGHlU4ar6joxk,93617
58
+ lino/core/renderer.py,sha256=y79wQnoQ9cdnBmNXWnvPPWiTIrRs5ozyLI6j3T6oPr0,47251
59
+ lino/core/requests.py,sha256=NYogD5URYzFH3MU0z-g1CIQ_6zWzNmeLfFKOaesq97o,95048
60
60
  lino/core/roles.py,sha256=PXwk436xUupxdbJcygRSYFu7ixfKjAJPQRUQ8sy0lB0,4425
61
61
  lino/core/signals.py,sha256=0JT89mkjSbRm57QZcSI9DoThoKUGkyi-egNhuLUKEds,948
62
- lino/core/site.py,sha256=s_kisoL35ZcbFbF18eyvARu7OcNA_61GPE3-_6rNJIc,83136
63
- lino/core/store.py,sha256=eQyahBvsMvX2K_lJvJGSATLV0SGOOCfqpf0JDJprNNw,51351
62
+ lino/core/site.py,sha256=kUp5hjW_tLdDugmstIPyk8FEmbxCWBHsVOXQiQBEw-4,83163
63
+ lino/core/store.py,sha256=6pd4J5Y-U7Muz4mKFSL6K9KEZpJUbpM-I7RQTWyCo-8,51483
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
67
67
  lino/core/userprefs.py,sha256=cmufIS9xJErKDrw05uoWtQTUR6WRWIGkU1KdAqzNr5M,2850
68
- lino/core/utils.py,sha256=nfb9MCiij6uAiAVVi-F3MfdiKP-svjL8YOH3BKJ-JCU,36433
68
+ lino/core/utils.py,sha256=38geeLEMhJ6D_xEcDSxlnVL6DuYDVYuo4_p56IiAzQQ,36480
69
69
  lino/core/views.py,sha256=V2ZJA2TRSssXvJz0UbK6uQCJ6nfOGm7bpdZFKNmmsNI,7021
70
70
  lino/core/widgets.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  lino/core/workflows.py,sha256=9O5INnx3nPW73UmeEPWgN146clQSWwna3Jq_w1MThcg,10567
@@ -118,16 +118,15 @@ lino/management/commands/syncscreenshots.py,sha256=XYZhqfm5_RwJzVFNGhHJKucl4j6T6
118
118
  lino/management/commands/update_conf.py,sha256=saAaQdPhn3mNOoHcBxOFSf_vBEgM-aopTHq1sJN20Bo,1026
119
119
  lino/mixins/__init__.py,sha256=ADIq0rPGlAY4ifSaMvqahXvCMnbFzq2qAWcyyUkx4Ds,8930
120
120
  lino/mixins/dupable.py,sha256=ofyYrcT9WiYdVTkzgXyXaBu1kS-y197YnFTnZNALUHo,10233
121
- lino/mixins/duplicable.py,sha256=lQ5SEQmxPcOU9vETocgQI41uzgvunvXIy7HAnPeKDUI,4224
121
+ lino/mixins/duplicable.py,sha256=fjbHvavi8lTM0NMncttQMF9c5UP94pagS1qmRFgxBR0,4246
122
122
  lino/mixins/human.py,sha256=YDIfIHHAaVmzd3uGsJp_vDvkaBWOp09I7i4AGNy9YsQ,13255
123
123
  lino/mixins/periods.py,sha256=iFqUCUZlgUW2GmEHRl9suwJedztrXLluQhgFpu7Uj54,11479
124
124
  lino/mixins/polymorphic.py,sha256=MLbfOeIYRoDZO4048X2oWhG5cxds2pLkwciXcw1xjVQ,9393
125
125
  lino/mixins/printable.py,sha256=4U8M1lrTjUeuaPwrcWoanCBo53iAxiNpSTsVctI-gI0,199
126
126
  lino/mixins/ref.py,sha256=ZnyTcpHgcbYwDwgaBwLc5cGLQqz8MmjAypSEgPB7Ql4,5272
127
127
  lino/mixins/registrable.py,sha256=0m68YGlipRhE83IsEvXATZtvyxtMsH-Dpd5TGZh_GzE,6936
128
- lino/mixins/sequenced.py,sha256=E1ETBpe10FLpdGGej3mP5Lr1haY1aAwHUiYcR3yK-rs,16012
129
- lino/mixins/uploadable.py,sha256=OAzQk0tatGDxJ6Mf9f9EoMzLcvIfIPFBSiN2ohu7sGc,105
130
- lino/modlib/__init__.py,sha256=PQnp5RJeJIkomzBNb6zeslnEoGAf5Se9BGIiDySpFNU,963
128
+ lino/mixins/sequenced.py,sha256=D5svfwr4IqwEcML3cirAE9RGYo6gansPsSnhoZVcoNc,16453
129
+ lino/modlib/__init__.py,sha256=TRu6zfFj6MhGJ_90D0zNzw2T0dzVWyld3l1tsgrLF3k,950
131
130
  lino/modlib/about/__init__.py,sha256=jhqGQIXU1o7KkmmQjfwPKJc3buibB09Fy55carAmi7U,342
132
131
  lino/modlib/about/choicelists.py,sha256=2bxDb2u7cFacBOgLoEWrMmzQ4BJ3x1pmhdgqxzUp-Rw,1424
133
132
  lino/modlib/about/models.py,sha256=X5yJJlyoQ58GN9RsdlUA1KsumvRtkureWnxLPPAXWlE,5131
@@ -161,11 +160,11 @@ lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/bootstrap.min.js,sha256=1f0XPQD
161
160
  lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/bootstrap_lino.js,sha256=PxA9wsbAmzTJYPw7fMMg9Sh3CsS-bquziVKe1kjUYY8,114
162
161
  lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/npm.js,sha256=x6qCoap9RSJKONkm0q2v9_5K71vNr6Kke9rAV_RCLC0,484
163
162
  lino/modlib/changes/__init__.py,sha256=3-CO7xI-U-rKDu_-WJg7N4FaIgqmFcj81uzyQlNYrFE,1414
164
- lino/modlib/changes/models.py,sha256=kx3BGV82VWu1rA9N393zjPpPvy-k55NbOvV7KI1gfYc,9340
163
+ lino/modlib/changes/models.py,sha256=LvtiDewZAx-4z0uPtsznHBXUKtngXac5t-q7a7uB6BY,9549
165
164
  lino/modlib/changes/utils.py,sha256=4jz8QXgaBxfmCBUvDeZeh7lkdwfTq7OBXBiFhMmANqA,2550
166
165
  lino/modlib/checkdata/__init__.py,sha256=raUCoYi4WZLKVLG3GqH0ml1eH_YJXqY-EgXsKUe6iRY,2829
167
166
  lino/modlib/checkdata/choicelists.py,sha256=OGv3mmr5DPPahoBliAOFIx_H6ysuW3ZpcrI4fIq1SB0,5244
168
- lino/modlib/checkdata/models.py,sha256=3xXd1opiOjIlWtSQd1jg1XoLU8ZbGrkjbw0vDD7J2SE,11639
167
+ lino/modlib/checkdata/models.py,sha256=bfoj_Hf8vmgmYRuAlZ4B-wAw9uvLZtj158vdwjqZz30,12790
169
168
  lino/modlib/checkdata/roles.py,sha256=xjQ882-BxYUoHbv2pzebs7MWl6snA2fKivFDTRzW7sQ,295
170
169
  lino/modlib/checkdata/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
170
  lino/modlib/checkdata/fixtures/checkdata.py,sha256=TY9yIBwB5nEw0e6RTXqRwYdiCaLkkYTwWmFGcVBw2ow,332
@@ -175,22 +174,22 @@ lino/modlib/checkdata/management/commands/checkdata.py,sha256=CjtGm26qPxIWgkn5a9
175
174
  lino/modlib/comments/__init__.py,sha256=XoRLIB-pSsz4EfA2FhsbKQ27fsW_AAvS7SyA0_vhHv8,1678
176
175
  lino/modlib/comments/choicelists.py,sha256=SIA7P_KwtaayqOJxCkwyZouK0Z23-2v4ZFV9a0Zexnk,3314
177
176
  lino/modlib/comments/mixins.py,sha256=h1VvM4h-6rEixziz0r7vJCptM7T7K6i4r50Scz5riws,4413
178
- lino/modlib/comments/models.py,sha256=hS8Q1zLHt4WvlNnlhY8T5eRY14j-iKMDI061uAcAKMw,15893
177
+ lino/modlib/comments/models.py,sha256=o485Snf9GZKebzn8SlFu5oGyakCU9hTUDdNGqgxQVMo,15915
179
178
  lino/modlib/comments/roles.py,sha256=z3gctvlTa_5PAs-D4pounyzNyuEc31jTFq9g33r6Z1w,751
180
- lino/modlib/comments/ui.py,sha256=2FY5e1Mki1l4QX8d7LOskZ4b_b2_JON9hJQccjWWaKM,9846
179
+ lino/modlib/comments/ui.py,sha256=PSqivSMxMPxWsIQTuRPwaEO-NoELvaZBfFPozNJpfgA,9941
181
180
  lino/modlib/comments/config/comments/comments.js,sha256=7oAnNyx_MKM1iWPu-QSp6iKfnOVdgq7EciQPpxTvYU8,242
182
181
  lino/modlib/comments/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
- lino/modlib/comments/fixtures/demo2.py,sha256=FGsX1_r9h2Zz11wbemkqx_AcFIRmYKMx9TineWs_ic0,25328
182
+ lino/modlib/comments/fixtures/demo2.py,sha256=C3e0CnDtXuvcJ_OKpXGhcCc1Nrsd8wOcFcmWo3IWsUU,59688
184
183
  lino/modlib/dashboard/__init__.py,sha256=_PFbmakUn8DShXyJY3EfAcuZtX5ofWnS-8dk7s1CrLw,1420
185
184
  lino/modlib/dashboard/models.py,sha256=EgRNg88dmz-OlIdi1SyEuerWMsRqKIfqE2MgKL7kApw,3510
186
185
  lino/modlib/dupable/__init__.py,sha256=fIQ8wj-T8ZbkjwQgW_-ankJsHLjPMepOTo32mJXNCvI,532
187
186
  lino/modlib/dupable/mixins.py,sha256=B7JRVDRszf7ojFBAeb-Md_fJMc9Sp5u-emLEAtR6s2g,6318
188
187
  lino/modlib/dupable/models.py,sha256=0watviKwTiVwlArC54V3IxVVfcB1Yg5kO6ed2xCM9a0,4595
189
188
  lino/modlib/export_excel/__init__.py,sha256=k11dEbh1VgA7cMaUdMhiJvHNboX4BqN0Z5Wj9fV7rWw,469
190
- lino/modlib/export_excel/models.py,sha256=OaAkt__l-GaqGLMWQiwXHPJOYABkXHUZ7j9DC7uFE08,5078
191
- lino/modlib/extjs/__init__.py,sha256=-TfGa8YR8SWuCHkZ2_pFNVBfOhvVfL5ec4zz6_TWeo4,10170
189
+ lino/modlib/export_excel/models.py,sha256=MoGj3RyAj8PBy75HFGBv9Y1QnsG-H_ajRK27UDpZPKo,5094
190
+ lino/modlib/extjs/__init__.py,sha256=6UBWAWSROwy3DfTXQmVUVJTF6eZ_e2k3BEfE4wtqVhU,10172
192
191
  lino/modlib/extjs/ext_renderer.py,sha256=SwfikRmAi1FbDXQLsWNgzgkGqIePwL0UTLgQbb05pOE,60600
193
- lino/modlib/extjs/views.py,sha256=SFzGLKxuqvR-1PWAJfHWDgra9tcKq8XBppl_IrW7nXk,23760
192
+ lino/modlib/extjs/views.py,sha256=-EKi5Q-J6ZwvaG4nXgY9eHGlo9j3jNTfTwFL9IFf-rA,25735
194
193
  lino/modlib/extjs/config/extjs/index.html,sha256=jO5hdNpFSkm9t0xhHD5hc8Hw1fSr6xb3zYq9aMyOI7Q,8603
195
194
  lino/modlib/extjs/config/extjs/linoweb.js,sha256=I4VYGmkK4htqZvHM9g-6psJF3pp7SvgHEI0I02Sxpvo,175127
196
195
  lino/modlib/extjs/config/extjs/service-worker.js,sha256=KEKWeehTlfBHk3r8NbsP9C5av_DukHORybxFOwbjYaQ,1767
@@ -3500,7 +3499,7 @@ lino/modlib/help/models.py,sha256=Ik-fkUH8KHiPajar-SYCbuaQGfIbbgfI6-9rMkr1Np8,34
3500
3499
  lino/modlib/help/utils.py,sha256=dWmz0huCw7N4ENIsCUoGiXyn3AbkE96jVR4YwyzPjjo,3944
3501
3500
  lino/modlib/help/config/makehelp/actor.tpl.rst,sha256=Yl-ZAWvI93cVFLd7GG-qpn_vkGFvKe3iR0eWBJpHgMc,346
3502
3501
  lino/modlib/help/config/makehelp/actors.tpl.rst,sha256=wXMKYQnlhLi432QggVgRUWGuHRDiSX9NyXSdnSar7Io,249
3503
- lino/modlib/help/config/makehelp/conf.tpl.py,sha256=pTTQyP0F7ETvghtI2VcAflctnw-UYIDg3kOO9G4Jlrk,1113
3502
+ lino/modlib/help/config/makehelp/conf.tpl.py,sha256=865N8cgHCOsJk-9wJVHNL1A2zDilfFDxx9yd997jZKA,1114
3504
3503
  lino/modlib/help/config/makehelp/copyright.tpl.rst,sha256=0fcF2Mf83HJc50iMbiN_qgx-BgrO1wBOC5bWHKPE0No,138
3505
3504
  lino/modlib/help/config/makehelp/index.tpl.rst,sha256=q3SwIW70McQl5PmRniQvkj8ZaWQnEog9en8EDrE7qBw,281
3506
3505
  lino/modlib/help/config/makehelp/model.tpl.rst,sha256=2wyLT9h5llvm4xwZ5vu6fQoKMNcnNAjHi8Wp6l3-6zE,279
@@ -3519,6 +3518,8 @@ lino/modlib/ipdict/models.py,sha256=9-pjj_xXdndhQaQI8sgXcmODxurST_aFcShGwomiYKk,
3519
3518
  lino/modlib/jinja/__init__.py,sha256=XSa-e1qZGabl8EmRDKPRtmzgBRole5ZbxAUBR_m-ds0,3418
3520
3519
  lino/modlib/jinja/choicelists.py,sha256=QHjWQWLnJCKSGnLIKeGqnCw41JYvcbTkCeXjBpWh23w,1466
3521
3520
  lino/modlib/jinja/loader.py,sha256=MX027X_UuQPqq0wOUr06QnOkdTzGpksNv0Om1CGp61I,1765
3521
+ lino/modlib/jinja/mixins.py,sha256=jc7cYyc8jYGmJdA_MBQBH8voaCdzWIz1pO43P0XLVd8,2422
3522
+ lino/modlib/jinja/models.py,sha256=vXNFS78qP-qIzeSmnXJNOpvW_IfH1h6hhPgYjfkvvD0,207
3522
3523
  lino/modlib/jinja/renderer.py,sha256=yywxocrNYSPvUcMjuYw9guiPoq50lfaIKkJOP_PHg5o,6142
3523
3524
  lino/modlib/jinja/config/jinja/status.jinja.rst,sha256=XEsfXd82B0fLsBfds5-pXdeDWVr4ccTv7WyGa9ayigk,312
3524
3525
  lino/modlib/jinja/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -3531,20 +3532,22 @@ lino/modlib/languages/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
3531
3532
  lino/modlib/languages/fixtures/all_languages.py,sha256=311mA7tFvB33eVAZYk2B-rP0Hgf3qf01m3nGD_9nuyw,20905
3532
3533
  lino/modlib/languages/fixtures/few_languages.py,sha256=nhhfS4bV9x2yvtGlWFX5j7pC40-c31bFInGvlHxmT4Y,846
3533
3534
  lino/modlib/languages/fixtures/iso-639-3_20100707.tab,sha256=u8PwI2s8shy0_Val5-sa76Nll5FEtGi6_lAZevC-syY,180479
3534
- lino/modlib/linod/__init__.py,sha256=u2XCoHtoGwEpMDLfRnGYxj49s4DWng7vOjRrkS57F00,2607
3535
- lino/modlib/linod/choicelists.py,sha256=Tq3hoK7wHZXR8QruaSkAo1e8vE5qEy1bh5xrb8cPkyw,2147
3536
- lino/modlib/linod/consumers.py,sha256=NMzuLwNDPFyWNtqXXEyDQ3lyoUWniyoVWbRr7URazCM,6451
3537
- lino/modlib/linod/mixins.py,sha256=o40iC6z8WheXsJ6hL_Lqbyf8HY_FhCdUAwxZLECPN6k,10570
3538
- lino/modlib/linod/models.py,sha256=n3HhwDJr3fLdD3PHLZyeF4wBrfC2CWY_UdsC3Acuv7U,2295
3535
+ lino/modlib/linod/__init__.py,sha256=efmj_Kz3OO2zF1lvs7P459iufYGimH1-6Ge6Cbq85tQ,2665
3536
+ lino/modlib/linod/choicelists.py,sha256=Cu82s1QpcGFmKUXJsg-7TSqpaESBCZKOEfxzFlJP06I,2626
3537
+ lino/modlib/linod/consumers.py,sha256=XBjA1fflJ-e9yWRMKXyQAhrOklYzs5JRhEeGMOKWFqM,6730
3538
+ lino/modlib/linod/mixins.py,sha256=HcZSUUahQJie1Jmg26uvf8LwyQbfNqdXirg4WMHJcBI,10768
3539
+ lino/modlib/linod/models.py,sha256=_5usJGbYR6EW2hPjyQ2uNLW2bC9xcFMqbZHS1LSpeVc,2344
3539
3540
  lino/modlib/linod/routing.py,sha256=FiG0JVqp9TWWkNpl9Y_50UCAJ7ZEImDXkQUhlg4aGL4,2094
3540
3541
  lino/modlib/linod/utils.py,sha256=dE973Xib6Be1DvNsZ0M5wzY_jpkk35R21WKs-jQPorM,339
3542
+ lino/modlib/linod/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3543
+ lino/modlib/linod/fixtures/linod.py,sha256=qCFU2IktRVEdt1lChwu6kZLLnd4Ppfq_x9_2qGYelTY,1173
3541
3544
  lino/modlib/linod/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3542
3545
  lino/modlib/linod/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3543
- lino/modlib/linod/management/commands/linod.py,sha256=9-zRm-Xgp3uWj6AlDZpjtzo_TqSPyxIkKIrI_jshxVI,3457
3546
+ lino/modlib/linod/management/commands/linod.py,sha256=YNdEtAGakpi1iZM8qxAi66Btz2SyBD_REgwtKLIVhTU,3706
3544
3547
  lino/modlib/memo/__init__.py,sha256=Kghjmlz0y1km6SFq5m9nbDqD3CKfSplj57rso3IevLk,5247
3545
- lino/modlib/memo/mixins.py,sha256=qDCbUTVBx9Grw_FAgPS40R49mDjOOKPkZuzED4fuxxQ,11183
3548
+ lino/modlib/memo/mixins.py,sha256=Ij_bFcBY_ivo5t2HWArEeRkxIQhg61iP0sTNnhZpRac,11246
3546
3549
  lino/modlib/memo/models.py,sha256=2UbKaixPWCnP1ZkoJx_DDTtltpfYVbU3uJ1hmsZDU8A,3146
3547
- lino/modlib/memo/parser.py,sha256=lOSoXY5nj_CaM3jdd2e2s7-MbXCGRQu3SxQ3d1CMkEE,12994
3550
+ lino/modlib/memo/parser.py,sha256=YbGf1EdJqTI4rqM05ZPTdufN_-aWeV_Z85Nh47HH8Pw,12996
3548
3551
  lino/modlib/memo/views.py,sha256=H3g_nuiMzguptXLSWaWLJClU7BefXPFn9Rh8UIVVBeg,555
3549
3552
  lino/modlib/notify/__init__.py,sha256=suo7EMVdyTPTPFwuU2KZL25PwIEstTvvR4Turgdz7UE,6926
3550
3553
  lino/modlib/notify/actions.py,sha256=ClRKDjmgx3m43IZ5cx0TdxXN_pU6hLIlo_jCwEW2LhY,2468
@@ -3552,7 +3555,7 @@ lino/modlib/notify/api.py,sha256=dIuyn7uRF1dDgoGAqvFQvuJImLl1Q0g79skBJvnXMYs,333
3552
3555
  lino/modlib/notify/choicelists.py,sha256=7ZkYNMOXNDfyTvdx8Sn-Gsma9f31o-6G1CtivXmQDmA,1324
3553
3556
  lino/modlib/notify/consumers.py,sha256=YaEAhAi_Oq5ovakuP5DI21YIAMvRqQcf4K8MBilcN2w,1529
3554
3557
  lino/modlib/notify/mixins.py,sha256=oRArn5ZCJ3Ot4OAYXleyDEEkpe-y50qKdJTGmWq8ZHs,3495
3555
- lino/modlib/notify/models.py,sha256=2ujOilTVqvlxF1mW2aiO5rDLP1HH4OGcFVeCLPha1CA,18735
3558
+ lino/modlib/notify/models.py,sha256=DfhMc817tgRrEinJP2rFo-nDIK--NCdeK8-_ojcB_JU,18936
3556
3559
  lino/modlib/notify/utils.py,sha256=e4TAJr8mgicwEjgyuP-bOiw1VGNA6tVo_hab1q-oSNc,328
3557
3560
  lino/modlib/notify/views.py,sha256=Ar2L_Tv1qqU5giHu2b0h_AKc3utvgfZwda4qncqoBsk,957
3558
3561
  lino/modlib/notify/config/notify/individual.eml,sha256=Ct8fLx7dz_adE_ua8S87dYFSNESCHRbRGx9Ven1MlLI,307
@@ -3578,9 +3581,9 @@ lino/modlib/periods/mixins.py,sha256=QQXtu1Z6HjqDlL_xMM98FR7PQGKhYgjslhusOiWwPDA
3578
3581
  lino/modlib/periods/models.py,sha256=hu1myxDqrBMIiORNYWBpAIDz-WjDe3LmF2JhrvG6DeI,8444
3579
3582
  lino/modlib/periods/fixtures/std.py,sha256=iV6a2DNAhfYvO1VspGkcncEmygHK94zWdDZlHUY8JSw,881
3580
3583
  lino/modlib/printing/__init__.py,sha256=u1fq44d073-IDH_t8hWs1sQdlAHdsCP85sfEOMSW5L4,689
3581
- lino/modlib/printing/actions.py,sha256=CME19ZC6lYWO5qGoVX1b8P4q_wHSwvV19ELKEquMLJs,11704
3582
- lino/modlib/printing/choicelists.py,sha256=5-HdRkRsNccMH5uq4bAwWSFKaTxMCcZM6HjemgJUSaY,9605
3583
- lino/modlib/printing/mixins.py,sha256=XjcY5brF_1GxsECLCdOys7YBvUA4NNcGmpKAv3Q508k,8269
3584
+ lino/modlib/printing/actions.py,sha256=2-JORKcjJYuzK2kYmhqZl0gRR-4CrG7ul8mcFNfYYAI,11766
3585
+ lino/modlib/printing/choicelists.py,sha256=DM929pej7NUi1gm38nUr0t3-VANV95eqCLeW5ubh8y8,9712
3586
+ lino/modlib/printing/mixins.py,sha256=h4fDnUSHF04wynGUDXtSrK-XmO3-Y5BaNbf0wcQ-vzo,8247
3584
3587
  lino/modlib/printing/models.py,sha256=fd-BEKSLpgxPnkh9U7fg2tjNy39exBi3xJC9VzJuXdU,185
3585
3588
  lino/modlib/printing/utils.py,sha256=LUO9769wJvHCPZIqeVQ9XAS6UKJ6BfJbiwO8Dt1kHc4,737
3586
3589
  lino/modlib/printing/config/report/Default.odt,sha256=4X8UD9H_5Th2CELP0C6DTe4g0ZNUPXAg1C00xP3Qluc,10930
@@ -3588,7 +3591,7 @@ lino/modlib/printing/config/report/Default.wk.html,sha256=4Ssx2LWm1gVpXf0Q4XoSY1
3588
3591
  lino/modlib/publisher/__init__.py,sha256=bGQduKmgzr_lU2N6H4q4I5ZmW-3iwdPuT2D8dpiVOiI,2644
3589
3592
  lino/modlib/publisher/choicelists.py,sha256=y0jklQ0MQ8rAHoIDzPour2lsexcLhuMWeH50aD6eugc,8045
3590
3593
  lino/modlib/publisher/mixins.py,sha256=eMEZeMQdaEp9tDkA5_YdqFGQec1q7Z1DAJZvU1cmoRM,6229
3591
- lino/modlib/publisher/models.py,sha256=dkSy_EaHge0iKZ2-lUIIOdBnLyiIx7CPyO5RxGAmFxY,14388
3594
+ lino/modlib/publisher/models.py,sha256=DtlqvzFieGvtK9NtphnhPICB9RyAR380IHWKAtdAiKY,14449
3592
3595
  lino/modlib/publisher/renderer.py,sha256=9RoyVMQcbwh_GcbDJO8BWhCKe1kpbDc9M45hrMqzpNs,1922
3593
3596
  lino/modlib/publisher/ui.py,sha256=Evh97oxIut8FMyEzy8KFfNFEsNbVeKb7s1Fy3hOJOWk,4451
3594
3597
  lino/modlib/publisher/views.py,sha256=OCbvBdEP7ELorHsCTnhJa6PtSIcuHONKjq24bnUyiaQ,2135
@@ -3626,7 +3629,7 @@ lino/modlib/smtpd/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
3626
3629
  lino/modlib/smtpd/management/commands/recmail.py,sha256=_0co9uNx3Cq0zudrho-630yupuSCRM-Ilc5cIug3exE,1980
3627
3630
  lino/modlib/summaries/__init__.py,sha256=Jlf6cL-28aT5TNKS4wK-H-bFfptZN4c46S3w47mdgIM,528
3628
3631
  lino/modlib/summaries/mixins.py,sha256=PYD2ITpHbiIAUnMeaAWa1xBfZtSwCHjBQhSoNA7nXpg,5880
3629
- lino/modlib/summaries/models.py,sha256=JtBkvVgen4cyBhUiDR25quobH7Cl2Bo3mfPudC4RkPM,1983
3632
+ lino/modlib/summaries/models.py,sha256=vx28VP6ApD9D9tgoemw6x2VTZZNLbMCfnRo75f4jjTw,2039
3630
3633
  lino/modlib/summaries/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3631
3634
  lino/modlib/summaries/fixtures/checksummaries.py,sha256=GVqOT47RC6PMzGygssaiAalL98L95Rh0-cAXKRhgOfY,313
3632
3635
  lino/modlib/summaries/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -3636,7 +3639,7 @@ lino/modlib/system/__init__.py,sha256=cXb8cPBr3t18mXtiY_ScqscdUgd6MvSrsHebfqY-SH
3636
3639
  lino/modlib/system/actions.py,sha256=jmSYPQDvIQxDth8MaJ9GpkmSCufLGWjmAjKdHAIWE48,1126
3637
3640
  lino/modlib/system/choicelists.py,sha256=u9Y2e_lZxFS_SMe-MDeOCNOfHc1PtQ6OjdPG9WwpaGk,9512
3638
3641
  lino/modlib/system/mixins.py,sha256=fpj0O1218KgwGhRr8IHYRBXsNt5uXN87qVrx7dxvjys,19031
3639
- lino/modlib/system/models.py,sha256=30HT4M6o_jyYgZ5hLSRf6Inc0nuhxAsHQvLfPtvkFhM,10837
3642
+ lino/modlib/system/models.py,sha256=3BYWRbd1jCIJvUVLHUw53ayQmquNotXVNCH_rVzFSmU,10902
3640
3643
  lino/modlib/system/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3641
3644
  lino/modlib/system/fixtures/std.py,sha256=ko6TxoQ6hQvUJT6BYOFBB8-F_kxu8VlRhlEcUg248Uc,102
3642
3645
  lino/modlib/tinymce/__init__.py,sha256=do3zN5Mo2ftsegHTV_KUVaHl44RJ8WHBSS4Jb7BExHs,4879
@@ -4388,19 +4391,20 @@ lino/modlib/tinymce/static/tinymce-4.1.10/skins/lightgray/img/loader.gif,sha256=
4388
4391
  lino/modlib/tinymce/static/tinymce-4.1.10/skins/lightgray/img/object.gif,sha256=5qFeUrxKF7CFBzuo3r1HCOrWrj1MvrOIDGXLevxIl3c,152
4389
4392
  lino/modlib/tinymce/static/tinymce-4.1.10/skins/lightgray/img/trans.gif,sha256=nPAg18O7p_WrEM2lSqvvk0-QbU-aOs-Z6efcbJhXljU,43
4390
4393
  lino/modlib/tinymce/static/tinymce-4.1.10/themes/modern/theme.min.js,sha256=w41NrMzqdGEDk6OhjeuElBHlIr5Ntt_QpdoxNRFXa3Q,6431
4391
- lino/modlib/uploads/__init__.py,sha256=S6RNBs5vwCTnoAkPGRGWBQdKp1uOzWngc_B19iAmGsg,2675
4392
- lino/modlib/uploads/actions.py,sha256=lSdMmMmFaJRkJ2JkMX0aOVFNiisGVcI3PP3WqSQmK1E,1402
4393
- lino/modlib/uploads/choicelists.py,sha256=RVKLCEDly9VUa183ul5U9DRla8yOkMxrP4qMjTC5410,1327
4394
+ lino/modlib/uploads/__init__.py,sha256=XIQjTtWfAsSlaM8fwN7tonx8czOFtL9G1VB77Er2vmU,2821
4395
+ lino/modlib/uploads/actions.py,sha256=6Bi5hDUdR3cOA4ROARqPzRwQKtUcHoSl3QM44iWVrtE,1176
4396
+ lino/modlib/uploads/choicelists.py,sha256=-7SODzA_0afrBgPh7-j8kpz0VdzDXy2U7dLhhwE2kG8,1327
4394
4397
  lino/modlib/uploads/dummy_upload.odt,sha256=VHG2YkykCg8VqoXx8Hm37QYunvdbmg_jCyygiZseKF8,10447
4395
4398
  lino/modlib/uploads/dummy_upload.pdf,sha256=hdAx7s3V10lqVekSGugzkn_Hqxx3V4OkCNVNQI2OsFY,18730
4396
- lino/modlib/uploads/mixins.py,sha256=4CSTEDU0ZBfdCV5RqV9SGc3r0rH7TlaGdB7tGGlVN-o,8000
4397
- lino/modlib/uploads/models.py,sha256=nFGPyLdSJW61gv1jAAscrVKHub86F5X_srjVq8e3WvY,16572
4399
+ lino/modlib/uploads/mixins.py,sha256=blYaqtbO0m9o0PdFdM7HB6QvoGC5bMBmRqFe7R8x1bM,8362
4400
+ lino/modlib/uploads/models.py,sha256=5RavdJL5VLEgmsd1u6DAc_XoecDoZ-Qd4yZ9yAe7b_E,17474
4398
4401
  lino/modlib/uploads/roles.py,sha256=ae0wf_vC4O6MffDx8abpjW1M2oWOp5VzOvt_ckk72Cc,191
4399
- lino/modlib/uploads/ui.py,sha256=dc17OUf8R6jqFFt6qzfCkBHIiMKEhoOBGFw0esWfA2g,8456
4402
+ lino/modlib/uploads/ui.py,sha256=gVQQJUJEfBAESkU5ueKXs_XKZYiXYaIMh1CyNXBrcyk,8666
4400
4403
  lino/modlib/uploads/utils.py,sha256=MQAJbI5sUe0RCXCrkxpNKUJFxHpz1bOMqKQy3QsA76o,3343
4401
4404
  lino/modlib/uploads/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4402
4405
  lino/modlib/uploads/fixtures/demo.py,sha256=igZevIAwJFjt5y90lnkzVnaWYgZLxmEtOFuFQA7TbDE,1665
4403
4406
  lino/modlib/uploads/fixtures/demo3.py,sha256=q0bwZrx5XtRsRlFpsa33fL0sCl7IdCYaP9E1rhCnJt4,547
4407
+ lino/modlib/uploads/fixtures/std.py,sha256=nb5oRcX_WrkTLaGoch6PT7GA0FPKmqbN-BdlPq-hHSc,516
4404
4408
  lino/modlib/users/__init__.py,sha256=40f-PheIyHqAzGXQbkvEKAnZ9_bb8RkaLAKIqNE96qg,3215
4405
4409
  lino/modlib/users/actions.py,sha256=Nik2CoxKZWoGIsPT50mWESzHSTQx9WiBXWG64CUFyS8,18074
4406
4410
  lino/modlib/users/choicelists.py,sha256=-X76C1NxIs5e7rFHp5Z0kjJkA1NlOP2vdLKGkI2wZRU,3876
@@ -4595,7 +4599,7 @@ lino/templates_old/404.html,sha256=9O5EJgULwLws0X1LjNig3xT4l9Hw04MBIGswD-EAlnw,2
4595
4599
  lino/templates_old/500.html,sha256=inOR744w4FGJM_fCSQcnlk-OIYQpaBTxUQWgXQozon4,496
4596
4600
  lino/templates_old/base.html,sha256=qYqj5-u1UPtpatrFkqBr3MnwS0oFUXCyQRcuNZczDfk,1641
4597
4601
  lino/templates_old/base_site.html,sha256=NcLEk0kBT1b-SrhoGpDPUej7NExqJ9-dP1kbrvwBzrs,255
4598
- lino/utils/__init__.py,sha256=gWMOaiqZ884GJNC68tu6g3-JinoCDMd6i1l9z4cRi2g,18377
4602
+ lino/utils/__init__.py,sha256=Z7ilNYzd2gJpx5XyE70UvrFsi7jQI7JxvlTO0txpUw0,18364
4599
4603
  lino/utils/addressable.py,sha256=o7bmLbyvrmOoAT478s7XqjWKvnZ7zSXj4k7Xf0ccqf8,2213
4600
4604
  lino/utils/ajax.py,sha256=npCS0WumhTQlBzXxQPKnp2sYCRcPsYcbFqzE2ykVc4Q,3254
4601
4605
  lino/utils/choosers.py,sha256=9jjeLz-QcWVBfR8_GdY4PNYoqIYM63OI3OvOL2l1ZaU,17604
@@ -4616,11 +4620,11 @@ lino/utils/html2odf.py,sha256=Hxw4HiIHY1ZCjb4_JLykVHbr6yAMhhHrnrCnLNDYKAs,4826
4616
4620
  lino/utils/html2xhtml.py,sha256=fvrIoLBFpiXtYO3UYaIgAIDjf6ATvrxolQX4etxS57Y,2119
4617
4621
  lino/utils/instantiator.py,sha256=BKgcig5Cgt7paAq4ouZNuQct9o9BEd3LbrAyQx1E3KQ,6995
4618
4622
  lino/utils/jinja.py,sha256=1FZgWNKEP9wcokFuIfYysl_VD5mwVHxBHtpnmO17nRQ,1444
4619
- lino/utils/jscompressor.py,sha256=uA6APYMO1q5ah3-lPmGU6d5Uk7IFVwEBQAmURpfXlzs,5221
4623
+ lino/utils/jscompressor.py,sha256=j9UTaaPCfRZLrWUh6PBp0KDDM0QshG7XAFzp-R_elOs,5225
4620
4624
  lino/utils/jsgen.py,sha256=yN0uUNFp4FCxsSPJBDsdkvtAJVL50f7CpW4hR31Rm4k,15215
4621
4625
  lino/utils/latex.py,sha256=cv5rJjtcslTVoRNjAmlUd2CCpC0GPO-YnvJgNJJe0R8,2218
4622
4626
  lino/utils/mdbtools.py,sha256=R1LHskyDLtwBcYRDA14PU2XeSku9gRUIV52f4Sr-Hto,5310
4623
- lino/utils/media.py,sha256=lWGjaBuRf1-4Bu2Q0tUkfOPWYbkjjjftf8GvwdF9V-g,2017
4627
+ lino/utils/media.py,sha256=_JSIL7GQONbYknMzhYNkD0LNipMKXJwOIf4V1yiklDY,3013
4624
4628
  lino/utils/mti.py,sha256=CSOpu0BxSQ6ii5Sky3eVcUMp_jCcBwgOHi3_ydWf3YU,11193
4625
4629
  lino/utils/mytidylib.py,sha256=38qV49amgCi4CE4zRmHt_RrqpF8JOV0SDsBj0bIYy8s,4647
4626
4630
  lino/utils/odsreader.py,sha256=odz2VYTNa0l5mO2FLgm4HW4bwA6OS78R5G4c_HGRfK8,4355
@@ -4630,13 +4634,12 @@ lino/utils/pythontest.py,sha256=AA9i3CEWgpbJKNTkxc0Gz94sy1R1MBpyinqrlahKKno,4954
4630
4634
  lino/utils/pyuca.py,sha256=YSLpCYEMqKUhx1y0q-ML8Ryu2ARDFO2HyIFxz1DzYEY,4344
4631
4635
  lino/utils/quantities.py,sha256=m_oi647uCTf2NhhQo6ytphZa2jQq1QXIUcts-cLkEJM,7367
4632
4636
  lino/utils/ranges.py,sha256=wVsZMe3dlaRYWWELXCGSK2DvjBfW4eLbAwpQVYqzj3g,3303
4633
- lino/utils/report.py,sha256=5l1NkZpcZyd1zpg37MB4Doly9dH9KHBEFarp9Q6vh4w,7983
4634
- lino/utils/requests.py,sha256=vXxsC51FK9FgrqmF9dy3MsmUqJINjSQ_4AmvBiQbGEk,1337
4635
- lino/utils/restify.py,sha256=QMVQXrmjDl6PPC7HJJGeDm125pcvrZKvcMpiscaPrsw,14066
4637
+ lino/utils/report.py,sha256=i2-NyNud-coFlwIlHGgmIcvMgMhlNdmr3wXCO0prGf4,8013
4638
+ lino/utils/restify.py,sha256=AbVCBjM9V9rYuFweV1gVo9ObO8lblJbA-mKjaPsebRE,14068
4636
4639
  lino/utils/screenshots.py,sha256=T-szKC3EJfo4JcLio8Jj0xqaoSuJcZG6Jf9EF_B8WDQ,2040
4637
4640
  lino/utils/sendchanges.py,sha256=fcSqRyI3l8sEf9_LSqIyWGML6CORoYkjcFp2bs-YNlY,7097
4638
4641
  lino/utils/socks.py,sha256=0d67FDbrJ7PXl4AYzNNZgwCzV-fzIAAtWGxMEB7dw78,538
4639
- lino/utils/soup.py,sha256=__Bt9WDoayUGPi98EzBrD3dlbVp_NNrD9_irB7yUugc,10753
4642
+ lino/utils/soup.py,sha256=tQNk9MweAWH9s14rCPQI0XNc4vuWrEc2leBGqnGrsCg,10937
4640
4643
  lino/utils/sql.py,sha256=kwCgv5E3n7uLjpXOEiaF2W2p8LeGXcP39xgtnqvzTP8,6795
4641
4644
  lino/utils/sqllog.py,sha256=kUCnBfFjExhItJ1w76WT9VWPaWWq8NQM-kSIMIIZnRU,3282
4642
4645
  lino/utils/ssin.py,sha256=Wo-9M0pG0uEYEGvmz8N--iRIqJe3ETtgLOXoung7qlE,4232
@@ -4645,12 +4648,12 @@ lino/utils/textfields.py,sha256=suTUK_zwTcxT1eHWAlif_AoRXxG_0AW6JhdbOv1zDSQ,2239
4645
4648
  lino/utils/ucsv.py,sha256=KjhGh7K_yxQOM0gHWjn4BjPdi_1aLPHkem5J8nNCqD4,2235
4646
4649
  lino/utils/watch.py,sha256=cZiiR8BRvuKxT_mzPFEoQWZyYKbRYqbi7TqNHD6HsZ4,83
4647
4650
  lino/utils/weekly.py,sha256=t4WZAmAy0Z-siaMEaYgVQh1VDNKXtEa-wgLDXd52BtU,1577
4648
- lino/utils/xml.py,sha256=4Z44W1e5HvTVrU8erkohgnwqY-5Cr2NHywaAJ5OgRvw,989
4651
+ lino/utils/xml.py,sha256=EGDnO1UaREst9fS7KTESdbHnrrVCwKbRQdvut6B6GmQ,1612
4649
4652
  lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
4650
4653
  lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
4651
4654
  lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
4652
- lino-25.2.2.dist-info/METADATA,sha256=zdReU_IERL2XyGbIUuXYmrscWytvSX3KxnxAmZWLT_Q,42534
4653
- lino-25.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4654
- lino-25.2.2.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4655
- lino-25.2.2.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4656
- lino-25.2.2.dist-info/RECORD,,
4655
+ lino-25.3.0.dist-info/METADATA,sha256=DCTaKQ0VlgGPikZ-tZ7FzLTIaejVwJrEmOIqN-KwPGg,42534
4656
+ lino-25.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4657
+ lino-25.3.0.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4658
+ lino-25.3.0.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4659
+ lino-25.3.0.dist-info/RECORD,,
lino/mixins/uploadable.py DELETED
@@ -1,3 +0,0 @@
1
- raise Exception(
2
- "lino.mixins.Uploadable has been moved to lino.modlib.uplodas.mixins.UpoloadBase"
3
- )
lino/utils/requests.py DELETED
@@ -1,55 +0,0 @@
1
- # Copyright 2009 Rumma & Ko Ltd
2
- # License: GNU Affero General Public License v3 (see file COPYING for details)
3
-
4
- import os
5
-
6
-
7
- def again(request, *args, **kw):
8
- get = request.GET.copy()
9
- for k, v in list(kw.items()):
10
- if v is None: # value None means "remove this key"
11
- if k in get:
12
- del get[k]
13
- else:
14
- get[k] = v
15
- path = request.path
16
- if len(args):
17
- path += "/" + "/".join(args)
18
- path = os.path.normpath(path)
19
- path = path.replace("\\", "/")
20
- s = get.urlencode()
21
- if len(s):
22
- path += "?" + s
23
- # print pth
24
- return path
25
-
26
-
27
- def get_redirect(request):
28
- if hasattr(request, "redirect_to"):
29
- return request.redirect_to
30
-
31
-
32
- def redirect_to(request, url):
33
- request.redirect_to = url
34
-
35
-
36
- # ~ def is_editing(request):
37
- # ~ editing = request.GET.get("editing",None)
38
- # ~ if editing is None:
39
- # ~ path = request.session.get("editing",None)
40
- # ~ else:
41
- # ~ editing = int(editing)
42
- # ~ if editing:
43
- # ~ request.session["editing"] = path = request.path
44
- # ~ else:
45
- # ~ request.session["editing"] = path = None
46
- # ~ if request.path == path:
47
- # ~ return True
48
- # ~ request.session["editing"] = None
49
- # ~ return False
50
-
51
- # ~ def stop_editing(request):
52
- # ~ request.session["editing"] = None
53
-
54
- # ~ def start_editing(request):
55
- # ~ request.session["editing"] = request.path
File without changes