[Twisted-Python] Fw: [assemblee] [ANN] WebTK v0.alpha3
Xavier Antoviaque
xavier at plebia.org
Tue Jul 22 10:47:07 MDT 2003
Hello,
I saw Moshe Zadka at the EuroPython, who said me to drop a word about
WebTK here. So, I forward you the announcement for the alpha3 version.
Thanks for the quality of your work on Twisted, guys.
Begin forwarded message:
Date: Tue, 22 Jul 2003 17:39:41 +0200
From: Xavier Antoviaque <xavier at plebia.org>
To: python-announce at python.org
Cc: assemblee at plebia.org
Subject: [assemblee] [ANN] WebTK v0.alpha3
=================
WebTK v0.alpha3
=================
Find a new alpha-release of WebTK:
http://www.webtk.org/
It includes a brand new data model (featuring data events!), a Forum
application and a refactored module architecture. The examples below
have been updated to reflect changes.
What is WebTK ?
===============
WebTK is a Python framework, using Twisted as its underlying Web server,
and allowing webmasters to develop websites like any classic GUI
software. It is object-oriented, providing and handling event-based
widgets. It also does not need any database to work, as it uses objects
persitance, with the help of PyPerSyst.
Disclaimer
==========
Please note that the alpha series are mainly for developers that want to
have a look at WebTK internals - there are plenty of bugs, dirty tricks
and the installation is not easy. This is NOT for production websites.
URLs
====
You can find more about WebTK here :
Homepage : http://www.webtk.org/
Download : http://www.webtk.org/download/
Web CVS : http://cvs.plebia.org/index.py/?cvsroot=webtk
Current API : http://www.webtk.org/doc/current/api/
Changelog : http://www.webtk.org/Changelog
Examples
========
To give you some idea of what WebTK is, here is some small sample
websites, working with the alpha3 version. It shows an image whose
content change each time you click on it:
# Modules
#################################################################
import sys
from webtk.core.system import Session
from webtk.widget.window import RootWindow
from webtk.widget.display import Pixmap
# Classes
#################################################################
class MySession(Session):
def init(self):
window = RootWindow(wtkTitle='WebTK Test')
self.wtkAddRootObject(window)
image = PlebiaPlonePixmap()
window.wtkAppendChild(image)
class PlebiaPlonePixmap(Pixmap):
def init(self):
self.ploneURI = 'http://plone.org/logo.jpg'
self.plebiaURI = 'http://www.plebia.org/images/logo.png'
self.wtkURI = self.plebiaURI
self.wtkAddEvent('click', self.onClick)
def onClick(self):
if self.wtkURI == self.plebiaURI:
self.wtkURI = self.ploneURI
else:
self.wtkURI = self.plebiaURI
Here is a slighlty more elaborated one, which uses a Poll widget to ask
the visitor an important question !
# Modules
#################################################################
import sys
from webtk.core.system import Session
from webtk.widget.window import RootWindow
from webtk.widget.app.poll import Poll, PollResult
from webtk.data.base import Data
# Classes
#################################################################
class MySession(Session):
def init(self):
# Poll
window = RootWindow(wtkTitle='WebTK Test Poll')
self.wtkAddRootObject(window)
pollData = self.wtkSystem.wtkPoolGet('poll')
if pollData is None:
pollData = self.wtkSystem.wtkPoolRegister('poll', Data)
question = Data()
question.wtkTitle = 'Do you like WebTK ?'
for ans in ['Yes, sure.', 'Mmmh, I do not know.', 'Bah!']:
answer = Data()
answer.wtkTitle = ans
answer.wtkNbVotes = 0
question.wtkAppendChild(answer)
pollData.wtkAppendChild(question)
question = Data()
question.wtkTitle = 'Will you use it ?'
for ans in ['For all my future websites!', 'Perhaps...',
'Never!']:
answer = Data()
answer.wtkTitle = ans
answer.wtkNbVotes = 0
question.wtkAppendChild(answer)
pollData.wtkAppendChild(question)
pollResult = PollResult(wtkPollData=pollData)
pollResult.wtkIsVisible = 0
poll = TestPoll(wtkPollData=pollData, pollResult=pollResult)
window.wtkAppendChild(poll)
window.wtkAppendChild(pollResult)
class TestPoll(Poll):
def init(self, pollResult):
self.pollResult = pollResult
self.wtkAddEvent('onSelectAnswer',
self.wtkCallbackOnSelectAnswer)
def wtkCallbackOnSelectAnswer(self):
self.pollResult.wtkIsVisible = 1
--
Xavier.
---------------------------------------------------------------------
To unsubscribe, e-mail: assemblee-unsubscribe at plebia.org
For additional commands, e-mail: assemblee-help at plebia.org
--
Xavier.
More information about the Twisted-Python
mailing list