lino 25.4.1__py3-none-any.whl → 25.4.3__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 (52) hide show
  1. lino/__init__.py +1 -1
  2. lino/api/dd.py +8 -10
  3. lino/core/dbtables.py +2 -3
  4. lino/core/fields.py +30 -15
  5. lino/core/kernel.py +33 -7
  6. lino/core/renderer.py +3 -3
  7. lino/core/requests.py +24 -9
  8. lino/core/site.py +38 -29
  9. lino/core/tables.py +27 -29
  10. lino/help_texts.py +7 -3
  11. lino/management/commands/demotest.py +16 -22
  12. lino/mixins/__init__.py +32 -35
  13. lino/mixins/dupable.py +2 -4
  14. lino/mixins/registrable.py +5 -2
  15. lino/modlib/about/models.py +2 -2
  16. lino/modlib/changes/models.py +2 -2
  17. lino/modlib/checkdata/choicelists.py +4 -4
  18. lino/modlib/checkdata/models.py +2 -2
  19. lino/modlib/comments/fixtures/demo2.py +4 -0
  20. lino/modlib/comments/models.py +1 -1
  21. lino/modlib/dupable/mixins.py +3 -5
  22. lino/modlib/export_excel/__init__.py +6 -8
  23. lino/modlib/export_excel/models.py +1 -3
  24. lino/modlib/extjs/ext_renderer.py +1 -1
  25. lino/modlib/extjs/views.py +1 -1
  26. lino/modlib/help/fixtures/demo2.py +3 -2
  27. lino/modlib/jinja/mixins.py +20 -4
  28. lino/modlib/linod/mixins.py +17 -12
  29. lino/modlib/linod/models.py +1 -1
  30. lino/modlib/memo/mixins.py +3 -2
  31. lino/modlib/notify/api.py +33 -14
  32. lino/modlib/notify/mixins.py +16 -1
  33. lino/modlib/notify/models.py +10 -25
  34. lino/modlib/printing/mixins.py +1 -1
  35. lino/modlib/publisher/models.py +55 -6
  36. lino/modlib/publisher/ui.py +3 -3
  37. lino/modlib/publisher/views.py +9 -2
  38. lino/modlib/system/models.py +1 -1
  39. lino/modlib/uploads/mixins.py +1 -1
  40. lino/modlib/uploads/models.py +2 -2
  41. lino/modlib/users/actions.py +2 -4
  42. lino/modlib/users/models.py +13 -19
  43. lino/modlib/users/ui.py +1 -1
  44. lino/sphinxcontrib/logo/templates/part-of-synodalsoft.html +0 -1
  45. lino/utils/format_date.py +10 -5
  46. lino/utils/media.py +16 -31
  47. {lino-25.4.1.dist-info → lino-25.4.3.dist-info}/METADATA +1 -1
  48. {lino-25.4.1.dist-info → lino-25.4.3.dist-info}/RECORD +51 -52
  49. lino/management/commands/monitor.py +0 -160
  50. {lino-25.4.1.dist-info → lino-25.4.3.dist-info}/WHEEL +0 -0
  51. {lino-25.4.1.dist-info → lino-25.4.3.dist-info}/licenses/AUTHORS.rst +0 -0
  52. {lino-25.4.1.dist-info → lino-25.4.3.dist-info}/licenses/COPYING +0 -0
@@ -1,13 +1,13 @@
1
1
  lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
2
2
  lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
3
- lino/__init__.py,sha256=CcmiXMf7kjvfR3armsMJoL2tdYjk5eeMI5a5XcwanPk,6176
3
+ lino/__init__.py,sha256=NIz99QDcp3WGCLbrw0KdBjHI4-fjQbLrCUifvYsLnOE,6176
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=MGIQvx-xvYSyfgtSHkolpJ2aQlvChEFyR9_Xw1qt49w,90988
7
+ lino/help_texts.py,sha256=n0cYycLTZFF72ybnYAwMkF-FxpLPyS4fNxQaUNpNTAQ,91428
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=FSv9gDstKcKM1qFgSSJpJOGhvT0bDTIqwjcPA9pbMm8,7431
10
+ lino/api/dd.py,sha256=-mxiSJS27LGCWyOgboA8qDudTkE9vg9vmUGOT08Hq6A,7410
11
11
  lino/api/doctest.py,sha256=87j1_xGpomQlEmUUh8CprBFbbqKuQe1OWr5iIXABWag,24028
12
12
  lino/api/rt.py,sha256=OCYWhrWnMcL988MdvBLBEP8qKQJEGXQhVoam_X0sotU,1376
13
13
  lino/api/selenium.py,sha256=bOu8UaNz3Q7lGVvxjmvrtYtSWn1xfI1f5MN5sVcdYr8,9383
@@ -36,18 +36,18 @@ lino/core/choicelists.py,sha256=RkgDhPjjC5lS0Zew1F5yNL2y3wYTIJOmqYEAnz5prxA,3653
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=1ASWZ9I1LQBUJZ0JKiwW_g_1Pix3jb4SWUFC2cUM23g,6537
39
- lino/core/dbtables.py,sha256=ib3yzqeQgzxdero2DnfSxkGYncP7TfLx37uniVgl13A,29170
39
+ lino/core/dbtables.py,sha256=bV1hcr9MXCT3doauxcOrnTZeBmHtb1tAQrLlnfvQj_o,29113
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
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=9yb4rBVebV1blvk4qdEVmhW8xqwE2fCfOtBtI7bXYXw,57645
45
+ lino/core/fields.py,sha256=ZnNMTI_1VbNbfIABa2r3hiOByZ2BF0M4TUOOFZfL72U,58106
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=Qd_PGEn0yMXNYVPI0wCv1vvo2CNdlPkyoBmKZELOtGM,13422
50
- lino/core/kernel.py,sha256=BY86dmUaU95zw22RlhZXbbBGpuOvsxfanMqzFr6Us0w,46939
50
+ lino/core/kernel.py,sha256=oeBQb5rbsSKWPXW67gHRTup5IXKGBptVbPAfiUjHVog,47664
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=W0Co9K-ayvfX5Zt5rgSxJrFRejtiYrwIR5EecdYXPNc,10857
@@ -55,13 +55,13 @@ lino/core/merge.py,sha256=sKtTeZtHdoDKerdHj4NXuXXNzpKDsfdPaiq-CY0NqQc,9094
55
55
  lino/core/model.py,sha256=YENZ-v1sggtdTitgmC8jBmuihN1EsKXQMlbPAuTSat8,36870
