[Checkins] SVN: Sandbox/luciano/kirbi/src/kirbi/ begin user
managament work
Luciano Ramalho
luciano at ramalho.org
Sat Aug 11 23:20:41 EDT 2007
Log message for revision 78751:
begin user managament work
Changed:
U Sandbox/luciano/kirbi/src/kirbi/app.py
U Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt
U Sandbox/luciano/kirbi/src/kirbi/pac.py
U Sandbox/luciano/kirbi/src/kirbi/pac_templates/addbooks.pt
U Sandbox/luciano/kirbi/src/kirbi/pac_templates/index.pt
A Sandbox/luciano/kirbi/src/kirbi/users.py
A Sandbox/luciano/kirbi/src/kirbi/users_templates/
A Sandbox/luciano/kirbi/src/kirbi/users_templates/index.pt
-=-
Modified: Sandbox/luciano/kirbi/src/kirbi/app.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/app.py 2007-08-12 01:50:06 UTC (rev 78750)
+++ Sandbox/luciano/kirbi/src/kirbi/app.py 2007-08-12 03:20:40 UTC (rev 78751)
@@ -2,6 +2,7 @@
from grok import index
from kirbi.pac import Pac
from kirbi.book import Book
+from kirbi.users import UserFolder
from zope.interface import Interface
class Kirbi(grok.Application, grok.Container):
@@ -9,6 +10,7 @@
def __init__(self):
super(Kirbi, self).__init__()
self['pac'] = Pac()
+ self['users'] = UserFolder()
class Index(grok.View):
pass # see app_templates/index.pt
@@ -28,3 +30,4 @@
class Master(grok.View):
""" The master page template macro """
grok.context(Interface)
+
Modified: Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt 2007-08-12 01:50:06 UTC (rev 78750)
+++ Sandbox/luciano/kirbi/src/kirbi/app_templates/master.pt 2007-08-12 03:20:40 UTC (rev 78751)
@@ -28,7 +28,7 @@
<ul>
<li><a tal:attributes="href python:view.application_url('pac')">catalog</a></li>
<li><a tal:attributes="href python:view.application_url()">collection</a></li>
- <li><a tal:attributes="href python:view.application_url()">friends</a></li>
+ <li><a tal:attributes="href python:view.application_url('users')">users</a></li>
<li><a tal:attributes="href python:view.application_url()">leases</a></li>
<li><a tal:attributes="href python:view.application_url('pac')+'/incomplete'">incomplete</a></li>
</ul>
Modified: Sandbox/luciano/kirbi/src/kirbi/pac.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/pac.py 2007-08-12 01:50:06 UTC (rev 78750)
+++ Sandbox/luciano/kirbi/src/kirbi/pac.py 2007-08-12 03:20:40 UTC (rev 78751)
@@ -109,8 +109,6 @@
# XXX: if the query is empty, return all books; this should change
# to some limited default search criteria or none at all
results = self.context.values()
- if not results:
- self.demo_link = True # flag to display Import demo collection
self.results_title = 'All items'
else:
query = query.strip()
@@ -165,12 +163,13 @@
def update(self, isbns=None):
if isbns is not None:
- isbns = isbns.split()
+ isbns = list(set(isbns.split()))
+ self.invalid_isbns = []
for isbn in isbns:
- self.invalid_isbns = []
if isValidISBN(isbn):
book = Book(isbn=isbn)
- self.context.addBook(book)
+ if book.isbn13 not in self.context:
+ self.context.addBook(book)
else:
self.invalid_isbns.append(isbn)
Modified: Sandbox/luciano/kirbi/src/kirbi/pac_templates/addbooks.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/pac_templates/addbooks.pt 2007-08-12 01:50:06 UTC (rev 78750)
+++ Sandbox/luciano/kirbi/src/kirbi/pac_templates/addbooks.pt 2007-08-12 03:20:40 UTC (rev 78751)
@@ -29,13 +29,14 @@
or ISBN-13.
</p>
</form>
-
- <form tal:condition="view/demo_link|nothing"
- tal:attributes="action python:view.url('importdemo')" method="post">
+ <hr />
+ <p>
+ <form tal:attributes="action python:view.url('importdemo')" method="post">
+ If you have no ISBNs on hand, you can
<input type="submit" value="Import a demo collection">
</form>
+ </p>
-
</div>
</body>
</html>
Modified: Sandbox/luciano/kirbi/src/kirbi/pac_templates/index.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/pac_templates/index.pt 2007-08-12 01:50:06 UTC (rev 78750)
+++ Sandbox/luciano/kirbi/src/kirbi/pac_templates/index.pt 2007-08-12 03:20:40 UTC (rev 78751)
@@ -36,11 +36,6 @@
</tr>
</table>
- <form tal:condition="view/demo_link|nothing"
- tal:attributes="action python:view.url('importdemo')" method="post">
- <input type="submit" value="Import a demo collection">
- </form>
-
<p><a tal:attributes="href python:view.url('addbook')">
Add Book
</a></p>
Added: Sandbox/luciano/kirbi/src/kirbi/users.py
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/users.py (rev 0)
+++ Sandbox/luciano/kirbi/src/kirbi/users.py 2007-08-12 03:20:40 UTC (rev 78751)
@@ -0,0 +1,28 @@
+import grok
+from zope.app.authentication.principalfolder import PrincipalFolder, PrincipalInfo, InternalPrincipal
+from zope.app.authentication.interfaces import IPrincipalInfo
+
+
+class UserFolder(grok.Container, PrincipalFolder):
+ pass
+
+class User(InternalPrincipal):
+ pass
+
+class Index(grok.View):
+ grok.context(UserFolder)
+ def update(self, query=None):
+ self.results_title = '%d users' % len(self.context)
+
+
+class Register(grok.AddForm):
+ grok.context(UserFolder)
+ """ User registration form """
+
+ form_fields = grok.AutoFields(IPrincipalInfo)
+
+ @grok.action('Add entry')
+ def add(self, **data):
+ self.context[id] = User(**data)
+ self.redirect(self.url('users'))
+
Added: Sandbox/luciano/kirbi/src/kirbi/users_templates/index.pt
===================================================================
--- Sandbox/luciano/kirbi/src/kirbi/users_templates/index.pt (rev 0)
+++ Sandbox/luciano/kirbi/src/kirbi/users_templates/index.pt 2007-08-12 03:20:40 UTC (rev 78751)
@@ -0,0 +1,28 @@
+<html metal:use-macro="context/@@master/page">
+<head>
+ <title metal:fill-slot="title">
+ Public Catalog
+ </title>
+
+</head>
+<body>
+ <span metal:fill-slot="content_title">Users</span>
+ <span metal:fill-slot="content_actions">
+ <form class="search" action=".">
+ <input type="text" name="query">
+ <input type="submit" name="submit" value="search">
+ </form>
+ </span>
+ <div metal:fill-slot="content">
+
+ <h3 tal:content="view/results_title">999 items matched the query</h3>
+ <table>
+ <tr tal:repeat="item view/context/keys">
+ <th align="right" tal:content="repeat/item/number" />
+ <td tal:content="item/id" />
+ </tr>
+ </table>
+
+ </div>
+</body>
+</html>
More information about the Checkins
mailing list