[Checkins] SVN: grokui.admin/trunk/src/grokui/admin/view moved "view" module to "views" as it contains more than one view :)

Souheil CHELFOUH souheil at chelfouh.com
Mon Feb 22 13:05:04 EST 2010


Log message for revision 109314:
  moved "view" module to "views" as it contains more than one view :)
  

Changed:
  D   grokui.admin/trunk/src/grokui/admin/view.py
  D   grokui.admin/trunk/src/grokui/admin/view_templates/
  A   grokui.admin/trunk/src/grokui/admin/views.py
  A   grokui.admin/trunk/src/grokui/admin/views_templates/

-=-
Deleted: grokui.admin/trunk/src/grokui/admin/view.py
===================================================================
--- grokui.admin/trunk/src/grokui/admin/view.py	2010-02-22 18:01:03 UTC (rev 109313)
+++ grokui.admin/trunk/src/grokui/admin/view.py	2010-02-22 18:05:03 UTC (rev 109314)
@@ -1,190 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Views for the grok admin UI"""
-
-import grok
-
-from BTrees.OOBTree import OOBTree
-from grokui.base import IGrokUIRealm, GrokUIView
-from grokui.admin.interfaces import ISecurityNotifier
-from grokui.admin.utilities import getVersion, getURLWithParams
-from grokui.admin.security import MSG_DISABLED
-
-from zope.site.interfaces import IRootFolder
-from zope.exceptions import DuplicationError
-from zope.component import getUtility, queryUtility
-
-grok.context(IGrokUIRealm)
-grok.templatedir("templates")
-
-
-class ManageApplications(grok.Permission):
-    grok.name('grok.ManageApplications')
-
-
-class GrokAdminInfoView(grok.View):
-    """A base to provide machinereadable views.
-    """
-    grok.name('admin')
-    grok.require('grok.ManageApplications')
-    
-    def render(self):
-        return u'go to @@version or @@secnotes'
-
-
-class GrokAdminVersion(grok.View):
-    """Display version of a package.
-
-    Call this view via http://localhost:8080/@@admin/@@version to
-    get the used grok version. Call
-    http://localhost:8080/@@admin/@@version?pkg=<pkgname> to get
-    the used version of package <pkgname>.
-    """
-    grok.name('version')
-    grok.context(GrokAdminInfoView)
-    grok.require('grok.ManageApplications')
-    
-    def render(self, pkg='grok'):
-        return u'%s %s' % (pkg, getVersion(pkg))
-
-
-class GrokAdminSecurityNotes(grok.View):
-    """Display current security notification.
-
-    Call this view via http://localhost:8080/@@admin/@@secnote
-    """
-    grok.name('secnote')
-    grok.context(GrokAdminInfoView)
-    grok.require('grok.ManageApplications')
-    
-    def render(self):
-        notifier = queryUtility(ISecurityNotifier, default=None)
-        return (notifier is not None and notifier.getNotification()
-                or MSG_DISABLED)
-
-
-class Add(grok.View):
-    """Add an application.
-    """
-    grok.require('grok.ManageApplications')
-
-    def update(self, inspectapp=None, application=None):
-        if inspectapp is not None:
-            self.redirect(self.url("docgrok") + "/%s/index"%(
-                    application.replace('.','/'),))
-        return
-
-    def render(self, application, name, inspectapp=None):
-        if name is None or name == "":
-            self.redirect(self.url(self.context, 'applications'))
-            return
-        if name is None or name == "":
-            self.redirect(self.url(self.context, 'applications'))
-            return
-        app = getUtility(grok.interfaces.IApplication, name=application)
-        try:
-            new_app = app()
-            grok.notify(grok.ObjectCreatedEvent(new_app))
-            self.context.root[name] = new_app
-            self.flash(u'Added %s `%s`.' % (application, name))
-        except DuplicationError:
-            self.flash(u'Name `%s` already in use. '
-                       u'Please choose another name.' % (name,))
-        self.redirect(self.url(self.context, 'applications'))
-
-
-class ManageApps(grok.View):
-    """Manage applications (delete, rename).
-    """
-
-    grok.require('grok.ManageApplications')
-
-    def delete(self, items):
-        """Delete applications in items.
-        """
-        msg = u''
-        for name in items:
-            try:
-                del self.context.root[name]
-                msg = (u'%sApplication `%s` was successfully '
-                       u'deleted.\n' % (msg, name))
-            except AttributeError:
-                # Object is broken.. Try it the hard way...
-                # TODO: Try to repair before deleting.
-                obj = self.context.root[name]
-                if not hasattr(self.context.root, 'data'):
-                    msg = (
-                        u'%sCould not delete application `%s`: no '
-                        u'`data` attribute found.\n' % (msg, name))
-                    continue
-                if not isinstance(self.context.root.data, OOBTree):
-                    msg = (
-                        u'%sCould not delete application `%s`: no '
-                        u'`data` is not a BTree.\n' % (msg, name))
-                    continue
-                self.context.root.data.pop(name)
-                self.context.root.data._p_changed = True
-                msg = (u'%sBroken application `%s` was successfully '
-                       u'deleted.\n' % (msg, name))
-
-        self.flash(msg)
-        self.redirect(self.url(self.context, 'applications'))
-
-    def render(self, rename=None, delete=None, items=None):
-
-        if items is None:
-            return self.redirect(self.url(self.context, 'applications'))
-
-        if not isinstance(items, list):
-            items = [items]
-
-        if delete is not None:
-            return self.delete(items)
-        elif rename is not None:
-            return self.redirect(getURLWithParams(
-                    self.url(self.context, '@@grokadmin_rename'),
-                    data=dict(items=items)))
-        self.redirect(self.url(self.context, 'applications'))
-
-
-class Rename(GrokUIView):
-    """Rename Grok applications.
-    """
-    grok.name('grokadmin_rename')
-    grok.template('rename')
-    grok.require('grok.ManageApplications')
-
-    def update(self, cancel=None, items=None, new_names=None):
-        msg = u''
-
-        if cancel is not None or not items:
-            return self.redirect(self.url(self.context, 'applications'))
-
-        if not isinstance(items, list):
-            items = [items]
-        self.apps = items
-
-        if new_names is not None and len(new_names) != len(items):
-            return self.redirect(self.url(self.context, 'applications'))
-
-        if new_names is None:
-            return
-
-        mapping = dict([(items[x], new_names[x]) for x in range(len(items))])
-        root = self.context.__parent__
-        existing = root.keys()
-
-        for oldname, newname in mapping.items():
-            if oldname == newname:
-                continue
-            if oldname not in existing:
-                self.flash('Could not rename %s: not found' % oldname)
-                continue
-            if newname in existing:
-                self.flash('`%s` already exists.' % newname)
-                continue
-            root[newname] = root[oldname]
-            root[newname].__name__ = newname
-            del root[oldname]
-            self.flash('Renamed `%s` to `%s`.' % (oldname, newname))
-        self.redirect(self.url(self.context, 'applications'))
-        return

Copied: grokui.admin/trunk/src/grokui/admin/views.py (from rev 109313, grokui.admin/trunk/src/grokui/admin/view.py)
===================================================================
--- grokui.admin/trunk/src/grokui/admin/views.py	                        (rev 0)
+++ grokui.admin/trunk/src/grokui/admin/views.py	2010-02-22 18:05:03 UTC (rev 109314)
@@ -0,0 +1,190 @@
+# -*- coding: utf-8 -*-
+"""Views for the grok admin UI"""
+
+import grok
+
+from BTrees.OOBTree import OOBTree
+from grokui.base import IGrokUIRealm, GrokUIView
+from grokui.admin.interfaces import ISecurityNotifier
+from grokui.admin.utilities import getVersion, getURLWithParams
+from grokui.admin.security import MSG_DISABLED
+
+from zope.site.interfaces import IRootFolder
+from zope.exceptions import DuplicationError
+from zope.component import getUtility, queryUtility
+
+grok.context(IGrokUIRealm)
+grok.templatedir("templates")
+
+
+class ManageApplications(grok.Permission):
+    grok.name('grok.ManageApplications')
+
+
+class GrokAdminInfoView(grok.View):
+    """A base to provide machinereadable views.
+    """
+    grok.name('admin')
+    grok.require('grok.ManageApplications')
+    
+    def render(self):
+        return u'go to @@version or @@secnotes'
+
+
+class GrokAdminVersion(grok.View):
+    """Display version of a package.
+
+    Call this view via http://localhost:8080/@@admin/@@version to
+    get the used grok version. Call
+    http://localhost:8080/@@admin/@@version?pkg=<pkgname> to get
+    the used version of package <pkgname>.
+    """
+    grok.name('version')
+    grok.context(GrokAdminInfoView)
+    grok.require('grok.ManageApplications')
+    
+    def render(self, pkg='grok'):
+        return u'%s %s' % (pkg, getVersion(pkg))
+
+
+class GrokAdminSecurityNotes(grok.View):
+    """Display current security notification.
+
+    Call this view via http://localhost:8080/@@admin/@@secnote
+    """
+    grok.name('secnote')
+    grok.context(GrokAdminInfoView)
+    grok.require('grok.ManageApplications')
+    
+    def render(self):
+        notifier = queryUtility(ISecurityNotifier, default=None)
+        return (notifier is not None and notifier.getNotification()
+                or MSG_DISABLED)
+
+
+class Add(grok.View):
+    """Add an application.
+    """
+    grok.require('grok.ManageApplications')
+
+    def update(self, inspectapp=None, application=None):
+        if inspectapp is not None:
+            self.redirect(self.url("docgrok") + "/%s/index"%(
+                    application.replace('.','/'),))
+        return
+
+    def render(self, application, name, inspectapp=None):
+        if name is None or name == "":
+            self.redirect(self.url(self.context, 'applications'))
+            return
+        if name is None or name == "":
+            self.redirect(self.url(self.context, 'applications'))
+            return
+        app = getUtility(grok.interfaces.IApplication, name=application)
+        try:
+            new_app = app()
+            grok.notify(grok.ObjectCreatedEvent(new_app))
+            self.context.root[name] = new_app
+            self.flash(u'Added %s `%s`.' % (application, name))
+        except DuplicationError:
+            self.flash(u'Name `%s` already in use. '
+                       u'Please choose another name.' % (name,))
+        self.redirect(self.url(self.context, 'applications'))
+
+
+class ManageApps(grok.View):
+    """Manage applications (delete, rename).
+    """
+
+    grok.require('grok.ManageApplications')
+
+    def delete(self, items):
+        """Delete applications in items.
+        """
+        msg = u''
+        for name in items:
+            try:
+                del self.context.root[name]
+                msg = (u'%sApplication `%s` was successfully '
+                       u'deleted.\n' % (msg, name))
+            except AttributeError:
+                # Object is broken.. Try it the hard way...
+                # TODO: Try to repair before deleting.
+                obj = self.context.root[name]
+                if not hasattr(self.context.root, 'data'):
+                    msg = (
+                        u'%sCould not delete application `%s`: no '
+                        u'`data` attribute found.\n' % (msg, name))
+                    continue
+                if not isinstance(self.context.root.data, OOBTree):
+                    msg = (
+                        u'%sCould not delete application `%s`: no '
+                        u'`data` is not a BTree.\n' % (msg, name))
+                    continue
+                self.context.root.data.pop(name)
+                self.context.root.data._p_changed = True
+                msg = (u'%sBroken application `%s` was successfully '
+                       u'deleted.\n' % (msg, name))
+
+        self.flash(msg)
+        self.redirect(self.url(self.context, 'applications'))
+
+    def render(self, rename=None, delete=None, items=None):
+
+        if items is None:
+            return self.redirect(self.url(self.context, 'applications'))
+
+        if not isinstance(items, list):
+            items = [items]
+
+        if delete is not None:
+            return self.delete(items)
+        elif rename is not None:
+            return self.redirect(getURLWithParams(
+                    self.url(self.context, '@@grokadmin_rename'),
+                    data=dict(items=items)))
+        self.redirect(self.url(self.context, 'applications'))
+
+
+class Rename(GrokUIView):
+    """Rename Grok applications.
+    """
+    grok.name('grokadmin_rename')
+    grok.template('rename')
+    grok.require('grok.ManageApplications')
+
+    def update(self, cancel=None, items=None, new_names=None):
+        msg = u''
+
+        if cancel is not None or not items:
+            return self.redirect(self.url(self.context, 'applications'))
+
+        if not isinstance(items, list):
+            items = [items]
+        self.apps = items
+
+        if new_names is not None and len(new_names) != len(items):
+            return self.redirect(self.url(self.context, 'applications'))
+
+        if new_names is None:
+            return
+
+        mapping = dict([(items[x], new_names[x]) for x in range(len(items))])
+        root = self.context.__parent__
+        existing = root.keys()
+
+        for oldname, newname in mapping.items():
+            if oldname == newname:
+                continue
+            if oldname not in existing:
+                self.flash('Could not rename %s: not found' % oldname)
+                continue
+            if newname in existing:
+                self.flash('`%s` already exists.' % newname)
+                continue
+            root[newname] = root[oldname]
+            root[newname].__name__ = newname
+            del root[oldname]
+            self.flash('Renamed `%s` to `%s`.' % (oldname, newname))
+        self.redirect(self.url(self.context, 'applications'))
+        return



More information about the checkins mailing list