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 
00030 
00031 
00032 
00033 from xml.etree.ElementTree import parse, SubElement
00034 
00035 import sys, os
00036 
00037 if os.name == 'nt':
00038         sys.path.append('.')
00039 
00040 from distutils.sysconfig import get_python_lib
00041 terp_path = "/".join([get_python_lib(), 'Koo'])
00042 sys.path.append(terp_path)
00043 
00044 from Koo.Common.Settings import Settings
00045 from Koo.Common import CommandLine
00046 from Koo.Common import Localization
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 Settings.loadFromFile()
00061 Settings.loadFromRegistry()
00062 Localization.initializeTranslations(Settings.value('client.language'))
00063 
00064 arguments = CommandLine.parseArguments(sys.argv)
00065 
00066 Localization.initializeTranslations(Settings.value('client.language'))
00067 
00068 
00069 imports={}
00070 
00071 from PyQt4.QtCore import *
00072 from PyQt4.QtGui import *
00073 from Koo.Common import Notifier, Common
00074 from Koo.Common import DBus
00075 
00076 
00077 Notifier.errorHandler = Common.error
00078 Notifier.warningHandler = Common.warning
00079 Notifier.concurrencyErrorHandler = Common.concurrencyError
00080 
00081 
00082 
00083 
00084 
00085 if Common.isKdeAvailable:
00086         from PyKDE4.kdecore import ki18n, KAboutData, KCmdLineArgs
00087         from PyKDE4.kdeui import KApplication
00088 
00089         appName     = "Koo"
00090         catalog     = ""
00091         programName = ki18n ("Koo")
00092         version     = "1.0"
00093         description = ki18n ("KDE OpenObject Client")
00094         license     = KAboutData.License_GPL
00095         copyright   = ki18n ("(c) 2009 Albert Cervera i Areny")
00096         text        = ki18n ("none")
00097         homePage    = "www.nan-tic.com"
00098         bugEmail    = "albert@nan-tic.com"
00099          
00100         aboutData   = KAboutData (appName, catalog, programName, version, description,
00101                                 license, copyright, text, homePage, bugEmail)
00102 
00103         KCmdLineArgs.init (arguments, aboutData)
00104          
00105         app = KApplication ()
00106 else:
00107         app = QApplication( arguments )
00108 
00109 app.setApplicationName( 'Koo POS' )
00110 app.setOrganizationDomain( 'www.NaN-tic.com' )
00111 app.setOrganizationName( 'NaN' )
00112 
00113 try:
00114         f = open( Settings.value('koo.stylesheet'), 'r' )
00115         try:
00116                 app.setStyleSheet( f.read() )
00117         finally:
00118                 f.close()
00119 except:
00120         pass
00121 
00122 Localization.initializeQtTranslations(Settings.value('client.language'))
00123 
00124 
00125 from Koo.Dialogs.KooMainWindow import *
00126 from Koo.Dialogs.WindowService import *
00127 import Koo.Actions
00128 
00129 mainWindow = QMainWindow(None, Qt.CustomizeWindowHint)
00130 
00131 from Koo.Common import Api
00132 
00133 class KooApi(Api.KooApi):
00134         def execute(self, actionId, data={}, type=None, context={}):
00135                 Koo.Actions.execute( actionId, data, type, context )
00136 
00137         def executeReport(self, name, data={}, context={}):
00138                 return Koo.Actions.executeReport( name, data, context )
00139 
00140         def executeAction(self, action, data={}, context={}):
00141                 Koo.Actions.executeAction( action, data, context )
00142                 
00143         def executeKeyword(self, keyword, data={}, context={}):
00144                 return Koo.Actions.executeKeyword( keyword, data, context )
00145 
00146         def createWindow(self, view_ids, model, res_id=False, domain=None, 
00147                         view_type='form', window=None, context=None, mode=None, name=False, autoReload=False, 
00148                         target='current'):
00149                 WindowService.createWindow( view_ids, model, res_id, domain, 
00150                         view_type, window, context, mode, name, autoReload, target )
00151 
00152         def windowCreated(self, window, target):
00153                 mainWindow.setCentralWidget( window )
00154                 window.setParent( mainWindow )
00155                 window.show()
00156 
00157 Api.instance = KooApi()
00158 
00159 mainWindow.showFullScreen()
00160 
00161 if Settings.value('koo.pos_mode'):
00162         import Koo.Pos
00163         app.installEventFilter( Koo.Pos.PosEventFilter(mainWindow) )
00164 
00165 if Settings.value('koo.enter_as_tab'):
00166         from Koo.Common import EnterEventFilter
00167         app.installEventFilter( EnterEventFilter.EnterEventFilter(mainWindow) )
00168 
00169 from Koo.Common import ArrowsEventFilter
00170 app.installEventFilter( ArrowsEventFilter.ArrowsEventFilter(mainWindow) )
00171 
00172 from Koo.Common import WhatsThisEventFilter
00173 app.installEventFilter( WhatsThisEventFilter.WhatsThisEventFilter(mainWindow) )
00174 
00175 
00176 if not Settings.value( 'login.url'):
00177         sys.exit( "Error: No connection parameters given." )
00178 if not Settings.value( 'login.db'):
00179         sys.exit( "Error: No database given." )
00180 
00181 Rpc.session.login( Settings.value('login.url'), Settings.value('login.db') )
00182 
00183 if not Rpc.session.logged():
00184         sys.exit( "Error: Invalid credentials." )
00185 
00186 id = Rpc.session.execute('/object', 'execute', 'res.users', 'read', [Rpc.session.uid], ['action_id','name'], Rpc.session.context)
00187 
00188 
00189 
00190 menuId = id[0]['action_id'][0]
00191 
00192 Api.instance.execute(menuId)
00193 
00194 app.exec_()
00195