[Checkins] SVN: grokui.admin/trunk/src/grokui/admin/view.py Add a view for renaming apps.

Uli Fouquet uli at gnufix.de
Mon Dec 1 06:23:19 EST 2008


Log message for revision 93475:
  Add a view for renaming apps.

Changed:
  U   grokui.admin/trunk/src/grokui/admin/view.py

-=-
Modified: grokui.admin/trunk/src/grokui/admin/view.py
===================================================================
--- grokui.admin/trunk/src/grokui/admin/view.py	2008-12-01 11:22:42 UTC (rev 93474)
+++ grokui.admin/trunk/src/grokui/admin/view.py	2008-12-01 11:23:19 UTC (rev 93475)
@@ -163,8 +163,47 @@
 
     grok.context(Interface)
 
+class Rename(GAIAView):
+    """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:
+            return self.redirect(self.url(self.context))
+        
+        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))
 
+        if new_names is None:
+            return
+        
+        mapping = dict([(items[x], new_names[x]) for x in range(len(items))])
+
+        for oldname, newname in mapping.items():
+            if oldname == newname:
+                continue
+            if oldname not in self.context.keys():
+                self.flash('Could not rename %s: not found' % oldname)
+                continue
+            if newname in self.context.keys():
+                self.flash('`%s` already exists.' % newname)
+                continue
+            self.context[newname] = self.context[oldname]
+            self.context[newname].__name__ = newname
+            del self.context[oldname]
+            self.flash('Renamed `%s` to `%s`.' % (oldname, newname))
+        self.redirect(self.url(self.context))
+        return
+
 class Inspect(GAIAView):
     """Basic object browser.
     """



More information about the Checkins mailing list