[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r6246 - in trunk/gnue-appserver/src: . classrep language
From: |
johannes |
Subject: |
r6246 - in trunk/gnue-appserver/src: . classrep language |
Date: |
Fri, 3 Sep 2004 13:39:44 -0500 (CDT) |
Author: johannes
Date: 2004-09-03 13:39:42 -0500 (Fri, 03 Sep 2004)
New Revision: 6246
Modified:
trunk/gnue-appserver/src/classrep/__init__.py
trunk/gnue-appserver/src/geasInstance.py
trunk/gnue-appserver/src/geasSession.py
trunk/gnue-appserver/src/geasSessionManager.py
trunk/gnue-appserver/src/language/App.py
trunk/gnue-appserver/src/language/Session.py
Log:
First shot of gnue_message support
Modified: trunk/gnue-appserver/src/classrep/__init__.py
===================================================================
--- trunk/gnue-appserver/src/classrep/__init__.py 2004-09-03 08:15:08 UTC
(rev 6245)
+++ trunk/gnue-appserver/src/classrep/__init__.py 2004-09-03 18:39:42 UTC
(rev 6246)
@@ -30,6 +30,7 @@
from gnue import paths
from gnue import appserver
from gnue.appserver.language import Session
+from gnue.common.apps import i18n
class Error (appserver.Error):
pass
Modified: trunk/gnue-appserver/src/geasInstance.py
===================================================================
--- trunk/gnue-appserver/src/geasInstance.py 2004-09-03 08:15:08 UTC (rev
6245)
+++ trunk/gnue-appserver/src/geasInstance.py 2004-09-03 18:39:42 UTC (rev
6246)
@@ -307,6 +307,7 @@
cx.bindFunction ('find', sess.find)
cx.bindFunction ('setcontext', sess.setcontext)
cx.bindFunction ('new', sess.new)
+ cx.bindFunction ('message', sess.message)
# direct access to RPC API func.
cx.bindFunction ('direct_request', self.__session.request)
Modified: trunk/gnue-appserver/src/geasSession.py
===================================================================
--- trunk/gnue-appserver/src/geasSession.py 2004-09-03 08:15:08 UTC (rev
6245)
+++ trunk/gnue-appserver/src/geasSession.py 2004-09-03 18:39:42 UTC (rev
6246)
@@ -32,6 +32,7 @@
import geasList, geasInstance
from gnue.common.datasources import GConditions
+from gnue.common.apps import i18n
from mx import DateTime
@@ -63,7 +64,7 @@
# Initalize
# ---------------------------------------------------------------------------
- def __init__ (self, connections, authAdapter, sm, id):
+ def __init__ (self, connections, authAdapter, sm, id, locale):
self.loggedIn = 0
self.connections = connections
@@ -80,8 +81,9 @@
self.__dirtyInstances = {}
self.__operation = None
- self.sm = sm # The session manager
- self.id = id # The session id
+ self.sm = sm # The session manager
+ self.id = id # The session id
+ self.locale = locale
# ---------------------------------------------------------------------------
# Get a class definition from a class name and check access
@@ -198,6 +200,8 @@
def login (self, user, password):
+ i18n.setcurrentlocale (self.locale)
+
# This username/password is for the Application Server, not for the
# database.
self.__user = user
@@ -214,6 +218,8 @@
def logout (self):
+ i18n.setcurrentlocale (self.locale)
+
# FIXME: should the authAdapter be contacted?
self.__connection.close ()
self.loggedIn = 0
@@ -223,6 +229,8 @@
# ---------------------------------------------------------------------------
def commit (self):
+ i18n.setcurrentlocale (self.locale)
+
for instance in self.__dirtyInstances.values ():
instance.validate ()
@@ -235,6 +243,8 @@
def rollback (self):
+ i18n.setcurrentlocale (self.locale)
+
self.__connection.rollback ()
self.__dirtyInstances = {}
@@ -244,6 +254,8 @@
def request (self, classname, conditions, sortorder, propertylist):
+ i18n.setcurrentlocale (self.locale)
+
classdef = self.__getClassdef (classname)
(dsCond, asCond) = self.__splitCondition (conditions, classdef)
@@ -304,6 +316,8 @@
def count (self, list_id):
+ i18n.setcurrentlocale (self.locale)
+
list = self.__getList (list_id)
return list.count ();
@@ -313,6 +327,8 @@
def fetch (self, list_id, start, count):
+ i18n.setcurrentlocale (self.locale)
+
list = self.__getList (list_id)
return list.fetch (start, count)
@@ -368,6 +384,8 @@
def load (self, classname, obj_id_list, propertylist):
+ i18n.setcurrentlocale (self.locale)
+
classdef = self.__getClassdef (classname)
result = []
@@ -386,6 +404,8 @@
def store (self, classname, obj_id_list, propertylist, data):
+ i18n.setcurrentlocale (self.locale)
+
opControl = self.__startOperation ('store')
try:
@@ -423,6 +443,8 @@
def delete (self, classname, obj_id_list):
+ i18n.setcurrentlocale (self.locale)
+
opControl = self.__startOperation ('delete')
try:
@@ -455,6 +477,8 @@
def call (self, classname, obj_id_list, procedurename, parameters):
+ i18n.setcurrentlocale (self.locale)
+
opControl = self.__startOperation ('call')
try:
Modified: trunk/gnue-appserver/src/geasSessionManager.py
===================================================================
--- trunk/gnue-appserver/src/geasSessionManager.py 2004-09-03 08:15:08 UTC
(rev 6245)
+++ trunk/gnue-appserver/src/geasSessionManager.py 2004-09-03 18:39:42 UTC
(rev 6246)
@@ -29,6 +29,7 @@
from gnue import appserver
from gnue.common.datasources import GConnections
+from gnue.common.apps import i18n
# =============================================================================
# Exceptions
@@ -66,7 +67,7 @@
def _buildInternalSession (self):
self._internalSession = geasSession.geasSession (self._connections,
- geasAuthentication.geasAuthAgent(), self, 0)
+ geasAuthentication.geasAuthAgent(), self, 0, i18n.getuserlocale ())
self._internalSession.login (None,None) # fake login
self._sessions [0] = self._internalSession
@@ -100,7 +101,7 @@
conn = GConnections.GConnections(location, loginHandler, loginOptions)
sess = geasSession.geasSession (conn, self._authAdapter, self,
- self._sessNo)
+ self._sessNo, authentication ['language'])
sess.login (authentication ['user'], authentication ['password'])
self._sessions [self._sessNo] = sess
Modified: trunk/gnue-appserver/src/language/App.py
===================================================================
--- trunk/gnue-appserver/src/language/App.py 2004-09-03 08:15:08 UTC (rev
6245)
+++ trunk/gnue-appserver/src/language/App.py 2004-09-03 18:39:42 UTC (rev
6246)
@@ -21,7 +21,7 @@
#
# $Id$
-from gnue.common.apps import GClientApp
+from gnue.common.apps import GClientApp, i18n
from gnue.common.datasources import GLoginHandler
from gnue.appserver import geasSessionManager
import Session
Modified: trunk/gnue-appserver/src/language/Session.py
===================================================================
--- trunk/gnue-appserver/src/language/Session.py 2004-09-03 08:15:08 UTC
(rev 6245)
+++ trunk/gnue-appserver/src/language/Session.py 2004-09-03 18:39:42 UTC
(rev 6246)
@@ -21,9 +21,12 @@
#
# $Id$
+import types
+
from ObjectList import ObjectList
from Object import Object
from gnue import appserver
+from gnue.common.apps import i18n, errors
# ===========================================================================
@@ -35,6 +38,10 @@
msg = u_("Cannot qualifiy name '%s', no context specified") % name
appserver.Error.__init__ (self, msg)
+class MessageNotFoundError (errors.ApplicationError):
+ def __init__ (self, message):
+ msg = u_("Message '%s' not found") % message
+ errors.ApplicationError.__init__ (self, msg)
# ===========================================================================
# CLASS session: implement a session of the language interface
@@ -117,7 +124,39 @@
return Object (self, self.qualify (classname))
+ # -------------------------------------------------------------------------
+ # Get a message from the message catalogue
+ # -------------------------------------------------------------------------
+ def message (self, messageName, *args):
+ languages = ['C']
+ current = i18n.getlanguage ()
+ if '_' in current:
+ languages.insert (0, current.split ('_') [0])
+ languages.insert (0, current)
+
+ (module, message) = self.qualify (messageName).split ('_')
+
+ for lang in languages:
+ cond = ['and', ['eq', ['field', 'module.name'], ['const', module]],
+ ['eq', ['field', 'name'], ['const', message]],
+ ['eq', ['field', 'language'], ['const', lang]]]
+
+ result = self.find ('gnue_message', cond, [], ['gnue_text'])
+ if len (result):
+ text = result [0].gnue_text
+
+ if len (args):
+ if isinstance (args [0], types.DictType):
+ text = text % args [0]
+ else:
+ text = text % args
+
+ return text
+
+ raise MessageNotFoundError, self.qualify (messageName)
+
+
# =============================================================================
# Login-Session creates a new Session-Id using 'user' and 'password'
# =============================================================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6246 - in trunk/gnue-appserver/src: . classrep language,
johannes <=