56
56
  lino/core/permissions.py,sha256=Fnemz3NwWz21X0YATI9Q7ba2FcAdg-EMLHjIcbt_AVU,6840
57
57
  lino/core/plugin.py,sha256=8FdxFF5tqHK-N8aXANzpWXY97hj6Lty4ulM6PWcq5A8,6833
58
- lino/core/renderer.py,sha256=auQn2v9bBp6jLIH3hXRQXbrjFrTmsO1o0DwaoXBn1eE,47310
59
- lino/core/requests.py,sha256=67335dTFqcwfF1PvWFmWwDKmVyJvDW9dMRQJF_X_Q9I,95093
58
+ lino/core/renderer.py,sha256=C00J0L41hLv9b2sAzqSSrT0Lz5Fc78JnwHiq9LqF81c,47310
59
+ lino/core/requests.py,sha256=xIq6kXhjLoYbSkW40_BH-uj0WvmfkvOVLGm2piiGtJo,95835
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=RsvMMSaCHzGcVpvUWKhkW4ugP6Fj7EfQXx5NegzJ9PQ,83164
62
+ lino/core/site.py,sha256=IBC8XyyUTq7Qt3LSkAidsyPG3sd5eBevBA5abUQgQas,83446
63
63
  lino/core/store.py,sha256=6pd4J5Y-U7Muz4mKFSL6K9KEZpJUbpM-I7RQTWyCo-8,51483
64
- lino/core/tables.py,sha256=rMMDmDKMcWJ39fD9Q_EFV7qdcXMktwO40G4ATyKuRGg,24427
64
+ lino/core/tables.py,sha256=Yoj-H2ASW9xIger8kuW8xst5A_tEmtWpV17L11Ebca0,24348
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
@@ -97,7 +97,7 @@ lino/locale/zh_Hant/LC_MESSAGES/django.po,sha256=J9IELaIaZmBI2Vfu9HPIVA-g45QTYIx
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=MrOio6uBtQNW5gnbRrPIjarwUe18R-irxC7dLBBCpR4,1949
100
- lino/management/commands/demotest.py,sha256=yvxpl1G0Clt-iu7lY0DK9HVhaWyl_tQhYx0YUpddTWM,5041
100
+ lino/management/commands/demotest.py,sha256=NCUr3ttqU0oorOIc3Z6R_cNNgw5_OzHDbQf0HWlcB1g,4877
101
101
  lino/management/commands/diag.py,sha256=vt-NlZUx5gf7T4EpbM-gle3tAwMuwfPQY8lUgxjFaUw,478
102
102
  lino/management/commands/dump2py.py,sha256=X2u6OVkSb4MVQucF6jOKDDwRc8TCBNakW3UX_9S-n-U,20344
103
103
  lino/management/commands/dump_settings.py,sha256=tGOR4h_ueVe2DOk84ILFvzvndt0doshvaxRkybB-rnY,2009
@@ -107,7 +107,6 @@ lino/management/commands/makemigdump.py,sha256=TvNnFFjD6XRMFLbX8IEMSNDKTMPLTBCi8
107
107
  lino/management/commands/makescreenshots.py,sha256=fJF7ATZz7_s1IWkkYMEHVTLB5r5C1ny-kJp253BeoKM,8667
108
108
  lino/management/commands/makeui.py,sha256=qYz68fnUKNXicZfGy3GXdjIZubhg1KyQnqjMblFN_LY,4813
109
109
  lino/management/commands/mergedata.py,sha256=-dPvBtyc-AqKpQeL4TUd2IKHGe8EaaW8Citcsp_hwEU,2527
110
- lino/management/commands/monitor.py,sha256=-axtsW-uzk87ESR6-GSfUL0Y2ylB5BwHC6Xlx3fPxo4,5113
111
110
  lino/management/commands/passwd.py,sha256=S-7qyUWOaBnqRo_quwWewJjzwonqK4PBP2j8fuBGy3c,3012
112
111
  lino/management/commands/prep.py,sha256=23bnkHQrFHDPjGDI7Y2epXAC2bJ3oBYg0ZZV7g6ibTM,2124
113
112
  lino/management/commands/qtclient.py,sha256=ltZyz-SmIevotRmv26TmPiW8VTXKK37DUwdwwMUzrHI,4715
@@ -116,20 +115,20 @@ lino/management/commands/run.py,sha256=MiK53KIACYKDTKF6knJGwU-uzEApGnDxByi-3_nrT
116
115
  lino/management/commands/show.py,sha256=dS_TotAEeH8zo_wufQgca6q0Yj9qeWsJUOUcss6YD7E,1439
117
116
  lino/management/commands/syncscreenshots.py,sha256=XYZhqfm5_RwJzVFNGhHJKucl4j6T6mYo2GsDaUzvjAs,1561
118
117
  lino/management/commands/update_conf.py,sha256=saAaQdPhn3mNOoHcBxOFSf_vBEgM-aopTHq1sJN20Bo,1026
119
- lino/mixins/__init__.py,sha256=ADIq0rPGlAY4ifSaMvqahXvCMnbFzq2qAWcyyUkx4Ds,8930
120
- lino/mixins/dupable.py,sha256=ofyYrcT9WiYdVTkzgXyXaBu1kS-y197YnFTnZNALUHo,10233
118
+ lino/mixins/__init__.py,sha256=7_gW-TzHryL9hvcOx90Op-uBGvivtEj4e6bfNp6j_OE,8854
119
+ lino/mixins/dupable.py,sha256=9DNZ9xsgSFsxchqzlo86jQVecXABuDeEZ62tamj-X9A,10235
121
120
  lino/mixins/duplicable.py,sha256=a5-1jZZWX-kgKg5GNhV6yaSGOgfTyd2lWHtY35bVmes,4247
122
121
  lino/mixins/human.py,sha256=YDIfIHHAaVmzd3uGsJp_vDvkaBWOp09I7i4AGNy9YsQ,13255
123
122
  lino/mixins/periods.py,sha256=iFqUCUZlgUW2GmEHRl9suwJedztrXLluQhgFpu7Uj54,11479
124
123
  lino/mixins/polymorphic.py,sha256=MLbfOeIYRoDZO4048X2oWhG5cxds2pLkwciXcw1xjVQ,9393
125
124
  lino/mixins/printable.py,sha256=4U8M1lrTjUeuaPwrcWoanCBo53iAxiNpSTsVctI-gI0,199
126
125
  lino/mixins/ref.py,sha256=ZnyTcpHgcbYwDwgaBwLc5cGLQqz8MmjAypSEgPB7Ql4,5272
