Ignore:
Timestamp:
23 Sep 2016, 16:38:53 (8 years ago)
Author:
Henrik Bettermann
Message:

Further customizations.

Location:
main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/batching.py

    r14181 r14184  
    2424from ikobacustom.uniben.customers.interfaces import (
    2525    IUnibenCustomer,
    26     IUnibenCustomerDocument, IUnibenContract)
     26    IUnibenCustomerDocument, IRIAAContract)
    2727from ikobacustom.uniben.interfaces import MessageFactory as _
    2828
     
    3737
    3838
    39 class UnibenCustomerDocumentProcessor(CustomerDocumentProcessorBase):
     39class UnibenCustomerPDFDocumentProcessor(CustomerDocumentProcessorBase):
    4040    """A batch processor for IUnibenCustomerDocument objects.
    4141    """
    42     util_name = 'unibencustomerdocumentprocessor'
     42    util_name = 'unibencustomerpdfdocumentprocessor'
    4343    grok.name(util_name)
    44     name = _('Uniben Customer Document Processor')
     44    name = _('Uniben Customer PDF Document Processor')
    4545    iface = IUnibenCustomerDocument
    46     factory_name = 'waeup.UnibenCustomerDocument'
     46    factory_name = 'waeup.UnibenCustomerPDFDocument'
    4747
    4848
    49 class UnibenContractProcessor(ContractProcessorBase):
    50     """A batch processor for IUnibenContract objects.
     49class RIAAContractProcessor(ContractProcessorBase):
     50    """A batch processor for IRIAAContract objects.
    5151    """
    52     util_name = 'unibencontractprocessor'
     52    util_name = 'riaacontractprocessor'
    5353    grok.name(util_name)
    54     name = _('Uniben Customer Contract Processor')
    55     iface = IUnibenContract
    56     factory_name = 'waeup.UnibenContract'
     54    name = _('RIAA Contract Processor')
     55    iface = IRIAAContract
     56    factory_name = 'waeup.RIAAContract'
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/contracts.py

    r14181 r14184  
    2828from ikobacustom.uniben.interfaces import MessageFactory as _
    2929from ikobacustom.uniben.customers.interfaces import (
    30     IUnibenContract, IUnibenContractEdit, IUnibenContractProcess,
    31     IUnibenContractOfficialUse)
     30    IRIAAContract, IRIAAContractEdit, IRIAAContractProcess,
     31    IRIAAContractOfficialUse)
    3232
    3333
    3434class UnibenContract(ContractBase):
    35     """This is a sample contract.
     35    """This is a baseclass contract.
     36    """
     37
     38class RIAAContract(UnibenContract):
     39    """Research and Innovative Achievement Award
    3640    """
    3741
    3842    grok.implements(
    39         IUnibenContractProcess,
    40         IUnibenContract,
    41         IUnibenContractEdit,
     43        IRIAAContractProcess,
     44        IRIAAContract,
     45        IRIAAContractEdit,
    4246        ICustomerNavigation)
    4347
    44     contract_category = 'sample'
     48    contract_category = 'riaa'
    4549
    46     form_fields_interface = IUnibenContract
     50    form_fields_interface = IRIAAContract
    4751
    48     edit_form_fields_interface = IUnibenContractEdit
     52    edit_form_fields_interface = IRIAAContractEdit
    4953
    50     ou_form_fields_interface = IUnibenContractOfficialUse
     54    ou_form_fields_interface = IRIAAContractOfficialUse
    5155
    52     check_docs_interface = IUnibenContract
     56    check_docs_interface = IRIAAContract
    5357
    54 UnibenContract = attrs_to_fields(UnibenContract)
     58RIAAContract = attrs_to_fields(RIAAContract)
    5559
    5660
    5761# Contracts must be importable. So we might need a factory.
    58 class UnibenContractFactory(grok.GlobalUtility):
    59     """A factory for contracts.
     62class RIAAContractFactory(grok.GlobalUtility):
     63    """A factory for RIAAContract.
    6064    """
    6165    grok.implements(IFactory)
    62     grok.name(u'waeup.UnibenContract')
    63     title = u"Create a new contract.",
    64     description = u"This factory instantiates new sample contract instances."
     66    grok.name(u'waeup.RIAAContract')
     67    title = u"Create a new riaa contract.",
     68    description = u"This factory instantiates new riaa contract instances."
    6569
    6670    def __call__(self, *args, **kw):
    67         return UnibenContract(*args, **kw)
     71        return RIAAContract(*args, **kw)
    6872
    6973    def getInterfaces(self):
    70         return implementedBy(UnibenContract)
     74        return implementedBy(RIAAContract)
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/documents.py

    r14181 r14184  
    2626from waeup.ikoba.customers.documents import CustomerDocumentBase
    2727from ikobacustom.uniben.interfaces import MessageFactory as _
    28 from ikobacustom.uniben.customers.interfaces import IUnibenCustomerDocument
     28from ikobacustom.uniben.customers.interfaces import (
     29    IUnibenCustomerDocument, IUnibenCustomerPDFDocument)
    2930
    3031
     
    4041    # only one file per Document object. Thus the following
    4142    # tuple should contain only a single filename string.
    42     filenames = ('sample',)
     43    filenames = ('scan',)
    4344
    4445    form_fields_interface = IUnibenCustomerDocument
     
    6162    def getInterfaces(self):
    6263        return implementedBy(UnibenCustomerDocument)
     64
     65class UnibenCustomerPDFDocument(CustomerDocumentBase):
     66    """This is a sample customer document.
     67    """
     68
     69    grok.implements(IUnibenCustomerPDFDocument, ICustomerNavigation)
     70    grok.provides(IUnibenCustomerPDFDocument)
     71
     72    filenames = ('scan.pdf',)
     73
     74    form_fields_interface = IUnibenCustomerPDFDocument
     75
     76UnibenCustomerPDFDocument = attrs_to_fields(UnibenCustomerPDFDocument)
     77
     78
     79class UnibenCustomerPDFDocumentFactory(grok.GlobalUtility):
     80    """A factory for customer documents.
     81    """
     82    grok.implements(IFactory)
     83    grok.name(u'waeup.UnibenCustomerPDFDocument')
     84    title = u"Create a new document.",
     85    description = u"This factory instantiates new document instances."
     86
     87    def __call__(self, *args, **kw):
     88        return UnibenCustomerPDFDocument(*args, **kw)
     89
     90    def getInterfaces(self):
     91        return implementedBy(UnibenCustomerPDFDocument)
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/export.py

    r14181 r14184  
    2222    CustomerExporter, CustomerDocumentExporterBase, ContractExporterBase)
    2323from ikobacustom.uniben.customers.interfaces import (
    24     IUnibenCustomer, IUnibenCustomerDocument, IUnibenContractProcess)
     24    IUnibenCustomer, IUnibenCustomerDocument, IRIAAContractProcess,
     25    IUnibenCustomerPDFDocument)
    2526from ikobacustom.uniben.interfaces import MessageFactory as _
    2627
     
    3233
    3334
    34 class UnibenCustomerDocumentExporter(CustomerDocumentExporterBase):
     35class UnibenCustomerPDFDocumentExporter(CustomerDocumentExporterBase):
    3536    """Exporter for documents.
    3637    """
    37     grok.name('unibencustomerdocuments')
    38     iface = IUnibenCustomerDocument
    39     title = _(u'Uniben Customer Documents')
    40     class_name = 'UnibenCustomerDocument'
     38    grok.name('unibencustomerpdfdocuments')
     39    iface = IUnibenCustomerPDFDocument
     40    title = _(u'Uniben Customer PDF Documents')
     41    class_name = 'UnibenCustomerPDFDocument'
    4142
    4243
    43 class UnibenContractExporter(ContractExporterBase):
     44class RIAAContractExporter(ContractExporterBase):
    4445    """Exporter for Contract instances.
    4546    """
    46     grok.name('unibencontracts')
    47     iface = IUnibenContractProcess
    48     title = _(u'Uniben Customer Contracts')
    49     class_name = 'UnibenContract'
     47    grok.name('riaacontracts')
     48    iface = IRIAAContractProcess
     49    title = _(u'RIAA Customer Contracts')
     50    class_name = 'RIAAContract'
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/fileviewlets.py

    r14181 r14184  
    2323    FileDisplay, FileUpload, Image)
    2424
    25 from ikobacustom.uniben.customers.documents import UnibenCustomerDocument
     25from ikobacustom.uniben.customers.documents import (
     26    UnibenCustomerDocument, UnibenCustomerPDFDocument)
    2627
    2728from waeup.ikoba.customers.browser import (
     
    8384    grok.view(PDFDocumentSlip)
    8485
     86class PDFScanManageUpload(FileUpload):
     87    """Scan upload viewlet for officers.
     88    """
     89    grok.view(DocumentManageFormPage)
     90    grok.context(UnibenCustomerPDFDocument)
     91    grok.require('waeup.manageCustomer')
     92    label = _(u'PDF File')
     93    title = _(u'PDF File')
     94    mus = 1024 * 1000
     95    download_name = u'scan.pdf'
     96    tab_redirect = '#tab2'
     97
     98    @property
     99    def download_filename(self):
     100        return u"%s.pdf" % self.context.document_id[:9]
     101
     102
     103class PDFScanEditUpload(PDFScanManageUpload):
     104    """Scan upload viewlet for customer.
     105    """
     106    grok.view(DocumentEditFormPage)
     107    grok.require('waeup.handleCustomer')
     108
     109
     110class PDFScanDisplay(FileDisplay):
     111    """Scan display viewlet.
     112    """
     113    grok.order(1)
     114    grok.context(UnibenCustomerPDFDocument)
     115    grok.require('waeup.viewCustomer')
     116    grok.view(DocumentDisplayFormPage)
     117    label = _(u'PDF Scan')
     118    title = _(u'PDF Scan')
     119    download_name = u'scan.pdf'
     120
     121    @property
     122    def download_filename(self):
     123        return u"%s.pdf" % self.context.document_id[:9]
     124
     125
     126class PDFScanImage(Image):
     127    """Scan document.
     128    """
     129    grok.name('scan.pdf')
     130    grok.context(UnibenCustomerPDFDocument)
     131    grok.require('waeup.viewCustomer')
     132    download_name = u'scan.pdf'
     133
     134    @property
     135    def download_filename(self):
     136        return u"%s" % self.context.document_id[:9]
     137
     138class PDFScanSlip(PDFScanDisplay):
     139    grok.view(PDFDocumentSlip)
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/interfaces.py

    r14181 r14184  
    2020from waeup.ikoba.interfaces import IIkobaObject
    2121from waeup.ikoba.customers.interfaces import (
    22     ICustomer, ICustomerDocument, IContract)
     22    ICustomer, ICustomerDocument, ICustomerPDFDocument, IContract)
    2323from waeup.ikoba.customers.vocabularies import (
    2424    ConCatProductSource, CustomerDocumentSource)
     
    4040    """
    4141
     42class IUnibenCustomerPDFDocument(ICustomerPDFDocument):
     43    """A customer pdf document.
     44
     45    """
     46
    4247# Customer contract interfaces
    4348
     
    5358        )
    5459
    55 class IUnibenContractOfficialUse(IIkobaObject):
    56     """Interface for editing official use data.
     60    document_object2 = schema.Choice(
     61        title = _(u'Document 2'),
     62        source = CustomerDocumentSource(),
     63        required = False,
     64        )
     65
     66class IRIAAContract(IUnibenContract):
     67    """A Retention of Name contract.
     68
     69    """
     70
     71class IRIAAContractOfficialUse(IIkobaObject):
     72    """Interface for editing RIAA official use data.
    5773
    5874    """
     
    6379        )
    6480
    65 class IUnibenContractProcess(IUnibenContract, IUnibenContractOfficialUse):
    66     """Interface for processing contract data.
     81
     82class IRIAAContractProcess(IRIAAContract, IRIAAContractOfficialUse):
     83    """Interface for processing RIAA data.
    6784    """
    6885
     
    7289        required = False,
    7390        readonly = False,
    74         default = [],
     91        defaultFactory=list,
    7592        )
    7693
    77 class IUnibenContractEdit(IUnibenContract):
    78     """Interface for editing sample contract data by customers.
     94class IRIAAContractEdit(IRIAAContract):
     95    """Interface for editing RIAA data by customers.
    7996
    8097    """
     
    85102        required = True,
    86103        )
     104
     105    document_object2 = schema.Choice(
     106        title = _(u'Document 2'),
     107        source = CustomerDocumentSource(),
     108        required = True,
     109        )
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_browser.py

    r14181 r14184  
    3333    UnibenCustomerExporter,
    3434    UnibenCustomerDocumentExporter,
    35     UnibenContractExporter)
     35    RIAAContractExporter)
    3636from ikobacustom.uniben.customers.batching import (
    3737    UnibenCustomerProcessor,
    3838    UnibenCustomerDocumentProcessor,
    39     UnibenContractProcessor)
     39    RIAAContractProcessor)
    4040from ikobacustom.uniben.testing import FunctionalLayer, samples_dir
    4141
     
    4949
    5050    def setup_customizable_params(self):
    51         self._contract_category = u'sample'
     51        self._contract_category = u'riaa'
    5252        return
    5353
     
    6464        document.title = u'My first document'
    6565        customer['documents'].addDocument(document)
    66         contract = createObject(u'waeup.UnibenContract')
     66        contract = createObject(u'waeup.RIAAContract')
    6767        contract.tc_dict = {'en':u'Hello World'}
    6868        customer['contracts'].addContract(contract)
     
    162162        # set values we can expect in export file
    163163        self.setup_for_export()
    164         exporter = UnibenContractExporter()
     164        exporter = RIAAContractExporter()
    165165        exporter.export_all(self.app, self.outfile)
    166166        result = open(self.outfile, 'rb').read()
     
    169169            'fee_based,history,last_product_id,product_object,product_options,'
    170170            'state,tc_dict,title,user_id,valid_from,valid_to\r\n'
    171             'UnibenContract,,sample,%s,,0,'
     171            'RIAAContract,,riaa,%s,,0,'
    172172            '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
    173173            ',,,[],created,{\'en\': u\'Hello World\'},,K1000000,,\r\n'
    174174            % self.contract.contract_id)
    175175        # We can reimport the file if we change the header (user_id -> customer_id)
    176         processor = UnibenContractProcessor()
     176        processor = RIAAContractProcessor()
    177177        open(self.outfile, 'wb').write(
    178178            'class_name,contract_category,contract_id,document_object,'
    179179            'history,last_product_id,product_object,product_options,'
    180180            'state,tc_dict,title,user_id\r\n'
    181             'UnibenContract,sample,%s,,'
     181            'RIAAContract,riaa,%s,,'
    182182            '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
    183183            ',,,[],created,{\'en\': u\'Hello World\'},,K1000000\r\n'
     
    220220
    221221    def setup_customizable_params(self):
    222         self._contract_category = u'sample'
     222        self._contract_category = u'riaa'
    223223        self._document_factory = 'waeup.UnibenCustomerDocument'
    224         self._contract_factory = 'waeup.UnibenContract'
     224        self._contract_factory = 'waeup.RIAAContract'
    225225        return
    226226
     
    303303
    304304    def setup_customizable_params(self):
    305         self._contract_category = u'sample'
     305        self._contract_category = u'riaa'
    306306        self._document_factory = 'waeup.UnibenCustomerDocument'
    307         self._contract_factory = 'waeup.UnibenContract'
     307        self._contract_factory = 'waeup.RIAAContract'
    308308        return
    309309
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_contract.py

    r14181 r14184  
    2929
    3030from ikobacustom.uniben.testing import (FunctionalLayer, FunctionalTestCase)
    31 from ikobacustom.uniben.customers.contracts import UnibenContract
    32 from ikobacustom.uniben.customers.interfaces import IUnibenContract
     31from ikobacustom.uniben.customers.contracts import RIAAContract
     32from ikobacustom.uniben.customers.interfaces import IRIAAContract
    3333
    3434
     
    3838
    3939    def test_interfaces(self):
    40         verify.verifyClass(IUnibenContract, UnibenContract)
    41         verify.verifyClass(ICustomerNavigation, UnibenContract)
    42         verify.verifyObject(IUnibenContract, UnibenContract())
    43         verify.verifyObject(ICustomerNavigation, UnibenContract())
     40        verify.verifyClass(IRIAAContract, RIAAContract)
     41        verify.verifyClass(ICustomerNavigation, RIAAContract)
     42        verify.verifyObject(IRIAAContract, RIAAContract())
     43        verify.verifyObject(ICustomerNavigation, RIAAContract())
    4444        return
    4545
    4646    def test_addContract(self):
    4747        container = ContractsContainer()
    48         contract = createObject(u'waeup.UnibenContract')
     48        contract = createObject(u'waeup.RIAAContract')
    4949        id = contract.contract_id
    5050        container.addContract(contract)
    5151        self.assertEqual(container[id], contract)
    5252        self.assertRaises(TypeError, container.addContract, object())
    53         self.assertEqual(contract.class_name, 'UnibenContract')
     53        self.assertEqual(contract.class_name, 'RIAAContract')
    5454        return
  • main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/utils.py

    r14181 r14184  
    3333    #: A prefix used when generating new customer ids. Each customer id will
    3434    #: start with this string. The default is 'K'.
    35     CUSTOMER_ID_PREFIX = u'K'
     35    CUSTOMER_ID_PREFIX = u'B'
    3636
    3737    DOCMANAGE_CUSTOMER_STATES = (REQUESTED, APPROVED, PROVISIONALLY)
     
    4444
    4545    DOCTYPES_DICT = {
    46         #'CustomerSampleDocument': _('Sample Document'),
    47         #'CustomerPDFDocument': _('PDF Document'),
    48 
    49         'UnibenCustomerDocument': _('Uniben Document'),
     46        #'UnibenCustomerDocument': _('Uniben Document'),
     47        'UnibenCustomerPDFDocument': _('Uniben PDF Document'),
    5048        }
    5149
    5250    CONTYPES_DICT = {
    53         #'SampleContract': _('Sample Contract'),
    54 
    55         'UnibenContract': _('Uniben Contract'),
     51        'RIAAContract': _('RIAA Contract'),
    5652        }
    5753
     
    6258    EXPORTER_NAMES = (
    6359        'customers',
    64         'unibencustomerdocuments',
    65         'unibencontracts')
     60        'unibencustomerpdfdocuments',
     61        'riaacontracts')
Note: See TracChangeset for help on using the changeset viewer.