[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r6992 - trunk/gnue-appserver/src
From: |
johannes |
Subject: |
[gnue] r6992 - trunk/gnue-appserver/src |
Date: |
Fri, 11 Feb 2005 03:18:44 -0600 (CST) |
Author: johannes
Date: 2005-02-11 03:18:43 -0600 (Fri, 11 Feb 2005)
New Revision: 6992
Modified:
trunk/gnue-appserver/src/data.py
trunk/gnue-appserver/src/geasConfiguration.py
trunk/gnue-appserver/src/geasList.py
trunk/gnue-appserver/src/geasSession.py
trunk/gnue-appserver/src/geasSessionManager.py
Log:
Fixed some sort-related bugs, added 'uuidtype'-configuration setting. gnue_id's
are built from common.uuid.UUID generator now
Modified: trunk/gnue-appserver/src/data.py
===================================================================
--- trunk/gnue-appserver/src/data.py 2005-02-11 07:39:23 UTC (rev 6991)
+++ trunk/gnue-appserver/src/data.py 2005-02-11 09:18:43 UTC (rev 6992)
@@ -24,11 +24,11 @@
from types import *
import string
-import whrandom
import copy
from gnue.common.apps import errors
from gnue.common.datasources import GDataSource, GConditions, GConnections
+from gnue.common.utils.uuid import UUID
class StateChangeError (errors.SystemError):
def __init__ (self, table, row):
@@ -585,6 +585,8 @@
self.__confirmedInserts = []
self.__confirmedDeletes = []
+ self.__uuidType = gConfig ('uuidtype').lower ()
+
# ---------------------------------------------------------------------------
# Create a recordset from a query
# ---------------------------------------------------------------------------
@@ -648,12 +650,12 @@
def __generateId (self):
- # TODO: need a better algorithm here
- result = u''
- for i in range (0, 32):
- result = result + str (int (whrandom.random () * 10))
- return result
+ if self.__uuidType == 'time':
+ return UUID.generateTimeBased ()
+ else:
+ return UUID.generateRandom ()
+
# ---------------------------------------------------------------------------
# Create a new record
# ---------------------------------------------------------------------------
@@ -880,11 +882,13 @@
This function confirms all changes to be safe, so a subsequent call of the
cancelChanges () function restores to this state.
"""
+
self.__confirmedCache = copy.deepcopy (self.__cache)
- self.__confirmedInserts = copy.deepcopy (self.__inserted)
- self.__confirmedDeletes = copy.deepcopy (self.__deleted)
+ self.__confirmedInserts = self.__inserted [:]
+ self.__confirmedDeletes = self.__deleted [:]
+
# ---------------------------------------------------------------------------
# revoke all changes up the the last confirm
# ---------------------------------------------------------------------------
@@ -899,8 +903,8 @@
else:
self.__cache.clear ()
- self.__inserted = copy.deepcopy (self.__confirmedInserts)
- self.__deleted = copy.deepcopy (self.__confirmedDeletes)
+ self.__inserted = self.__confirmedInserts [:]
+ self.__deleted = self.__confirmedDeletes [:]
# =============================================================================
@@ -1294,7 +1298,7 @@
@return: True if a field has been changed, False otherwise
"""
- for (field, direction) in order:
+ for field in [f ['name'] for f in order]:
path = self.__getPropertyPath (field)
if self.__fieldIsChanged (row, path):
return True
@@ -1399,10 +1403,17 @@
"""
result = []
- for (field, direction) in order:
- path = self.__getPropertyPath (field)
- result.append ((self.__getPathValue (row, path), direction))
+ for element in order:
+ field = element ['name']
+ direction = element.get ('descending') or False
+ ignorecase = element.get ('ignorecase') or False
+ value = self.__getPathValue (row, self.__getPropertyPath (field))
+ if ignorecase and hasattr (value, 'lower'):
+ value = value.lower ()
+
+ result.append ((value, direction))
+
return result
Modified: trunk/gnue-appserver/src/geasConfiguration.py
===================================================================
--- trunk/gnue-appserver/src/geasConfiguration.py 2005-02-11 07:39:23 UTC
(rev 6991)
+++ trunk/gnue-appserver/src/geasConfiguration.py 2005-02-11 09:18:43 UTC
(rev 6992)
@@ -78,6 +78,13 @@
'Typecast' : GTypecast.text,
'Default' : os.path.join (paths.data, "share", "gnue", "appserver") },
+ { 'Name' : 'uuidtype',
+ 'Type' : 'Setting',
+ 'Comment' : _("Type of UUID to use. Can be 'time' or 'random'"),
+ 'Description': _("Type of UUID to use. Can be 'time' or 'random'"),
+ 'Typecast' : GTypecast.text,
+ 'Default' : 'time' },
+
{ 'Name' : 'httpdir',
'Type' : 'Setting',
'Comment' : _('Directory for webfrontend http documents'),
Modified: trunk/gnue-appserver/src/geasList.py
===================================================================
--- trunk/gnue-appserver/src/geasList.py 2005-02-11 07:39:23 UTC (rev
6991)
+++ trunk/gnue-appserver/src/geasList.py 2005-02-11 09:18:43 UTC (rev
6992)
@@ -189,7 +189,7 @@
If no such sort order is defined, None is returned.
"""
if len (self.__dsSorting):
- return instance.get ([item [0] for item in self.__dsSorting])
+ return instance.get ([item ['name'] for item in self.__dsSorting])
else:
return None
Modified: trunk/gnue-appserver/src/geasSession.py
===================================================================
--- trunk/gnue-appserver/src/geasSession.py 2005-02-11 07:39:23 UTC (rev
6991)
+++ trunk/gnue-appserver/src/geasSession.py 2005-02-11 09:18:43 UTC (rev
6992)
@@ -24,7 +24,7 @@
from types import *
import string
-import whrandom
+import copy
from gnue.common.apps import errors, i18n
from gnue.common.datasources import GConditions
@@ -383,9 +383,11 @@
else:
dsSort.append (item)
- item ['name'] = fieldName
- sortlist.append (item)
+ add = copy.copy (item)
+ add ['name'] = fieldName
+ sortlist.append (add)
+
recordset = self.__connection.query (content, dsCond, sortlist)
list = geasList.geasList (self, classdef, self.__connection, recordset,
Modified: trunk/gnue-appserver/src/geasSessionManager.py
===================================================================
--- trunk/gnue-appserver/src/geasSessionManager.py 2005-02-11 07:39:23 UTC
(rev 6991)
+++ trunk/gnue-appserver/src/geasSessionManager.py 2005-02-11 09:18:43 UTC
(rev 6992)
@@ -257,6 +257,7 @@
s = self._getSession (session_id)
s.rollback ()
+
# ---------------------------------------------------------------------------
# Build list from query
# ---------------------------------------------------------------------------
@@ -264,54 +265,85 @@
def request (self, session_id, classname, conditions, sortorder,
propertylist):
+ gBeginFunc ()
+
s = self._getSession (session_id)
- return s.request (classname, conditions, sortorder, propertylist)
+ result = s.request (classname, conditions, sortorder, propertylist)
+ gEndFunc (1, result)
+ return result
+
+
# ---------------------------------------------------------------------------
# Count number of objects in list
# ---------------------------------------------------------------------------
def count (self, session_id, list_id):
+ gBeginFunc ()
s = self._getSession (session_id)
- return s.count (list_id);
+ result = s.count (list_id)
+ gEndFunc (1, result)
+
+ return result
+
# ---------------------------------------------------------------------------
# Fetch objects from list
# ---------------------------------------------------------------------------
def fetch (self, session_id, list_id, start, count, close = False):
+ gBeginFunc ()
s = self._getSession (session_id)
- return s.fetch (list_id, start, count)
+ result = s.fetch (list_id, start, count)
+ gEndFunc (1, result)
+ return result
+
+
# ---------------------------------------------------------------------------
# Load objects from ids
# ---------------------------------------------------------------------------
def load (self, session_id, classname, obj_id_list, propertylist):
+ gBeginFunc ()
+
s = self._getSession (session_id)
- return s.load (classname, obj_id_list, propertylist)
+ result = s.load (classname, obj_id_list, propertylist)
+ gEndFunc (1, result)
+ return result
+
# ---------------------------------------------------------------------------
# Store objects
# ---------------------------------------------------------------------------
def store (self, session_id, classname, obj_id_list, propertylist, data):
+ gBeginFunc ()
+
s = self._getSession (session_id)
- return s.store (classname, obj_id_list, propertylist, data)
+ result = s.store (classname, obj_id_list, propertylist, data)
+ gEndFunc (1, result)
+ return result
+
# ---------------------------------------------------------------------------
# Delete objects
# ---------------------------------------------------------------------------
def delete (self, session_id, classname, obj_id_list):
+ gBeginFunc ()
+
s = self._getSession (session_id)
s.delete (classname, obj_id_list)
+ gEndFunc (hasResult = False)
+
+
# ---------------------------------------------------------------------------
# Call procedure
# ---------------------------------------------------------------------------
@@ -319,13 +351,26 @@
def call (self, session_id, classname, obj_id_list, procedurename,
parameters):
+ gBeginFunc ()
+
s = self._getSession (session_id)
- return s.call (classname, obj_id_list, procedurename, parameters)
+ result = s.call (classname, obj_id_list, procedurename, parameters)
+ gEndFunc (1, result)
+ return result
+
+
# ---------------------------------------------------------------------------
# Get a structure describing all available filters
# ---------------------------------------------------------------------------
def getFilters (self, language):
- return self._filter.getFilter (language)
+
+ gBeginFunc ()
+
+ result = self._filter.getFilter (language)
+
+ gEndFunc (1, result)
+
+ return result
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r6992 - trunk/gnue-appserver/src,
johannes <=