commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue forms/src/GFObjects/GFBlock.py forms/sampl...


From: Jan Ischebeck
Subject: gnue forms/src/GFObjects/GFBlock.py forms/sampl...
Date: Tue, 30 Jul 2002 15:34:05 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jan Ischebeck <address@hidden>  02/07/30 15:34:00

Modified files:
        forms/src/GFObjects: GFBlock.py 
        forms/samples/track/sql: dbschema.gsd 
        designer/src/forms/wizards: CreateSchema.py 

Log message:
        add delete/next/prev record trigger functions to GFBlocks
        improved datatype detection in the CreateSchema wizard
        updated wizard example

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFBlock.py.diff?tr1=1.51&tr2=1.52&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/samples/track/sql/dbschema.gsd.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/CreateSchema.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: gnue/designer/src/forms/wizards/CreateSchema.py
diff -c gnue/designer/src/forms/wizards/CreateSchema.py:1.7 
gnue/designer/src/forms/wizards/CreateSchema.py:1.8
*** gnue/designer/src/forms/wizards/CreateSchema.py:1.7 Thu Jul 25 20:52:57 2002
--- gnue/designer/src/forms/wizards/CreateSchema.py     Tue Jul 30 15:33:59 2002
***************
*** 34,39 ****
--- 34,40 ----
  from gnue.designer.schema.parser.Objects import *
  import string
  
+ 
  class CreateSchemaWizard(FormTemplate):
  
  
***************
*** 45,50 ****
--- 46,78 ----
  
    ###############
    #
+   # Define some settings, which could be configured
+   #
+ 
+   # the DEFAULT data type
+   DEFAULT_TYPE="varchar"
+ 
+   # the data type for numeric fields
+   NUMERIC_TYPE="int"
+ 
+   # the data type for text fields
+   TEXT_TYPE="text"
+   
+   # the data type for string/char/varchar fields
+   STRING_TYPE="varchar"
+ 
+   # the data type for date fields
+   DATE_TYPE="date"
+ 
+   # the data type for boolean fields
+   DATE_TYPE="boolean"
+ 
+   # The default length of varchar fields in a database
+   DEFAULT_SIZE = 30
+ 
+ 
+   ###############
+   #
    # Initialize any runtime variables
    #
    def Start(self, root, current):
***************
*** 169,195 ****
          
          table=self.tablelist[string.lower(myblock.datasource)]
  
!         style = 'varchar' # standart type
  
!         if hasattr(obj,'style') and obj.style=='checkbox':
!           type = 'boolean'
  
!         if hasattr(obj,'numeric'):
!           type = 'int'
  
          if hasattr(obj,'typecast'):
            if obj.typecast=='number':
!             type = 'int'
            if obj.typecast=='date':
!             type = 'date'
!           if obj.typecast=='text': # reset previous numeric fields
!             type = 'varchar'
!          
!         if hasattr(obj,'max_length'):          
!           self.AddField(table, obj.field, 'varchar', obj.max_length)
            
          else:
!           self.AddField(table, obj.field, 'varchar')
  
        #
        #  add fields to the table referenced in dropdowns
--- 197,240 ----
          
          table=self.tablelist[string.lower(myblock.datasource)]
  
!         type = self.DEFAULT_TYPE # standart type
  
!         if hasattr(obj,'style') and obj.style == 'checkbox':
!           type = self.BOOLEAN_TYPE
  
!         if hasattr(obj,'numeric') and obj.numeric==1:
!           type = self.NUMERIC_TYPE
! 
!         if hasattr(obj,'height') and obj.height>1:
!           type = self.TEXT_TYPE
  
          if hasattr(obj,'typecast'):
            if obj.typecast=='number':
!             type = self.NUMERIC_TYPE
!             
            if obj.typecast=='date':
!             type = self.DATE_TYPE
!             
!           if obj.typecast=='text' and hasattr(obj,'numeric') and \
!                  obj.numeric==1: # reset previous numeric fields
!             type = self.STRING_TYPE
! 
!         # string type needs a definit size
!         if type == self.STRING_TYPE:
!           
!           size = self.DEFAULT_SIZE
!           
!           if hasattr(obj,'max_length'):
!             size = obj.max_length
!           
!           elif hasattr(obj,'width'):
!             size = obj.width
!             
!           self.AddField(table, obj.field, self.STRING_TYPE, size)
            
          else:
!           
!           self.AddField(table, obj.field, type)
  
        #
        #  add fields to the table referenced in dropdowns
***************
*** 200,211 ****
          table=self.tablelist[string.lower(obj.fk_source)]
  
          # add 'fk_key' field
!         self.AddField(table, obj.fk_key, 'varchar')
  
          if hasattr(obj,'fk_description'):
            
            # add 'fk_description' field
