00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 import os
00030 import base64
00031 from Koo import Rpc
00032 from PyQt4.QtGui import *
00033 from PyQt4.QtCore import *
00034 from PyQt4.uic import *
00035 from Koo.Plugins import Plugins
00036 from Koo.Common import Calendar
00037
00038 def scan(model, id, ids, context):
00039 Directories = 1
00040 Files = 0
00041 Cancel = 2
00042 dialog = QMessageBox()
00043 dialog.setWindowTitle( _('Import Documents') )
00044 dialog.setText( _('How do you want to import documents?') )
00045 dialog.addButton( _('Select Files'), 3 )
00046 dialog.addButton( _('Selected Directory'), 2 )
00047 dialog.addButton( _('Cancel Import'), 1 )
00048 result = dialog.exec_()
00049 if result == Cancel:
00050 return
00051
00052 if result == Directories:
00053 directory = unicode( QFileDialog.getExistingDirectory() )
00054 if not directory:
00055 return
00056 fileNames = QDir( directory ).entryList()
00057 fileNames = [os.path.join( directory, unicode(x) ) for x in fileNames]
00058 else:
00059 fileNames = QFileDialog.getOpenFileNames()
00060 fileNames = [unicode(x) for x in fileNames]
00061
00062
00063 for fileName in fileNames:
00064 try:
00065
00066 f = open(fileName, 'rb')
00067 except:
00068 continue
00069 try:
00070 data = base64.encodestring( f.read() )
00071 except:
00072 continue
00073 finally:
00074 f.close()
00075 id = Rpc.session.execute('/object', 'execute', 'nan.document', 'create', {
00076 'name': Calendar.dateTimeToText( QDateTime.currentDateTime() ),
00077 'datas': data,
00078 'filename': os.path.basename(fileName),
00079 }, context )
00080
00081 Plugins.register( 'document-importer', 'nan.document', _('Import Documents'), scan )