127
- lino/mixins/registrable.py,sha256=0m68YGlipRhE83IsEvXATZtvyxtMsH-Dpd5TGZh_GzE,6936
126
+ lino/mixins/registrable.py,sha256=I9KqbYf0kZdbpD4UBUwNK7_OhRdWQDVqK0tkSU-M2ZU,7114
128
127
  lino/mixins/sequenced.py,sha256=6FiHJX2ZIraqUofdnb082b978PISNbpd2Vr87YA_1pg,16460
129
128
  lino/modlib/__init__.py,sha256=cO31gNu2oRkp7o2v3D9gK2H7j4jF9rbVyPxPZhZQwrQ,940
130
129
  lino/modlib/about/__init__.py,sha256=jhqGQIXU1o7KkmmQjfwPKJc3buibB09Fy55carAmi7U,342
131
130
  lino/modlib/about/choicelists.py,sha256=2bxDb2u7cFacBOgLoEWrMmzQ4BJ3x1pmhdgqxzUp-Rw,1424
132
- lino/modlib/about/models.py,sha256=7dbWnw5DXy0BWsvj9bW9ugRQIxD8B_My3yA_ReLUP5o,5126
131
+ lino/modlib/about/models.py,sha256=bT62zZrvdEF1JprwB152v_VmRMfEIbdXrkN7VZISfEg,5141
133
132
  lino/modlib/awesomeuploader/__init__.py,sha256=pUUnpdglJ0IDMBgW-ZQwnTOPHDRjItEiIWbSwv4qvBM,1825
134
133
  lino/modlib/awesomeuploader/models.py,sha256=LaK6IzLoCX4qMkVhsgdPfgawyFPe5rcHUgBFY0PbzWg,801
135
134
  lino/modlib/awesomeuploader/config/awesomeuploader/snippet.js,sha256=cZCGi0e9lDW96vCg3KVJ5DUtg2KHLNdnPo5KPRrQxv8,1792
@@ -160,11 +159,11 @@ lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/bootstrap.min.js,sha256=1f0XPQD
160
159
  lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/bootstrap_lino.js,sha256=PxA9wsbAmzTJYPw7fMMg9Sh3CsS-bquziVKe1kjUYY8,114
161
160
  lino/modlib/bootstrap3/static/bootstrap-3.3.4/js/npm.js,sha256=x6qCoap9RSJKONkm0q2v9_5K71vNr6Kke9rAV_RCLC0,484
162
161
  lino/modlib/changes/__init__.py,sha256=3-CO7xI-U-rKDu_-WJg7N4FaIgqmFcj81uzyQlNYrFE,1414
163
- lino/modlib/changes/models.py,sha256=LvtiDewZAx-4z0uPtsznHBXUKtngXac5t-q7a7uB6BY,9549
162
+ lino/modlib/changes/models.py,sha256=wflXkqKSC-0ZynPGEd6PR4agP6zMuYO6v6v2NcRJgoo,9537
164
163
  lino/modlib/changes/utils.py,sha256=4jz8QXgaBxfmCBUvDeZeh7lkdwfTq7OBXBiFhMmANqA,2550
165
164
  lino/modlib/checkdata/__init__.py,sha256=raUCoYi4WZLKVLG3GqH0ml1eH_YJXqY-EgXsKUe6iRY,2829
166
- lino/modlib/checkdata/choicelists.py,sha256=OGv3mmr5DPPahoBliAOFIx_H6ysuW3ZpcrI4fIq1SB0,5244
167
- lino/modlib/checkdata/models.py,sha256=AfqGbL9z61kxFqA6OIuOlozUmqrlOy_uRR1rwXVXcU8,13538
165
+ lino/modlib/checkdata/choicelists.py,sha256=JlBK8VeJK6yAFiqeU1Zx7m2wpDtTpZ1o6YPjnig6g70,5260
166
+ lino/modlib/checkdata/models.py,sha256=MNfvEqwHVw8K9Aoqd2rVvcdRo67vpsCufctj9B6g4qM,13546
168
167
  lino/modlib/checkdata/roles.py,sha256=xjQ882-BxYUoHbv2pzebs7MWl6snA2fKivFDTRzW7sQ,295
169
168
  lino/modlib/checkdata/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
169
  lino/modlib/checkdata/fixtures/checkdata.py,sha256=TY9yIBwB5nEw0e6RTXqRwYdiCaLkkYTwWmFGcVBw2ow,332
@@ -174,22 +173,22 @@ lino/modlib/checkdata/management/commands/checkdata.py,sha256=CjtGm26qPxIWgkn5a9
174
173
  lino/modlib/comments/__init__.py,sha256=XoRLIB-pSsz4EfA2FhsbKQ27fsW_AAvS7SyA0_vhHv8,1678
175
174
  lino/modlib/comments/choicelists.py,sha256=SIA7P_KwtaayqOJxCkwyZouK0Z23-2v4ZFV9a0Zexnk,3314
176
175
  lino/modlib/comments/mixins.py,sha256=h1VvM4h-6rEixziz0r7vJCptM7T7K6i4r50Scz5riws,4413
177
- lino/modlib/comments/models.py,sha256=bEfmLjLcugG8Fhfg7Sn2yXRm9m_pfayqNzi31XWJR7k,15922
176
+ lino/modlib/comments/models.py,sha256=6QMihylQW0z0nbNyVznp0pU_tWGSor79KczoYPjwtIw,15926
178
177
  lino/modlib/comments/roles.py,sha256=z3gctvlTa_5PAs-D4pounyzNyuEc31jTFq9g33r6Z1w,751
179
178
  lino/modlib/comments/ui.py,sha256=OYeYHJZUvou3d21OcChVhCWtCd7ildGNxIgRoM37Gng,9955
180
179
  lino/modlib/comments/config/comments/comments.js,sha256=7oAnNyx_MKM1iWPu-QSp6iKfnOVdgq7EciQPpxTvYU8,242
181
180
  lino/modlib/comments/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
- lino/modlib/comments/fixtures/demo2.py,sha256=GB8ADRsQPNCEZ16LFWHMlYNZIPlPmWbUgW4VjRvy4ho,25317
181
+ lino/modlib/comments/fixtures/demo2.py,sha256=DSIqNtGOQlwbg8k43nE2ax1x-H_ifRsozvw6LZM330Y,25407
183
182
  lino/modlib/dashboard/__init__.py,sha256=_PFbmakUn8DShXyJY3EfAcuZtX5ofWnS-8dk7s1CrLw,1420
184
183
  lino/modlib/dashboard/models.py,sha256=EgRNg88dmz-OlIdi1SyEuerWMsRqKIfqE2MgKL7kApw,3510
