[Hepserver-commits] hep/hep/web messages.py,1.3,1.4 models.py,1.3,1.4
Status: Alpha
Brought to you by:
abefettig
|
From: <abe...@us...> - 2003-08-12 20:21:07
|
Update of /cvsroot/hepserver/hep/hep/web
In directory sc8-pr-cvs1:/tmp/cvs-serv16562/hep/web
Modified Files:
messages.py models.py
Log Message:
made nav tree use a generic View and Model,
so it can be used accross all pages.
Index: messages.py
===================================================================
RCS file: /cvsroot/hepserver/hep/hep/web/messages.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** messages.py 7 Aug 2003 17:00:26 -0000 1.3
--- messages.py 12 Aug 2003 17:42:34 -0000 1.4
***************
*** 60,63 ****
--- 60,70 ----
+ class LinkWithAttributes(widgets.Link):
+ def setUp(self, request, node, data):
+ widgets.Link.setUp(self, request, node, data)
+ for attr in data.keys():
+ if attr not in ('href', 'text'):
+ node.setAttribute(attr, data[attr])
+
class MessageWidget(widgets.Widget):
def setUp(self, request, node, message):
***************
*** 74,82 ****
div.text(message.getHTML(bodyOnly=1, safeTagsOnly=1) or "", raw=1)
div.div(_class='timestamp').small().text("%s, %s" % (
! message['author'].address and message['author'] or message['author'].name,
time.strftime('%I:%M %p', message.getTimestamp())))
class BlogView(view.View):
-
templateDirectory = sibpath(hep.web.__file__, 'templates')
templateFile = "blogview.html"
--- 81,88 ----
div.text(message.getHTML(bodyOnly=1, safeTagsOnly=1) or "", raw=1)
div.div(_class='timestamp').small().text("%s, %s" % (
! message['author'].address and message['author'] or message['author'].name or "Unknown Author",
time.strftime('%I:%M %p', message.getTimestamp())))
class BlogView(view.View):
templateDirectory = sibpath(hep.web.__file__, 'templates')
templateFile = "blogview.html"
***************
*** 86,93 ****
self.setSubviewFactory("message", MessageWidget)
self.setSubviewFactory("calendar", Calendar)
-
! class MessagesPage(page.Page):
!
templateDirectory = sibpath(hep.web.__file__, 'templates')
templateFile = "messages.html"
--- 92,118 ----
self.setSubviewFactory("message", MessageWidget)
self.setSubviewFactory("calendar", Calendar)
! appendModel = widgets.appendModel
! class Tree(widgets.List):
! def _iterateData(self, parentNode, submodel, data):
! currentListItem = 0
! retVal = [None] * len(data)
! for itemNum in range(len(data)):
! newNode = self.getPattern('listItem')
! if newNode.getAttribute('model') == '.':
! newNode.removeAttribute('model')
! elif not newNode.attributes.get("view"):
! newNode.attributes["view"] = self.defaultItemView
! appendModel(newNode, "%i/0" % itemNum)
! retVal[itemNum] = newNode
! newNode.parentNode = parentNode
! if data[itemNum][1]:
! newParent = self.templateNode.cloneNode(1)
! newParent.attributes['model'] = '../1'
! newNode.appendChild(newParent)
! self._iterateData(newParent, "", data[itemNum][1])
! parentNode.childNodes.extend(retVal)
!
! class MessagesPage(page.Page):
templateDirectory = sibpath(hep.web.__file__, 'templates')
templateFile = "messages.html"
***************
*** 95,129 ****
def initialize(self, *args, **kwargs):
! self.setSubviewFactory("blogview", BlogView)
!
! def wvupdate_folderList(self, request, node, data):
! stores = data.items()
! item = lmx(node)
! list = item.ul()
! stores.sort(lambda a, b: cmp(
! [a[0].startswith('Connections'), a[0].lower()],
! [b[0].startswith('Connections'), b[0].lower()]
! ))
! depth = 1
! for storePath, store in stores:
! difference = storePath.count('/') - depth
! if difference == 1:
! list = item.ul()
! elif difference < 0:
! for n in range(abs(difference)):
! if list.node.parentNode:
! list = lmx(list.node.parentNode.parentNode)
! else:
! break
!
! item = list.li()
! a = item.a(href='/'.join(['', 'messages', storePath, '']))
! if '/'.join(request.postpath).strip('/') == storePath.strip('/'):
! a['class'] = 'selected'
! a.img(src='/images/icons/small/%s.png' % store.url.protocol, align='absmiddle')
! storeName = storePath.split('/')[-1]
! a.text(len(storeName) > 18 and (storeName[:16] + '...') or storeName)
!
! depth = depth + difference
!
! #components.registerAdapter(StoreModel, messaging.MessageStore, interfaces.IModel)
\ No newline at end of file
--- 120,124 ----
def initialize(self, *args, **kwargs):
! self.setSubviewFactory("pageContent", BlogView)
! self.setSubviewFactory("Tree", Tree)
! self.setSubviewFactory("linkWithAttributes", LinkWithAttributes)
Index: models.py
===================================================================
RCS file: /cvsroot/hepserver/hep/hep/web/models.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** models.py 7 Aug 2003 17:00:26 -0000 1.3
--- models.py 12 Aug 2003 17:42:34 -0000 1.4
***************
*** 1,2 ****
--- 1,3 ----
+ from __future__ import nested_scopes
from twisted.internet import defer
from twisted.web.woven import model
***************
*** 10,14 ****
def getStore(self, request):
path = "/".join(request.postpath).strip('/')
- print "PATH", path
if path:
return self.user.messages.openChildStores().addCallback(lambda stores: stores.get(path) or self.user.messages)
--- 11,14 ----
***************
*** 16,20 ****
return defer.succeed(self.user.messages)
! def wmfactory_messages(self, request):
finished = defer.Deferred()
self.getStore(request).addCallback(
--- 16,20 ----
return defer.succeed(self.user.messages)
! def wmfactory_messages(self, request):
finished = defer.Deferred()
self.getStore(request).addCallback(
***************
*** 22,29 ****
)
return finished
!
! def wmfactory_connectionList(self, request):
! allChildren = self.user.messages.openChildStores()
! return allChildren
def wmfactory_storeName(self, request):
--- 22,60 ----
)
return finished
!
! def wmfactory_name(self, request):
! return self.user.name
!
! def wmfactory_treeData(self, request):
! if request.prepath[0] == 'messages':
! def buildHierarchy(storeList):
! storeList = storeList.items()
! storeList.sort(lambda a, b: cmp(
! [a[0].startswith('Connections'), a[0].lower()],
! [b[0].startswith('Connections'), b[0].lower()]
! ))
! hierarchy = []
! for path, store in storeList:
! pathParts = path.split('/')
! branch = pathParts[:-1]
! leaf = pathParts[-1]
! currentList = hierarchy
! for level in branch:
! currentList = currentList[-1][1]
! label= store.name or leaf
! if len(label) > 18: label = label[:15] + "..."
! currentList.append([{'text':label,
! 'href':"/".join(('', 'messages', path)),
! 'icon':'/images/icons/small/%s.png' % store.url.protocol,
! }, []])
! return hierarchy
!
! d = self.user.messages.openChildStores()
! d.addCallback(buildHierarchy)
! return d
! elif request.prepath[0] == 'setup':
! return self.user.connections.keys()
! else:
! return []
def wmfactory_storeName(self, request):
***************
*** 39,42 ****
--- 70,81 ----
return {'href':'/perspective-destroy', 'text':'Log Out'}
+ def wmfactory_tabs(self, request):
+ if self.user.name == 'anonymous':
+ return ()
+ else:
+ return ({'href':'/messages', 'text':'Messages', 'class':'active'},
+ {'href':'/setup', 'text':'Setup'},
+ {'href':'/docs', 'text':'Documentaton'},
+ )
def gotList(self, messageList, store, request, finished):
|