lino 25.3.3__py3-none-any.whl → 25.4.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.
- lino/__init__.py +7 -1
- lino/api/dd.py +1 -1
- lino/config/admin_main_base.html +4 -3
- lino/help_texts.py +12 -14
- lino/locale/bn/LC_MESSAGES/django.po +1112 -907
- lino/locale/de/LC_MESSAGES/django.mo +0 -0
- lino/locale/de/LC_MESSAGES/django.po +1066 -918
- lino/locale/django.pot +1041 -900
- lino/locale/es/LC_MESSAGES/django.po +1103 -902
- lino/locale/et/LC_MESSAGES/django.po +1103 -915
- lino/locale/fr/LC_MESSAGES/django.po +1105 -916
- lino/locale/nl/LC_MESSAGES/django.po +1102 -917
- lino/locale/pt_BR/LC_MESSAGES/django.po +1099 -900
- lino/locale/zh_Hant/LC_MESSAGES/django.po +1099 -900
- lino/management/commands/buildcache.py +48 -3
- lino/management/commands/prep.py +1 -1
- lino/mixins/duplicable.py +1 -1
- lino/modlib/__init__.py +0 -1
- lino/modlib/checkdata/models.py +33 -15
- lino/modlib/comments/fixtures/demo2.py +1 -9
- lino/modlib/extjs/views.py +2 -3
- lino/modlib/linod/mixins.py +94 -41
- lino/modlib/linod/models.py +1 -1
- lino/modlib/memo/__init__.py +4 -0
- lino/modlib/memo/models.py +47 -1
- lino/modlib/users/ui.py +4 -2
- lino/modlib/weasyprint/__init__.py +12 -20
- lino/modlib/weasyprint/config/weasyprint/base.weasy.html +13 -2
- lino/sphinxcontrib/logo/__init__.py +2 -1
- lino/utils/__init__.py +1 -0
- lino/utils/dbhash.py +5 -3
- lino/utils/format_date.py +9 -4
- {lino-25.3.3.dist-info → lino-25.4.0.dist-info}/METADATA +1 -1
- {lino-25.3.3.dist-info → lino-25.4.0.dist-info}/RECORD +37 -38
- lino/management/commands/buildsite.py +0 -67
- {lino-25.3.3.dist-info → lino-25.4.0.dist-info}/WHEEL +0 -0
- {lino-25.3.3.dist-info → lino-25.4.0.dist-info}/licenses/AUTHORS.rst +0 -0
- {lino-25.3.3.dist-info → lino-25.4.0.dist-info}/licenses/COPYING +0 -0
lino/modlib/users/ui.py
CHANGED
@@ -46,8 +46,8 @@ class UserDetail(dd.DetailLayout):
|
|
46
46
|
"""
|
47
47
|
|
48
48
|
main = """
|
49
|
-
box1 box2 #MembershipsByUser:20
|
50
|
-
|
49
|
+
box1 box2 #MembershipsByUser:20 remarks
|
50
|
+
AuthoritiesGiven:20 AuthoritiesTaken:20 SocialAuthsByUser:30
|
51
51
|
"""
|
52
52
|
|
53
53
|
# main_m = """
|
@@ -203,6 +203,7 @@ class AuthoritiesGiven(Authorities):
|
|
203
203
|
label = _("Authorities given")
|
204
204
|
column_names = "authorized"
|
205
205
|
auto_fit_column_widths = True
|
206
|
+
details_of_master_template = _("%(details)s by %(master)s")
|
206
207
|
|
207
208
|
|
208
209
|
class AuthoritiesTaken(Authorities):
|
@@ -211,6 +212,7 @@ class AuthoritiesTaken(Authorities):
|
|
211
212
|
label = _("Authorities taken")
|
212
213
|
column_names = "user"
|
213
214
|
auto_fit_column_widths = True
|
215
|
+
details_of_master_template = _("%(details)s by %(master)s")
|
214
216
|
|
215
217
|
|
216
218
|
if has_socialauth and dd.get_plugin_setting("users", "third_party_authentication"):
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2016-
|
1
|
+
# Copyright 2016-2025 Rumma & Ko Ltd
|
2
2
|
# License: GNU Affero General Public License v3 (see file COPYING for details)
|
3
3
|
"""This plugins installs two build methods for generating
|
4
4
|
:term:`printable documents <printable document>` using `weasyprint
|
@@ -25,31 +25,17 @@ from lino.api import ad, _
|
|
25
25
|
|
26
26
|
|
27
27
|
class Plugin(ad.Plugin):
|
28
|
-
"See :doc:`/dev/plugins`."
|
29
28
|
|
30
29
|
verbose_name = _("WeasyPrint")
|
31
|
-
|
32
30
|
needs_plugins = ["lino.modlib.jinja"]
|
33
31
|
|
34
32
|
header_height = 20
|
35
|
-
"""Height of header in mm. Set to `None` if you want no header."""
|
36
|
-
|
37
33
|
footer_height = 20
|
38
|
-
"""Height of footer in mm. Set to `None` if you want no header."""
|
39
|
-
|
40
34
|
top_right_width = None
|
41
|
-
|
42
|
-
"""
|
43
|
-
|
35
|
+
page_background_image = None
|
44
36
|
top_right_image = None
|
45
|
-
"""The first image file found in config named either top-right.jpg or top-right.png."""
|
46
|
-
|
47
37
|
header_image = None
|
48
|
-
"""The first image file found in config named either header.jpg or header.png."""
|
49
|
-
|
50
38
|
margin = 10
|
51
|
-
"""Top and bottom page margin in mm."""
|
52
|
-
|
53
39
|
margin_left = 17
|
54
40
|
margin_right = 10
|
55
41
|
|
@@ -57,8 +43,8 @@ class Plugin(ad.Plugin):
|
|
57
43
|
yield "imagesize"
|
58
44
|
|
59
45
|
def pre_site_startup(self, site):
|
60
|
-
|
61
|
-
|
46
|
+
for ext in ("jpg", "png"):
|
47
|
+
if self.header_height:
|
62
48
|
fn = site.confdirs.find_config_file("top-right." + ext, "weasyprint")
|
63
49
|
if fn:
|
64
50
|
self.top_right_image = fn
|
@@ -70,6 +56,12 @@ class Plugin(ad.Plugin):
|
|
70
56
|
self.top_right_width = self.header_height * w / h
|
71
57
|
fn = site.confdirs.find_config_file("header." + ext, "weasyprint")
|
72
58
|
if fn:
|
59
|
+
# site.logger.info("Found header_image %s", fn)
|
73
60
|
self.header_image = fn
|
74
|
-
|
75
|
-
|
61
|
+
if self.page_background_image is None:
|
62
|
+
fn = site.confdirs.find_config_file(
|
63
|
+
"page-background." + ext, "weasyprint")
|
64
|
+
if fn:
|
65
|
+
# site.logger.info("Found page_background_image %s", fn)
|
66
|
+
self.page_background_image = fn
|
67
|
+
super().pre_site_startup(site)
|
@@ -53,10 +53,12 @@ p {
|
|
53
53
|
}
|
54
54
|
|
55
55
|
div.recipient {
|
56
|
-
position:relative; left:
|
56
|
+
position:relative; left:{{100-dd.plugins.weasyprint.margin_left}}mm;
|
57
57
|
height:30mm;
|
58
58
|
width:80mm;
|
59
|
-
border: 1px solid
|
59
|
+
border: 1px solid lightgray;
|
60
|
+
border-radius: 2mm;
|
61
|
+
background-color: lightgray;
|
60
62
|
padding: 1em;
|
61
63
|
margin: 1em;
|
62
64
|
}
|
@@ -80,6 +82,15 @@ div.recipient {
|
|
80
82
|
{%- endif -%}
|
81
83
|
margin-left: {{dd.plugins.weasyprint.margin_left}}mm;
|
82
84
|
margin-right: {{dd.plugins.weasyprint.margin_right}}mm;
|
85
|
+
{%- if dd.plugins.weasyprint.page_background_image -%}
|
86
|
+
{#
|
87
|
+
background: url(file://{{dd.plugins.weasyprint.page_background_image}}) no-repeat center center fixed;
|
88
|
+
#}
|
89
|
+
background-image: url(file://{{dd.plugins.weasyprint.page_background_image}});
|
90
|
+
background-repeat: no-repeat;
|
91
|
+
background-attachment: fixed;
|
92
|
+
background-size: contain;
|
93
|
+
{%- endif -%}
|
83
94
|
font-family: "Liberation sans", "arial";
|
84
95
|
font-size: 10pt;
|
85
96
|
{%- block bottomleft %}
|
@@ -44,7 +44,8 @@ def config_inited(app, config):
|
|
44
44
|
|
45
45
|
def copy_custom_files(app, env, docnames):
|
46
46
|
if app.builder.format == "html":
|
47
|
-
|
47
|
+
# In older Sphinx version the builder.outdir was a simple string
|
48
|
+
staticdir = Path(app.builder.outdir) / "_static"
|
48
49
|
staticdir.mkdir(exist_ok=True)
|
49
50
|
(staticdir / "favicons").mkdir(exist_ok=True)
|
50
51
|
for fn in ("synodal-logo.png", "favicons/favicon.ico"):
|
lino/utils/__init__.py
CHANGED
lino/utils/dbhash.py
CHANGED
@@ -91,15 +91,17 @@ def check_virgin(restore=True, verbose=True):
|
|
91
91
|
if not can_restore:
|
92
92
|
raise Exception(
|
93
93
|
"Cannot restore database because some rows have been deleted")
|
94
|
-
# print(f"Tidy up {len(must_delete)} rows from database")
|
95
|
-
# It can happen that some rows refer to each other with a protected fk
|
96
|
-
# We call bulk delete() to avoid Lino deleting the items of an invoice
|
97
94
|
must_delete = list(must_delete.items())
|
95
|
+
if verbose:
|
96
|
+
print(f"Tidy up {len(must_delete)} rows from database: {must_delete}.")
|
98
97
|
while len(must_delete):
|
99
98
|
todo = []
|
100
99
|
hope = False
|
101
100
|
for m, added in must_delete:
|
102
101
|
try:
|
102
|
+
# It can happen that some rows refer to each other with a
|
103
|
+
# protected fk, so we call bulk delete() to avoid Lino deleting
|
104
|
+
# the items of an invoice.
|
103
105
|
m.objects.filter(pk__in=added).delete()
|
104
106
|
# obj.delete()
|
105
107
|
hope = True
|
lino/utils/format_date.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- coding: UTF-8 -*-
|
2
|
-
# Copyright 2009-
|
2
|
+
# Copyright 2009-2025 Rumma & Ko Ltd
|
3
3
|
# License: GNU Affero General Public License v3 (see file COPYING for details)
|
4
4
|
"""See :doc:`/topics/datetime`.
|
5
5
|
"""
|
@@ -111,6 +111,11 @@ def day_and_weekday(d):
|
|
111
111
|
|
112
112
|
def ftl(t):
|
113
113
|
# "format time long"
|
114
|
-
return "{}
|
115
|
-
t.strftime(settings.SITE.
|
116
|
-
|
114
|
+
return "{} {}".format(
|
115
|
+
t.strftime(settings.SITE.date_format_strftime),
|
116
|
+
t.strftime(settings.SITE.time_format_strftime))
|
117
|
+
|
118
|
+
|
119
|
+
def ftf(t):
|
120
|
+
# "format time full"
|
121
|
+
return "{} ({})".format(ftl(t), naturaltime(t))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lino
|
3
|
-
Version: 25.
|
3
|
+
Version: 25.4.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,20 +1,20 @@
|
|
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=hX67Z8YgYIUBNNmzsKRsa1ltkl1uwshB28hWTFIKLIU,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=
|
7
|
+
lino/help_texts.py,sha256=fyiY0oSJ8iGNjKdw36QbrLu2y38SvIeddW3FH3y0Nbw,90988
|
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=
|
10
|
+
lino/api/dd.py,sha256=FSv9gDstKcKM1qFgSSJpJOGhvT0bDTIqwjcPA9pbMm8,7431
|
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
|
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
|
17
|
-
lino/config/admin_main_base.html,sha256=
|
17
|
+
lino/config/admin_main_base.html,sha256=oTcu3ZNQi1R45WuwzY1OTP3X800m9LeUQCUcLxutV8s,4021
|
18
18
|
lino/config/apps.html.tmpl,sha256=UxRVdZq1BEVJWD77_mhxIB4ILenVO_Ml-w3LgumG22Y,696
|
19
19
|
lino/config/letter_margin_bottom.html,sha256=BzASupSu5l49EGrPFpUcrK4DDm_sijoOd28HC8kmpBg,66
|
20
20
|
lino/config/letter_margin_top.html,sha256=mTKb62bWXX0rH9FyIrwJUmptJmoC8_ZATxGUm0YW4RI,216
|
@@ -76,28 +76,27 @@ lino/core/auth/middleware.py,sha256=1c_z4lP_Rhbw7pdCapprGkjIXX40OJgIlFyQew4O-Nc,
|
|
76
76
|
lino/core/auth/utils.py,sha256=Nv7QbINYi64hGZZxV-Ix1iwhrb_KOfUfhJXAzoKy2ng,4130
|
77
77
|
lino/core/management/__init__.py,sha256=fp1cONBXgq1IftPk5c4b63gRlYOWpT5VzCIKrx0aGlE,61
|
78
78
|
lino/fake_migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
|
-
lino/locale/django.pot,sha256=
|
79
|
+
lino/locale/django.pot,sha256=goFkSiD0gouaH_DfRBy6ZnL5nwW9RnpRjlRylFwDLmA,155927
|
80
80
|
lino/locale/bn/LC_MESSAGES/django.mo,sha256=ygs6NvTycQXv5Dwl8bpyy13u-uMIcNK2-xpJM3zSy3Y,14893
|
81
|
-
lino/locale/bn/LC_MESSAGES/django.po,sha256=
|
82
|
-
lino/locale/de/LC_MESSAGES/django.mo,sha256=
|
83
|
-
lino/locale/de/LC_MESSAGES/django.po,sha256=
|
81
|
+
lino/locale/bn/LC_MESSAGES/django.po,sha256=VYjH2lFyUBPzuF615e1awfROkLT_LCrcX7LUrqzNhyo,197503
|
82
|
+
lino/locale/de/LC_MESSAGES/django.mo,sha256=ruza9tRjC0VGHOgB98dKpRHXJtu2CnE3DpTTaB39VUw,27714
|
83
|
+
lino/locale/de/LC_MESSAGES/django.po,sha256=hbEOw7V7N6RtzPg7fKYlvgjmCd-l2fHMDlBh3_4WVmw,170816
|
84
84
|
lino/locale/es/LC_MESSAGES/django.mo,sha256=r2zi4aulC-1zX1XcoGddo0mpdOpuuOpUxpWxGoYh8qc,2357
|
85
|
-
lino/locale/es/LC_MESSAGES/django.po,sha256=
|
85
|
+
lino/locale/es/LC_MESSAGES/django.po,sha256=ZpZ7KkMNIGBOOEyfBgRmQ4ko9N0NY0wkx8ahxQ81zDA,159687
|
86
86
|
lino/locale/et/LC_MESSAGES/django.mo,sha256=1RH5dX6YOBgk2tX_xpkriBRDh6qkxJDPrWysVeio_eM,5519
|
87
|
-
lino/locale/et/LC_MESSAGES/django.po,sha256=
|
87
|
+
lino/locale/et/LC_MESSAGES/django.po,sha256=1bPkMDWyRR1Pin8t4Xt8wYXsdSXp6Bu1qhYG70aO5pU,223311
|
88
88
|
lino/locale/fr/LC_MESSAGES/django.mo,sha256=N7TxEPKmUBjDLu-EabjGUm1VB-CqKjZH1AzRRJ2M5OM,18078
|
89
|
-
lino/locale/fr/LC_MESSAGES/django.po,sha256=
|
89
|
+
lino/locale/fr/LC_MESSAGES/django.po,sha256=6H0Hirw7XAq97lBRrzsbIf0-kCROLN7KP3n2umLxAMU,168821
|
90
90
|
lino/locale/nl/LC_MESSAGES/django.mo,sha256=cQ3DTQqc4dbwrAdm5d95Kf4pDoYqKdMdElAaRerC0XA,8115
|
91
|
-
lino/locale/nl/LC_MESSAGES/django.po,sha256=
|
91
|
+
lino/locale/nl/LC_MESSAGES/django.po,sha256=Jps9IYWSCQ0m7kOxhWzH19xhSwIoXCtrm5MC-dSzQVU,345196
|
92
92
|
lino/locale/pt/LC_MESSAGES/django.mo,sha256=OCKgnomRXLl_QsikdFsqUwKXkVexvLvSWf5kizPJrRE,42461
|
93
93
|
lino/locale/pt/LC_MESSAGES/django.po,sha256=pMhpgCeuj2O7G37gDSr-8jdAKs1P3hEy-K2Lg-GbCIU,80311
|
94
94
|
lino/locale/pt_BR/LC_MESSAGES/django.mo,sha256=OCKgnomRXLl_QsikdFsqUwKXkVexvLvSWf5kizPJrRE,42461
|
95
|
-
lino/locale/pt_BR/LC_MESSAGES/django.po,sha256=
|
96
|
-
lino/locale/zh_Hant/LC_MESSAGES/django.po,sha256=
|
95
|
+
lino/locale/pt_BR/LC_MESSAGES/django.po,sha256=nDmkf5MQtIj9trPVTZcNNMghM4rH8nZetGkw_agPPlA,158635
|
96
|
+
lino/locale/zh_Hant/LC_MESSAGES/django.po,sha256=J9IELaIaZmBI2Vfu9HPIVA-g45QTYIxFzftWAB1U-s0,158557
|
97
97
|
lino/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
98
|
lino/management/commands/__init__.py,sha256=raVDRiXns3SegyXEhaLZMcxfEDs7ggy2nFUN5D0f5F0,47
|
99
|
-
lino/management/commands/buildcache.py,sha256=
|
100
|
-
lino/management/commands/buildsite.py,sha256=BsXoKjQEA8sT57nD-_8Fd5ji9lARQ4ymkNMdhgyiXj0,2256
|
99
|
+
lino/management/commands/buildcache.py,sha256=MrOio6uBtQNW5gnbRrPIjarwUe18R-irxC7dLBBCpR4,1949
|
101
100
|
lino/management/commands/demotest.py,sha256=yvxpl1G0Clt-iu7lY0DK9HVhaWyl_tQhYx0YUpddTWM,5041
|
102
101
|
lino/management/commands/diag.py,sha256=vt-NlZUx5gf7T4EpbM-gle3tAwMuwfPQY8lUgxjFaUw,478
|
103
102
|
lino/management/commands/dump2py.py,sha256=X2u6OVkSb4MVQucF6jOKDDwRc8TCBNakW3UX_9S-n-U,20344
|
@@ -110,7 +109,7 @@ lino/management/commands/makeui.py,sha256=qYz68fnUKNXicZfGy3GXdjIZubhg1KyQnqjMbl
|
|
110
109
|
lino/management/commands/mergedata.py,sha256=-dPvBtyc-AqKpQeL4TUd2IKHGe8EaaW8Citcsp_hwEU,2527
|
111
110
|
lino/management/commands/monitor.py,sha256=-axtsW-uzk87ESR6-GSfUL0Y2ylB5BwHC6Xlx3fPxo4,5113
|
112
111
|
lino/management/commands/passwd.py,sha256=S-7qyUWOaBnqRo_quwWewJjzwonqK4PBP2j8fuBGy3c,3012
|
113
|
-
lino/management/commands/prep.py,sha256=
|
112
|
+
lino/management/commands/prep.py,sha256=23bnkHQrFHDPjGDI7Y2epXAC2bJ3oBYg0ZZV7g6ibTM,2124
|
114
113
|
lino/management/commands/qtclient.py,sha256=ltZyz-SmIevotRmv26TmPiW8VTXKK37DUwdwwMUzrHI,4715
|
115
114
|
lino/management/commands/resetsequences.py,sha256=v7MdzJCw-rBXljttCsgoMIi-cgubCPptXDlcNO0pCjw,978
|
116
115
|
lino/management/commands/run.py,sha256=MiK53KIACYKDTKF6knJGwU-uzEApGnDxByi-3_nrTjQ,1115
|
@@ -119,7 +118,7 @@ lino/management/commands/syncscreenshots.py,sha256=XYZhqfm5_RwJzVFNGhHJKucl4j6T6
|
|
119
118
|
lino/management/commands/update_conf.py,sha256=saAaQdPhn3mNOoHcBxOFSf_vBEgM-aopTHq1sJN20Bo,1026
|
120
119
|
lino/mixins/__init__.py,sha256=ADIq0rPGlAY4ifSaMvqahXvCMnbFzq2qAWcyyUkx4Ds,8930
|
121
120
|
lino/mixins/dupable.py,sha256=ofyYrcT9WiYdVTkzgXyXaBu1kS-y197YnFTnZNALUHo,10233
|
122
|
-
lino/mixins/duplicable.py,sha256=
|
121
|
+
lino/mixins/duplicable.py,sha256=a5-1jZZWX-kgKg5GNhV6yaSGOgfTyd2lWHtY35bVmes,4247
|
123
122
|
lino/mixins/human.py,sha256=YDIfIHHAaVmzd3uGsJp_vDvkaBWOp09I7i4AGNy9YsQ,13255
|
124
123
|
lino/mixins/periods.py,sha256=iFqUCUZlgUW2GmEHRl9suwJedztrXLluQhgFpu7Uj54,11479
|
125
124
|
lino/mixins/polymorphic.py,sha256=MLbfOeIYRoDZO4048X2oWhG5cxds2pLkwciXcw1xjVQ,9393
|
@@ -127,7 +126,7 @@ lino/mixins/printable.py,sha256=4U8M1lrTjUeuaPwrcWoanCBo53iAxiNpSTsVctI-gI0,199
|
|
127
126
|
lino/mixins/ref.py,sha256=ZnyTcpHgcbYwDwgaBwLc5cGLQqz8MmjAypSEgPB7Ql4,5272
|
128
127
|
lino/mixins/registrable.py,sha256=0m68YGlipRhE83IsEvXATZtvyxtMsH-Dpd5TGZh_GzE,6936
|
129
128
|
lino/mixins/sequenced.py,sha256=6FiHJX2ZIraqUofdnb082b978PISNbpd2Vr87YA_1pg,16460
|
130
|
-
lino/modlib/__init__.py,sha256=
|
129
|
+
lino/modlib/__init__.py,sha256=cO31gNu2oRkp7o2v3D9gK2H7j4jF9rbVyPxPZhZQwrQ,940
|
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
|
@@ -165,7 +164,7 @@ lino/modlib/changes/models.py,sha256=LvtiDewZAx-4z0uPtsznHBXUKtngXac5t-q7a7uB6BY
|
|
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=
|
167
|
+
lino/modlib/checkdata/models.py,sha256=AfqGbL9z61kxFqA6OIuOlozUmqrlOy_uRR1rwXVXcU8,13538
|
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
|
@@ -180,7 +179,7 @@ lino/modlib/comments/roles.py,sha256=z3gctvlTa_5PAs-D4pounyzNyuEc31jTFq9g33r6Z1w
|
|
180
179
|
lino/modlib/comments/ui.py,sha256=OYeYHJZUvou3d21OcChVhCWtCd7ildGNxIgRoM37Gng,9955
|
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=
|
182
|
+
lino/modlib/comments/fixtures/demo2.py,sha256=GB8ADRsQPNCEZ16LFWHMlYNZIPlPmWbUgW4VjRvy4ho,25317
|
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
|
@@ -190,7 +189,7 @@ lino/modlib/export_excel/__init__.py,sha256=k11dEbh1VgA7cMaUdMhiJvHNboX4BqN0Z5Wj
|
|
190
189
|
lino/modlib/export_excel/models.py,sha256=MoGj3RyAj8PBy75HFGBv9Y1QnsG-H_ajRK27UDpZPKo,5094
|
191
190
|
lino/modlib/extjs/__init__.py,sha256=6UBWAWSROwy3DfTXQmVUVJTF6eZ_e2k3BEfE4wtqVhU,10172
|
192
191
|
lino/modlib/extjs/ext_renderer.py,sha256=FAuqvEpmX8skaGXN6mXZuB7cq2pC38lxACxntiJ7RvU,60614
|
193
|
-
lino/modlib/extjs/views.py,sha256=
|
192
|
+
lino/modlib/extjs/views.py,sha256=M9282Qayd2z_cXIMs155ZTUeHt6HdwL2PwhwpeDaVDY,26297
|
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
|
@@ -3536,8 +3535,8 @@ lino/modlib/languages/fixtures/iso-639-3_20100707.tab,sha256=u8PwI2s8shy0_Val5-s
|
|
3536
3535
|
lino/modlib/linod/__init__.py,sha256=efmj_Kz3OO2zF1lvs7P459iufYGimH1-6Ge6Cbq85tQ,2665
|
3537
3536
|
lino/modlib/linod/choicelists.py,sha256=Cu82s1QpcGFmKUXJsg-7TSqpaESBCZKOEfxzFlJP06I,2626
|
3538
3537
|
lino/modlib/linod/consumers.py,sha256=XBjA1fflJ-e9yWRMKXyQAhrOklYzs5JRhEeGMOKWFqM,6730
|
3539
|
-
lino/modlib/linod/mixins.py,sha256=
|
3540
|
-
lino/modlib/linod/models.py,sha256=
|
3538
|
+
lino/modlib/linod/mixins.py,sha256=yE0J51bRA8u5YekrNnAlWoOBee3z5rqDE8yxHgiqGMM,12739
|
3539
|
+
lino/modlib/linod/models.py,sha256=tbPKNk3BLnnAPWvbNrWhz713b3IPM0z8UoctJcwVhhw,2357
|
3541
3540
|
lino/modlib/linod/routing.py,sha256=FiG0JVqp9TWWkNpl9Y_50UCAJ7ZEImDXkQUhlg4aGL4,2094
|
3542
3541
|
lino/modlib/linod/utils.py,sha256=dE973Xib6Be1DvNsZ0M5wzY_jpkk35R21WKs-jQPorM,339
|
3543
3542
|
lino/modlib/linod/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -3545,9 +3544,9 @@ lino/modlib/linod/fixtures/linod.py,sha256=qCFU2IktRVEdt1lChwu6kZLLnd4Ppfq_x9_2q
|
|
3545
3544
|
lino/modlib/linod/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3546
3545
|
lino/modlib/linod/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3547
3546
|
lino/modlib/linod/management/commands/linod.py,sha256=RsUgUBz-soF8wkfgUE8KJiLZltrhEeCm1m7AFNthUps,3826
|
3548
|
-
lino/modlib/memo/__init__.py,sha256=
|
3547
|
+
lino/modlib/memo/__init__.py,sha256=GdzNURo3v_o5PxTBZ_KNkzrjlcDzn4AO95pYBbHmk8Q,5389
|
3549
3548
|
lino/modlib/memo/mixins.py,sha256=Ij_bFcBY_ivo5t2HWArEeRkxIQhg61iP0sTNnhZpRac,11246
|
3550
|
-
lino/modlib/memo/models.py,sha256=
|
3549
|
+
lino/modlib/memo/models.py,sha256=zUEvWu0dK5QhkU3DeMqNqsrzSUzOl6DLZaJBNytfgrs,4388
|
3551
3550
|
lino/modlib/memo/parser.py,sha256=YbGf1EdJqTI4rqM05ZPTdufN_-aWeV_Z85Nh47HH8Pw,12996
|
3552
3551
|
lino/modlib/memo/views.py,sha256=H3g_nuiMzguptXLSWaWLJClU7BefXPFn9Rh8UIVVBeg,555
|
3553
3552
|
lino/modlib/notify/__init__.py,sha256=suo7EMVdyTPTPFwuU2KZL25PwIEstTvvR4Turgdz7UE,6926
|
@@ -4412,7 +4411,7 @@ lino/modlib/users/choicelists.py,sha256=-X76C1NxIs5e7rFHp5Z0kjJkA1NlOP2vdLKGkI2w
|
|
4412
4411
|
lino/modlib/users/mixins.py,sha256=muW6-LwHF2L6uvGO0h3qIh1_SeJrgaeooPvjqBiXbAI,14277
|
4413
4412
|
lino/modlib/users/models.py,sha256=tdROzvtd3cMxsXKtYZjcUv2XJU7hQLbyBCiE0zVvaOo,16470
|
4414
4413
|
lino/modlib/users/roles.py,sha256=yi29ELbWU1VtteGARaxetxmsCkZQHA2oJiD0dXujMiE,320
|
4415
|
-
lino/modlib/users/ui.py,sha256=
|
4414
|
+
lino/modlib/users/ui.py,sha256=ZbA8NaAWR3SIUmC6GXbUumJfsOQlskwSE1gDYBVAXY8,13278
|
4416
4415
|
lino/modlib/users/utils.py,sha256=bD0DJZsUy59xw9N-tx3W_h30_R10GT2qXZVzYtGWMa8,1963
|
4417
4416
|
lino/modlib/users/config/users/verification_response.html,sha256=8X1sEn53ploQgB6ds0UfmmkZpcvP9KSwWiQjRE_q970,772
|
4418
4417
|
lino/modlib/users/config/users/welcome_email.eml,sha256=bPSPbJKIPFRVWPDCuhNquQYwQtXzYGZgs7wICoiutS8,1078
|
@@ -4422,10 +4421,10 @@ lino/modlib/users/fixtures/demo.py,sha256=YHPhvjqAh-V9WHgFct2GQlQATZmS-W3Nry-X6m
|
|
4422
4421
|
lino/modlib/users/fixtures/demo2.py,sha256=j2ke91wvpHs3kHpeztzV3nOG4rJvavkHv2YJo0dISdI,495
|
4423
4422
|
lino/modlib/users/fixtures/demo_users.py,sha256=FJz5gW95PbgxrPD8BMSVnpA8SJJSPWtjyi3LMdytd5o,1805
|
4424
4423
|
lino/modlib/users/fixtures/std.py,sha256=Eo_TdqFC7NPryLeGRfp-nbOXw3hDqxTUpddFTxUuZ74,712
|
4425
|
-
lino/modlib/weasyprint/__init__.py,sha256=
|
4424
|
+
lino/modlib/weasyprint/__init__.py,sha256=81eULMBEUKB_2eKtWloEEh7ijOiSoxEgGigK6LJFrGo,2253
|
4426
4425
|
lino/modlib/weasyprint/choicelists.py,sha256=SaqDFfJLx9IFjhtOUtnBGZNpihUAzLvj0W49YHCZt0I,1396
|
4427
4426
|
lino/modlib/weasyprint/models.py,sha256=op6CRRBC8NatqGgGdQHU4zcVG4fu4mRS9Mz8STG3B3g,168
|
4428
|
-
lino/modlib/weasyprint/config/weasyprint/base.weasy.html,sha256=
|
4427
|
+
lino/modlib/weasyprint/config/weasyprint/base.weasy.html,sha256=SSDxOOKj_0o5JmUUDEoXHDb_eC5tT0dyjRa9l4ta3-o,4609
|
4429
4428
|
lino/modlib/wkhtmltopdf/__init__.py,sha256=1nqwVpOQH4YMhegnzrcfvXW_Xy9CIdHBHzrNvDGyVxg,773
|
4430
4429
|
lino/modlib/wkhtmltopdf/choicelists.py,sha256=Mq7LySs-HJIXnyUHN5PR55nQyg2cgPjEQuN9JUhBmUY,1818
|
4431
4430
|
lino/modlib/wkhtmltopdf/models.py,sha256=T7lHSSQKNcUWceNnNzq_bKEguXQ1THK5qyCDgeV6xfM,294
|
@@ -4437,7 +4436,7 @@ lino/sphinxcontrib/__init__.py,sha256=cz8sRK--NVr9thlToiuHRfJVelqdiYdRYmK2kyQKHq
|
|
4437
4436
|
lino/sphinxcontrib/actordoc.py,sha256=CrHbqW15V1w_6Rm1bZzRBZv1CduDRZKpCcJQtOJqOCM,20710
|
4438
4437
|
lino/sphinxcontrib/base.py,sha256=pq5u4bFSxMgPm9OMDo8xPVGhuS6MZAUd9bF6rQCCHJs,1193
|
4439
4438
|
lino/sphinxcontrib/help_texts_extractor.py,sha256=mlHyeiIdzbfzQXkT8j8skdcBQ-FV3zAPW2DXnY8Hs1I,10385
|
4440
|
-
lino/sphinxcontrib/logo/__init__.py,sha256=
|
4439
|
+
lino/sphinxcontrib/logo/__init__.py,sha256=dCHNLzhlMdSYVMui3vc2ybzPU6D4GikiRP-G9SCu1TA,2257
|
4441
4440
|
lino/sphinxcontrib/logo/make_favicons.py,sha256=cDFmh937qfYngnxajIOmuxPRyZ9X9iNWCiRlJjq6QKI,224
|
4442
4441
|
lino/sphinxcontrib/logo/src/lino-web-logo.xcf,sha256=AN4PbfN_HpdvW00PxkqbKmYQSOdmIXW5_zAmHxrC2Eo,68662
|
4443
4442
|
lino/sphinxcontrib/logo/src/logo_web.xcf,sha256=Tv9JaH1WXtPkgrx39Q_H_iIr2wlU7uFToNIkVQ2h57w,119207
|
@@ -4579,7 +4578,7 @@ lino/templates_old/404.html,sha256=9O5EJgULwLws0X1LjNig3xT4l9Hw04MBIGswD-EAlnw,2
|
|
4579
4578
|
lino/templates_old/500.html,sha256=inOR744w4FGJM_fCSQcnlk-OIYQpaBTxUQWgXQozon4,496
|
4580
4579
|
lino/templates_old/base.html,sha256=qYqj5-u1UPtpatrFkqBr3MnwS0oFUXCyQRcuNZczDfk,1641
|
4581
4580
|
lino/templates_old/base_site.html,sha256=NcLEk0kBT1b-SrhoGpDPUej7NExqJ9-dP1kbrvwBzrs,255
|
4582
|
-
lino/utils/__init__.py,sha256=
|
4581
|
+
lino/utils/__init__.py,sha256=r3PhUv44LoVlci5lARpqvq-8re6IwmfXxbTjDU-FVDs,18407
|
4583
4582
|
lino/utils/addressable.py,sha256=o7bmLbyvrmOoAT478s7XqjWKvnZ7zSXj4k7Xf0ccqf8,2213
|
4584
4583
|
lino/utils/ajax.py,sha256=npCS0WumhTQlBzXxQPKnp2sYCRcPsYcbFqzE2ykVc4Q,3254
|
4585
4584
|
lino/utils/choosers.py,sha256=9jjeLz-QcWVBfR8_GdY4PNYoqIYM63OI3OvOL2l1ZaU,17604
|
@@ -4590,13 +4589,13 @@ lino/utils/daemoncommand.py,sha256=NjGShiz09fddIV0WU0jK2nzO_CwPj1MfdmgwAOYZi4M,1
|
|
4590
4589
|
lino/utils/dataserializer.py,sha256=-_xHXaGwDSO6-sYEHEa2BtEmKS8bW6gsYx4dV-GbvDs,3779
|
4591
4590
|
lino/utils/dates.py,sha256=eWF5WxA5uJf51Y9PKvDVBWD8yIf6yBF6oO6TeU3ujzw,1030
|
4592
4591
|
lino/utils/dbfreader.py,sha256=4sXOGBKX6DFQCEPkCMfnJAVneHMyDzJQB5tsYAq90vQ,12205
|
4593
|
-
lino/utils/dbhash.py,sha256=
|
4592
|
+
lino/utils/dbhash.py,sha256=S2jCCYUItovF8Qkc2kVk5WS14U1c3RjijkUGqYs20_c,3450
|
4594
4593
|
lino/utils/dblogger.py,sha256=kr0YxQY6veymvNg5A4tsvkqW8haRWdwqL0C-_9_QTg0,721
|
4595
4594
|
lino/utils/diag.py,sha256=8BGsPrLd1_Fympy3PKiTpX1MdMWGApXr6IBoVOkWRxE,18314
|
4596
4595
|
lino/utils/djangotest.py,sha256=Phz1qNp0wDonZRja5dxbCk0Xl3a73gZNiKK8v9tAgZg,8334
|
4597
4596
|
lino/utils/dpy.py,sha256=Hw4ofFnhRPAE2PsPf9r5RpzcfVLQdIjtOe-XtMMLtuE,20661
|
4598
4597
|
lino/utils/fieldutils.py,sha256=IfwuTpSirKYEk5h1URxQ9CF6i0ZPcsuNQHyk-LQOdRE,2874
|
4599
|
-
lino/utils/format_date.py,sha256=
|
4598
|
+
lino/utils/format_date.py,sha256=esVElXGtmc_M5CAoFyomVr1hoi3ITn95e1ToZ09li-U,3008
|
4600
4599
|
lino/utils/html.py,sha256=pcE0UQmdQGxxmb-p0mBb47zNbRMXLP9cxxrXTLs4gbY,3143
|
4601
4600
|
lino/utils/html2odf.py,sha256=Hxw4HiIHY1ZCjb4_JLykVHbr6yAMhhHrnrCnLNDYKAs,4826
|
4602
4601
|
lino/utils/html2xhtml.py,sha256=fvrIoLBFpiXtYO3UYaIgAIDjf6ATvrxolQX4etxS57Y,2119
|
@@ -4634,8 +4633,8 @@ lino/utils/xml.py,sha256=EGDnO1UaREst9fS7KTESdbHnrrVCwKbRQdvut6B6GmQ,1612
|
|
4634
4633
|
lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
|
4635
4634
|
lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
|
4636
4635
|
lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
|
4637
|
-
lino-25.
|
4638
|
-
lino-25.
|
4639
|
-
lino-25.
|
4640
|
-
lino-25.
|
4641
|
-
lino-25.
|
4636
|
+
lino-25.4.0.dist-info/METADATA,sha256=ebewMi9c7NVn3fuBa28StXDO0GH1KOGbD70Js5S4a9s,42534
|
4637
|
+
lino-25.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4638
|
+
lino-25.4.0.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
|
4639
|
+
lino-25.4.0.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
4640
|
+
lino-25.4.0.dist-info/RECORD,,
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 -*-
|
2
|
-
# Copyright 2009-2023 Rumma & Ko Ltd.
|
3
|
-
# License: GNU Affero General Public License v3 (see file COPYING for details)
|
4
|
-
|
5
|
-
from click import confirm
|
6
|
-
from django.core.management.base import BaseCommand, CommandError
|
7
|
-
from django.core.management import call_command
|
8
|
-
from django.conf import settings
|
9
|
-
from lino import logger
|
10
|
-
|
11
|
-
|
12
|
-
class Command(BaseCommand):
|
13
|
-
"""Build the site cache files and optionally run collectstatic for this Lino site."""
|
14
|
-
|
15
|
-
def add_arguments(self, parser):
|
16
|
-
super().add_arguments(parser)
|
17
|
-
parser.add_argument(
|
18
|
-
"-b", "--batch", "--noinput",
|
19
|
-
action="store_false",
|
20
|
-
dest="interactive",
|
21
|
-
default=True,
|
22
|
-
help="Do not prompt for input of any kind.",
|
23
|
-
),
|
24
|
-
parser.add_argument(
|
25
|
-
"-c", "--collectstatic",
|
26
|
-
action="store_true",
|
27
|
-
dest="collectstatic",
|
28
|
-
default=False,
|
29
|
-
help="Also run collectstatic.",
|
30
|
-
),
|
31
|
-
|
32
|
-
def handle(self, *args, **options):
|
33
|
-
interactive = options.get("interactive")
|
34
|
-
verbosity = options.get("verbosity")
|
35
|
-
project_dir = settings.SITE.project_dir
|
36
|
-
collectstatic = options.get("collectstatic")
|
37
|
-
|
38
|
-
options = dict(interactive=False, verbosity=verbosity)
|
39
|
-
|
40
|
-
if interactive:
|
41
|
-
msg = "Build everything for ({})".format(project_dir)
|
42
|
-
msg += ".\nAre you sure?"
|
43
|
-
if not confirm(msg, default=True):
|
44
|
-
raise CommandError("User abort.")
|
45
|
-
|
46
|
-
# the following log message was useful on Travis 20150104
|
47
|
-
if verbosity > 0:
|
48
|
-
logger.info("`buildsite` started on %s.", project_dir)
|
49
|
-
|
50
|
-
# pth = project_dir / "settings.py"
|
51
|
-
# if pth.exists():
|
52
|
-
# pth.touch()
|
53
|
-
|
54
|
-
if collectstatic:
|
55
|
-
call_command("collectstatic", **options)
|
56
|
-
|
57
|
-
settings.SITE.build_site_cache(force=True, verbosity=verbosity)
|
58
|
-
|
59
|
-
# if settings.SITE.is_installed("help"):
|
60
|
-
# call_command("makehelp", verbosity=verbosity)
|
61
|
-
|
62
|
-
# for p in settings.SITE.installed_plugins:
|
63
|
-
# p.on_buildsite(settings.SITE, verbosity=verbosity)
|
64
|
-
|
65
|
-
# settings.SITE.clear_site_config()
|
66
|
-
|
67
|
-
logger.info("`buildsite` finished on %s.", project_dir)
|
File without changes
|
File without changes
|
File without changes
|