185
184
  lino/modlib/dupable/__init__.py,sha256=fIQ8wj-T8ZbkjwQgW_-ankJsHLjPMepOTo32mJXNCvI,532
186
- lino/modlib/dupable/mixins.py,sha256=B7JRVDRszf7ojFBAeb-Md_fJMc9Sp5u-emLEAtR6s2g,6318
185
+ lino/modlib/dupable/mixins.py,sha256=SZ2Exe5q3ANYsP7gnEXQuQczwCDKdRfFvOavreu4mYI,6324
187
186
  lino/modlib/dupable/models.py,sha256=0watviKwTiVwlArC54V3IxVVfcB1Yg5kO6ed2xCM9a0,4595
188
- lino/modlib/export_excel/__init__.py,sha256=k11dEbh1VgA7cMaUdMhiJvHNboX4BqN0Z5Wj9fV7rWw,469
189
- lino/modlib/export_excel/models.py,sha256=MoGj3RyAj8PBy75HFGBv9Y1QnsG-H_ajRK27UDpZPKo,5094
187
+ lino/modlib/export_excel/__init__.py,sha256=HrsrhXjIMvMHRGu8whH3A_WijZWrH35p2cQsFXK60DY,356
188
+ lino/modlib/export_excel/models.py,sha256=A-lFS-xFDSPHcVbY0OI7VsuGr82jJyLDhXH2Dcv80Os,5039
190
189
  lino/modlib/extjs/__init__.py,sha256=6UBWAWSROwy3DfTXQmVUVJTF6eZ_e2k3BEfE4wtqVhU,10172
191
- lino/modlib/extjs/ext_renderer.py,sha256=DVUoCmy-knDO_i6s8yVGy8xI2qsWBA8GByiv29Lm8ts,60609
192
- lino/modlib/extjs/views.py,sha256=7IlzseAwtGPZtpsbow103mEV8VuKIH9uhfZmv9StneA,26292
190
+ lino/modlib/extjs/ext_renderer.py,sha256=KkzvGe7pyOB-_tMiiifqeDI2KuKZd-nGNic9XbV3uu0,60616
191
+ lino/modlib/extjs/views.py,sha256=CrX_tPshJtSkHT7raDDqn4B_XYamujRs-CgLzY4CBxg,26299
193
192
  lino/modlib/extjs/config/extjs/index.html,sha256=jO5hdNpFSkm9t0xhHD5hc8Hw1fSr6xb3zYq9aMyOI7Q,8603
194
193
  lino/modlib/extjs/config/extjs/linoweb.js,sha256=I4VYGmkK4htqZvHM9g-6psJF3pp7SvgHEI0I02Sxpvo,175127
195
194
  lino/modlib/extjs/config/extjs/service-worker.js,sha256=KEKWeehTlfBHk3r8NbsP9C5av_DukHORybxFOwbjYaQ,1767
@@ -3507,7 +3506,7 @@ lino/modlib/help/config/makehelp/models.tpl.rst,sha256=6N_-CRztf1-bdKUr3Q7IXA-f2
3507
3506
  lino/modlib/help/config/makehelp/plugin.tpl.rst,sha256=D2eXEv_GFzsutTUtk64u6R-X2ACRD0UElCVH7RBZXec,492
3508
3507
  lino/modlib/help/config/makehelp/plugins.tpl.rst,sha256=rj9uRsag-u2gY_VcqkzuBepXhC5nRSRpoxJGvJHBVN8,352
3509
3508
  lino/modlib/help/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3510
- lino/modlib/help/fixtures/demo2.py,sha256=3FcLnr2KJYMiZ-mSpjvWCbn49VaGp7vM2wY1ZDtLb5M,814
3509
+ lino/modlib/help/fixtures/demo2.py,sha256=P719oIom7C7l_65-pKrZgsD6lhWUzoQCaNTQyVgeyoo,892
3511
3510
  lino/modlib/help/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3512
3511
  lino/modlib/help/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3513
3512
  lino/modlib/help/management/commands/makehelp.py,sha256=ylVcT9TNOYK7N-hCm0d3ZQ76CTzRxUd8nXV2PbJ2JYs,18600
@@ -3518,7 +3517,7 @@ lino/modlib/ipdict/models.py,sha256=9-pjj_xXdndhQaQI8sgXcmODxurST_aFcShGwomiYKk,
3518
3517
  lino/modlib/jinja/__init__.py,sha256=XSa-e1qZGabl8EmRDKPRtmzgBRole5ZbxAUBR_m-ds0,3418
3519
3518
  lino/modlib/jinja/choicelists.py,sha256=QHjWQWLnJCKSGnLIKeGqnCw41JYvcbTkCeXjBpWh23w,1466
3520
3519
  lino/modlib/jinja/loader.py,sha256=MX027X_UuQPqq0wOUr06QnOkdTzGpksNv0Om1CGp61I,1765
3521
- lino/modlib/jinja/mixins.py,sha256=UPuVWtfw1p07h8uAaIzS7q-NLdmCpaSi-scqZofmOI0,2426
3520
+ lino/modlib/jinja/mixins.py,sha256=X9ARAUsrD72sVj69cN3fl-auNnmz_0gVfG_-WXPHx_o,2837
3522
3521
  lino/modlib/jinja/models.py,sha256=vXNFS78qP-qIzeSmnXJNOpvW_IfH1h6hhPgYjfkvvD0,207
3523
3522
  lino/modlib/jinja/renderer.py,sha256=PtjhJdidlOOGzRdyUQlaEIj2FhFFuthFB80-bkSfsoM,6156
3524
3523
  lino/modlib/jinja/config/jinja/status.jinja.rst,sha256=XEsfXd82B0fLsBfds5-pXdeDWVr4ccTv7WyGa9ayigk,312
@@ -3535,8 +3534,8 @@ lino/modlib/languages/fixtures/iso-639-3_20100707.tab,sha256=u8PwI2s8shy0_Val5-s
3535
3534
  lino/modlib/linod/__init__.py,sha256=efmj_Kz3OO2zF1lvs7P459iufYGimH1-6Ge6Cbq85tQ,2665
3536
3535
  lino/modlib/linod/choicelists.py,sha256=Cu82s1QpcGFmKUXJsg-7TSqpaESBCZKOEfxzFlJP06I,2626
3537
3536
  lino/modlib/linod/consumers.py,sha256=XBjA1fflJ-e9yWRMKXyQAhrOklYzs5JRhEeGMOKWFqM,6730
