diff --git a/LDP/lampadas/lampadas/Makefile b/LDP/lampadas/lampadas/Makefile
deleted file mode 100644
index 065e7e34..00000000
--- a/LDP/lampadas/lampadas/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-build: tap
-
-tap:
- mktap lampadas
-
-start: tap
- twistd -n -f lampadas.tap
-
-clean:
- rm -f *.pyc
- rm -f *.tap
- rm -f *.log
-
-
diff --git a/LDP/lampadas/lampadas/__init__.py b/LDP/lampadas/lampadas/__init__.py
deleted file mode 100644
index dce8f809..00000000
--- a/LDP/lampadas/lampadas/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-"""
-This is test code to implement Lampadas services on the Twisted framework.
-"""
diff --git a/LDP/lampadas/lampadas/example.py b/LDP/lampadas/lampadas/example.py
deleted file mode 100755
index eb4e823d..00000000
--- a/LDP/lampadas/lampadas/example.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/python
-
-from twisted.internet import app
-from twisted.python import usage, components
-from twisted.web.resource import Resource
-from twisted.internet import reactor
-
-from twisted.web.woven import model, view, controller, interfaces
-from twisted.web.woven import widgets
-from twisted.web import domhelpers, server
-import twisted.web
-import twisted.protocols.http
-
-class MList(model.ListModel):
- def __init__(self, orig, *args, **kwargs):
- print 'Initializing...'
- model.Model.__init__(self, *args, **kwargs)
- model.ListModel.__init__(self, orig)
-
-class VList(view.WView):
- templateFile = 'example.xhtml'
-
- #def setUp(self, request, document):
- #print 'Initializing List View: '
-
- def wvfactory_list(self, request, node, model):
- #domhelpers.clearNode(node)
- return widgets.List(model)
-
-class CList(controller.WController):
- pass
-
-view.registerViewForModel(VList, MList)
-controller.registerControllerForModel(CList, MList)
-
-
-class Options(usage.Options):
- optParameters = [["port", "p", 8080,
- "Port to listen with Webserver"]]
-
-class Page(twisted.web.widgets.WidgetPage):
- template = '
%%%%self.widget%%%%'
-
-class Foo:
- pass
-
-foo = Foo()
-foo.list = ['foo', 'bar']
-
-class Gadget(twisted.web.widgets.Gadget):
- def __init__(self):
- print 'Initializing gadget'
- twisted.web.widgets.Gadget.__init__(self)
- self.pageFactory = Page
-
- def getChild(self, path, request):
- m = MList(foo.list)
- v = VList(m, 'example.xhtml')
- c = CList(m)
- c.setView(v)
- return v
-
-def updateApplication(app, config):
- port = config['port']
- root = Gadget()
- site = server.Site(root)
- app.listenTCP(port, site)
-
-root = Gadget()
-site = server.Site(root)
-
diff --git a/LDP/lampadas/lampadas/example.xhtml b/LDP/lampadas/lampadas/example.xhtml
deleted file mode 100644
index 65561ba6..00000000
--- a/LDP/lampadas/lampadas/example.xhtml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/LDP/lampadas/lampadas/home.py b/LDP/lampadas/lampadas/home.py
deleted file mode 100644
index 18bdc5d0..00000000
--- a/LDP/lampadas/lampadas/home.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/python
-
-from twisted.web.woven import model, view, controller
-from twisted.web.woven import widgets, input
-from twisted.web import domhelpers
-
-#from TwistedQuotes import quoters
-
-
-import cgi
-
-class MQuote(model.WModel):
- def __init__(self):
- print 'Loading MQuote'
- model.WModel.__init__(self)
- #self._filename = filename
- #self._quoter = quoters.FortuneQuoter([filename])
- self.quote = "Hello, world!"
- self.title = "Quotes Galore!"
- self.newQuote = ""
-
- def updateQuote(self):
- self.quote = 'Hello, world!'
-
-class QuoteWidget(widgets.Widget):
- def setUp(self, request, node, data):
- """
- Set up this Widget object before it gets rendered into HTML.
-
- Since self is a Widget, I can use the higher level widget API to add a
- Text widget to self. I then rely on Widget.generateDOM to convert
- from Widgets into the Document Object Model.
- """
- self.add(widgets.Text(cgi.escape(data)))
-
-
-class VQuote(view.WView):
- templateFile = "home.xhtml"
-
- def setUp(self, request, document):
- """
- Set things up for this request.
- """
- self.model.updateQuote()
-
- def wvfactory_quote(self, request, node, model):
- """Create a widget which knows how to render my model's quote."""
- domhelpers.clearNode(node)
- return QuoteWidget(model)
-
- def wvfactory_title(self, request, node, model):
- """Create a widget which knows how to render my model's title."""
- domhelpers.clearNode(node)
- return widgets.Text(model)
-
-
-class NewQuoteHandler(input.SingleValue):
- def check(self, request, data):
- if data:
- return 1
-
- def commit(self, request, node, newQuote):
- print "committing new quote", `newQuote`
- file = open(self.model.getQuoteFilename(), 'a')
- file.write('\n%\n' + newQuote)
-
-
-class CQuote(controller.WController):
- def wcfactory_newQuote(self, model):
- """Create a handler which knows how to verify input in a form with the
- name "newQuote"."""
- return NewQuoteHandler(model)
-
-
-view.registerViewForModel(VQuote, MQuote)
-controller.registerControllerForModel(CQuote, MQuote)
-
diff --git a/LDP/lampadas/lampadas/home.rpy b/LDP/lampadas/lampadas/home.rpy
deleted file mode 100644
index 8a74244b..00000000
--- a/LDP/lampadas/lampadas/home.rpy
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/python
-
-# -*- Python -*-
-
-import home
-
-#__file__ is defined to be the name of this file; this is to
-#get the sibling file "quotes.txt" which should be in the same directory
-import os
-#quotefile = os.path.join(os.path.split(__file__)[0], "quotes.txt")
-
-# Construct a model object which will contain the data for display by the
-# web page
-model = home.MQuote()
-
-# ResourceScript requires us to define 'resource'. This resource is used
-# to render the page.
-resource = home.CQuote(model)
-
-# The CQuote controller will look up a View (VQuote) and call render()
-# on it, rendering the DOMTemplate
-
diff --git a/LDP/lampadas/lampadas/home.xhtml b/LDP/lampadas/lampadas/home.xhtml
deleted file mode 100644
index 71317257..00000000
--- a/LDP/lampadas/lampadas/home.xhtml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- Title will go here
-
-
-
-
-
-
-
- Title will go here
-
-
-
- Quote will go here.
-
-
-
- Refresh
-
-
-
diff --git a/LDP/lampadas/lampadas/index.xhtml b/LDP/lampadas/lampadas/index.xhtml
deleted file mode 100644
index 0522bcf9..00000000
--- a/LDP/lampadas/lampadas/index.xhtml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
-
-
- There are no sections.
-
-
- |
-
-
- There are no embedded widgets.
-
-
-
-
- |
-
- |
-
-
-
- Footer
- |
-
-
-
-
-
-
diff --git a/LDP/lampadas/lampadas/objects.py b/LDP/lampadas/lampadas/objects.py
deleted file mode 100755
index bd1a9734..00000000
--- a/LDP/lampadas/lampadas/objects.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/python
-
-# Lampadas imports
-from Config import config
-
-# Twisted imports
-from twisted.internet import reactor
-from twisted.enterprise import adbapi, row, reflector
-from twisted.enterprise.sqlreflector import SQLReflector
-from twisted.python import usage
-from twisted.cred.authorizer import DefaultAuthorizer
-from twisted.internet import defer
-
-# Sibling imports
-from row import ROW_CLASSES
-
-
-class Block:
- def __init__(self, refl):
- self.refl = refl
-
- def get_all(self, callback):
- self.refl.loadObjectsFrom('block').addCallback(callback)
-
- def get_by_code(self, code, callback):
- w = [('block_code', reflector.EQUAL, code)]
- self.refl.loadObjectsFrom('block', whereClause=w).addCallback(callback)
-
-class Page:
- def __init__(self, refl):
- self.refl = refl
-
- def get_all(self, callback):
- self.refl.loadObjectsFrom('page').addCallback(callback)
-
- def get_by_code(self, code, callback):
- w = [('page_code', reflector.EQUAL, code)]
- self.refl.loadObjectsFrom('page', whereClause=w).addCallback(callback)
-
-class Section:
- def __init__(self, refl):
- self.refl = refl
-
- def get_all(self, callback):
- self.refl.loadObjectsFrom('section').addCallback(callback)
-
- def get_by_code(self, code, callback):
- w = [('section_code', reflector.EQUAL, code)]
- self.refl.loadObjectsFrom('section', whereClause=w).addCallback(callback)
-
-class String:
- def __init__(self, refl):
- self.refl = refl
-
- def get_all(self, callback):
- self.refl.loadObjectsFrom('string').addCallback(callback)
-
- def get_by_code(self, code, callback):
- w = [('string_code', reflector.EQUAL, code)]
- self.refl.loadObjectsFrom('string', whereClause=w).addCallback(callback)
-
-class Objects:
- def connect(self, callback):
- if config.db_type=='pgsql':
- db_module = 'pyPgSQL.PgSQL'
- else:
- db_module = 'pyMySQL.MySQL'
- self.dbpool = adbapi.ConnectionPool(db_module, database=config.db_name, user='www-data')
- self.refl = SQLReflector(self.dbpool, ROW_CLASSES, callback)
-
- self.block = Block(self.refl)
- self.page = Page(self.refl)
- self.section = Section(self.refl)
- self.string = String(self.refl)
-
-object_server = Objects()
diff --git a/LDP/lampadas/lampadas/pbobjects.py b/LDP/lampadas/lampadas/pbobjects.py
deleted file mode 100755
index c13f248b..00000000
--- a/LDP/lampadas/lampadas/pbobjects.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/python
-
-# Lampadas imports
-from Config import config
-
-# Twisted imports
-from twisted.spread import pb
-from twisted.internet import reactor
-from twisted.enterprise import adbapi, row, reflector
-from twisted.enterprise.sqlreflector import SQLReflector
-from twisted.python import usage
-from twisted.cred.authorizer import DefaultAuthorizer
-from twisted.internet import defer
-
-# Sibling imports
-from row import BlockRow, PageRow, PageI18nRow
-
-ROW_CLASSES = [BlockRow, PageRow, PageI18nRow]
-
-def loaded(object):
- print 'ObjectService loaded: ', object
- return object
-
-class Page(pb.Copyable):
- def __init__(self, refl):
- print 'Initializing Page'
- refl.loadObjectsFrom('page').addCallback(self.loaded)
-
- def loaded(self, pages):
- print 'Page.loaded()'
- self.pages = pages
-
- def get_all(self, refl):
- refl.loadObjectsFrom('page').addCallback(loaded)
-
- def get_by_code(self, refl, code):
- print 'ObjectService serving block: ', code
- w = [('block_code', reflector.EQUAL, code)]
- refl.loadObjectsFrom('block', whereClause=w).addCallback(loaded)
-
-def connected(result):
- print 'Object Server Ready.'
-
-class Objects(pb.Perspective):
-
- def __init__(self, perspectiveName, identityName='Nobody'):
- pb.Perspective.__init__(self, perspectiveName, identityName)
- if config.db_type=='pgsql':
- self.db_module = 'pyPgSQL.PgSQL'
- else:
- self.db_module = 'pyMySQL.MySQL'
- self.dbpool = adbapi.ConnectionPool(self.db_module, database=config.db_name, user='www-data')
- self.refl = SQLReflector(self.dbpool, ROW_CLASSES, connected)
- reactor.callLater(0.5, self.load)
-
- def load(self):
- print 'Objects.load()'
- self.page = Page(self.refl)
-
- def perspective_page(self):
- print 'Client requested pages'
- return self.page.pages
-
-class ObjectService(pb.Service):
- perspectiveClass = Objects
-
-
-class Options(usage.Options):
- optParameters = [['port', 'p', 8790, 'Port to listed on.']]
-
-def updateApplication(app, config):
- port = config['port']
- if port:
- auth = DefaultAuthorizer(app)
- serv = ObjectService('lampadas.objects', app, auth)
- serv.createPerspective("guest").makeIdentity("guest")
- fact = pb.BrokerFactory(pb.AuthRoot(auth))
- app.listenTCP(int(port), fact)
- reactor.run()
-
diff --git a/LDP/lampadas/lampadas/pbtap.py b/LDP/lampadas/lampadas/pbtap.py
deleted file mode 100644
index 64bcb791..00000000
--- a/LDP/lampadas/lampadas/pbtap.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/python
-
-import object_server
-from twisted.python import usage
-from twisted.spread import pb
-from twisted.cred.authorizer import DefaultAuthorizer
-
-class Options(usage.Options):
- optParameters = [["port", "p", 8790,
- "Port to listen with ObjectService"]]
-
-def updateApplication(app, config):
-# port = int(config["port"])
-# fact = pb.BrokerFactory(object_server.Block())
-# app.listenTCP(port, factory)
-
- # Test code, moving to use perspectives!
- port = config['port']
- if port:
- auth = DefaultAuthorizer(app)
- serv = object_server.ObjectService('lampadas.objects', app, auth)
- serv.createPerspective("guest").makeIdentity("guest")
- fact = pb.BrokerFactory(pb.AuthRoot(auth))
- app.listenTCP(int(port), fact)
-
-
-# appl = app.Application('pbsimple')
-# appl.listenTCP(8789, pb.BrokerFactory(Block()))
-# appl.run()
diff --git a/LDP/lampadas/lampadas/plugins.tml b/LDP/lampadas/lampadas/plugins.tml
deleted file mode 100644
index 84622572..00000000
--- a/LDP/lampadas/lampadas/plugins.tml
+++ /dev/null
@@ -1,30 +0,0 @@
-register("Lampadas Object Broker",
- "lampadas.pbtap",
- description="Lampadas Documentation Management object server.",
- type="tap",
- tapname="lampadas")
-
-register("Lampadas Data Objects",
- "lampadas.pbobjects",
- description="Lampadas Data Object Server.",
- type="tap",
- tapname="objects")
-
-register("Lampadas Website",
- "lampadas.web",
- description="Lampadas Website.",
- type="tap",
- tapname="lampadasweb")
-
-register("Lampadas Woven Website",
- "lampadas.woven",
- description="Lampadas Woven Website.",
- type="tap",
- tapname="lampadaswoven")
-
-register("Woven Example",
- "lampadas.example",
- description="Woven Example.",
- type="tap",
- tapname="example")
-
diff --git a/LDP/lampadas/lampadas/row.py b/LDP/lampadas/lampadas/row.py
deleted file mode 100644
index a82ead64..00000000
--- a/LDP/lampadas/lampadas/row.py
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/python
-
-from twisted.enterprise import row
-from types import *
-from Globals import trim
-from BaseClasses import LampadasCollection
-
-def rowFactory(Klass, userData, kw):
- newObject = Klass()
- for key in kw.keys():
- value = kw[key]
- if type(value) is StringType:
- value = trim(value)
- kw[key] = value
- newObject.__dict__.update(kw)
- return newObject
-
-class Block(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'block'
- rowKeyColumns = [('block_code', 'varchar')]
- rowColumns = [('block_code', 'varchar'),
- ('block', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
-
-class Document(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'document'
- rowKeyColumns = [('doc_id', 'int')]
- rowColumns = [('doc_id', 'int'),
- ('lang', 'varchar'),
- ('title', 'varchar'),
- ('short_title', 'varchar'),
- ('type_code', 'varchar'),
- ('format_code', 'varchar'),
- ('dtd_code', 'varchar'),
- ('dtd_version', 'varchar'),
- ('version', 'varchar'),
- ('last_update', 'timestamp'),
- ('isbn', 'varchar'),
- ('pub_status_code', 'varchar'),
- ('review_status_code', 'varchar'),
- ('tickle_date', 'timestamp'),
- ('pub_date', 'timestamp'),
- ('tech_review_status_code', 'varchar'),
- ('maintained', 'bool'),
- ('maintainer_wanted', 'bool'),
- ('license_code', 'varchar'),
- ('license_version', 'varchar'),
- ('copyright_holder', 'varchar'),
- ('abstract', 'varchar'),
- ('short_desc', 'varchar'),
- ('rating', 'int'),
- ('sk_seriesid', 'int'),
- ('replaced_by_id', 'int'),
- ('lint_time', 'timestamp'),
- ('pub_time', 'timestamp'),
- ('mirror_time', 'timestamp'),
- ('first_pub_date', 'timestamp'),
- ('encoding', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
-
-class Page(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'page'
- rowKeyColumns = [('page_code', 'varchar')]
- rowColumns = [('page_code', 'varchar'),
- ('section_code', 'varchar'),
- ('sort_order', 'int'),
- ('template_code', 'varchar'),
- ('data', 'varchar'),
- ('only_dynamic', 'bool'),
- ('only_registered', 'bool'),
- ('only_admin', 'bool'),
- ('only_sysadmin', 'bool')]
-
- def __init__(self):
- self.title = LampadasCollection()
- self.menu_name = LampadasCollection()
- self.page = LampadasCollection()
- self.version = LampadasCollection()
-
- def addI18n(self, i18n):
- lang = i18n.lang
- self.title[lang] = i18n.title
- self.menu_name[lang] = i18n.menu_name
- self.page[lang] = i18n.page
- self.version[lang] = i18n.version
-
-class PageI18n(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'page_i18n'
- rowKeyColumns = [('page_code', 'varchar'),
- ('lang', 'varchar')]
- rowColumns = [('page_code', 'varchar'),
- ('lang', 'varchar'),
- ('title', 'text'),
- ('menu_name', 'text'),
- ('page', 'text'),
- ('version', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
- rowForeignKeys = [('page', [('page_code', 'varchar')], [('page_code', 'varchar')], 'addI18n', 1)]
-
-class Section(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'section'
- rowKeyColumns = [('section_code', 'varchar')]
- rowColumns = [('section_code', 'varchar'),
- ('sort_order', 'int'),
- ('only_dynamic', 'bool'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
-
- def __init__(self):
- self.section_name = LampadasCollection()
-
- def addI18n(self, i18n):
- lang = i18n.lang
- self.section_name[lang] = i18n.section_name
-
-class SectionI18n(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'section_i18n'
- rowKeyColumns = [('section_code', 'varchar'),
- ('lang', 'varchar')]
- rowColumns = [('section_code', 'varchar'),
- ('lang', 'varchar'),
- ('section_name', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
- rowForeignKeys = [('section', [('section_code', 'varchar')], [('section_code', 'varchar')], 'addI18n', 1)]
-
-class String(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'string'
- rowKeyColumns = [('string_code', 'varchar')]
- rowColumns = [('string_code', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
-
- def __init__(self):
- self.string = LampadasCollection()
- self.version = LampadasCollection()
-
- def addI18n(self, i18n):
- lang = i18n.lang
- self.string[lang] = i18n.string
- self.version[lang] = i18n.version
-
-class StringI18n(row.RowObject):
- rowFactoryMethod = [rowFactory]
- rowTableName = 'string_i18n'
- rowKeyColumns = [('string_code', 'varchar'),
- ('lang', 'varchar')]
- rowColumns = [('string_code', 'varchar'),
- ('lang', 'varchar'),
- ('string', 'varchar'),
- ('version', 'varchar'),
- ('created', 'timestamp'),
- ('updated', 'timestamp')]
- rowForeignKeys = [('string', [('string_code', 'varchar')], [('string_code', 'varchar')], 'addI18n', 1)]
-
-
-ROW_CLASSES = [Block, Document, Page, PageI18n, Section, SectionI18n, String, StringI18n]
-
diff --git a/LDP/lampadas/lampadas/test.py b/LDP/lampadas/lampadas/test.py
deleted file mode 100755
index 9febb4ae..00000000
--- a/LDP/lampadas/lampadas/test.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/python
-
-"""
-This is a test client, that requests a Perspective
-into the Lampadas Object Service.
-"""
-
-from twisted.python import log
-log.discardLogs()
-from twisted.internet import reactor
-from twisted.spread import pb
-
-def connected(perspective):
- print 'Connected.'
- perspective.callRemote('load').addCallbacks(success, failure)
- perspective.callRemote('page').addCallbacks(success, failure)
-
-def connect_failure(error):
- print "Error connecting to ObjectService.."
- reactor.stop()
-
-def success(block):
- print 'ObjectService gave me block: ' + block.code
- reactor.stop()
-
-def failure(error):
- print "Failed to obtain a block from the ObjectService."
- reactor.stop()
-
-def gotRoot(root):
- print 'Got root: ', root
- print dir(root)
-
-def gotNoRoot(error):
- print 'Failed to obtain root: ', error
-
-pb.connect("localhost", # host name
- 8790, # port number
- "guest", # identity name
- "guest", # password
- "lampadas.objects", # service name
- "guest", # perspective name (usually same as identity)
- 30 # timeout of 30 seconds before connection gives up
- ).addCallbacks(connected, # what to do when we get connected
- connect_failure) # and what to do when we can't
-
-pb.getObjectAt('localhost', 8790, 30).addCallbacks(gotRoot, gotNoRoot)
-reactor.run() # start the main loop
diff --git a/LDP/lampadas/lampadas/web.py b/LDP/lampadas/lampadas/web.py
deleted file mode 100644
index 610a61dd..00000000
--- a/LDP/lampadas/lampadas/web.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/python
-
-from twisted.internet import app
-from twisted.web import server, widgets
-from twisted.python import usage
-from twisted.web.resource import Resource
-from twisted.internet import reactor
-from objects import object_server
-
-class Options(usage.Options):
- optParameters = [["port", "p", 8080,
- "Port to listen with Webserver"]]
-
-class Page(widgets.WidgetPage):
- template = '%%%%self.widget%%%%'
-
-class Gadget(widgets.Gadget):
- def __init__(self):
- print 'Initializing gadget'
- widgets.Gadget.__init__(self)
- self.pageFactory = Page
- self.putWidget('hello', HelloWorld())
- self.putWidget('', HelloWorld())
- print 'connecting object_server...'
- object_server.connect(self.connected)
-
- def connected(self, message):
- print 'object server is connected, loading pages...'
- object_server.page.get_all(self.loaded)
-
- def loaded(self, pages):
- print 'Pages loaded:'
- for row in pages:
- page = WebPage()
- page.row = row
- self.putWidget(page.row.page_code, page)
-
-class WebPage(widgets.Widget):
- def display(self, request):
- return [self.row.page_code]
-
-class HelloWorld(widgets.Widget):
- def display(self, request):
- return ['Hello, world!']
-
-def updateApplication(app, config):
- port = config['port']
- root = Gadget()
- site = server.Site(root)
- app.listenTCP(port, site)
-
-root = Gadget()
-site = server.Site(root)
diff --git a/LDP/lampadas/lampadas/woven.py b/LDP/lampadas/lampadas/woven.py
deleted file mode 100644
index 916fcdb8..00000000
--- a/LDP/lampadas/lampadas/woven.py
+++ /dev/null
@@ -1,391 +0,0 @@
-#!/usr/bin/python
-
-from twisted.internet import app
-from twisted.web import server
-from twisted.python import usage, components
-from twisted.web.resource import Resource
-from twisted.internet import reactor
-from objects import object_server
-
-from twisted.web.woven import model, view, controller, interfaces
-from twisted.web.woven import widgets
-from twisted.web import domhelpers
-import cgi
-import twisted.web
-
-from Globals import state, VERSION
-from URLParse import URI
-from BaseClasses import LampadasCollection
-
-# Custom Widgets
-class I18nTextWidget(widgets.Text):
- def __init__(self, text, raw=1, lang='EN'):
- widgets.Text.__init__(self, text, raw=raw)
- self.lang = lang
-
- def getData(self):
- return widgets.Text.getData(self)[self.lang]
-
-class I18nListWidget(widgets.List):
- def __init__(self, model=None, submodel=None, setup=None, lang='EN'):
- widgets.List.__init__(self, model, submodel, setup)
- self.lang = lang
-
- def getData(self):
- return widgets.List.getData(self)[self.lang]
-
-class SectionBarWidget(widgets.Widget):
- def generateDOM(self, request, node):
- document = widgets.document
-
- self.cleanNode(node)
-
- tr_node = document.createElement('tr')
- node.appendChild(tr_node)
-
- for key in sections.sort_by('sort_order'):
- td_node = document.createElement('td')
- tr_node.appendChild(td_node)
- a_node = document.createElement('a')
- td_node.appendChild(a_node)
-
- section = sections[key].object
- href = '%ssection/%s%s' % (state.uri.base, section.section_code, state.uri.lang_ext)
- name = section.section_name[state.uri.lang]
-
- a_node.setAttribute('href', href)
- text_node = document.createTextNode(name)
- a_node.appendChild(text_node)
- return self.node
-
-# Holds an MVC triad as well as the original row object in a neat package.
-class MVC:
- def __init__(self, rowobject, business_object, object_model, object_view, object_controller):
- self.row = rowobject
- self.object = business_object
- self.model = object_model
- self.view = object_view
- self.controller = object_controller
- self.__dict__.update(rowobject.__dict__)
- self.object.__dict__.update(rowobject.__dict__)
-
-# Parse strings, replacing tokens and text with appropriate widgets.
-def replace_token(token):
- if token=='uri.base':
- return state.uri.base
- elif token=='uri.lang_ext':
- return state.uri.lang_ext
- elif token=='version':
- return VERSION
- elif token=='':
- return ''
-
- print 'Cannot replace token: ', token
- return '%s' % token
-
-def build_items(object, text):
- object.items = []
- counter = 0
- temp = text.replace('\|', 'DCM_PIPE')
- for piece in temp.split('|'):
- counter += 1
- is_text = counter % 2
- if is_text:
- piece = piece.replace('DCM_PIPE', '\|')
- if piece > '':
- object.items.append(piece)
- else:
- if strings.has_key(piece):
- object.items.append(strings[piece].string[lang])
- elif blocks.has_key(piece):
- object.items.append(blocks[piece].block[lang])
- else:
- newstring = replace_token(piece)
- object.items.append(newstring)
- return object.items
-
-def build_lang_items(object, text):
- object.items = LampadasCollection()
- for lang in text.keys():
- counter = 0
- items = []
- temp = text[lang].replace('\|', 'DCM_PIPE')
- for piece in temp.split('|'):
- counter += 1
- is_text = counter % 2
- if is_text:
- piece = piece.replace('DCM_PIPE', '\|')
- if piece > '':
- items.append(piece)
- else:
- if strings.has_key(piece):
- items.append(strings[piece].string[lang])
- elif blocks.has_key(piece):
- items.append(blocks[piece].block[lang])
- else:
- newstring = replace_token(piece)
- items.append(newstring)
- object.items[lang] = items
- return object.items
-
-# Collections of MVC triads.
-# Each collection has its own MVC, and each object in the collection does as well.
-class Blocks(LampadasCollection, model.WModel):
- pass
-
-class Block:
- pass
-
-class Pages(LampadasCollection, model.WModel):
- pass
-
-class Page:
- pass
-
-class Sections(LampadasCollection, model.WModel):
- pass
-
-class Section:
- pass
-
-class Strings(LampadasCollection, model.WModel):
- pass
-
-class String:
- pass
-
-blocks = Blocks()
-pages = Pages()
-sections = Sections()
-strings = Strings()
-
-class MBlock(model.WModel):
- def __init__(self, rowobject):
- model.WModel.__init__(self)
- self.rowobject = rowobject
- self.block_code = rowobject.block_code
- self.block = rowobject.block
-
-class VBlock(view.WView):
- def wvfactory_block_code(self, request, node, model):
- domhelpers.clearNode(node)
- return widgets.Text(model)
-
- def wvfactory_block(self, request, node, model):
- domhelpers.clearNode(node)
- return widgets.Text(model)
-
- def wvfactory_block_items(self, request, node, model):
- block_object = blocks[self.model.block_code].object
- build_items(block_object, block_object.block)
- return widgets.List(block_object.items)
-
-class CBlock(controller.WController):
- pass
-
-view.registerViewForModel(VBlock, MBlock)
-controller.registerControllerForModel(CBlock, MBlock)
-
-
-class MPage(model.WModel):
- def __init__(self, rowobject):
- model.WModel.__init__(self)
- self.__dict__.update(rowobject.__dict__)
-
-class VPage(widgets.Widget):
-
- templateFile = 'index.xhtml'
-
- def setUp(self, request, document):
- pass
-
- def wvfactory_title(self, request, node, model):
- page_object = pages[self.model.page_code]
- build_lang_items(page_object.title, page_object.title)
- return widgets.List(page_object.title.items[self.lang])
-
- return I18nTextWidget(model, lang=self.lang)
-
- def wvfactory_page_code(self, request, node, model):
- return widgets.Text(model)
-
- def wvfactory_page(self, request, node, model):
- return I18nTextWidget(model, lang=self.lang)
-
- def wvfactory_page_items(self, request, node, model):
- page_object = pages[self.model.page_code].object
- build_lang_items(page_object, page_object.page)
- return widgets.List(page_object.items[self.lang])
-
- def wvfactory_menu(self, request, node, model):
- return widgets.List(sections.keys())
-
- def wvfactory_section_bar(self, request, node, model):
- return SectionBarWidget()
-
-class CPage(controller.WController):
- pass
-
-view.registerViewForModel(VPage, MPage)
-controller.registerControllerForModel(CPage, MPage)
-
-
-class MString(model.WModel):
- def __init__(self, rowobject):
- model.WModel.__init__(self)
- self.__dict__.update(rowobject.__dict__)
-
-class VString(widgets.Widget):
-
- templateFile = 'index.xhtml'
-
- def setUp(self, request, document):
- pass
-
- def wvfactory_string_code(self, request, node, model):
- return widgets.Text(model)
-
- def wvfactory_string(self, request, node, model):
- return I18nTextWidget(model, lang=self.lang)
-
- def wvfactory_string_items(self, request, node, model):
- string_object = strings[self.model.string_code].object
- build_lang_items(string_object, string_object.string)
- return widgets.List(string_object.items[self.lang])
-
- def wvfactory_version(self, request, node, model):
- return I18nTextWidget(model, lang=self.lang)
-
-class CString(controller.WController):
- pass
-
-view.registerViewForModel(VString, MString)
-controller.registerControllerForModel(CString, MString)
-
-
-class MSection(model.DictionaryModel):
- def __init__(self, orig, *args, **kwargs):
- model.Model.__init__(self, *args, **kwargs)
- model.DictionaryModel.__init__(self, orig)
-
-class VSection(widgets.Widget):
- def wvfactory_title(self, request, node, model):
- return widgets.List(model)
-
-class CSection(controller.WController):
- pass
-
-view.registerViewForModel(VSection, MSection)
-controller.registerControllerForModel(CSection, MSection)
-
-
-class MList(model.ListModel):
- def __init__(self, orig, *args, **kwargs):
- model.Model.__init__(self, *args, **kwargs)
- model.ListModel.__init__(self, orig)
-
-class VList(widgets.Widget):
- def wvfactory_list(self, request, node, model):
- #domhelpers.clearNode(node)
- return widgets.List(model)
-
-class CList(controller.WController):
- pass
-
-view.registerViewForModel(VList, MList)
-controller.registerControllerForModel(CList, MList)
-
-
-class Options(usage.Options):
- optParameters = [["port", "p", 8080,
- "Port to listen with Webserver"]]
-
-class WidgetPage(twisted.web.widgets.WidgetPage):
- template = '%%%%self.widget%%%%'
-
-class Gadget(twisted.web.widgets.Gadget):
- def __init__(self):
- twisted.web.widgets.Gadget.__init__(self)
- self.tables_loaded = 0
- self.pageFactory = WidgetPage
- object_server.connect(self.connected)
-
- def connected(self, message):
- object_server.section.get_all(self.loaded_sections)
- object_server.string.get_all(self.loaded_strings)
- object_server.block.get_all(self.loaded_blocks)
-
- def loaded_blocks(self, blockrows):
- for blockrow in blockrows:
- block_object = Block()
- block_model = MBlock(blockrow)
- block_view = VBlock(block_model)
- block_controller = CBlock(block_model)
- block_controller.setView(block_view)
- block_mvc = MVC(blockrow, block_object, block_model, block_view, block_controller)
- blocks[blockrow.block_code] = block_mvc
- print 'Blocks loaded.'
- self.tables_loaded += 1
- if self.tables_loaded==3:
- self.load_pages()
-
- def load_pages(self):
- object_server.page.get_all(self.loaded_pages)
-
- def loaded_pages(self, pagerows):
- for pagerow in pagerows:
- page_object = Page()
- page_model = MPage(pagerow)
- page_view = VPage(page_model)
- page_controller = CPage(page_model)
- page_controller.setView(page_view)
- page_mvc = MVC(pagerow, page_object, page_model, page_view, page_controller)
- pages[pagerow.page_code] = page_mvc
- print 'Pages loaded.'
-
- def loaded_sections(self, sectionrows):
- for sectionrow in sectionrows:
- section_object = Section()
- section_model = MSection(sectionrow)
- section_view = VSection(section_model)
- section_controller = CSection(section_model)
- section_controller.setView(section_view)
- section_mvc = MVC(sectionrow, section_object, section_model, section_view, section_controller)
- sections[sectionrow.section_code] = section_mvc
- print 'Sections loaded.'
- self.tables_loaded += 1
- if self.tables_loaded==3:
- self.load_pages()
-
- def loaded_strings(self, stringrows):
- for stringrow in stringrows:
- string_object = String()
- string_model = MString(stringrow)
- string_view = VString(string_model)
- string_controller = CString(string_model)
- string_controller.setView(string_view)
- string_mvc = MVC(stringrow, string_object, string_model, string_view, string_controller)
- strings[stringrow.string_code] = string_mvc
- print 'Strings loaded.'
- self.tables_loaded += 1
- if self.tables_loaded==3:
- self.load_pages()
-
- def getChild(self, path, request):
- state.uri = URI(request.path)
- if pages.has_key(state.uri.page_code):
- resource = pages[state.uri.page_code].view
- else:
- resource = pages['404'].view
- resource.lang = state.uri.lang
- return resource
-
-def updateApplication(app, config):
- port = config['port']
- root = Gadget()
- site = server.Site(root)
- app.listenTCP(port, site)
-
-root = Gadget()
-site = server.Site(root)
-