[Checkins] SVN: Sandbox/luciano/kirbi/src/kirbi/ further
refactoring of interfaces and templates
Luciano Ramalho
luciano at ramalho.org
Tue Aug 14 21:47:55 EDT 2007
Log message for revision 78830:
further refactoring of interfaces and templates
Changed:
U Sandbox/luciano/kirbi/src/kirbi/interfaces.py
U Sandbox/luciano/kirbi/src/kirbi/user.py
-=-
Modified: Sandbox/luciano/kirbi/src/kirbi/interfaces.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/interfaces.py 2007-08-15 01:37:59 UTC (rev 78829)
+++ Sandbox/luciano/kirbi/src/kirbi/interfaces.py 2007-08-15 01:47:54 UTC (rev 78830)
@@ -2,6 +2,15 @@
from zope import schema
from isbn import isValidISBN
+class IUser(Interface):
+ """A Kirbi user"""
+ login = schema.TextLine(title=u"Login",
+ required=True)
+ name = schema.TextLine(title=u"Name",
+ required=False)
+ password = schema.Password(title=u"Password",
+ required=True)
+
class InvalidISBN(schema.ValidationError):
"""This is not a valid ISBN-10 or ISBN-13"""
@@ -54,4 +63,6 @@
def titleOrIsbnGiven(book):
if (not book.title or not book.title.strip()) and (not book.isbn):
raise Invalid('Either the title or the ISBN must be given.')
+
+
Modified: Sandbox/luciano/kirbi/src/kirbi/user.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/user.py 2007-08-15 01:37:59 UTC (rev 78829)
+++ Sandbox/luciano/kirbi/src/kirbi/user.py 2007-08-15 01:47:54 UTC (rev 78830)
@@ -1,4 +1,5 @@
import grok
+from interfaces import IUser
from zope.app.authentication.interfaces import IPrincipalInfo
from zope.interface import Interface, implements, invariant, Invalid
from zope import schema
@@ -6,15 +7,6 @@
class UserFolder(grok.Container):
pass
-
-class IUser(Interface):
- """A Kirbi user"""
- login = schema.TextLine(title=u"Login",
- required=True)
- name = schema.TextLine(title=u"Name",
- required=False)
- password = schema.Password(title=u"Password",
- required=True)
class User(grok.Container):
"""A Kirbi user implementation.
@@ -54,7 +46,16 @@
class Index(grok.View):
grok.context(User)
+
+ def menu_items(self):
+ return [
+ {'url':self.url(self.context.__parent__,'join'),
+ 'text':u'join'},
+ {'url':'''http://circulante.incubadora.fapesp.br/''',
+ 'text':u'about'},
+ ]
+
class PrincipalInfoAdapter(grok.Adapter):
grok.context(User)
grok.implements(IPrincipalInfo)
@@ -85,6 +86,15 @@
class UserSearch(grok.View):
grok.context(UserFolder)
grok.name('index')
+
+ def menu_items(self):
+ return [
+ {'url':self.url('join'),
+ 'text':u'join'},
+ {'url':'''http://circulante.incubadora.fapesp.br/''',
+ 'text':u'about'},
+ ]
+
def update(self, query=None):
self.results_title = '%d users' % len(self.context)
More information about the Checkins
mailing list