3538
- lino/modlib/linod/mixins.py,sha256=yE0J51bRA8u5YekrNnAlWoOBee3z5rqDE8yxHgiqGMM,12739
3539
- lino/modlib/linod/models.py,sha256=tbPKNk3BLnnAPWvbNrWhz713b3IPM0z8UoctJcwVhhw,2357
3537
+ lino/modlib/linod/mixins.py,sha256=gZci22_m3GNUNycLSvMelG1sUQLCCho2gniPTegopMs,13027
3538
+ lino/modlib/linod/models.py,sha256=yqGytDq7KxkHBCZpwF-7GQdR3nGh6-rBB-gLkvqoouQ,2361
3540
3539
  lino/modlib/linod/routing.py,sha256=FiG0JVqp9TWWkNpl9Y_50UCAJ7ZEImDXkQUhlg4aGL4,2094
3541
3540
  lino/modlib/linod/utils.py,sha256=dE973Xib6Be1DvNsZ0M5wzY_jpkk35R21WKs-jQPorM,339
3542
3541
  lino/modlib/linod/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -3545,17 +3544,17 @@ lino/modlib/linod/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
3545
3544
  lino/modlib/linod/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3546
3545
  lino/modlib/linod/management/commands/linod.py,sha256=RsUgUBz-soF8wkfgUE8KJiLZltrhEeCm1m7AFNthUps,3826
3547
3546
  lino/modlib/memo/__init__.py,sha256=GdzNURo3v_o5PxTBZ_KNkzrjlcDzn4AO95pYBbHmk8Q,5389
3548
- lino/modlib/memo/mixins.py,sha256=Ij_bFcBY_ivo5t2HWArEeRkxIQhg61iP0sTNnhZpRac,11246
3547
+ lino/modlib/memo/mixins.py,sha256=wk1bwb28GTBwXI2QJSo-6kJLfpjFwXTf5S8McjmZ0Gw,11251
3549
3548
  lino/modlib/memo/models.py,sha256=zUEvWu0dK5QhkU3DeMqNqsrzSUzOl6DLZaJBNytfgrs,4388
3550
3549
  lino/modlib/memo/parser.py,sha256=AKMfdbNFl9ehxl8TTFWwQ-ngfx7CD7hUjVA6bUNBY1c,12997
3551
3550
  lino/modlib/memo/views.py,sha256=H3g_nuiMzguptXLSWaWLJClU7BefXPFn9Rh8UIVVBeg,555
3552
3551
  lino/modlib/notify/__init__.py,sha256=suo7EMVdyTPTPFwuU2KZL25PwIEstTvvR4Turgdz7UE,6926
3553
3552
  lino/modlib/notify/actions.py,sha256=ClRKDjmgx3m43IZ5cx0TdxXN_pU6hLIlo_jCwEW2LhY,2468
3554
- lino/modlib/notify/api.py,sha256=dIuyn7uRF1dDgoGAqvFQvuJImLl1Q0g79skBJvnXMYs,3339
3553
+ lino/modlib/notify/api.py,sha256=xs5gAqIEJjkRYbRHAIMy47a1gHuIR6ZaPeK_0gk7EcU,4054
3555
3554
  lino/modlib/notify/choicelists.py,sha256=7ZkYNMOXNDfyTvdx8Sn-Gsma9f31o-6G1CtivXmQDmA,1324
3556
3555
  lino/modlib/notify/consumers.py,sha256=YaEAhAi_Oq5ovakuP5DI21YIAMvRqQcf4K8MBilcN2w,1529
3557
- lino/modlib/notify/mixins.py,sha256=oRArn5ZCJ3Ot4OAYXleyDEEkpe-y50qKdJTGmWq8ZHs,3495
3558
- lino/modlib/notify/models.py,sha256=DfhMc817tgRrEinJP2rFo-nDIK--NCdeK8-_ojcB_JU,18936
3556
+ lino/modlib/notify/mixins.py,sha256=rwsTgqpzvyiekOqHpxQRTPPdOhv2ZIPrW03YSATfdeE,3903
3557
+ lino/modlib/notify/models.py,sha256=LtefhX8wYtP2EYpFN1-VTV8ZAjSTbbbVoAh68LHU1KE,18464
3559
3558
  lino/modlib/notify/utils.py,sha256=e4TAJr8mgicwEjgyuP-bOiw1VGNA6tVo_hab1q-oSNc,328
3560
3559
  lino/modlib/notify/views.py,sha256=Ar2L_Tv1qqU5giHu2b0h_AKc3utvgfZwda4qncqoBsk,957
3561
3560
  lino/modlib/notify/config/notify/individual.eml,sha256=Ct8fLx7dz_adE_ua8S87dYFSNESCHRbRGx9Ven1MlLI,307
@@ -3583,7 +3582,7 @@ lino/modlib/periods/fixtures/std.py,sha256=iV6a2DNAhfYvO1VspGkcncEmygHK94zWdDZlH
3583
3582
  lino/modlib/printing/__init__.py,sha256=u1fq44d073-IDH_t8hWs1sQdlAHdsCP85sfEOMSW5L4,689
3584
3583
  lino/modlib/printing/actions.py,sha256=2-JORKcjJYuzK2kYmhqZl0gRR-4CrG7ul8mcFNfYYAI,11766
3585
3584
  lino/modlib/printing/choicelists.py,sha256=DM929pej7NUi1gm38nUr0t3-VANV95eqCLeW5ubh8y8,9712
3586
- lino/modlib/printing/mixins.py,sha256=WSgd7nbxcuIPeCG-zQd-jqTHzaTIuFtrGtn1kwMWIqU,8349
3585
+ lino/modlib/printing/mixins.py,sha256=4MLDD-A0zzuJNVcWJzbhyPfC9l6UUgKhm-m8DokN0aM,8353
3587
3586
  lino/modlib/printing/models.py,sha256=fd-BEKSLpgxPnkh9U7fg2tjNy39exBi3xJC9VzJuXdU,185
3588
3587
  lino/modlib/printing/utils.py,sha256=LUO9769wJvHCPZIqeVQ9XAS6UKJ6BfJbiwO8Dt1kHc4,737
3589
3588
  lino/modlib/printing/config/report/Default.odt,sha256=4X8UD9H_5Th2CELP0C6DTe4g0ZNUPXAg1C00xP3Qluc,10930
@@ -3591,10 +3590,10 @@ lino/modlib/printing/config/report/Default.wk.html,sha256=4Ssx2LWm1gVpXf0Q4XoSY1
3591
3590
  lino/modlib/publisher/__init__.py,sha256=bGQduKmgzr_lU2N6H4q4I5ZmW-3iwdPuT2D8dpiVOiI,2644