!           self.AddField(table, obj.fk_description, 'varchar')
  
          
      elif obj._type=='GFDataSource':
--- 245,260 ----
          table=self.tablelist[string.lower(obj.fk_source)]
  
          # add 'fk_key' field
!         if type == self.STRING_TYPE:                      
!           self.AddField(table, obj.fk_key, type, size)
!           
!         else:          
!           self.AddField(table, obj.fk_key, type)
  
          if hasattr(obj,'fk_description'):
            
            # add 'fk_description' field
!           self.AddField(table, obj.fk_description, self.STRING_TYPE)
  
          
      elif obj._type=='GFDataSource':
***************
*** 231,238 ****
            nfk_ref=GSConstraintRef(newconstraint)
            nfk_ref.name=obj.masterlink
  
!           # create a field for that key 
!           self.AddField(table, obj.detaillink, 'varchar')
  
            if self.tablelist[string.lower(obj.master)]:
              
--- 280,289 ----
            nfk_ref=GSConstraintRef(newconstraint)
            nfk_ref.name=obj.masterlink
  
!           # create a field for that key, use string type for now
!           # TODO: Check if detaillink or masterlink type is defined
!           # if it one of the two is defined, then use the definition for both
!           self.AddField(table, obj.detaillink, self.DEFAULT_TYPE)
  
            if self.tablelist[string.lower(obj.master)]:
              
***************
*** 247,254 ****
                pkeyf=GSPKField(pkey)
                pkeyf.name=obj.masterlink
                
!               # add field              
!               self.AddField(mtable, obj.masterlink, 'varchar')
                
              elif oldpkey.name!=obj.masterlink:
                print "WARNING: different primary keys computed out of "+\
--- 298,305 ----
                pkeyf=GSPKField(pkey)
                pkeyf.name=obj.masterlink
                
!               # add field to master table, using default type
!               self.AddField(mtable, obj.masterlink, self.DEFAULT_TYPE)
                
              elif oldpkey.name!=obj.masterlink:
                print "WARNING: different primary keys computed out of "+\
***************
*** 270,279 ****
        if child._type == 'GSField' and child.name==fieldname:
          # field already exists, so returning
          # (possibly updating fieldtype here)
!         if type!='varchar':
            child.type=type
          if length!=None:
!           child.size=length
          return
        
      # create field
--- 321,331 ----
        if child._type == 'GSField' and child.name==fieldname:
          # field already exists, so returning
          # (possibly updating fieldtype here)
!         if type!=self.DEFAULT_TYPE:
            child.type=type
+           
          if length!=None:
!           child.size=int(length)
          return
        
      # create field
***************
*** 281,287 ****
      newfield.name=fieldname
      newfield.type=type
      if length!=None:
!       newfield.size=length
      
        
  
--- 333,341 ----
      newfield.name=fieldname
      newfield.type=type
      if length!=None:
!       newfield.size=int(length)
!     elif type==self.STRING_TYPE:
!       newfield.size=self.DEFAULT_SIZE
      
        
  
Index: gnue/forms/samples/track/sql/dbschema.gsd
diff -c gnue/forms/samples/track/sql/dbschema.gsd:1.4 
gnue/forms/samples/track/sql/dbschema.gsd:1.5
*** gnue/forms/samples/track/sql/dbschema.gsd:1.4       Thu Jul 25 20:52:56 2002
--- gnue/forms/samples/track/sql/dbschema.gsd   Tue Jul 30 15:33:59 2002
***************
*** 5,16 ****
    <tables>
      <table name="person">
        <fields>
!         <field name="id" type="varchar"/>
!         <field name="first_name" type="varchar"/>
!         <field name="last_name" type="varchar"/>
!         <field name="irc_handle" type="varchar"/>
!         <field name="url" type="varchar"/>
!         <field name="assignment_status" type="varchar"/>
        </fields>
        <constraints/>
        <primarykey name="pk_person_id">
--- 5,16 ----
    <tables>
      <table name="person">
        <fields>
!         <field name="id" size="10" type="varchar"/>
!         <field name="first_name" size="30" type="varchar"/>
!         <field name="last_name" size="30" type="varchar"/>
!         <field name="irc_handle" size="30" type="varchar"/>
!         <field name="url" size="65" type="varchar"/>
!         <field name="assignment_status" size="65" type="varchar"/>
        </fields>
        <constraints/>
        <primarykey name="pk_person_id">
***************
*** 19,32 ****
      </table>
      <table name="address">
        <fields>
!         <field name="personid" type="varchar"/>
!         <field name="address_type" type="varchar"/>
!         <field name="addr1" type="varchar"/>
!         <field name="addr2" type="varchar"/>
!         <field name="city" type="varchar"/>
!         <field name="state" type="varchar"/>
!         <field name="zip" type="varchar"/>
!         <field name="country" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_address_personid" type="foreignkey">
--- 19,32 ----
      </table>
      <table name="address">
        <fields>
