## $Id: export.py 14219 2016-10-20 12:48:21Z henrik $ ## ## Copyright (C) 2014 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## """Exporters for uniben customer objects and subobjects. """ import grok from waeup.ikoba.customers.export import ( CustomerExporter, CustomerDocumentExporterBase, ContractExporterBase) from ikobacustom.uniben.customers.interfaces import ( IUnibenCustomer, IUnibenCustomerJPGDocument, IRIAAContractProcess, IUnibenCustomerPDFDocument) from ikobacustom.uniben.interfaces import MessageFactory as _ class UnibenCustomerExporter(CustomerExporter): """Exporter for Customers. """ iface = IUnibenCustomer title = _(u'Uniben Customers') class UnibenCustomerPDFDocumentExporter(CustomerDocumentExporterBase): """Exporter for documents. """ grok.name('unibencustomerpdfdocuments') iface = IUnibenCustomerPDFDocument title = _(u'Uniben Customer PDF Documents') class_name = 'UnibenCustomerPDFDocument' class UnibenCustomerJPGDocumentExporter(CustomerDocumentExporterBase): """Exporter for documents. """ grok.name('unibencustomerjpgdocuments') iface = IUnibenCustomerJPGDocument title = _(u'Uniben Customer JPG Documents') class_name = 'UnibenCustomerJPGDocument' class RIAAContractExporter(ContractExporterBase): """Exporter for Contract instances. """ grok.name('riaacontracts') iface = IRIAAContractProcess title = _(u'RIAA Customer Contracts') class_name = 'RIAAContract' def mangle_value(self, value, name, context=None): if name == 'history': return value.messages mangled_value = getattr(value, 'document_id', None) if mangled_value: return mangled_value mangled_value = getattr(value, 'product_id', None) if mangled_value: return mangled_value if name == 'product_options' and value is not None: return [eval(entry.to_string()) for entry in value] return super( ContractExporterBase, self).mangle_value( value, name, context=context)