Skip to content

Commit 745ff80

Browse files
committed
Added session info size
1 parent 94c7b5e commit 745ff80

File tree

7 files changed

+35
-2
lines changed

7 files changed

+35
-2
lines changed

CHANGES.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Changelog
2929
[chris-adam]
3030
- Added external watchers for esign sessions.
3131
[chris-adam, sgeulette]
32+
- Added session info size on quick look.
33+
[chris-adam]
3234

3335
1.0a2 (2026-02-06)
3436
------------------

src/imio/esign/browser/table.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from eea.facetednavigation.interfaces import IFacetedNavigable
44
from html import escape
55
from imio.esign import _
6+
from imio.esign.config import get_registry_max_session_size
67
from imio.esign.config import get_registry_seal_code
78
from imio.esign.config import get_registry_seal_email
89
from imio.esign.utils import get_state_description
@@ -107,16 +108,27 @@ def renderCell(self, item):
107108

108109

109110
class FilesColumn(Column):
111+
SESSION_SIZE_WARNING_THRESHOLD = 0.8 # Warn when size reaches 80% of max
110112
header = _("Files")
111113
weight = 60
112114
cssClasses = {"th": "th_header_sessions_documents",
113115
"td": "documents-column"}
114116

117+
def renderQuickLook(self, item):
118+
"""Renders quick look label including session size info"""
119+
quick_look_label = translate(_("Quick look"), context=self.request)
120+
max_size_mb = get_registry_max_session_size()
121+
max_size_bytes = max_size_mb * 1024 * 1024
122+
size_bytes = item.get("size", 0)
123+
size_mb = size_bytes / (1024.0 * 1024.0)
124+
size_style = u' style="color:red"' if size_bytes >= self.SESSION_SIZE_WARNING_THRESHOLD * max_size_bytes else u''
125+
size_label = u"(%.2f MB / %d MB)" % (size_mb, max_size_mb)
126+
return u"%s <span%s>%s</span>" % (quick_look_label, size_style, size_label)
127+
115128
def renderCell(self, item):
116129
"""Render a collapsible block that loads the list on demand."""
117130
# Row identifier (unique per session)
118131
session_id = item.get("id")
119-
details_msg = translate(_("Quick look"), context=self.request)
120132
base_url = getattr(self.table, "portal_url", None)
121133
if not base_url:
122134
try:
@@ -134,7 +146,7 @@ def renderCell(self, item):
134146
u'<div class="collapsible-inner-content">'
135147
u'<img src="{1}/spinner_small.gif" />'
136148
u"</div></div>"
137-
).format(session_id, base_url, details_msg)
149+
).format(session_id, base_url, self.renderQuickLook(item))
138150

139151
return html
140152

src/imio/esign/browser/templates/session_files.pt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
<tal:none tal:condition="python:not files">
33
<span i18n:translate="">No files</span>
44
</tal:none>
5+
<p tal:condition="python: view.files_count >= 10"
6+
i18n:translate="">
7+
This session contains
8+
<strong tal:content="view/files_count" i18n:name="count">N</strong>
9+
element(s).
10+
</p>
511
<ol tal:condition="files">
612
<li tal:repeat="file files">
713
<tal:link tal:replace="structure python:view.get_file_link(file[0], file[1])">link</tal:link>

src/imio/esign/browser/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ def __call__(self):
9999
obj = uuidToObject(f["uid"])
100100
if obj and ctx:
101101
files.append((ctx, obj))
102+
self.files_count = len(files)
102103
self.files = files
103104
return self.index()
104105

src/imio/esign/locales/en/LC_MESSAGES/imio.esign.po

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ msgstr ""
186186
msgid "No files"
187187
msgstr ""
188188

189+
#: ../browser/templates/session_files.pt:5
190+
msgid "This session contains ${count} element(s)."
191+
msgstr ""
192+
189193
#: ../browser/views.py:171
190194
msgid "No files found to be sent ! Session ${id} not sent."
191195
msgstr ""

src/imio/esign/locales/fr/LC_MESSAGES/imio.esign.po

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ msgstr "Non"
187187
msgid "No files"
188188
msgstr "Aucun fichier"
189189

190+
#: ../browser/templates/session_files.pt:5
191+
msgid "This session contains ${count} element(s)."
192+
msgstr "Cette session contient ${count} élément(s)."
193+
190194
#: ../browser/views.py:171
191195
msgid "No files found to be sent ! Session ${id} not sent."
192196
msgstr "Aucun fichier référencé n'a été trouvé ! La session ${id} n'a pas été envoyée."

src/imio/esign/locales/imio.esign.pot

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ msgstr ""
186186
msgid "No files"
187187
msgstr ""
188188

189+
#: ../browser/templates/session_files.pt:5
190+
msgid "This session contains ${count} element(s)."
191+
msgstr ""
192+
189193
#: ../browser/views.py:171
190194
msgid "No files found to be sent ! Session ${id} not sent."
191195
msgstr ""

0 commit comments

Comments
 (0)