dabo Commit
Revision 5044
Date: 2009-02-08 17:59:43 -0800 (Sun, 08 Feb 2009)
Author: Ed
Trac: http://trac.dabodev.com/changeset/5044

Changed:
A   trunk/daboserver/appSource/people/
A   trunk/daboserver/appSource/people/biz/
A   trunk/daboserver/appSource/people/biz/Activities.py
A   trunk/daboserver/appSource/people/biz/People.py
A   trunk/daboserver/appSource/people/biz/__init__.py
A   trunk/daboserver/appSource/people/cache/
A   trunk/daboserver/appSource/people/db/
A   trunk/daboserver/appSource/people/db/__init__.py
A   trunk/daboserver/appSource/people/db/default.cnxml
A   trunk/daboserver/appSource/people/main.py
A   trunk/daboserver/appSource/people/reports/
A   trunk/daboserver/appSource/people/reports/__init__.py
A   trunk/daboserver/appSource/people/resources/
A   trunk/daboserver/appSource/people/resources/__init__.py
A   trunk/daboserver/appSource/people/test/
A   trunk/daboserver/appSource/people/test/__init__.py
A   trunk/daboserver/appSource/people/ui/
A   trunk/daboserver/appSource/people/ui/__init__.py
A   trunk/daboserver/appSource/people/ui/people-code.py
A   trunk/daboserver/appSource/people/ui/people.cdxml

Log:
Added updated people app

Diff:
Added: trunk/daboserver/appSource/people/biz/Activities.py
===================================================================
--- trunk/daboserver/appSource/people/biz/Activities.py                         
(rev 0)
+++ trunk/daboserver/appSource/people/biz/Activities.py 2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import dabo
+
+class ActivitiesBizobj(dabo.biz.dBizobj):
+       def afterInit(self):
+               self.DataSource = "activities"
+               self.KeyField = "id"
+               self.addFrom("activities")
+               self.addField("details")
+               self.addField("reported_date")
+               self.addField("severity")
+               self.addField("id")
+               self.LinkField = "people_fk"
+               
+               self.NonUpdateFields = ["reported_date"]
+
+
+       def initProperties(self):
+               self.ChildCacheInterval = 60
+
+       
+       def validateRecord(self):
+               """Returning anything other than an empty string from
+               this method will prevent the data from being saved.
+               """
+               ret = ""
+               # Add your business rules here. 
+               return ret

Added: trunk/daboserver/appSource/people/biz/People.py
===================================================================
--- trunk/daboserver/appSource/people/biz/People.py                             
(rev 0)
+++ trunk/daboserver/appSource/people/biz/People.py     2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import dabo
+
+class PeopleBizobj(dabo.biz.dBizobj):
+       def afterInit(self):
+               self.DataSource = "people"
+               self.KeyField = "id"
+               self.addFrom("people")
+               self.addField("city")
+               self.addField("firstname")
+               self.addField("stateprov")
+               self.addField("lastname")
+               self.addField("street")
+               self.addField("postalcode")
+               self.addField("id")
+               self.addOrderBy("lastname")
+               self.VirtualFields = {"fullname": self.getFullName}
+               self.setWhereClause(" lastname like %s ")
+               
+       
+       def getFullName(self):
+               return " ".join((self.Record.firstname, self.Record.lastname))
+               
+
+       def validateRecord(self):
+               """Returning anything other than an empty string from
+               this method will prevent the data from being saved.
+               """
+               ret = ""
+               # Add your business rules here. 
+               return ret

Added: trunk/daboserver/appSource/people/biz/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/biz/__init__.py                           
(rev 0)
+++ trunk/daboserver/appSource/people/biz/__init__.py   2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your biz directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.biz.FirstClass and
+# self.Application.biz.SecondClass
+######
+
+from People import PeopleBizobj
+from Activities import ActivitiesBizobj

Added: trunk/daboserver/appSource/people/db/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/db/__init__.py                            
(rev 0)
+++ trunk/daboserver/appSource/people/db/__init__.py    2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your db directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.db.FirstClass and
+# self.Application.db.SecondClass
+######
+

