lino 25.2.0__py3-none-any.whl → 25.2.1__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 CHANGED
@@ -26,7 +26,7 @@ defines no models, some template files, a series of :term:`django-admin commands
26
26
 
27
27
  """
28
28
 
29
- __version__ = '25.2.0'
29
+ __version__ = '25.2.1'
30
30
 
31
31
  # import setuptools # avoid UserWarning "Distutils was imported before Setuptools"?
32
32
 
lino/core/elems.py CHANGED
@@ -1090,7 +1090,7 @@ class ForeignKeyElement(ComplexRemoteComboFieldElement):
1090
1090
  options = dict(
1091
1091
  related_actor_id=actor.actor_id, allowBlank=kw.get("allowBlank", False)
1092
1092
  )
1093
- da = actor.default_action
1093
+ da = actor.detail_action
1094
1094
  options.update(
1095
1095
  view_permission=bool(da) and da.get_view_permission(get_user_profile())
1096
1096
  )
lino/core/requests.py CHANGED
@@ -102,6 +102,7 @@ def mi2bp(master_instance, bp):
102
102
  # raise Exception("No master key for {} {!r}".format(
103
103
  # self.master_instance.__class__, self.master_instance))
104
104
 
105
+
105
106
  class StringLogger(logging.Logger):
106
107
  # Instantiated by BaseRequest.capture_logger()
107
108
 
@@ -542,6 +543,17 @@ class BaseRequest:
542
543
  self.logger.streamer.flush()
543
544
  self.logger = old_logger
544
545
 
546
+ @contextmanager
547
+ def override_attrs(self, **kwargs):
548
+ old_values = {k: getattr(self, k) for k in kwargs.keys()}
549
+ for k, v in kwargs.items():
550
+ setattr(self, k, v)
551
+ try:
552
+ yield
553
+ finally:
554
+ for k, v in old_values.items():
555
+ setattr(self, k, v)
556
+
545
557
  def get_row_classes(self, row):
546
558
  if self.actor is None or self.actor.get_row_classes is None:
547
559
  return
@@ -84,14 +84,12 @@ class ChangeNotifier(dd.Model):
84
84
  return
85
85
 
86
86
  def msg():
87
- subject = self.get_change_subject(ar, cw)
88
- if not subject:
89
- return None
90
- permalink_uris = ar.permalink_uris
91
- ar.permalink_uris = True
92
- body = self.get_change_body(ar, cw)
93
- ar.permalink_uris = permalink_uris
94
- return (subject, body)
87
+ with ar.override_attrs(permalink_uris=True):
88
+ subject = self.get_change_subject(ar, cw)
89
+ if not subject:
90
+ return None
91
+ body = self.get_change_body(ar, cw)
92
+ return (subject, body)
95
93
 
96
94
  owner = self.get_change_owner()
97
95
  kwargs = self.get_notify_options()
@@ -21,7 +21,7 @@ def walk(p):
21
21
  yield c
22
22
 
23
23
  def objects():
24
-
24
+
25
25
  if DEMO_DATA is None:
26
26
  # logger.info("No demo data because lino_book is not installed")
27
27
  return
@@ -436,7 +436,8 @@ def setup_memo_commands(sender=None, **kwargs):
436
436
  if mf is None:
437
437
  return format_html("<em>{}</em>", text or str(self))
438
438
  ctx.update(src=mf.get_download_url())
439
- ctx.update(href=ar.renderer.obj2url(ar, self))
439
+ with ar.override_attrs(permalink_uris=True):
440
+ ctx.update(href=ar.obj2url(self))
440
441
  if not mf.is_image():
441
442
  if not text:
442
443
  text = str(self)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lino
3
- Version: 25.2.0
3
+ Version: 25.2.1
4
4
  Summary: A framework for writing desktop-like web applications using Django and ExtJS or React
5
5
  Project-URL: Homepage, https://www.lino-framework.org
6
6
  Project-URL: Repository, https://gitlab.com/lino-framework/lino
@@ -1,6 +1,6 @@
1
1
  lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
2
2
  lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
3
- lino/__init__.py,sha256=L5fEz8yXvX5li-Ml36neDQc_SmeIeUm_wFYZp0vr_l4,5584
3
+ lino/__init__.py,sha256=MM2wocDgfKwyG9CmCGFQ2IxrCzVWmRLSCJzGuv2hCgg,5584
4
4
  lino/ad.py,sha256=AQ-vJ4scac1mx3xegXezxnxyOQpV-a0q3VFMJSDbj2s,142
5
5
  lino/apps.py,sha256=ECq-dPARDkuhngwNrcipse3b4Irj70HxJs44uWEZFc4,27
6
6
  lino/hello.py,sha256=7-PJg7PnEiznyETqGjOwXcKh8rda0qLetpbS2gvRYy0,532
@@ -40,7 +40,7 @@ lino/core/dbtables.py,sha256=bydsaCkQgUg3KlmHajcbZ2oUQdxcSp82nwbvE5uYPDQ,29067
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=wgRDDDHlEjN1el37Mgt8yvsLlLNgunr4_vSA4iFLsUM,108454
43
+ lino/core/elems.py,sha256=CsYl9fLn5Jlt1HWrOEamcAC8xtMKeulhS3R2uRg4XcE,108453
44
44
  lino/core/exceptions.py,sha256=QDxDo5cllSyXQ8VWet9hGXzNadxCOmwMVrFXc6V-vpE,665
45
45
  lino/core/fields.py,sha256=C14cCHHJclk0z6NlJFRPyXPJaVS1DhngQLTE6gPR0BE,57407
46
46
  lino/core/frames.py,sha256=ISxgq9zyZfqW3tDZMWdKi9Ij455lT_81qBH0xex0bfE,1161
@@ -56,7 +56,7 @@ lino/core/model.py,sha256=wKxb0bWi_5FgcZn8Pz-bjDGo-5Y1cwOVTZPrJbv5ljQ,36408
56
56
  lino/core/permissions.py,sha256=Fnemz3NwWz21X0YATI9Q7ba2FcAdg-EMLHjIcbt_AVU,6840
57
57
  lino/core/plugin.py,sha256=oVvTsGoBBYmjvRgtyiFPIiHZQErH0ZlNjiUFtOk2dOM,6834
58
58
  lino/core/renderer.py,sha256=jIXxNSpljZhb9tBMhUfDNbZD3XmxYzaS6SlipHx29L4,47291
59
- lino/core/requests.py,sha256=23pQckFF-R9IBfN7KVItlCodiKeGdmDH-UPOyR0N69M,92887
59
+ lino/core/requests.py,sha256=kOPN8Eaz55hG9W7lgNh2lN2HBGXlP19GEmHUtq0nR8U,93211
60
60
  lino/core/roles.py,sha256=PXwk436xUupxdbJcygRSYFu7ixfKjAJPQRUQ8sy0lB0,4425
61
61
  lino/core/signals.py,sha256=0JT89mkjSbRm57QZcSI9DoThoKUGkyi-egNhuLUKEds,948
62
62
  lino/core/site.py,sha256=s_kisoL35ZcbFbF18eyvARu7OcNA_61GPE3-_6rNJIc,83136
@@ -3551,7 +3551,7 @@ lino/modlib/notify/actions.py,sha256=ClRKDjmgx3m43IZ5cx0TdxXN_pU6hLIlo_jCwEW2LhY
3551
3551
  lino/modlib/notify/api.py,sha256=dIuyn7uRF1dDgoGAqvFQvuJImLl1Q0g79skBJvnXMYs,3339
3552
3552
  lino/modlib/notify/choicelists.py,sha256=7ZkYNMOXNDfyTvdx8Sn-Gsma9f31o-6G1CtivXmQDmA,1324
3553
3553
  lino/modlib/notify/consumers.py,sha256=YaEAhAi_Oq5ovakuP5DI21YIAMvRqQcf4K8MBilcN2w,1529
3554
- lino/modlib/notify/mixins.py,sha256=2aLSh47a7vv98-mGKEyoJ2CoA4KoJm2o5wmkxbe121M,3557
3554
+ lino/modlib/notify/mixins.py,sha256=oRArn5ZCJ3Ot4OAYXleyDEEkpe-y50qKdJTGmWq8ZHs,3495
3555
3555
  lino/modlib/notify/models.py,sha256=2ujOilTVqvlxF1mW2aiO5rDLP1HH4OGcFVeCLPha1CA,18735
3556
3556
  lino/modlib/notify/utils.py,sha256=e4TAJr8mgicwEjgyuP-bOiw1VGNA6tVo_hab1q-oSNc,328
3557
3557
  lino/modlib/notify/views.py,sha256=Ar2L_Tv1qqU5giHu2b0h_AKc3utvgfZwda4qncqoBsk,957
@@ -4394,12 +4394,12 @@ lino/modlib/uploads/choicelists.py,sha256=RVKLCEDly9VUa183ul5U9DRla8yOkMxrP4qMjT
4394
4394
  lino/modlib/uploads/dummy_upload.odt,sha256=VHG2YkykCg8VqoXx8Hm37QYunvdbmg_jCyygiZseKF8,10447
4395
4395
  lino/modlib/uploads/dummy_upload.pdf,sha256=hdAx7s3V10lqVekSGugzkn_Hqxx3V4OkCNVNQI2OsFY,18730
4396
4396
  lino/modlib/uploads/mixins.py,sha256=4CSTEDU0ZBfdCV5RqV9SGc3r0rH7TlaGdB7tGGlVN-o,8000
4397
- lino/modlib/uploads/models.py,sha256=ATLVrV1cbmUj7Kv_pLOmBz3IkKpvYBjGriv74AkjD0M,16528
4397
+ lino/modlib/uploads/models.py,sha256=nFGPyLdSJW61gv1jAAscrVKHub86F5X_srjVq8e3WvY,16572
4398
4398
  lino/modlib/uploads/roles.py,sha256=ae0wf_vC4O6MffDx8abpjW1M2oWOp5VzOvt_ckk72Cc,191
4399
4399
  lino/modlib/uploads/ui.py,sha256=dc17OUf8R6jqFFt6qzfCkBHIiMKEhoOBGFw0esWfA2g,8456
4400
4400
  lino/modlib/uploads/utils.py,sha256=MQAJbI5sUe0RCXCrkxpNKUJFxHpz1bOMqKQy3QsA76o,3343
4401
4401
  lino/modlib/uploads/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4402
- lino/modlib/uploads/fixtures/demo.py,sha256=XY5oNgPvlPcL3B3nBMkqpAkfRZ0WGsr_2edOlpWTcF8,1661
4402
+ lino/modlib/uploads/fixtures/demo.py,sha256=igZevIAwJFjt5y90lnkzVnaWYgZLxmEtOFuFQA7TbDE,1665
4403
4403
  lino/modlib/uploads/fixtures/demo3.py,sha256=q0bwZrx5XtRsRlFpsa33fL0sCl7IdCYaP9E1rhCnJt4,547
4404
4404
  lino/modlib/users/__init__.py,sha256=40f-PheIyHqAzGXQbkvEKAnZ9_bb8RkaLAKIqNE96qg,3215
4405
4405
  lino/modlib/users/actions.py,sha256=Nik2CoxKZWoGIsPT50mWESzHSTQx9WiBXWG64CUFyS8,18074
@@ -4649,8 +4649,8 @@ lino/utils/xml.py,sha256=4Z44W1e5HvTVrU8erkohgnwqY-5Cr2NHywaAJ5OgRvw,989
4649
4649
  lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
4650
4650
  lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
4651
4651
  lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
4652
- lino-25.2.0.dist-info/METADATA,sha256=2neMBuGZIjjgExyCMaMWrx3LMHo9UAVl_urM7nCHE70,42534
4653
- lino-25.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4654
- lino-25.2.0.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4655
- lino-25.2.0.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4656
- lino-25.2.0.dist-info/RECORD,,
4652
+ lino-25.2.1.dist-info/METADATA,sha256=bX9DvGiv9t8X4rQLln09BkaMe7oMajwotXYox7sxbfs,42534
4653
+ lino-25.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4654
+ lino-25.2.1.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4655
+ lino-25.2.1.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4656
+ lino-25.2.1.dist-info/RECORD,,
File without changes