33from eea .facetednavigation .interfaces import IFacetedNavigable
44from html import escape
55from imio .esign import _
6+ from imio .esign .config import get_registry_max_session_size
67from imio .esign .config import get_registry_seal_code
78from imio .esign .config import get_registry_seal_email
89from imio .esign .utils import get_state_description
@@ -112,11 +113,21 @@ class FilesColumn(Column):
112113 cssClasses = {"th" : "th_header_sessions_documents" ,
113114 "td" : "documents-column" }
114115
116+ def renderQuickLook (self , item ):
117+ """Renders quick look label including session size info"""
118+ quick_look_label = translate (_ ("Quick look" ), context = self .request )
119+ max_size_mb = get_registry_max_session_size ()
120+ max_size_bytes = max_size_mb * 1024 * 1024
121+ size_bytes = item .get ("size" , 0 )
122+ size_mb = size_bytes / (1024.0 * 1024.0 )
123+ size_style = u' style="color:red"' if size_bytes >= 0.8 * max_size_bytes else u''
124+ size_label = u"(%.2f Mb / %d Mb)" % (size_mb , max_size_mb )
125+ return u"%s <span%s>%s</span>" % (quick_look_label , size_style , size_label )
126+
115127 def renderCell (self , item ):
116128 """Render a collapsible block that loads the list on demand."""
117129 # Row identifier (unique per session)
118130 session_id = item .get ("id" )
119- details_msg = translate (_ ("Quick look" ), context = self .request )
120131 base_url = getattr (self .table , "portal_url" , None )
121132 if not base_url :
122133 try :
@@ -134,7 +145,7 @@ def renderCell(self, item):
134145 u'<div class="collapsible-inner-content">'
135146 u'<img src="{1}/spinner_small.gif" />'
136147 u"</div></div>"
137- ).format (session_id , base_url , details_msg )
148+ ).format (session_id , base_url , self . renderQuickLook ( item ) )
138149
139150 return html
140151
0 commit comments