3592
3591
  lino/modlib/publisher/choicelists.py,sha256=fxvf0-1Y9YnBXaJVs8ZaNfLLQwyJO4BR3Uz_UeZtM7Q,8066
3593
3592
  lino/modlib/publisher/mixins.py,sha256=eMEZeMQdaEp9tDkA5_YdqFGQec1q7Z1DAJZvU1cmoRM,6229
3594
- lino/modlib/publisher/models.py,sha256=DtlqvzFieGvtK9NtphnhPICB9RyAR380IHWKAtdAiKY,14449
3593
+ lino/modlib/publisher/models.py,sha256=4DbS4-CeMyNnAetEiuWpY9-mrGS0HsXovKiE5DMHOm4,16404
3595
3594
  lino/modlib/publisher/renderer.py,sha256=9RoyVMQcbwh_GcbDJO8BWhCKe1kpbDc9M45hrMqzpNs,1922
3596
- lino/modlib/publisher/ui.py,sha256=Evh97oxIut8FMyEzy8KFfNFEsNbVeKb7s1Fy3hOJOWk,4451
3597
- lino/modlib/publisher/views.py,sha256=Ompti6ywm4KrH5DLJ0TqIdHfGMNYb1Fe7mwOFEyT708,2149
3595
+ lino/modlib/publisher/ui.py,sha256=l4QNzMjCdBDaY8qa20S8TWmt9rW_oYR2Qw_HMhSUHtg,4481
3596
+ lino/modlib/publisher/views.py,sha256=_0ktDagke4TOWVekJOnaRJBrbKqn27Yfz3SC2UnHKTM,2423
3598
3597
  lino/modlib/publisher/config/publisher/base.html,sha256=nrWuN4lhP1O4ORdYTaY3fS2pc90yfUnfDYfm2Jtr7hQ,198
3599
3598
  lino/modlib/publisher/config/publisher/default_list.pub.html,sha256=3ePc4U3xZxE-pqtzlnB9CRQWu8OQrtfXKEjyuc8BBUQ,578
3600
3599
  lino/modlib/publisher/config/publisher/item.pub.html,sha256=973RYgCAYG1SYIB4bwfVZFVTUo0WD2I98PsoPgjQ8XA,154
@@ -3639,7 +3638,7 @@ lino/modlib/system/__init__.py,sha256=cXb8cPBr3t18mXtiY_ScqscdUgd6MvSrsHebfqY-SH
3639
3638
  lino/modlib/system/actions.py,sha256=jmSYPQDvIQxDth8MaJ9GpkmSCufLGWjmAjKdHAIWE48,1126
3640
3639
  lino/modlib/system/choicelists.py,sha256=hClsYGgEDAuEYztCiivJlgReBdpDs8z3T_HRcS83ZFg,9578
3641
3640
  lino/modlib/system/mixins.py,sha256=fpj0O1218KgwGhRr8IHYRBXsNt5uXN87qVrx7dxvjys,19031
3642
- lino/modlib/system/models.py,sha256=3BYWRbd1jCIJvUVLHUw53ayQmquNotXVNCH_rVzFSmU,10902
3641
+ lino/modlib/system/models.py,sha256=9cXmONc-LPYMhc9-K63TTC20HrC3S6dHxVA1J7Bt4FQ,10906
3643
3642
  lino/modlib/system/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3644
3643
  lino/modlib/system/fixtures/std.py,sha256=ko6TxoQ6hQvUJT6BYOFBB8-F_kxu8VlRhlEcUg248Uc,102
3645
3644
  lino/modlib/tinymce/__init__.py,sha256=do3zN5Mo2ftsegHTV_KUVaHl44RJ8WHBSS4Jb7BExHs,4879
@@ -4396,8 +4395,8 @@ lino/modlib/uploads/actions.py,sha256=6Bi5hDUdR3cOA4ROARqPzRwQKtUcHoSl3QM44iWVrt
4396
4395
  lino/modlib/uploads/choicelists.py,sha256=-7SODzA_0afrBgPh7-j8kpz0VdzDXy2U7dLhhwE2kG8,1327
4397
4396
  lino/modlib/uploads/dummy_upload.odt,sha256=VHG2YkykCg8VqoXx8Hm37QYunvdbmg_jCyygiZseKF8,10447
4398
4397
  lino/modlib/uploads/dummy_upload.pdf,sha256=hdAx7s3V10lqVekSGugzkn_Hqxx3V4OkCNVNQI2OsFY,18730
4399
- lino/modlib/uploads/mixins.py,sha256=blYaqtbO0m9o0PdFdM7HB6QvoGC5bMBmRqFe7R8x1bM,8362
4400
- lino/modlib/uploads/models.py,sha256=aqneUEaai_wgmZTtm1Tj5RNc9k3yGQVPzLE2aj7MdCw,17527
4398
+ lino/modlib/uploads/mixins.py,sha256=Vpr7BB0NvDIyG59KnR-j-4KH8CleSGmtjUSrS5YGeu0,8356
4399
+ lino/modlib/uploads/models.py,sha256=d90XVswkatb5MtIGLJMNtxBaKTToVuNyxoqOR691gTc,17535
4401
4400
  lino/modlib/uploads/roles.py,sha256=ae0wf_vC4O6MffDx8abpjW1M2oWOp5VzOvt_ckk72Cc,191
4402
4401
  lino/modlib/uploads/ui.py,sha256=gVQQJUJEfBAESkU5ueKXs_XKZYiXYaIMh1CyNXBrcyk,8666
4403
4402
  lino/modlib/uploads/utils.py,sha256=MQAJbI5sUe0RCXCrkxpNKUJFxHpz1bOMqKQy3QsA76o,3343
@@ -4406,12 +4405,12 @@ lino/modlib/uploads/fixtures/demo.py,sha256=igZevIAwJFjt5y90lnkzVnaWYgZLxmEtOFuF
4406
4405
  lino/modlib/uploads/fixtures/demo3.py,sha256=q0bwZrx5XtRsRlFpsa33fL0sCl7IdCYaP9E1rhCnJt4,547
4407
4406
  lino/modlib/uploads/fixtures/std.py,sha256=nb5oRcX_WrkTLaGoch6PT7GA0FPKmqbN-BdlPq-hHSc,516
4408
4407
  lino/modlib/users/__init__.py,sha256=40f-PheIyHqAzGXQbkvEKAnZ9_bb8RkaLAKIqNE96qg,3215
