[Checkins] SVN: grokapps/PlainLoginDemo/ added delete button to member listing

Luciano Ramalho luciano at ramalho.org
Mon Jan 14 18:54:29 EST 2008


Log message for revision 82878:
  added delete button to member listing

Changed:
  U   grokapps/PlainLoginDemo/README.txt
  U   grokapps/PlainLoginDemo/buildout.cfg
  U   grokapps/PlainLoginDemo/setup.py
  U   grokapps/PlainLoginDemo/src/plainlogindemo/app.py
  U   grokapps/PlainLoginDemo/src/plainlogindemo/app_templates/listing.pt

-=-
Modified: grokapps/PlainLoginDemo/README.txt
===================================================================
--- grokapps/PlainLoginDemo/README.txt	2008-01-14 20:58:02 UTC (rev 82877)
+++ grokapps/PlainLoginDemo/README.txt	2008-01-14 23:54:29 UTC (rev 82878)
@@ -1,4 +1,4 @@
-LoginDemo is a sample application showing how to implement user account
+PlainLoginDemo is a sample application showing how to implement user account
 creation and login using Grok. 
 
 Main features
@@ -14,7 +14,7 @@
 
 - member listing page is protected by permission, requiring user log in
 
-- good functional test coverage (see text files in src/logindemo/ftests)
+- good functional test coverage (see text files in src/plainlogindemo/ftests)
 
 Todo
 ----

Modified: grokapps/PlainLoginDemo/buildout.cfg
===================================================================
--- grokapps/PlainLoginDemo/buildout.cfg	2008-01-14 20:58:02 UTC (rev 82877)
+++ grokapps/PlainLoginDemo/buildout.cfg	2008-01-14 23:54:29 UTC (rev 82878)
@@ -11,11 +11,11 @@
 
 [app]
 recipe = zc.zope3recipes>=0.5.3:application
-eggs = LoginDemo
-site.zcml = <include package="logindemo" />
+eggs = PlainLoginDemo
+site.zcml = <include package="plainlogindemo" />
             <include package="zope.app.twisted" />
 
-            <configure i18n_domain="logindemo">
+            <configure i18n_domain="plainlogindemo">
               <unauthenticatedPrincipal id="zope.anybody"
                                         title="Unauthenticated User" />
               <unauthenticatedGroup id="zope.Anybody"
@@ -56,13 +56,13 @@
 
 [test]
 recipe = zc.recipe.testrunner
-eggs = LoginDemo
+eggs = PlainLoginDemo
 defaults = ['--tests-pattern', '^f?tests$', '-v']
 
 # this section named so that the i18n scripts are called bin/i18n...
 [i18n]
 recipe = lovely.recipe:i18n
-package = logindemo
-domain = logindemo
-location = src/logindemo
+package = plainlogindemo
+domain = plainlogindemo
+location = src/plainlogindemo
 output = locales

Modified: grokapps/PlainLoginDemo/setup.py
===================================================================
--- grokapps/PlainLoginDemo/setup.py	2008-01-14 20:58:02 UTC (rev 82877)
+++ grokapps/PlainLoginDemo/setup.py	2008-01-14 23:54:29 UTC (rev 82878)
@@ -2,7 +2,7 @@
 
 version = '0.0'
 
-setup(name='LoginDemo',
+setup(name='PlainLoginDemo',
       version=version,
       description="",
       long_description="""\

Modified: grokapps/PlainLoginDemo/src/plainlogindemo/app.py
===================================================================
--- grokapps/PlainLoginDemo/src/plainlogindemo/app.py	2008-01-14 20:58:02 UTC (rev 82877)
+++ grokapps/PlainLoginDemo/src/plainlogindemo/app.py	2008-01-14 23:54:29 UTC (rev 82878)
@@ -152,7 +152,7 @@
 
     grok.require('plainlogindemo.ViewMemberListing')
 
-    def fieldNames(self):
+    def field_names(self):
         # failed attempt to list fields but not methods; this returns empty
         # return (f for f in IInternalPrincipal if IField.providedBy(f))
         
@@ -169,10 +169,14 @@
         for id in sorted(principals.keys()):
             user = principals[id]
             fields = {}
-            for field in self.fieldNames():
+            for field in self.field_names():
                 fields[field] = getattr(user, field)
             roster.append(fields)
         return roster
+    
+    def delete_allowed(self):
+        # XXX: this is not the right way to do it... it's just a test
+        return self.request.principal.id.endswith('.manager')
 
 class PasswordManagerChoices(object):
     implements(IIterableSource)

Modified: grokapps/PlainLoginDemo/src/plainlogindemo/app_templates/listing.pt
===================================================================
--- grokapps/PlainLoginDemo/src/plainlogindemo/app_templates/listing.pt	2008-01-14 20:58:02 UTC (rev 82877)
+++ grokapps/PlainLoginDemo/src/plainlogindemo/app_templates/listing.pt	2008-01-14 23:54:29 UTC (rev 82878)
@@ -4,12 +4,17 @@
     <h1>Member Listing</h1>
     
     <table>
-        <tr><th tal:repeat="field view/fieldNames"
+        <tr><th tal:repeat="field view/field_names"
                 tal:content="field">Field name</th></tr>
-        <tr tal:repeat="member view/members">
+        <tr valign="top" tal:repeat="member view/members">
             <td bgcolor="lightgray"
-                tal:repeat="field view/fieldNames"
+                tal:repeat="field view/field_names"
                 tal:content="python:member[field]"></td>
+            <td tal:condition="view/delete_allowed">
+                <form tal:attributes="action view/url" method="post">
+                    <input type="submit" value="Delete" />
+                </form>
+            </td>
         </tr>
     </table>
 </div>



More information about the Checkins mailing list