add ocr settings

This commit is contained in:
Frédéric Péters 2011-10-30 17:19:33 +01:00
parent 05e5a94d7b
commit 768f8c366e
4 changed files with 95 additions and 1 deletions

View File

@ -90,6 +90,73 @@
</dd>
<dt id="fieldsetlegend-ocr">OCR Settings</dt>
<dd id="fieldset-ocr">
<form
name="ocr"
method="post"
class="enableUnloadProtection"
tal:attributes="action request/URL"
tal:define="errors view/errors">
<div
tal:define="error errors/incoming_mails_path | nothing;
incoming_mails_path python:request.get('incoming_mails_path', view.settings.incoming_mails_path)"
tal:attributes="class python:'field error' if error else 'field'">
<label for="incoming_mails_path" i18n:translate="label_incoming_mails_path">Incoming Mails Path</label>
<div tal:content="error" tal:condition="error" />
<input
name="incoming_mails_path"
id="incoming_mails_path"
type="text"
size="80"
tal:attributes="value incoming_mails_path"
/>
</div>
<div
tal:define="error errors/ocr_code_mapping | nothing;
ocr_code_mapping python:request.get('ocr_code_mapping', view.settings.ocr_code_mapping)"
tal:attributes="class python:'field error' if error else 'field'">
<label for="ocr_code_mapping" i18n:translate="label_ocr_code_mapping">OCR Code Mapping</label>
<div tal:content="error" tal:condition="error" />
<textarea
name="ocr_code_mapping"
id="ocr_code_mapping"
type="text"
rows="20"
cols="80"
tal:content="ocr_code_mapping"
>...</textarea>
</div>
<div class="formControls">
<input
type="submit"
name="form.button.OcrSave"
class="context"
value="Save"
i18n:attributes="value" />
<input
type="submit"
name="form.button.Cancel"
class="context"
value="Cancel"
i18n:attributes="value" />
</div>
<input tal:replace="structure context/@@authenticator/authenticator" />
</form>
</dd>
</dl>
</div>

View File

@ -45,6 +45,12 @@ class ThemisControlpanel(BrowserView):
self.settings.mail_category_mapping = form.get('mail_category_mapping')
self.settings.documents_path = form.get('documents_path')
if 'form.button.OcrSave' in form:
self.authorize()
submitted = True
self.settings.ocr_code_mapping = form.get('ocr_code_mapping')
self.settings.incoming_mails_path = form.get('incoming_mails_path')
if submitted and not self.errors:
self._setup()
IStatusMessage(self.request).add(_(u"Changes saved"))

View File

@ -11,3 +11,7 @@ class IThemisSettings(Interface):
title=_(u'Mail Category Mapping'), required=False)
documents_path = schema.TextLine(title=_(u'Documents Path'), required=False)
incoming_mails_path = schema.TextLine(title=_(u'Documents Path'), required=False)
ocr_code_mapping = schema.Text(title=_(u'OCR Code Mapping'), required=False)

View File

@ -15,7 +15,7 @@ def get_document_type_for_mail(mail):
continue
if line.startswith('#'):
continue
category, object_type = line.strip().split(':')
category, object_type = line.strip().split('|')
if category in values:
return object_type
return None
@ -23,3 +23,20 @@ def get_document_type_for_mail(mail):
def get_document_location_for_mail(mail):
settings = component.getUtility(IRegistry).forInterface(IThemisSettings, False)
return settings.documents_path
def get_incoming_mails_location():
settings = component.getUtility(IRegistry).forInterface(IThemisSettings, False)
return settings.incoming_mails_path
def get_mail_categories_from_ocr_code(ocr_code):
settings = component.getUtility(IRegistry).forInterface(IThemisSettings, False)
mapping = settings.ocr_code_mapping
for line in mapping.splitlines():
if not line:
continue
if line.startswith('#'):
continue
code, category, subcategory = line.strip().split('|')
if code == ocr_code:
return category, subcategory
return None