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]