Skip to content

Commit 3282ce8

Browse files
committed
Added field "Enabled?" to settings so it is possible to rely on a value for globally enabling eSign
1 parent 4e7f5bc commit 3282ce8

File tree

5 files changed

+141
-89
lines changed

5 files changed

+141
-89
lines changed

src/imio/esign/browser/settings.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# -*- coding: utf-8 -*-
2+
23
from imio.esign import _
4+
from plone import api
35
from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper
46
from plone.app.registry.browser.controlpanel import RegistryEditForm
7+
from plone.registry.interfaces import IRecordModifiedEvent
58
from plone.z3cform import layout
69
from zope import schema
710
from zope.interface import Interface
@@ -38,6 +41,12 @@ def validate_vat_number(va_nb):
3841

3942
class IImioEsignSettings(Interface):
4043

44+
enabled = schema.Bool(
45+
title=_("Enabled?"),
46+
description=_("Is the eSign service enabled?"),
47+
default=True,
48+
)
49+
4150
vat_number = schema.TextLine(
4251
title=_("VAT number"),
4352
description=_("VAT number used for esign billing (BE0123456789)."),
@@ -79,3 +88,18 @@ class ImioEsignSettings(RegistryEditForm):
7988
ImioEsignSettingsView = layout.wrap_form(
8089
ImioEsignSettings, ControlPanelFormWrapper
8190
)
91+
92+
93+
def detect_settings_changed(event):
94+
"""
95+
Manage our record changes
96+
"""
97+
if IRecordModifiedEvent.providedBy(event) and event.record.interface == IImioEsignSettings:
98+
new_value = event.newValue
99+
if event.record.fieldName == 'enabled':
100+
portal = api.portal.get()
101+
# hide "sessions" link from navigation depending on eSign enable or not
102+
if new_value is True:
103+
portal.get('sessions').setExcludeFromNav(False)
104+
else:
105+
portal.get('sessions').setExcludeFromNav(True)

src/imio/esign/configure.zcml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
<adapter for="*"
4545
factory=".adapters.FilesBelongingToAGivenSession"
4646
provides="collective.compoundcriterion.interfaces.ICompoundCriterionFilter"
47-
name="files-belonging-to-a-given-session"/>
47+
name="files-belonging-to-a-given-session" />
48+
49+
<subscriber
50+
for="plone.registry.interfaces.IRecordModifiedEvent"
51+
handler=".browser.settings.detect_settings_changed" />
4852

4953
</configure>

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

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
msgid ""
22
msgstr ""
33
"Project-Id-Version: PACKAGE VERSION\n"
4-
"POT-Creation-Date: 2026-01-09 12:23+0000\n"
4+
"POT-Creation-Date: 2026-01-16 12:42+0000\n"
55
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
66
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
77
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515
"Domain: imio.dashboard\n"
1616
"X-is-fallback-for: en-au en-ca en-gb en-us\n"
1717

18-
#: ../browser/views.py:258
18+
#: ../browser/views.py:259
1919
msgid "A file identifier must be passed in the url !"
2020
msgstr ""
2121

@@ -43,23 +43,27 @@ msgstr ""
4343
msgid "Email"
4444
msgstr ""
4545

46-
#: ../browser/settings.py:62
46+
#: ../browser/settings.py:71
4747
msgid "Email of the eidas provider account containing the seal image."
4848
msgstr ""
4949

50-
#: ../browser/views.py:152
50+
#: ../browser/settings.py:45
51+
msgid "Enabled?"
52+
msgstr ""
53+
54+
#: ../browser/views.py:153
5155
msgid "Error while sending session: ${error}"
5256
msgstr ""
5357

5458
#: ../browser/templates/faceted_session_info.pt:52
5559
msgid "External session"
5660
msgstr ""
5761

58-
#: ../browser/views.py:149
62+
#: ../browser/views.py:150
5963
msgid "External session sent successfully!"
6064
msgstr ""
6165

62-
#: ../browser/settings.py:49
66+
#: ../browser/settings.py:58
6367
msgid "File URL download domain"
6468
msgstr ""
6569

@@ -75,7 +79,7 @@ msgstr ""
7579
msgid "ID"
7680
msgstr ""
7781

78-
#: ../browser/settings.py:76
82+
#: ../browser/settings.py:85
7983
#: ../profiles/default/controlpanel.xml
8084
msgid "Imio Esign Settings"
8185
msgstr ""
@@ -84,10 +88,14 @@ msgstr ""
8488
msgid "Installs the imio.esign add-on."
8589
msgstr ""
8690

87-
#: ../browser/settings.py:34
91+
#: ../browser/settings.py:37
8892
msgid "Invalid VAT number: checksum verification failed"
8993
msgstr ""
9094

95+
#: ../browser/settings.py:46
96+
msgid "Is the eSign service enabled?"
97+
msgstr ""
98+
9199
#: ../browser/table.py:57
92100
#: ../browser/templates/faceted_session_info.pt:30
93101
msgid "Last update"
@@ -101,11 +109,11 @@ msgstr ""
101109
msgid "No"
102110
msgstr ""
103111

104-
#: ../browser/views.py:144
112+
#: ../browser/views.py:145
105113
msgid "No seal code defined in configuration ! Session ${id} not sent."
106114
msgstr ""
107115

108-
#: ../browser/views.py:108
116+
#: ../browser/views.py:109
109117
msgid "No session ID provided!"
110118
msgstr ""
111119

@@ -125,15 +133,15 @@ msgstr ""
125133
msgid "Remove from esign session"
126134
msgstr ""
127135

128-
#: ../browser/settings.py:55
136+
#: ../browser/settings.py:64
129137
msgid "Seal code"
130138
msgstr ""
131139

132-
#: ../browser/settings.py:56
140+
#: ../browser/settings.py:65
133141
msgid "Seal code given by eidas provider."
134142
msgstr ""
135143

136-
#: ../browser/settings.py:61
144+
#: ../browser/settings.py:70
137145
msgid "Seal email"
138146
msgstr ""
139147

@@ -149,39 +157,39 @@ msgstr ""
149157
msgid "Session ID"
150158
msgstr ""
151159

152-
#: ../browser/views.py:115
160+
#: ../browser/views.py:116
153161
msgid "Session deleted successfully!"
154162
msgstr ""
155163

156164
#: ../browser/templates/faceted_session_info.pt:11
157165
msgid "Session information : ${title}"
158166
msgstr ""
159167

160-
#: ../browser/views.py:117
168+
#: ../browser/views.py:118
161169
msgid "Session not found!"
162170
msgstr ""
163171

164172
#: ../browser/views.py:137
165173
msgid "Session not yet sent."
166174
msgstr ""
167175

168-
#: ../browser/views.py:138
176+
#: ../browser/views.py:139
169177
msgid "Session with ID ${id} doesn't exist anymore !"
170178
msgstr ""
171179

172-
#: ../browser/settings.py:67
180+
#: ../browser/settings.py:76
173181
msgid "Sign code"
174182
msgstr ""
175183

176-
#: ../browser/settings.py:68
184+
#: ../browser/settings.py:77
177185
msgid "Sign code used to specify sign method. Keep empty to use default method."
178186
msgstr ""
179187

180188
#: ../browser/views.py:139
181189
msgid "Sign url not yet received."
182190
msgstr ""
183191

184-
#: ../browser/views.py:310
192+
#: ../browser/views.py:311
185193
msgid "Signed file download"
186194
msgstr ""
187195

@@ -199,19 +207,19 @@ msgstr ""
199207
msgid "Status"
200208
msgstr ""
201209

202-
#: ../browser/views.py:286
210+
#: ../browser/views.py:287
203211
msgid "The corresponding file content cannot be retrieved (${uid}) !"
204212
msgstr ""
205213

206-
#: ../browser/views.py:266
214+
#: ../browser/views.py:267
207215
msgid "The corresponding file identifier cannot be retrieved (${uid}) !"
208216
msgstr ""
209217

210-
#: ../browser/views.py:278
218+
#: ../browser/views.py:279
211219
msgid "The download period for this file has expired (was ${valid_date}) !"
212220
msgstr ""
213221

214-
#: ../browser/views.py:262
222+
#: ../browser/views.py:263
215223
msgid "This file identifier is not correct !"
216224
msgstr ""
217225

@@ -227,31 +235,31 @@ msgstr ""
227235
msgid "Title"
228236
msgstr ""
229237

230-
#: ../browser/settings.py:50
238+
#: ../browser/settings.py:59
231239
msgid "URL domain where the file can be donwloaded."
232240
msgstr ""
233241

234242
#: ../configure.zcml:32
235243
msgid "Uninstalls the imio.esign add-on."
236244
msgstr ""
237245

238-
#: ../browser/settings.py:42
246+
#: ../browser/settings.py:51
239247
msgid "VAT number"
240248
msgstr ""
241249

242-
#: ../browser/settings.py:22
250+
#: ../browser/settings.py:25
243251
msgid "VAT number must be 12 characters (BE + 10 digits)"
244252
msgstr ""
245253

246-
#: ../browser/settings.py:26
254+
#: ../browser/settings.py:29
247255
msgid "VAT number must contain 10 digits after 'BE'"
248256
msgstr ""
249257

250-
#: ../browser/settings.py:19
258+
#: ../browser/settings.py:22
251259
msgid "VAT number must start with 'BE'"
252260
msgstr ""
253261

254-
#: ../browser/settings.py:43
262+
#: ../browser/settings.py:52
255263
msgid "VAT number used for esign billing (BE0123456789)."
256264
msgstr ""
257265

0 commit comments

Comments
 (0)