diff MoinMoin/user.py @ 22:a47550d21d2d

quicklinks: avoid dupes, dont render as interwiki if wiki == self imported from: moin--main--1.5--patch-23
author Thomas Waldmann <tw@waldmann-edv.de>
date Sat, 24 Sep 2005 14:35:31 +0000
parents da9701a3facb
children 55ff4feb0f59
line wrap: on
line diff
--- a/MoinMoin/user.py	Sat Sep 24 13:11:37 2005 +0000
+++ b/MoinMoin/user.py	Sat Sep 24 14:35:31 2005 +0000
@@ -668,27 +668,29 @@
         @param remove: unsubscribe pagename if set
         @type remove: bool
         @rtype: bool
-        @return: true, if page was NEWLY quicklinked.
+        @return: True, if quicklinks were added/removed.
         """
+        changed = False
+        if self._cfg.interwikiname:
+            iwpagename = "%s:%s" % (self._cfg.interwikiname, pagename)
+        else:
+            iwpagename = None
         if remove:
             if pagename in self.quicklinks:
                 self.quicklinks.remove(pagename)
-                return 1
-            
-        # check for our own interwiki name
-        if self._cfg.interwikiname:
-            pagename = "%s:%s" % (self._cfg.interwikiname, pagename)
-
-        if remove and (pagename in self.quicklinks):
-            self.quicklinks.remove(pagename)
-            return 1
-    
+                changed = True
+            if iwpagename in self.quicklinks:
+                self.quicklinks.remove(iwpagename)
+                changed = True
         else:
-            # add the interwiki name!
-            if pagename not in self.quicklinks:
-                self.quicklinks.append(pagename)
-                return 1
-        return 0
+            # add the interwiki name and remove non-interwiki name, if present!
+            if pagename in self.quicklinks:
+                self.quicklinks.remove(pagename)
+                changed = True
+            if iwpagename not in self.quicklinks:
+                self.quicklinks.append(iwpagename)
+                changed = True
+        return changed
 
     def subscribePage(self, pagename, remove=False):
         """ Subscribe or unsubscribe to a wiki page.