4409
- lino/modlib/users/actions.py,sha256=Nik2CoxKZWoGIsPT50mWESzHSTQx9WiBXWG64CUFyS8,18074
4408
+ lino/modlib/users/actions.py,sha256=nHjxh6CfpO--JN4ApWvZ-07GonahCW7r4k6xKjF6AP4,18033
4410
4409
  lino/modlib/users/choicelists.py,sha256=-X76C1NxIs5e7rFHp5Z0kjJkA1NlOP2vdLKGkI2wZRU,3876
4411
4410
  lino/modlib/users/mixins.py,sha256=muW6-LwHF2L6uvGO0h3qIh1_SeJrgaeooPvjqBiXbAI,14277
4412
- lino/modlib/users/models.py,sha256=tdROzvtd3cMxsXKtYZjcUv2XJU7hQLbyBCiE0zVvaOo,16470
4411
+ lino/modlib/users/models.py,sha256=AheMwBWhjlLJzPXNCdJax1eZfsKE0906kIhFhcjjuO0,16425
4413
4412
  lino/modlib/users/roles.py,sha256=yi29ELbWU1VtteGARaxetxmsCkZQHA2oJiD0dXujMiE,320
4414
- lino/modlib/users/ui.py,sha256=ZbA8NaAWR3SIUmC6GXbUumJfsOQlskwSE1gDYBVAXY8,13278
4413
+ lino/modlib/users/ui.py,sha256=xL3KVY_TB_OuaD5ewe5H7eZlnW_2mGJLUJySgLZ0klM,13282
4415
4414
  lino/modlib/users/utils.py,sha256=bD0DJZsUy59xw9N-tx3W_h30_R10GT2qXZVzYtGWMa8,1963
4416
4415
  lino/modlib/users/config/users/verification_response.html,sha256=8X1sEn53ploQgB6ds0UfmmkZpcvP9KSwWiQjRE_q970,772
4417
4416
  lino/modlib/users/config/users/welcome_email.eml,sha256=bPSPbJKIPFRVWPDCuhNquQYwQtXzYGZgs7wICoiutS8,1078
@@ -4489,7 +4488,7 @@ lino/sphinxcontrib/logo/templates/footer.html,sha256=2GkZgY9tUVC-6-KtD7RnuZisd0Y
4489
4488
  lino/sphinxcontrib/logo/templates/globaltoc.html,sha256=S7-Dg4sjTXhWIrcmaNQ0QugRzM9J-knpPpD9lmEaEv8,400
4490
4489
  lino/sphinxcontrib/logo/templates/layout.html,sha256=wtJBqvZyykSiiH2oiHQFOg5N_ECNTtrsy5s4JOvOATI,567
4491
4490
  lino/sphinxcontrib/logo/templates/links.html,sha256=SccaqiI_Fg4lYT_nxDWfGZXLLD8FhhX2ln7WomsDFUk,174
4492
- lino/sphinxcontrib/logo/templates/part-of-synodalsoft.html,sha256=tX8zlxJh2Pw0Uk5V4HQ-kUWAggYilDvy6z1ltWdL8zk,1523
4491
+ lino/sphinxcontrib/logo/templates/part-of-synodalsoft.html,sha256=tHh0SfRoIqpoxkA5ZA5_Obc_9Bs5Uh4d3qUSC3oprdw,1427
4493
4492
  lino/sphinxcontrib/logo/templates/unused_copyright.html,sha256=ct3QmWrUk0IS6hvr_XH5fMbseTH7CTzKhRH1UOUTWG8,205
4494
4493
  lino/static/blueprint.css,sha256=meK9oC38foNI4x_YuylIU9TJdGiZi4HM4PFAWpjoiiw,131
4495
4494
  lino/static/bootstrap.css,sha256=-8bGCqxOzajs3T4lvqWjTUGvvQ1uwVH886fr4cIKPs4,1156
@@ -4595,7 +4594,7 @@ lino/utils/diag.py,sha256=8BGsPrLd1_Fympy3PKiTpX1MdMWGApXr6IBoVOkWRxE,18314
4595
4594
  lino/utils/djangotest.py,sha256=Phz1qNp0wDonZRja5dxbCk0Xl3a73gZNiKK8v9tAgZg,8334
4596
4595
  lino/utils/dpy.py,sha256=Hw4ofFnhRPAE2PsPf9r5RpzcfVLQdIjtOe-XtMMLtuE,20661
4597
4596
  lino/utils/fieldutils.py,sha256=IfwuTpSirKYEk5h1URxQ9CF6i0ZPcsuNQHyk-LQOdRE,2874
4598
- lino/utils/format_date.py,sha256=esVElXGtmc_M5CAoFyomVr1hoi3ITn95e1ToZ09li-U,3008
4597
+ lino/utils/format_date.py,sha256=4CMkx8UHL1WZnOl77c4MRiXEX33SjBal-Vv_wKRiByk,3117
4599
4598
  lino/utils/html.py,sha256=pcE0UQmdQGxxmb-p0mBb47zNbRMXLP9cxxrXTLs4gbY,3143
4600
4599
  lino/utils/html2odf.py,sha256=Hxw4HiIHY1ZCjb4_JLykVHbr6yAMhhHrnrCnLNDYKAs,4826
4601
4600
  lino/utils/html2xhtml.py,sha256=fvrIoLBFpiXtYO3UYaIgAIDjf6ATvrxolQX4etxS57Y,2119
@@ -4605,7 +4604,7 @@ lino/utils/jscompressor.py,sha256=j9UTaaPCfRZLrWUh6PBp0KDDM0QshG7XAFzp-R_elOs,52
4605
4604
  lino/utils/jsgen.py,sha256=yN0uUNFp4FCxsSPJBDsdkvtAJVL50f7CpW4hR31Rm4k,15215
4606
4605
  lino/utils/latex.py,sha256=cv5rJjtcslTVoRNjAmlUd2CCpC0GPO-YnvJgNJJe0R8,2218
4607
4606
  lino/utils/mdbtools.py,sha256=R1LHskyDLtwBcYRDA14PU2XeSku9gRUIV52f4Sr-Hto,5310
4608
- lino/utils/media.py,sha256=_JSIL7GQONbYknMzhYNkD0LNipMKXJwOIf4V1yiklDY,3013
4607
+ lino/utils/media.py,sha256=Vk-Mt-w9agYWhKHW6zqr9p6cu5uYQaeaPQU28cbgUDU,2306
4609
4608
  lino/utils/mti.py,sha256=CSOpu0BxSQ6ii5Sky3eVcUMp_jCcBwgOHi3_ydWf3YU,11193
4610
4609
  lino/utils/mytidylib.py,sha256=38qV49amgCi4CE4zRmHt_RrqpF8JOV0SDsBj0bIYy8s,4647
