Allow to store SEPA Message content on the file system
issue7295 review44851002
This commit is contained in:
1 parent
e280d84701
commit
5e375b0820
5 files changed
+30
-4
No files matched your search
@@ -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
|
||||
|
||||
@@ -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
@@ -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'),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in new issue
Block a user