!         <field name="personid" size="30" type="varchar"/>
!         <field name="address_type" size="20" type="varchar"/>
!         <field name="addr1" size="30" type="varchar"/>
!         <field name="addr2" size="30" type="varchar"/>
!         <field name="city" size="15" type="varchar"/>
!         <field name="state" size="3" type="varchar"/>
!         <field name="zip" size="10" type="varchar"/>
!         <field name="country" size="30" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_address_personid" type="foreignkey">
***************
*** 37,48 ****
      </table>
      <table name="phone">
        <fields>
!         <field name="personid" type="varchar"/>
!         <field name="phone_type" type="varchar"/>
!         <field name="areacode" type="varchar"/>
!         <field name="prefix" type="varchar"/>
!         <field name="suffix" type="varchar"/>
!         <field name="extension" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_phone_personid" type="foreignkey">
--- 37,48 ----
      </table>
      <table name="phone">
        <fields>
!         <field name="personid" size="30" type="varchar"/>
!         <field name="phone_type" size="20" type="varchar"/>
!         <field name="areacode" size="5" type="varchar"/>
!         <field name="prefix" size="5" type="varchar"/>
!         <field name="suffix" size="7" type="varchar"/>
!         <field name="extension" size="9" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_phone_personid" type="foreignkey">
***************
*** 53,61 ****
      </table>
      <table name="email">
        <fields>
!         <field name="personid" type="varchar"/>
!         <field name="email_type" type="varchar"/>
!         <field name="email" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_email_personid" type="foreignkey">
--- 53,61 ----
      </table>
      <table name="email">
        <fields>
!         <field name="personid" size="30" type="varchar"/>
!         <field name="email_type" size="20" type="varchar"/>
!         <field name="email" size="30" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_email_personid" type="foreignkey">
***************
*** 66,106 ****
      </table>
      <table name="address_type">
        <fields>
!         <field name="id" type="varchar"/>
!         <field name="description" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="phone_type">
        <fields>
!         <field name="id" type="varchar"/>
!         <field name="description" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="email_type">
        <fields>
!         <field name="id" type="varchar"/>
!         <field name="description" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="assignment_status">
        <fields>
!         <field name="id" type="varchar"/>
!         <field name="status" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="history">
        <fields>
!         <field name="person" type="varchar"/>
!         <field name="subject" type="varchar"/>
!         <field name="contact_date" type="varchar"/>
!         <field name="notes" type="varchar"/>
!         <field name="contact_type" type="varchar"/>
!         <field name="location" type="varchar"/>
!         <field name="duration" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_history_person" type="foreignkey">
--- 66,106 ----
      </table>
      <table name="address_type">
        <fields>
!         <field name="id" size="20" type="varchar"/>
!         <field name="description" size="30" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="phone_type">
        <fields>
!         <field name="id" size="20" type="varchar"/>
!         <field name="description" size="30" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="email_type">
        <fields>
!         <field name="id" size="20" type="varchar"/>
!         <field name="description" size="30" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="assignment_status">
        <fields>
!         <field name="id" size="65" type="varchar"/>
!         <field name="status" size="30" type="varchar"/>
        </fields>
        <constraints/>
      </table>
      <table name="history">
        <fields>
!         <field name="person" size="30" type="varchar"/>
!         <field name="subject" size="53" type="varchar"/>
!         <field name="contact_date" size="13" type="varchar"/>
!         <field name="notes" type="text"/>
!         <field name="contact_type" size="24" type="varchar"/>
!         <field name="location" size="28" type="varchar"/>
!         <field name="duration" size="13" type="varchar"/>
        </fields>
        <constraints>
          <constraint name="fk_history_person" type="foreignkey">
Index: gnue/forms/src/GFObjects/GFBlock.py
diff -c gnue/forms/src/GFObjects/GFBlock.py:1.51 
gnue/forms/src/GFObjects/GFBlock.py:1.52
*** gnue/forms/src/GFObjects/GFBlock.py:1.51    Sun May 19 12:06:04 2002
--- gnue/forms/src/GFObjects/GFBlock.py Tue Jul 30 15:33:59 2002
***************
*** 75,80 ****
--- 75,83 ----
      self._triggerFunctions={'clear':{'function':self.processClear},
                              'gotoRecord':{'function':self.jumpRecord},
                              'newRecord':{'function':self.newRecord},
+                             'nextRecord':{'function':self.nextRecord},
+                             'prevRecord':{'function':self.prevRecord},
+                             'deleteRecord':{'function':self.deleteRecord},
                              }
  
    def __getitem__(self, index):



reply via email to

[Prev in Thread] Current Thread [Next in Thread]