4611
4610
  lino/utils/odsreader.py,sha256=odz2VYTNa0l5mO2FLgm4HW4bwA6OS78R5G4c_HGRfK8,4355
@@ -4633,8 +4632,8 @@ lino/utils/xml.py,sha256=EGDnO1UaREst9fS7KTESdbHnrrVCwKbRQdvut6B6GmQ,1612
4633
4632
  lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
4634
4633
  lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
4635
4634
  lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
4636
- lino-25.4.1.dist-info/METADATA,sha256=tByKXlu49CnGrkvvWX-WVmYBSYIQyjUr3rhA5AIKys4,42534
4637
- lino-25.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4638
- lino-25.4.1.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4639
- lino-25.4.1.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4640
- lino-25.4.1.dist-info/RECORD,,
4635
+ lino-25.4.3.dist-info/METADATA,sha256=qsQfxaXAH1QDVcf9nmSab5NgN8yYfHHpyUz8BqGt12E,42534
4636
+ lino-25.4.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4637
+ lino-25.4.3.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4638
+ lino-25.4.3.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4639
+ lino-25.4.3.dist-info/RECORD,,
@@ -1,160 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
- # Copyright 2012-2021 Rumma & Ko Ltd
3
- # License: GNU Affero General Public License v3 (see file COPYING for details)
4
-
5
- # from future import standard_library
6
- # standard_library.install_aliases()
7
-
8
- from lino import logger
9
-
10
- import os
11
- import errno
12
- import pickle as pickle
13
- import sys
14
- from optparse import make_option
15
- from os.path import join
16
-
17
- from django.db import models
18
- from django.conf import settings
19
- from django.utils import timezone
20
- from django.utils.translation import gettext as _
21
- from django.utils.encoding import force_str
22
- from django.core.management import call_command
23
- from django.core.management.base import BaseCommand, CommandError
24
-
25
- from django.db import connections, transaction
26
- from django.core.exceptions import ImproperlyConfigured
27
- from django.db.utils import DEFAULT_DB_ALIAS
28
-
29
- from django.db.backends.sqlite3.base import DatabaseWrapper as sqlite
30
-
31
- try:
32
- from django.db.backends.mysql.base import DatabaseWrapper as mysql
33
- except ImproperlyConfigured:
34
- mysql = None
35
-
36
- import lino
37
- import rstgen
38
- from lino.core.utils import obj2str, full_model_name, sorted_models_list
39
-
40
-
41
- def diffs(old, new, prefix=""):
42
- if type(old) != dict:
43
- if old != new:
44
- yield "%s : %s -> %s" % (prefix, old, new)
45
- return
46
- keys = set(list(old.keys()) + list(new.keys()))
47
- keys.discard("timestamp")
48
- # ~ diffs = []
49
- if prefix:
50
- prefix += " "
51
- for k in keys:
52
- ov = old.get(k)
53
- nv = new.get(k)
54
- if ov != nv:
55
- for d in diffs(ov, nv, prefix + k):
56
- yield d
57
- # ~ yield "%s : %s -> %s" % (k, ov, nv)
58
-
59
-
60
- def compare(old, new):
61
- changes = list(diffs(old, new))
62
- if len(changes):
63
- msg = "Changes since %s:" % old.get("timestamp")
64
- msg += "\n- " + ("\n- ".join(changes))
65
- # ~ logger.info(msg)
66
- # ~ logger.info('- ' + ('- '.join(changes)))
67
- return msg
68
- else:
69
- logger.debug("No changes since %s", old.get("timestamp"))
70
-
71
-
72
- class Command(BaseCommand):
73
- help = "Experimental work. Don't use this."
74
-
75
- def add_arguments(self, parser):
76
- parser.add_argument(
77
- "--nowrite",
78
- action="store_false",
79
- dest="write",
80
- default=True,
81
- help="Do not write status to pickle.",
82
- )
83
-
84
- def handle(self, *args, **options):
85
- if args:
86
- raise CommandError("This command doesn't accept any arguments.")
87
-
88
- self.options = options
89
-
90
- # ~ settings.SITE.startup()
91
-
92
- state = dict()
93
- state.update(timestamp=timezone.now())
94
- state.update(lino_version=lino.__version__)
95
-
96
- states_file = os.path.join(settings.SITE.project_dir, "states.pck")
97
-
98
- if os.path.exists(states_file):
99
- fd = open(states_file)
100
- states_list = pickle.load(fd)
101
- fd.close()
102
- logger.info("Loaded %d states from %s", len(states_list), states_file)
103
- else:
104
- states_list = []
105
-
106
- models_list = sorted_models_list()
107
-
108
- apps = [p.app_label for p in settings.SITE.installed_plugins]
109
- state.update(applications=" ".join(apps))
110
- for model in models_list:
111
- if model._meta.managed:
112
- model_state = dict()
113
- # ~ cells.append(str(i))
114
- # ~ cells.append(full_model_name(model))
115
- # ~ cells.append(str(model))
116
- # ~ if model._meta.managed:
117
- # ~ cells.append('X')
118
- # ~ else:
119
- # ~ cells.append('')
120
- model_state.update(fields=[f.name for f in model._meta.fields])
121
- # ~ qs = model.objects.all()
122
- qs = model.objects.order_by("pk")
123
- n = qs.count()
124
- model_state.update(rows=n)
125
-
126
- connection = connections[DEFAULT_DB_ALIAS]
127
-
128
- # ~ if isinstance(connection,sqlite):
129
- # ~ cells.append("-")
130
- if mysql and isinstance(connection, mysql):
131
- cursor = connection.cursor()
132
- dbname = connection.settings_dict["NAME"]
133
- sql = """\
134
- SELECT (data_length+index_length) tablesize
135
- FROM information_schema.tables
136
- WHERE table_schema='%s' and table_name='%s';
137
- """ % (dbname, model._meta.db_table)
138
- # ~ print sql
139
- cursor.execute(sql)
140
- row = cursor.fetchone()
141
- if row is not None:
142
- model_state.update(bytes=row[0])
143
- else:
144
- pass
145
-
146
- state[full_model_name(model)] = model_state
147
-
148
- if len(states_list):
149
- msg = compare(state, states_list[-1])
150
- if msg:
151
- logger.info(msg)
152
- # ~ sendmail_admins()
153
-
154
- states_list.append(state)
155
-
156
- # ~ print state
157
- if self.options["write"]:
158
- f = open(states_file, "w")
159
- pickle.dump(states_list, f)
160
- logger.info("Saved %d states to %s", len(states_list), states_file)
File without changes