Added: trunk/daboserver/appSource/people/db/default.cnxml
===================================================================
--- trunk/daboserver/appSource/people/db/default.cnxml                          
(rev 0)
+++ trunk/daboserver/appSource/people/db/default.cnxml  2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<connectiondefs xmlns="http://www.dabodev.com";
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+xsi:schemaLocation="http://www.dabodev.com conn.xsd"
+xsi:noNamespaceSchemaLocation = "http://dabodev.com/schema/conn.xsd";>
+
+       <connection dbtype="SQLite">
+               <name>localpeople</name>
+               <host></host>
+               <database>/Users/ed/apps/pyworks.db</database>
+               <user></user>
+               <password></password>
+               <port></port>
+       </connection>
+
+       <connection dbtype="web">
+               <name>people</name>
+               <remotehost>http://daboserver.com:7777</remotehost>
+               <host></host>
+               <database></database>
+               <user></user>
+               <password></password>
+               <port></port>
+       </connection>
+
+
+</connectiondefs>

Added: trunk/daboserver/appSource/people/main.py
===================================================================
--- trunk/daboserver/appSource/people/main.py                           (rev 0)
+++ trunk/daboserver/appSource/people/main.py   2009-02-09 01:59:43 UTC (rev 
5044)
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import dabo
+dabo.ui.loadUI("wx")
+
+app = dabo.dApp(SourceURL="http://daboserver.com:7777";)
+
+# IMPORTANT! Change app.MainFormClass value to the name
+# of the form class that you want to run when your
+# application starts up.
+app.MainFormClass = "people.cdxml"
+
+app.start()


Property changes on: trunk/daboserver/appSource/people/main.py
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/daboserver/appSource/people/reports/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/reports/__init__.py                       
        (rev 0)
+++ trunk/daboserver/appSource/people/reports/__init__.py       2009-02-09 
01:59:43 UTC (rev 5044)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your reports directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.reports.FirstClass 
and
+# self.Application.reports.SecondClass
+######
+

Added: trunk/daboserver/appSource/people/resources/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/resources/__init__.py                     
        (rev 0)
+++ trunk/daboserver/appSource/people/resources/__init__.py     2009-02-09 
01:59:43 UTC (rev 5044)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your resources directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.resources.FirstClass 
and
+# self.Application.resources.SecondClass
+######
+

Added: trunk/daboserver/appSource/people/test/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/test/__init__.py                          
(rev 0)
+++ trunk/daboserver/appSource/people/test/__init__.py  2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your test directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.test.FirstClass and
+# self.Application.test.SecondClass
+######
+

Added: trunk/daboserver/appSource/people/ui/__init__.py
===================================================================
--- trunk/daboserver/appSource/people/ui/__init__.py                            
(rev 0)
+++ trunk/daboserver/appSource/people/ui/__init__.py    2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+######
+# In order for Dabo to 'see' classes in your ui directory, add an 
+# import statement here for each class. E.g., if you have a file named
+# 'MyClasses.py' in this directory, and it defines two classes named 
'FirstClass'
+# and 'SecondClass', add these lines:
+# 
+# from MyClass import FirstClass
+# from MyClass import SecondClass
+# 
+# Now you can refer to these classes as: self.Application.ui.FirstClass and
+# self.Application.ui.SecondClass
+######
+

Added: trunk/daboserver/appSource/people/ui/people-code.py
===================================================================
--- trunk/daboserver/appSource/people/ui/people-code.py                         
(rev 0)
+++ trunk/daboserver/appSource/people/ui/people-code.py 2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+### Dabo Class Designer code. You many freely edit the code,
+### but do not change the comments containing:
+###            'Dabo Code ID: XXXX', 
+### as these are needed to link the code to the objects.
+
+## *!* ## Dabo Code ID: dButton-dForm
+def onHit(self, evt):
+       self.Form.save()
+
+
+
+## *!* ## Dabo Code ID: dButton-dPage
+def onHit(self, evt):
+       self.Form.search()
+
+
+
+## *!* ## Dabo Code ID: dTextBox-dPage
+def onKeyChar(self, evt):
+       if evt.keyCode == 13:
+               self.Form.search()
+
+
+
+## *!* ## Dabo Code ID: dForm-top
+def afterInitAll(self):
+       self.searchText.setFocus()
+
+def createBizobjs(self):
+       cxn = self.Application.getConnectionByName("people")
+       peopleBizobj = self.Application.biz.PeopleBizobj(cxn)
+       self.addBizobj(peopleBizobj)
+
+       activitiesBizobj = self.Application.biz.ActivitiesBizobj(cxn)
+       self.addBizobj(activitiesBizobj)
+       peopleBizobj.addChild(activitiesBizobj)
+
+
+def search(self):
+       txt = self.searchText.Value
+       if not txt:
+               self.searchText.setFocus()
+               return
+       self.PrimaryBizobj.setParams("%%%s%%" % txt)
+       self.requery()
+
+
+
+## *!* ## Dabo Code ID: dButton-dForm-905
+def onHit(self, evt):
+       self.Form.cancel()
+
+

