[Checkins] SVN: z3c.formdemo/trunk/src/z3c/formdemo/ Added another
example. This time I show how non-object data can be
Stephan Richter
srichter at cosmos.phy.tufts.edu
Fri Jun 22 12:13:34 EDT 2007
Log message for revision 76940:
Added another example. This time I show how non-object data can be
handled using z3c.form, specifically raltional data from Gadfly.
Changed:
U z3c.formdemo/trunk/src/z3c/formdemo/browser/index.pt
U z3c.formdemo/trunk/src/z3c/formdemo/configure.zcml
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/__init__.py
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/add.pt
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/browser.py
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/configure.zcml
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/MSG.grl
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/msg.gfd
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/display.pt
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/edit.pt
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/interfaces.py
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/overview.pt
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sql.py
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sqlmessage.css
A z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/what-values.csv
-=-
Modified: z3c.formdemo/trunk/src/z3c/formdemo/browser/index.pt
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/browser/index.pt 2007-06-22 16:07:26 UTC (rev 76939)
+++ z3c.formdemo/trunk/src/z3c/formdemo/browser/index.pt 2007-06-22 16:13:33 UTC (rev 76940)
@@ -31,4 +31,9 @@
<div>
<a href="../++skin++Z3CFormDemo/addressbook.html">Address Book</a>
</div>
+ <div>
+ <a href="../++skin++Z3CFormDemo/showAllSQLHelloWorld.html">
+ SQL Hello World
+ </a>
+ </div>
</div>
Modified: z3c.formdemo/trunk/src/z3c/formdemo/configure.zcml
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/configure.zcml 2007-06-22 16:07:26 UTC (rev 76939)
+++ z3c.formdemo/trunk/src/z3c/formdemo/configure.zcml 2007-06-22 16:13:33 UTC (rev 76940)
@@ -14,6 +14,7 @@
<!-- Examples -->
<include package=".message" />
+ <include package=".sqlmessage" />
<include package=".widgets" />
<include package=".calculator" />
<include package=".wizard" />
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/__init__.py
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/__init__.py (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/__init__.py 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1 @@
+# Make a package.
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/add.pt
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/add.pt (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/add.pt 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,5 @@
+<h1>Hello World Message Add Form</h1>
+
+<div id="body">
+ <div metal:use-macro="macro:form" />
+</div>
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/add.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/browser.py
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/browser.py (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/browser.py 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,178 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id$
+"""
+__docformat__ = "reStructuredText"
+import datetime
+import zope.interface
+import zope.component
+from zope.traversing.browser import absoluteURL
+from zope.pagetemplate.interfaces import IPageTemplate
+from zope.viewlet.viewlet import CSSViewlet
+
+from zc.table import column
+from zc.table.interfaces import ISortableColumn
+
+from z3c.pagelet import browser
+from z3c.form import button, field, form, widget
+from z3c.form.interfaces import IAddForm
+from z3c.formui import layout
+
+from z3c.formdemo.browser import formatter
+from z3c.formdemo.sqlmessage import interfaces, sql
+
+SESSION_KEY = 'z3c.formdemo.sqlmessage'
+
+SQLMessageCSSViewlet = CSSViewlet('sqlmessage.css')
+
+DefaultDate = widget.ComputedWidgetAttribute(
+ lambda adapter: datetime.date.today(),
+ field=interfaces.IHelloWorld['when'], view=IAddForm)
+
+class ISQLMessagePage(zope.interface.Interface):
+ """A marker interface for all SQL Hello World pages."""
+
+class HelloWorldAddForm(layout.AddFormLayoutSupport, form.AddForm):
+ zope.interface.implements(ISQLMessagePage)
+
+ template = None
+ layout = None
+ contentName = None
+ label = u'Add Form'
+
+ fields = field.Fields(interfaces.IHelloWorld)
+
+ def create(self, data):
+ return data
+
+ def add(self, data):
+ data['id'] = sql.getNextId()
+ data['when'] = data['when'].toordinal()
+ sql.addMessage(data)
+ return data
+
+ def nextURL(self):
+ url = absoluteURL(self.context, self.request)
+ return url + '/showAllSQLHelloWorld.html'
+
+
+class HelloWorldEditForm(layout.FormLayoutSupport, form.EditForm):
+ zope.interface.implements(ISQLMessagePage)
+
+ form.extends(form.EditForm)
+ fields = field.Fields(interfaces.IHelloWorld)
+
+ def getContent(self):
+ msg = sql.getMessage(self.request.form['id'])
+ content = dict(
+ [(name, getattr(msg, name.upper()))
+ for name in self.fields.keys()] )
+ content['when'] = datetime.date.fromordinal(content['when'])
+ return content
+
+ def applyChanges(self, data):
+ changed = False
+ for name, value in self.getContent().items():
+ if data[name] != value:
+ changed = True
+ data['when'] = data['when'].toordinal()
+ if changed:
+ id = self.request.form['id']
+ sql.updateMessage(id, data)
+ return changed
+
+ @button.buttonAndHandler(u'Apply and View', name='applyView')
+ def handleApplyView(self, action):
+ self.handleApply(self, action)
+ if not self.widgets.errors:
+ url = absoluteURL(self.context, self.request)
+ url += '/showSQLHelloWorld.html?id=' + self.request['id']
+ self.request.response.redirect(url)
+
+
+class HelloWorldDisplayForm(layout.FormLayoutSupport, form.DisplayForm):
+ zope.interface.implements(ISQLMessagePage)
+
+ fields = field.Fields(interfaces.IHelloWorld)
+
+ def getContent(self):
+ msg = sql.getMessage(self.request.form['id'])
+ content = dict(
+ [(name, getattr(msg, name.upper()))
+ for name in self.fields.keys()] )
+ content['when'] = datetime.date.fromordinal(content['when'])
+ return content
+
+
+class SQLColumn(column.GetterColumn):
+ zope.interface.implements(ISortableColumn)
+
+ def getter(self, item, formatter):
+ return getattr(item, self.name.upper())
+
+ def cell_formatter(self, value, item, formatter):
+ return '<a href="showSQLHelloWorld.html?id=%s">%s</a>' %(
+ item.ID, unicode(value))
+
+class DateSQLColumn(SQLColumn):
+
+ def getter(self, item, formatter):
+ value = super(DateSQLColumn, self).getter(item, formatter)
+ return datetime.date.fromordinal(value)
+
+class DeleteSQLColumn(column.Column):
+
+ def renderCell(self, item, formatter):
+ return '<a href="?delete=%i">[Delete]</a>' %item.ID
+
+
+class HelloWorldOverview(browser.BrowserPagelet):
+ zope.interface.implements(ISQLMessagePage)
+
+ status = None
+
+ columns = (
+ SQLColumn(u'Id', name='id'),
+ SQLColumn(u'Who', name='who'),
+ DateSQLColumn(u'When', name='when'),
+ SQLColumn(u'What', name='what'),
+ DeleteSQLColumn(u'', name='delete')
+ )
+
+ def update(self):
+ if 'initialize' in self.request.form:
+ try:
+ sql.initialize()
+ except zope.rdb.DatabaseException, exc:
+ self.status = "Database Message: " + exc.message
+ elif 'delete' in self.request.form:
+ try:
+ sql.deleteMessage(self.request.form['delete'])
+ except zope.rdb.DatabaseException, exc:
+ self.status = "Database Message: " + exc.message
+
+ try:
+ messages = sql.queryAllMessages()
+ except zope.rdb.DatabaseException, exc:
+ # No message table exists yet.
+ messages = ()
+
+ self.table = formatter.ListFormatter(
+ self.context, self.request, messages,
+ prefix = SESSION_KEY + '.', columns=self.columns,
+ sort_on=[('id', False)])
+ self.table.sortKey = 'z3c.formdemo.sqlmessage.sort-on'
+ self.table.cssClasses['table'] = 'message-list'
+ self.table.widths = (50, 200, 100, 150, 100)
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/browser.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/configure.zcml
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/configure.zcml (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/configure.zcml 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,100 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ xmlns:rdb="http://namespaces.zope.org/rdb"
+ xmlns:z3c="http://namespaces.zope.org/z3c"
+ i18n_domain="z3c.formdemo">
+
+ <!-- RDB setup -->
+
+ <rdb:gadflyRoot path="./db" />
+
+ <rdb:provideConnection
+ name="msg"
+ component="zope.rdb.gadflyda.GadflyAdapter"
+ dsn="dbi://msg" />
+
+ <!-- Default widget value for "when" -->
+ <adapter
+ factory=".browser.DefaultDate"
+ name="default" />
+
+ <!-- Resources -->
+
+ <browser:zrt-resource
+ name="sqlmessage.css"
+ file="sqlmessage.css"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ />
+
+ <browser:viewlet
+ name="sqlmessage.css"
+ view=".browser.ISQLMessagePage"
+ manager="z3c.formdemo.skin.ICSS"
+ class=".browser.SQLMessageCSSViewlet"
+ permission="zope.Public"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ weight="1000"
+ />
+
+ <!-- Add Form -->
+ <z3c:pagelet
+ name="addSQLHelloWorld.html"
+ for="*"
+ class=".browser.HelloWorldAddForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ permission="zope.Public"
+ />
+
+ <z3c:template
+ template="add.pt"
+ for=".browser.HelloWorldAddForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ />
+
+ <!-- Edit Form -->
+ <z3c:pagelet
+ name="editSQLHelloWorld.html"
+ for="*"
+ class=".browser.HelloWorldEditForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ permission="zope.Public"
+ />
+
+ <z3c:template
+ template="edit.pt"
+ for=".browser.HelloWorldEditForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ />
+
+ <!-- Display Form -->
+ <z3c:pagelet
+ name="showSQLHelloWorld.html"
+ for="*"
+ class=".browser.HelloWorldDisplayForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ permission="zope.Public"
+ />
+
+ <z3c:template
+ template="display.pt"
+ for=".browser.HelloWorldDisplayForm"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ />
+
+ <!-- Overview Page -->
+ <z3c:pagelet
+ name="showAllSQLHelloWorld.html"
+ for="*"
+ class=".browser.HelloWorldOverview"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ permission="zope.Public"
+ />
+
+ <z3c:template
+ template="overview.pt"
+ for=".browser.HelloWorldOverview"
+ layer="z3c.formdemo.layer.IDemoBrowserLayer"
+ />
+
+</configure>
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/MSG.grl
===================================================================
(Binary files differ)
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/MSG.grl
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/msg.gfd
===================================================================
(Binary files differ)
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/db/msg/msg.gfd
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/display.pt
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/display.pt (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/display.pt 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,14 @@
+<h1>
+ A <span tal:replace="structure view/widgets/what/render" /> Hello World
+ from <span tal:replace="structure view/widgets/who/render" />
+ on <span tal:replace="structure view/widgets/when/render" />!
+</h1>
+
+<div id="body">
+ <div class="actions">
+ <a href="./edit.html"
+ tal:attributes="href string:editSQLHelloWorld.html?id=${request/id}">
+ [Edit Message]</a>
+ <a href="showAllSQLHelloWorld.html">[Show All Messages]</a>
+ </div>
+</div>
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/display.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/edit.pt
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/edit.pt (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/edit.pt 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,10 @@
+<h1>Hello World Message Edit Form</h1>
+
+<div id="body">
+ <div metal:use-macro="macro:form">
+ <metal:block fill-slot="above-buttons">
+ <input type="hidden" name="id" value=""
+ tal:attributes="value request/form/id" />
+ </metal:block>
+ </div>
+</div>
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/edit.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/interfaces.py
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/interfaces.py (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/interfaces.py 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,45 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Hello World Message Interfaces
+
+$Id$
+"""
+__docformat__ = "reStructuredText"
+import os
+import zope.interface
+import zope.schema
+from z3c.csvvocabulary import CSVVocabulary
+
+WhatVocabulary = CSVVocabulary(
+ os.path.join(os.path.dirname(__file__), 'what-values.csv'))
+
+class IHelloWorld(zope.interface.Interface):
+ """Information about a hello world message"""
+
+ who = zope.schema.TextLine(
+ title=u'Who',
+ description=u'Name of the person sending the message',
+ required=True)
+
+ when = zope.schema.Date(
+ title=u'When',
+ description=u'Date of the message sent.',
+ required=True)
+
+ what = zope.schema.Choice(
+ title=u'What',
+ description=u'What type of message it is.',
+ vocabulary=WhatVocabulary,
+ default=u'cool',
+ required=True)
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/interfaces.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/overview.pt
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/overview.pt (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/overview.pt 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,19 @@
+<h1>SQL Hello World Message Demo</h1>
+
+<div id="body">
+ <div class="status"
+ tal:define="status view/status"
+ tal:condition="status">
+ <div class="summary"
+ tal:content="status">
+ status summary
+ </div>
+ </div>
+
+ <div tal:replace="structure view/table" />
+
+ <div class="actions">
+ <a href="addSQLHelloWorld.html">[Add message]</a>
+ <a href="?initialize=1">[Initialize the database]</a>
+ </div>
+</div>
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/overview.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sql.py
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sql.py (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sql.py 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,72 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""SQL calls to database
+
+$Id$
+"""
+__docformat__ = "reStructuredText"
+import zope.component
+import zope.rdb
+from zope.rdb import interfaces
+
+def query(query):
+ db = zope.component.getUtility(interfaces.IZopeDatabaseAdapter, name='msg')
+ conn = db()
+ return zope.rdb.queryForResults(conn, query)
+
+def initialize():
+ query('''\
+ CREATE TABLE msg (
+ id INTEGER,
+ who VARCHAR,
+ when INTEGER,
+ what VARCHAR)
+ ''')
+
+def queryAllMessages():
+ return query('''\
+ SELECT id, who, when, what FROM msg
+ ''')
+
+def getNextId():
+ result = query('''\
+ SELECT id FROM msg
+ ''')
+ if not result:
+ return 0
+ return max([entry.ID for entry in result]) + 1
+
+def addMessage(data):
+ query("""\
+ INSERT INTO msg (id, who, when, what)
+ VALUES (%(id)s, '%(who)s', %(when)s, '%(what)s')
+ """ %data)
+
+def updateMessage(id, data):
+ data['id'] = id
+ query("""\
+ UPDATE msg
+ SET who='%(who)s', when=%(when)s, what='%(what)s'
+ WHERE id = %(id)s
+ """ %data)
+
+def getMessage(id):
+ return query("""\
+ SELECT id, who, when, what FROM msg WHERE id = %s
+ """ %id)[0]
+
+def deleteMessage(id):
+ query("""\
+ DELETE FROM msg WHERE id = %s
+ """ %id)
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sql.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sqlmessage.css
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sqlmessage.css (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sqlmessage.css 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,85 @@
+body {
+ background: #EBE6D3;
+}
+
+a:visited {
+ color: #D91813;
+}
+
+a:hover {
+ color: #D91813;
+}
+
+h1 {
+ background: #574E3F;
+ color: #D5CDC6;
+ font-weight: bold;
+ padding: 5px;
+ border-bottom: 3px solid #900002;
+}
+
+input[type=text] {
+ padding: 2px;
+}
+
+input[type=submit] {
+ border: 1px solid black;
+ background: #900002;
+ color: white;
+ font-weight: bold;
+ padding: 2px;
+ -moz-border-radius: 5px;
+}
+
+div#content {
+ margin: 0;
+ padding: 0;
+}
+
+div#body {
+ margin: 20px;
+}
+
+div.status {
+ background-color: #F5F2EB;
+ border: 1px solid #CAC8C2;
+ color: #D91813;
+ font-style: italic;
+ margin: 10px 0px;
+ padding: 7px;
+ -moz-border-radius: 5px;
+}
+
+div.actions, div.buttons {
+ background-color: #F5F2EB;
+ border: 1px solid #CAC8C2;
+ margin-top: 10px;
+ padding: 7px;
+ -moz-border-radius: 5px;
+}
+
+table.message-list th {
+ background: #A79E8D;
+ padding: 3px;
+}
+
+table.message-list td {
+ color: #574E3F;
+ padding: 2px 0px;
+}
+
+table.message-list tr.even {
+ background-color: #F5F2EB;
+}
+
+table.message-list td a {
+ color: #574E3F;
+}
+
+table.message-list td a:hover {
+ color: #574E3F;
+}
+
+table.message-list td a:visited {
+ color: #574E3F;
+}
Property changes on: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/sqlmessage.css
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/what-values.csv
===================================================================
--- z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/what-values.csv (rev 0)
+++ z3c.formdemo/trunk/src/z3c/formdemo/sqlmessage/what-values.csv 2007-06-22 16:13:33 UTC (rev 76940)
@@ -0,0 +1,4 @@
+"cool";"cool"
+"sunny";"sunny"
+"silent";"silent"
+"best";"best"
More information about the Checkins
mailing list