def setUploaded_pdfFile(self, value=None, **kwargs):
        """create PDF file in PDF folder on-the-fly"""
        bib_tool = getToolByName(self, 'portal_bibliography')
        types_tool = getToolByName(self, 'portal_types')
        bibfolder = self.getBibFolder()
        pdf_file = self.getPdf_file()
        if not pdf_file and isinstance(value, FileUpload):

            pdf_folder = bibfolder.getPdfFolder()

            # create PDF file and associate reference with it
            file_field = self.getField('uploaded_pdfFile')

            if bibfolder.getSynchronizePdfFileAttributes():

                pdf_file_id = self.getId() + '.pdf'

            else:
                file_field.getFilename(self, fromBaseUnit=False)
                file_field.getFilename(self, fromBaseUnit=True)
                try:
                    request=getattr(self, 'REQUEST', None)
                    pdf_file_id = cleanupFilename(filename=value.filename,
                                                  request=request,
                                                  )
                except TypeError: # BBB < Plone 3
                    pdf_file_id = cleanupFilename(filename=value.filename,
                                                  context=self,
                                                  encoding=self.getCharset(),
                                                  )

            # temporarily allow PDF File creation in PDF Folder,
            # create PDF File, revoke PDF File creation allowance
            pdf_folder.allowPdfFileCreation()
            new_id = pdf_folder.invokeFactory(id=pdf_file_id,
                                              type_name='PDF File',
                                              )
            pdf_folder.disallowPdfFileCreation()

            # find the PDF File's ID and get the object
            if new_id is None or (new_id == ''):
                new_id = pdf_file_id
            pdf_file = pdf_folder._getOb(id=new_id)

            # set the file value
            pdf_file.setFile(value, **kwargs)
            if pdf_file:
                self.setPdf_file(value=pdf_file.UID())

        elif pdf_file and isinstance(value, FileUpload):
            ## replace file field in PDF file
            pdf_file.setFile(value, **kwargs)

        elif pdf_file and isinstance(value, basestring) and (value == 'DELETE_FILE'):

            pdf_folder = bibfolder.getPdfFolder()
            ## delete PDF file, delete PDF file reference
            pdf_folder.manage_delObjects(ids=[pdf_file.getId()])
            self.setPdf_file(value=None)
Exemple #2
0
 def test_cleanup_filename(self):
     self.app.REQUEST.set('HTTP_ACCEPT_LANGUAGE', 'el')
     from Products.ATContentTypes.content.base import cleanupFilename
     text = unicode('Νίκος Τζάνος', 'utf-8')
     self.assertEqual(cleanupFilename(text, request=self.app.REQUEST),
                      'Nikos Tzanos')
Exemple #3
0
 def test_cleanup_filename(self):
     self.app.REQUEST.set('HTTP_ACCEPT_LANGUAGE', 'el')
     from Products.ATContentTypes.content.base import cleanupFilename
     text = unicode('Νίκος Τζάνος', 'utf-8')
     self.assertEqual(cleanupFilename(text, request=self.app.REQUEST),
                       'Nikos Tzanos')
Exemple #4
0
    def setUploaded_pdfFile(self, value=None, **kwargs):
        """create PDF file in PDF folder on-the-fly"""
        bib_tool = getToolByName(self, 'portal_bibliography')
        types_tool = getToolByName(self, 'portal_types')
        bibfolder = self.getBibFolder()
        pdf_file = self.getPdf_file()
        if not pdf_file and isinstance(value, FileUpload):

            pdf_folder = bibfolder.getPdfFolder()

            # create PDF file and associate reference with it
            file_field = self.getField('uploaded_pdfFile')

            if bibfolder.getSynchronizePdfFileAttributes():

                pdf_file_id = self.getId() + '.pdf'

            else:
                file_field.getFilename(self, fromBaseUnit=False)
                file_field.getFilename(self, fromBaseUnit=True)
                try:
                    request = getattr(self, 'REQUEST', None)
                    pdf_file_id = cleanupFilename(
                        filename=value.filename,
                        request=request,
                    )
                except TypeError:  # BBB < Plone 3
                    pdf_file_id = cleanupFilename(
                        filename=value.filename,
                        context=self,
                        encoding=self.getCharset(),
                    )

            # temporarily allow PDF File creation in PDF Folder,
            # create PDF File, revoke PDF File creation allowance
            pdf_folder.allowPdfFileCreation()
            new_id = pdf_folder.invokeFactory(
                id=pdf_file_id,
                type_name='PDF File',
            )
            pdf_folder.disallowPdfFileCreation()

            # find the PDF File's ID and get the object
            if new_id is None or (new_id == ''):
                new_id = pdf_file_id
            pdf_file = pdf_folder._getOb(id=new_id)

            # set the file value
            pdf_file.setFile(value, **kwargs)
            if pdf_file:
                self.setPdf_file(value=pdf_file.UID())

        elif pdf_file and isinstance(value, FileUpload):
            ## replace file field in PDF file
            pdf_file.setFile(value, **kwargs)

        elif pdf_file and isinstance(value, basestring) and (value
                                                             == 'DELETE_FILE'):

            pdf_folder = bibfolder.getPdfFolder()
            ## delete PDF file, delete PDF file reference
            pdf_folder.manage_delObjects(ids=[pdf_file.getId()])
            self.setPdf_file(value=None)