[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue-appserver samples/setup-pgsql.sh src/front...
From: |
Reinhard Mueller |
Subject: |
gnue-appserver samples/setup-pgsql.sh src/front... |
Date: |
Tue, 12 Aug 2003 13:04:52 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue-appserver
Branch:
Changes by: Reinhard Mueller <address@hidden> 03/08/12 13:04:52
Modified files:
samples : setup-pgsql.sh
src : frontend.py geasInstance.py geasList.py
geasSession.py
src/classrep : Property.py repository.ini
Log message:
Use Class Repository to check existance of class names and property
names
as well as to translate class and property names into table and column
names.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/samples/setup-pgsql.sh.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/frontend.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/geasInstance.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/geasList.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/geasSession.py.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/classrep/Property.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/classrep/repository.ini.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnue-appserver/samples/setup-pgsql.sh
diff -c gnue-appserver/samples/setup-pgsql.sh:1.6
gnue-appserver/samples/setup-pgsql.sh:1.7
*** gnue-appserver/samples/setup-pgsql.sh:1.6 Sat Feb 1 10:00:48 2003
--- gnue-appserver/samples/setup-pgsql.sh Tue Aug 12 13:04:52 2003
***************
*** 7,13 ****
psql gnue << EOF
--
============================================================================
! -- Class Repository
--
============================================================================
create table gnue_module
--- 7,13 ----
psql gnue << EOF
--
============================================================================
! -- Class Repository - TODO: Should be done by classrep
--
============================================================================
create table gnue_module
***************
*** 27,38 ****
create table gnue_property
(
! gnue_id char (32),
! gnue_class char (32),
! gnue_module char (32),
! gnue_name varchar (35),
! gnue_type varchar (35),
! gnue_comment varchar (70)
);
insert into gnue_module values
--- 27,40 ----
create table gnue_property
(
! gnue_id char (32),
! gnue_class char (32),
! gnue_module char (32),
! gnue_name varchar (35),
! gnue_type varchar (35),
! gnue_length varchar (10),
! gnue_precision varchar (10),
! gnue_comment varchar (70)
);
insert into gnue_module values
***************
*** 54,59 ****
--- 56,97 ----
'GNU Enterprise Business Object Module'
);
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000011',
+ '00000000000000000000000000000010',
+ '00000000000000000000000000000000',
+ 'id',
+ 'string',
+ '32',
+ 'fix',
+ 'Object ID'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000012',
+ '00000000000000000000000000000010',
+ '00000000000000000000000000000000',
+ 'name',
+ 'string',
+ '35',
+ 'var',
+ 'Name'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000013',
+ '00000000000000000000000000000010',
+ '00000000000000000000000000000000',
+ 'comment',
+ 'string',
+ '70',
+ 'var',
+ 'Comment'
+ );
+
--
----------------------------------------------------------------------------
-- Business Object Class
--
----------------------------------------------------------------------------
***************
*** 66,71 ****
--- 104,157 ----
'GNU Enterprise Business Object Class'
);
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000021',
+ '00000000000000000000000000000020',
+ '00000000000000000000000000000000',
+ 'id',
+ 'string',
+ '32',
+ 'fix',
+ 'Object ID'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000022',
+ '00000000000000000000000000000020',
+ '00000000000000000000000000000000',
+ 'module',
+ 'string',
+ '32',
+ 'fix',
+ 'Module that defined this class'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000023',
+ '00000000000000000000000000000020',
+ '00000000000000000000000000000000',
+ 'name',
+ 'string',
+ '35',
+ 'var',
+ 'Classname without modulename'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000024',
+ '00000000000000000000000000000020',
+ '00000000000000000000000000000000',
+ 'comment',
+ 'string',
+ '70',
+ 'var',
+ 'Comment'
+ );
+
--
----------------------------------------------------------------------------
-- Business Object Property
--
----------------------------------------------------------------------------
***************
*** 78,85 ****
'GNU Enterprise Business Object Property'
);
--
============================================================================
! -- Authentication and Trigger Test Stuff
--
============================================================================
create table appserver_users
--- 164,267 ----
'GNU Enterprise Business Object Property'
);
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000031',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'id',
+ 'string',
+ '32',
+ 'fix',
+ 'Object ID'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000032',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'class',
+ 'string',
+ '32',
+ 'fix',
+ 'Class the property belongs to'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000033',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'module',
+ 'string',
+ '32',
+ 'fix',
+ 'Module that defined this property'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000034',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'name',
+ 'string',
+ '35',
+ 'var',
+ 'Propertyname without modulename'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000035',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'type',
+ 'string',
+ '35',
+ 'var',
+ 'Data type'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000036',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'length',
+ 'string',
+ '10',
+ 'var',
+ 'Data length'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000037',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'precision',
+ 'string',
+ '10',
+ 'var',
+ 'Data precision'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000000038',
+ '00000000000000000000000000000030',
+ '00000000000000000000000000000000',
+ 'comment',
+ 'string',
+ '70',
+ 'var',
+ 'Comment'
+ );
+
--
============================================================================
! -- Authentication and Trigger Test Stuff - TODO: Remove this
--
============================================================================
create table appserver_users
***************
*** 108,114 ****
'person:checkAreaRichness','print "standard"');
--
============================================================================
! -- Address Module
--
============================================================================
insert into gnue_module values
--- 290,296 ----
'person:checkAreaRichness','print "standard"');
--
============================================================================
! -- Address Module - TODO: Should be imported via XML into Appserver
--
============================================================================
insert into gnue_module values
***************
*** 130,135 ****
--- 312,379 ----
'Person'
);
+ insert into gnue_property values
+ (
+ '00000000000000000000000000001011',
+ '00000000000000000000000000001010',
+ '00000000000000000000000000000000',
+ 'id',
+ 'string',
+ '32',
+ 'fix',
+ 'Object ID'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000001011',
+ '00000000000000000000000000001010',
+ '00000000000000000000000000001000',
+ 'name',
+ 'string',
+ '35',
+ 'var',
+ 'Name of the person'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000001011',
+ '00000000000000000000000000001010',
+ '00000000000000000000000000001000',
+ 'street',
+ 'string',
+ '35',
+ 'var',
+ 'Street where the person lives'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000001011',
+ '00000000000000000000000000001010',
+ '00000000000000000000000000001000',
+ 'zip',
+ 'string',
+ '35',
+ 'var',
+ 'Zip code of the city where the person lives'
+ );
+
+ insert into gnue_property values
+ (
+ '00000000000000000000000000001011',
+ '00000000000000000000000000001010',
+ '00000000000000000000000000001000',
+ 'city',
+ 'string',
+ '35',
+ 'var',
+ 'City where the person lives'
+ );
+
+ -- TODO: Should be done by appserver upon import of schema
+
create table address_person
(
gnue_id char (32),
***************
*** 146,151 ****
--- 390,404 ----
'Enterprise Road 17',
'2002',
'Gnutown'
+ );
+
+ insert into address_person values
+ (
+ '00000000000000000000000000001101',
+ 'Mr. Spock',
+ 'Vulc Lane 1',
+ '4711',
+ 'Vulcane'
);
EOF
Index: gnue-appserver/src/classrep/Property.py
diff -c gnue-appserver/src/classrep/Property.py:1.4
gnue-appserver/src/classrep/Property.py:1.5
*** gnue-appserver/src/classrep/Property.py:1.4 Tue Aug 12 11:01:05 2003
--- gnue-appserver/src/classrep/Property.py Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: Property.py,v 1.4 2003/08/12 15:01:05 reinhard Exp $
from Base import *
from Namespace import *
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: Property.py,v 1.5 2003/08/12 17:04:52 reinhard Exp $
from Base import *
from Namespace import *
***************
*** 132,138 ****
self._object = object
# gnue_property.gnue_name is already a fully qualified identifier
! self.fullName = object.gnue_name
self.column = self.fullName
#
---------------------------------------------------------------------------
--- 132,138 ----
self._object = object
# gnue_property.gnue_name is already a fully qualified identifier
! self.fullName = createName (module.gnue_name, object.gnue_name)
self.column = self.fullName
#
---------------------------------------------------------------------------
Index: gnue-appserver/src/classrep/repository.ini
diff -c gnue-appserver/src/classrep/repository.ini:1.1
gnue-appserver/src/classrep/repository.ini:1.2
*** gnue-appserver/src/classrep/repository.ini:1.1 Tue May 27 10:30:57 2003
--- gnue-appserver/src/classrep/repository.ini Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
; write to the Free Software Foundation, Inc., 59 Temple Place
; - Suite 330, Boston, MA 02111-1307, USA.
;
! ; $Id: repository.ini,v 1.1 2003/05/27 14:30:57 jvetter Exp $
;
=============================================================================
; Module definitions
--- 19,25 ----
; write to the Free Software Foundation, Inc., 59 Temple Place
; - Suite 330, Boston, MA 02111-1307, USA.
;
! ; $Id: repository.ini,v 1.2 2003/08/12 17:04:52 reinhard Exp $
;
=============================================================================
; Module definitions
***************
*** 62,219 ****
; modules
;
-----------------------------------------------------------------------------
[gnue_module.gnue_id]
! gnue_id = 00000000000000000000000000000101
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_id
! gnue_comment = ID of the module
gnue_type = string
gnue_length = 32
gnue_precision = fix
[gnue_module.gnue_name]
! gnue_id = 00000000000000000000000000000102
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_name
! gnue_comment = Name of the module
gnue_type = string
gnue_length = 35
gnue_precision = var
[gnue_module.gnue_comment]
! gnue_id = 00000000000000000000000000000103
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_comment
! gnue_comment = Comment of the module
gnue_type = string
gnue_length = 70
gnue_precision = var
;
-----------------------------------------------------------------------------
; classes
;
-----------------------------------------------------------------------------
[gnue_class.gnue_id]
! gnue_id = 00000000000000000000000000000201
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_id
! gnue_comment = Class id
gnue_type = string
gnue_length = 32
gnue_precision = fix
[gnue_class.gnue_module]
! gnue_id = 00000000000000000000000000000202
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_module
! gnue_comment = Module id
gnue_type = string
gnue_length = 32
gnue_precision = var
[gnue_class.gnue_name]
! gnue_id = 00000000000000000000000000000203
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_name
! gnue_comment = Classname
gnue_type = string
gnue_length = 35
gnue_precision = var
[gnue_class.gnue_comment]
! gnue_id = 00000000000000000000000000000204
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_comment
! gnue_comment = Comments of the class
gnue_type = string
gnue_length = 70
gnue_precision = var
;
-----------------------------------------------------------------------------
; properties
;
-----------------------------------------------------------------------------
[gnue_property.gnue_id]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_id
! gnue_comment = Property ID
gnue_type = string
gnue_length = 32
gnue_precision = fix
[gnue_property.gnue_class]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_class
! gnue_comment = Class-ID of the property
gnue_type = string
gnue_length = 32
gnue_precision = fix
[gnue_property.gnue_module]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_module
! gnue_comment = Module ID of the property
gnue_type = string
gnue_length = 32
gnue_precision = fix
[gnue_property.gnue_name]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_name
! gnue_comment = Property name
gnue_type = string
gnue_length = 35
gnue_precision = var
[gnue_property.gnue_type]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_type
! gnue_comment = Property type
gnue_type = string
gnue_length = 35
gnue_precision = var
!
! [gnue_property.gnue_comment]
! gnue_id = 00000000000000000000000000000301
! gnue_class = 00000000000000000000000000000030
! gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_comment
! gnue_comment = Comments of the property
! gnue_type = string
! gnue_length = 70
! gnue_precision = var
[gnue_property.gnue_length]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_length
! gnue_comment = Lenght of the property
gnue_type = number
gnue_length = 10
gnue_precision = 0
[gnue_property.gnue_precision]
! gnue_id = 00000000000000000000000000000301
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = gnue_precision
! gnue_comment = Precision of Property
gnue_type = number
gnue_length = 10
gnue_precision = 0
--- 62,219 ----
; modules
;
-----------------------------------------------------------------------------
[gnue_module.gnue_id]
! gnue_id = 00000000000000000000000000000011
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = id
gnue_type = string
gnue_length = 32
gnue_precision = fix
+ gnue_comment = Object ID
[gnue_module.gnue_name]
! gnue_id = 00000000000000000000000000000012
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = name
gnue_type = string
gnue_length = 35
gnue_precision = var
+ gnue_comment = Name
[gnue_module.gnue_comment]
! gnue_id = 00000000000000000000000000000013
gnue_class = 00000000000000000000000000000010
gnue_module = 00000000000000000000000000000000
! gnue_name = comment
gnue_type = string
gnue_length = 70
gnue_precision = var
+ gnue_comment = Comment
;
-----------------------------------------------------------------------------
; classes
;
-----------------------------------------------------------------------------
[gnue_class.gnue_id]
! gnue_id = 00000000000000000000000000000021
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = id
gnue_type = string
gnue_length = 32
gnue_precision = fix
+ gnue_comment = Object ID
[gnue_class.gnue_module]
! gnue_id = 00000000000000000000000000000022
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = module
gnue_type = string
gnue_length = 32
gnue_precision = var
+ gnue_comment = Module that defined this class
[gnue_class.gnue_name]
! gnue_id = 00000000000000000000000000000023
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = name
gnue_type = string
gnue_length = 35
gnue_precision = var
+ gnue_comment = Classname without modulename
[gnue_class.gnue_comment]
! gnue_id = 00000000000000000000000000000024
gnue_class = 00000000000000000000000000000020
gnue_module = 00000000000000000000000000000000
! gnue_name = comment
gnue_type = string
gnue_length = 70
gnue_precision = var
+ gnue_comment = Comment
;
-----------------------------------------------------------------------------
; properties
;
-----------------------------------------------------------------------------
[gnue_property.gnue_id]
! gnue_id = 00000000000000000000000000000031
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = id
gnue_type = string
gnue_length = 32
gnue_precision = fix
+ gnue_comment = Object ID
[gnue_property.gnue_class]
! gnue_id = 00000000000000000000000000000032
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = class
gnue_type = string
gnue_length = 32
gnue_precision = fix
+ gnue_comment = Class the property belongs to
[gnue_property.gnue_module]
! gnue_id = 00000000000000000000000000000033
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = module
gnue_type = string
gnue_length = 32
gnue_precision = fix
+ gnue_comment = Module that defined this property
[gnue_property.gnue_name]
! gnue_id = 00000000000000000000000000000034
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = name
gnue_type = string
gnue_length = 35
gnue_precision = var
+ gnue_comment = Propertyname without modulename
[gnue_property.gnue_type]
! gnue_id = 00000000000000000000000000000035
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = type
gnue_type = string
gnue_length = 35
gnue_precision = var
! gnue_comment = Property type
[gnue_property.gnue_length]
! gnue_id = 00000000000000000000000000000036
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = length
gnue_type = number
gnue_length = 10
gnue_precision = 0
+ gnue_comment = Lenght of the property
[gnue_property.gnue_precision]
! gnue_id = 00000000000000000000000000000037
gnue_class = 00000000000000000000000000000030
gnue_module = 00000000000000000000000000000000
! gnue_name = precision
gnue_type = number
gnue_length = 10
gnue_precision = 0
+ gnue_comment = Precision of Property
+
+ [gnue_property.gnue_comment]
+ gnue_id = 00000000000000000000000000000038
+ gnue_class = 00000000000000000000000000000030
+ gnue_module = 00000000000000000000000000000000
+ gnue_name = comment
+ gnue_type = string
+ gnue_length = 70
+ gnue_precision = var
+ gnue_comment = Comments of the property
Index: gnue-appserver/src/frontend.py
diff -c gnue-appserver/src/frontend.py:1.13 gnue-appserver/src/frontend.py:1.14
*** gnue-appserver/src/frontend.py:1.13 Mon Jul 28 17:25:01 2003
--- gnue-appserver/src/frontend.py Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: frontend.py,v 1.13 2003/07/28 21:25:01 reinhard Exp $
import os, getpass
from gnue.common.apps import GClientApp
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: frontend.py,v 1.14 2003/08/12 17:04:52 reinhard Exp $
import os, getpass
from gnue.common.apps import GClientApp
***************
*** 175,180 ****
--- 175,181 ----
# now, we have all object_ids and we can use "load" to get the data
rset = self.server.load (self.session, self.classname, object_ids,
propertylist)
+ print rset
for index in range (0, count):
object = rset [index]
print "* Object number %d with id %s:" % (start + index,
Index: gnue-appserver/src/geasInstance.py
diff -c gnue-appserver/src/geasInstance.py:1.10
gnue-appserver/src/geasInstance.py:1.11
*** gnue-appserver/src/geasInstance.py:1.10 Tue Jan 7 16:56:56 2003
--- gnue-appserver/src/geasInstance.py Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasInstance.py,v 1.10 2003/01/07 21:56:56 reinhard Exp $
#
=============================================================================
# Instance class
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasInstance.py,v 1.11 2003/08/12 17:04:52 reinhard Exp $
#
=============================================================================
# Instance class
***************
*** 31,56 ****
# Initalize
#
---------------------------------------------------------------------------
! def __init__ (self, list, record):
self._list = list
self._record = record
#
---------------------------------------------------------------------------
! # Get the value of a field
#
---------------------------------------------------------------------------
! def get (self, fieldname):
! # TODO: look up the field type (calculated, reference etc.), translate
! # the field name into a column name
! return self._record.getField (fieldname)
#
---------------------------------------------------------------------------
! # Set the value of a field
#
---------------------------------------------------------------------------
! def put (self, fieldname, value):
! # TODO: translate the field name into a column name
! self._record.setField (fieldname, value)
#
---------------------------------------------------------------------------
# Delete this instance
--- 31,67 ----
# Initalize
#
---------------------------------------------------------------------------
! def __init__ (self, list, record, classdef):
self._list = list
self._record = record
+ self._classdef = classdef
#
---------------------------------------------------------------------------
! # Get the value of a property
#
---------------------------------------------------------------------------
! def get (self, propertyname):
! propertydef = self._classdef.properties [propertyname]
! if propertydef.gnue_type == "string" or \
! propertydef.gnue_type == "number":
! return self._record.getField (propertydef.column)
! # TODO: Missing property types:
! # * datetime
! # * boolean
! # * refernce properties (gnue_type = classname)
! # * list properties
! # * calculated properties (must have triggers working first)
! else:
! raise Exception, "Field type '%s' not defined." % propertydef.gnue_type
#
---------------------------------------------------------------------------
! # Set the value of a propertyname
#
---------------------------------------------------------------------------
! def put (self, propertyname, value):
! propertydef = self._classdef.properties [propertyname]
! # TODO: from property type, check if the new value is valid
! self._record.setField (propertydef.column, value)
#
---------------------------------------------------------------------------
# Delete this instance
Index: gnue-appserver/src/geasList.py
diff -c gnue-appserver/src/geasList.py:1.22 gnue-appserver/src/geasList.py:1.23
*** gnue-appserver/src/geasList.py:1.22 Mon Aug 11 11:26:54 2003
--- gnue-appserver/src/geasList.py Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasList.py,v 1.22 2003/08/11 15:26:54 reinhard Exp $
from gnue.common.datasources import GDataSource,GConditions
import geasInstance
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasList.py,v 1.23 2003/08/12 17:04:52 reinhard Exp $
from gnue.common.datasources import GDataSource,GConditions
import geasInstance
***************
*** 35,58 ****
# Initalize
#
---------------------------------------------------------------------------
! def __init__ (self, session, classname):
self._session = session
! self._classname = classname
! self._prefetch = []
! self._conditions = []
#
---------------------------------------------------------------------------
# Actually these 3 only set variables
#
---------------------------------------------------------------------------
def setPrefetch (self, prefetch):
! if type(prefetch)==type(""):
! self._prefetch = string.split(prefetch,",")
! elif type(prefetch)==type([]):
self._prefetch = prefetch
else:
raise Error,"Wrong format of prefetch information."
!
# conditions = an list consisting of condition elements written down in
# prefix notation i.e. (a=12) AND (c=121) -> AND = a 12 = c 121
--- 35,65 ----
# Initalize
#
---------------------------------------------------------------------------
! def __init__ (self, session, classdef):
self._session = session
! self._classdef = classdef
! self._prefetch = [] # property names to be prefetched
! self._conditions = [] # conditions using property names
! self._sort = [] # property names to be used as sort key
! self._prefColumns = [] # (db) column names to be prefetched
! self._sortColumns = [] # (db) column names to be used as sort key
#
---------------------------------------------------------------------------
# Actually these 3 only set variables
#
---------------------------------------------------------------------------
def setPrefetch (self, prefetch):
! if type (prefetch) == type (""):
! self._prefetch = string.split (prefetch,",")
! elif type (prefetch) == type ([]):
self._prefetch = prefetch
else:
raise Error,"Wrong format of prefetch information."
! # test if all properties in prefetch list are valid and find column names
! self._prefColumns = []
! for propertyname in self._prefetch:
! propertydef = self._classdef.properties [propertyname]
! self._prefColumns.append (propertydef.column)
# conditions = an list consisting of condition elements written down in
# prefix notation i.e. (a=12) AND (c=121) -> AND = a 12 = c 121
***************
*** 61,74 ****
def setConditions (self, conditions):
self._conditions = conditions
!
# now building GCondition tree
self._conditionTree = GConditions.buildTreeFromPrefix(conditions)
-
-
def setSort (self, sort):
self._sort = sort
#
---------------------------------------------------------------------------
# Populate the list with data from the database backend
--- 68,83 ----
def setConditions (self, conditions):
self._conditions = conditions
! # TODO: translate property names to column names
# now building GCondition tree
self._conditionTree = GConditions.buildTreeFromPrefix(conditions)
def setSort (self, sort):
self._sort = sort
+ # test if all properties in sort list are valid and find column names
+ for propertyname in self._sort:
+ propertydef = self._classdef.properties [propertyname]
+ self._sortColumns.append (propertydef.column)
#
---------------------------------------------------------------------------
# Populate the list with data from the database backend
***************
*** 76,120 ****
def populate (self):
self._datasource = GDataSource.GDataSource ()
- # TODO: get the table name from the class name
self._datasource.buildObject (name = "",
database = self._session._database,
! table = self._classname)
self._datasource.setConnectionManager (self._session._connections)
# bug fix should be moved into common after the freeze
self._datasource._datasourceDictionary={}
! # set the field to sort (has to be called before phase init
! if hasattr(self,"_sort"):
! if self._sort!=[]:
! self._datasource.order_by=string.joinfields(self._sort,",")
self._datasource.phaseInit ()
! # TODO: get the column names from the prefetch field names
! for field in self._prefetch:
! self._datasource.referenceField (field)
if hasattr(self,"_conditionTree"):
! self._resultset = self._datasource.createResultSet(self._conditionTree)
else:
! self._resultset = self._datasource.createResultSet()
!
#
---------------------------------------------------------------------------
# Get the first instance in the list
#
---------------------------------------------------------------------------
def firstInstance (self):
! # if self._classname != "appserver_pytrigger" \
! # and self._classname != "gnue_module":
# trigger=self._session._triggerMg.getTriggerByEvent \
! # ('%s:pre_first_inst' % self._classname)
# if trigger!=None:
# trigger()
if self._resultset.firstRecord () != None:
! return geasInstance.geasInstance (self, self._resultset.current)
else:
return None
--- 85,127 ----
def populate (self):
self._datasource = GDataSource.GDataSource ()
self._datasource.buildObject (name = "",
database = self._session._database,
! table = self._classdef.table)
self._datasource.setConnectionManager (self._session._connections)
# bug fix should be moved into common after the freeze
self._datasource._datasourceDictionary={}
! # set the property to sort (has to be called before phase init)
! if self._sortColumns != []:
! self._datasource.order_by = string.joinfields(self._sortColumns, ",")
self._datasource.phaseInit ()
!
! for column in self._prefColumns:
! self._datasource.referenceField (column)
if hasattr(self,"_conditionTree"):
! self._resultset = self._datasource.createResultSet (self._conditionTree)
else:
! self._resultset = self._datasource.createResultSet ()
#
---------------------------------------------------------------------------
# Get the first instance in the list
#
---------------------------------------------------------------------------
def firstInstance (self):
! # if self._classdef.fullName != "appserver_pytrigger" \
! # and self._classdef.fullName != "gnue_module":
# trigger=self._session._triggerMg.getTriggerByEvent \
! # ('%s:pre_first_inst' % self._classdef.fullName)
# if trigger!=None:
# trigger()
if self._resultset.firstRecord () != None:
! return geasInstance.geasInstance (self, self._resultset.current,
! self._classdef)
else:
return None
***************
*** 124,130 ****
def nextInstance (self):
if self._resultset.nextRecord () != None:
! return geasInstance.geasInstance (self, self._resultset.current)
else:
return None
--- 131,138 ----
def nextInstance (self):
if self._resultset.nextRecord () != None:
! return geasInstance.geasInstance (self, self._resultset.current,
! self._classdef)
else:
return None
***************
*** 167,170 ****
def insertNewInstance (self):
self._resultset.insertRecord ()
! return geasInstance.geasInstance (self, self._resultset.current)
--- 175,179 ----
def insertNewInstance (self):
self._resultset.insertRecord ()
! return geasInstance.geasInstance (self, self._resultset.current,
! self._classdef)
Index: gnue-appserver/src/geasSession.py
diff -c gnue-appserver/src/geasSession.py:1.29
gnue-appserver/src/geasSession.py:1.30
*** gnue-appserver/src/geasSession.py:1.29 Mon Aug 11 11:26:54 2003
--- gnue-appserver/src/geasSession.py Tue Aug 12 13:04:52 2003
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasSession.py,v 1.29 2003/08/11 15:26:54 reinhard Exp $
import geasList
import geasTrigger
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasSession.py,v 1.30 2003/08/12 17:04:52 reinhard Exp $
import geasList
import geasTrigger
***************
*** 69,75 ****
# Get class definition from class name
#
---------------------------------------------------------------------------
! def getClassdef (self, classname):
return classrep.classes [classname]
#
---------------------------------------------------------------------------
--- 69,75 ----
# Get class definition from class name
#
---------------------------------------------------------------------------
! def _getClassdef (self, classname):
return classrep.classes [classname]
#
---------------------------------------------------------------------------
***************
*** 98,104 ****
def createList (self, classname):
! classdef = self.getClassdef (classname)
# check if user has access rights for this list
if not self._authAdapter.hasAccess (self, self._user, classname):
--- 98,104 ----
def createList (self, classname):
! classdef = self._getClassdef (classname)
# check if user has access rights for this list
if not self._authAdapter.hasAccess (self, self._user, classname):
***************
*** 112,122 ****
# tr()
# create new List
! newlist=geasList.geasList (self, classname)
# every new list will be added to the _lists list
# which will be parsed for commit and rollback actions
! self._listcount+=1
! self._lists[self._listcount]=newlist
return newlist;
#
---------------------------------------------------------------------------
--- 112,122 ----
# tr()
# create new List
! newlist = geasList.geasList (self, classdef)
# every new list will be added to the _lists list
# which will be parsed for commit and rollback actions
! self._listcount += 1
! self._lists [self._listcount] = newlist
return newlist;
#
---------------------------------------------------------------------------
***************
*** 181,187 ****
def load (self, classname, obj_id_list, propertylist):
# create a temporary geasList
! list = geasList.geasList (self, classname)
list.setPrefetch (["gnue_id"] + propertylist)
list.setSort (["gnue_id"])
# Accessing the database for every single object_id is not very elegant,
--- 181,188 ----
def load (self, classname, obj_id_list, propertylist):
# create a temporary geasList
! classdef = self._getClassdef (classname)
! list = geasList.geasList (self, classdef)
list.setPrefetch (["gnue_id"] + propertylist)
list.setSort (["gnue_id"])
# Accessing the database for every single object_id is not very elegant,
***************
*** 192,200 ****
['const', object_id]])
list.populate ()
object = list.firstInstance ()
! row = {}
for property in propertylist:
! row [property] = object.get (property)
result.append (row)
return result
--- 193,205 ----
['const', object_id]])
list.populate ()
object = list.firstInstance ()
! row = []
for property in propertylist:
! value = object.get (property)
! ## TRANSFER None as ""
! if value == None:
! value = ""
! row.append (value)
result.append (row)
return result
***************
*** 264,270 ****
def call(self,classname,obj_id_list,methodname,parameters):
# create a temporary geasList
! list = geasList.geasList (self, classname)
list.setPrefetch (["gnue_id"]) # + propertylist) TODO: fetch propertylist
list.setSort (["gnue_id"])
# Accessing the database for every single object_id is not very elegant,
--- 269,276 ----
def call(self,classname,obj_id_list,methodname,parameters):
# create a temporary geasList
! classdef = self._getClassdef (classname)
! list = geasList.geasList (self, classdef)
list.setPrefetch (["gnue_id"]) # + propertylist) TODO: fetch propertylist
list.setSort (["gnue_id"])
# Accessing the database for every single object_id is not very elegant,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue-appserver samples/setup-pgsql.sh src/front...,
Reinhard Mueller <=