Added: trunk/daboserver/appSource/people/ui/people.cdxml
===================================================================
--- trunk/daboserver/appSource/people/ui/people.cdxml                           
(rev 0)
+++ trunk/daboserver/appSource/people/ui/people.cdxml   2009-02-09 01:59:43 UTC 
(rev 5044)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<dForm code-ID="dForm-top" CxnFile="path://../db/default.cnxml" Name="dForm" 
Caption="Web People" SaveRestorePosition="False" Top="150" Height="617" 
Width="544" designerClass="DesForm" CxnName="people" Left="448">
+       <dSizer SlotCount="3" designerClass="LayoutSizer" 
Orientation="Vertical">
+               <dLabel FontBold="True" FontFace="Gill Sans" sizerInfo="{}" 
Caption="Incident Reports" ForeColor="(0, 0, 255)" FontSize="24" 
designerClass="controlMix" FontItalic="True"></dLabel>
+               <dPageFrame sizerInfo="{'VAlign': 'Middle'}" 
designerClass="controlMix" PageCount="2">
+                       <dPage Caption="People" designerClass="controlMix">
+                               <dSizer SlotCount="3" 
designerClass="LayoutSizer" Orientation="Vertical">
+                                       <dBorderSizer 
sizerInfo="{'BorderSides': ['All'], 'Proportion': 0, 'HAlign': 'Left', 
'VAlign': 'Top', 'Border': 0, 'Expand': True}" Orientation="Horizontal" 
Caption="Search" designerClass="LayoutBorderSizer" SlotCount="4" 
DefaultBorder="8">
+                                               <dPanel sizerInfo="{'VAlign': 
'Top', 'Border': 8}" designerClass="LayoutSpacerPanel"></dPanel>
+                                               <dTextBox RegID="searchText" 
Width="327" sizerInfo="{'Border': 8}" code-ID="dTextBox-dPage" 
designerClass="controlMix"></dTextBox>
+                                               <dButton 
code-ID="dButton-dPage" Caption="Search" sizerInfo="{'Border': 8}" 
designerClass="controlMix"></dButton>
+                                               <dPanel sizerInfo="{'VAlign': 
'Top', 'Border': 8}" designerClass="LayoutSpacerPanel"></dPanel>
+                                       </dBorderSizer>
+                                       <dGrid ColumnCount="2" 
SelectionMode="Cell" designerClass="controlMix" DataSource="people" 
sizerInfo="{'Border': 12}">
+                                               <dColumn Caption="First Name" 
designerClass="controlMix" Order="0" DataField="firstname"></dColumn>
+                                               <dColumn Caption="Last Name" 
designerClass="controlMix" Order="10" DataField="lastname"></dColumn>
+                                       </dGrid>
+                                       <dGridSizer HGap="5" 
sizerInfo="{'BorderSides': ['All'], 'Proportion': 3, 'HAlign': 'Left', 
'VAlign': 'Top', 'Border': 20, 'Expand': True}" Rows="6" 
designerClass="LayoutGridSizer" VGap="7" MaxDimension="R" Columns="2">
+                                               <dLabel Caption="First" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'HAlign': 'Right'}" 
designerClass="controlMix" rowColPos="(0, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox1" rowColPos="(0, 1)" designerClass="controlMix" 
DataSource="people" DataField="firstname"></dTextBox>
+                                               <dLabel Caption="Last" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel1" rowColPos="(1, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox2" rowColPos="(1, 1)" designerClass="controlMix" 
DataSource="people" DataField="lastname"></dTextBox>
+                                               <dLabel Caption="Address" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel2" rowColPos="(2, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox3" rowColPos="(2, 1)" designerClass="controlMix" 
DataSource="people" DataField="street"></dTextBox>
+                                               <dLabel Caption="City" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel3" rowColPos="(3, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox4" rowColPos="(3, 1)" designerClass="controlMix" 
DataSource="people" DataField="city"></dTextBox>
+                                               <dLabel Caption="State" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel4" rowColPos="(4, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox5" rowColPos="(4, 1)" designerClass="controlMix" 
DataSource="people" DataField="stateprov"></dTextBox>
+                                               <dLabel Caption="Zip" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel5" rowColPos="(5, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox6" rowColPos="(5, 1)" designerClass="controlMix" 
DataSource="people" DataField="postalcode"></dTextBox>
+                                       </dGridSizer>
+                               </dSizer>
+                       </dPage>
+                       <dPage Caption="Incidents" designerClass="controlMix" 
Name="dPage1">
+                               <dSizer SlotCount="2" 
designerClass="LayoutSizer" Orientation="Vertical">
+                                       <dGrid ColumnCount="3" 
SelectionMode="Cell" designerClass="controlMix" DataSource="activities" 
sizerInfo="{'HAlign': 'Left'}">
+                                               <dColumn Caption="Details" 
designerClass="controlMix" Order="0" DataField="details"></dColumn>
+                                               <dColumn Caption="Date" 
designerClass="controlMix" Order="10" DataField="reported_date"></dColumn>
+                                               <dColumn Caption="Severity" 
designerClass="controlMix" DataField="severity"></dColumn>
+                                       </dGrid>
+                                       <dGridSizer HGap="8" 
sizerInfo="{'BorderSides': ['All'], 'Proportion': 2, 'HAlign': 'Left', 
'VAlign': 'Top', 'Border': 10, 'Expand': True}" Rows="3" 
designerClass="LayoutGridSizer" VGap="7" MaxDimension="r" Columns="2">
+                                               <dLabel Caption="Date" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
rowColPos="(0, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
rowColPos="(0, 1)" designerClass="controlMix" DataSource="activities" 
DataField="reported_date"></dTextBox>
+                                               <dLabel Caption="Severity" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1}" designerClass="controlMix" 
Name="dLabel1" rowColPos="(1, 0)"></dLabel>
+                                               <dTextBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'Proportion': 0, 'HAlign': 'Left'}" 
Name="dTextBox1" rowColPos="(1, 1)" designerClass="controlMix" 
DataSource="activities" DataField="severity"></dTextBox>
+                                               <dLabel Caption="Details" 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'VAlign': 'Top', 'RowExpand': True}" 
designerClass="controlMix" Name="dLabel2" rowColPos="(2, 0)"></dLabel>
+                                               <dEditBox 
sizerInfo="{'RowSpan': 1, 'ColSpan': 1, 'RowExpand': True}" rowColPos="(2, 1)" 
designerClass="controlMix" DataField="details" 
DataSource="activities"></dEditBox>
+                                       </dGridSizer>
+                               </dSizer>
+                       </dPage>
+               </dPageFrame>
+               <dBorderSizer SlotCount="2" Caption="Controls" 
sizerInfo="{'BorderSides': ['All'], 'Proportion': 0, 'HAlign': 'Right', 
'VAlign': 'Top', 'Border': 6, 'Expand': False}" 
designerClass="LayoutBorderSizer" Orientation="Horizontal">
+                       <dButton code-ID="dButton-dForm" Caption="Save" 
sizerInfo="{'Border': 5}" designerClass="controlMix" Name="dButton1"></dButton>
+                       <dButton code-ID="dButton-dForm-905" Caption="Cancel" 
sizerInfo="{'Border': 5}" designerClass="controlMix"></dButton>
+               </dBorderSizer>
+       </dSizer>
+</dForm>



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to