Allow to store SEPA Message content on the file system

issue7295
review44851002
This commit is contained in:
Nicolas Évrard committed 2019-06-05 18:32:08 +02:00
1 parent e280d84701
commit 5e375b0820
5 files changed
+30 -4

No files matched your search

+2
View File
@@ -1,3 +1,5 @@
* Allow to store SEPA message content on the file system
Version 5.2.0 - 2019-05-06
* Bug fixes (see mercurial logs for details)
* Remove unique constraint on SEPA identifier
+13
View File
@@ -76,3 +76,16 @@ Party
The Party has a field `SEPA Creditor Identifier` used for the party of the
company.
Configuration
*************
The account_payment_sepa module uses the section `account_payment_sepa` to
retrieve some parameters:
- `filestore`: a boolean value to store SEPA message in the FileStore.
The default value is `False`.
- `store_prefix`: the prefix to use with the FileStore. The default value is
`None`.
+13 -1
View File
@@ -11,6 +11,7 @@ import genshi.template
from lxml import etree
from sql import Literal
from trytond.config import config
from trytond.i18n import gettext
from trytond.pool import PoolMeta, Pool
from trytond.model import (ModelSQL, ModelView, Workflow, fields, dualmethod,
@@ -46,6 +47,14 @@ if not hasattr(ASTTransformer, 'visit_NameConstant'):
# Re-use visit_Name because _clone is deleted
ASTTransformer.visit_NameConstant = ASTTransformer.visit_Name
if config.getboolean('account_payment_sepa', 'filestore', default=False):
file_id = 'message_file_id'
store_prefix = config.get(
'account_payment_sepa', 'store_prefix', default=None)
else:
file_id = None
store_prefix = None
class Journal(metaclass=PoolMeta):
__name__ = 'account.payment.journal'
@@ -613,7 +622,10 @@ class Message(Workflow, ModelSQL, ModelView):
'readonly': Eval('state') != 'draft',
}
_depends = ['state']
message = fields.Text('Message', states=_states, depends=_depends)
message = fields.Binary('Message', filename='filename',
file_id=file_id, store_prefix=store_prefix,
states=_states, depends=_depends)
message_file_id = fields.Char("Message File ID", readonly=True)
filename = fields.Function(fields.Char('Filename'), 'get_filename')
type = fields.Selection([
('in', 'IN'),
+1 -1
View File
@@ -138,7 +138,7 @@ def validate_file(flavor, kind, xsd=None):
message, = group.sepa_messages
assert message.type == 'out', message.type
assert message.state == 'waiting', message.state
sepa_string = message.message.encode('utf-8')
sepa_string = bytes(message.message)
sepa_xml = etree.fromstring(sepa_string)
schema_file = os.path.join(os.path.dirname(__file__),
'%s.xsd' % xsd)
+1 -2
View File
@@ -9,8 +9,7 @@ this repository contains the full copyright notices and license terms. -->
<label name="origin"/>
<field name="origin"/>
<label name="message"/>
<field name="message" widget="binary" filename="filename"/>
<field name="message" colspan="6"/>
<field name="message" filename="filename"/>
<label name="state"/>
<field name="state"/>
<group col="-1" colspan="4" id="buttons">