From 181d5f7ea82a35bcbffb79a71fec092b11fe8658 Mon Sep 17 00:00:00 2001 From: Alberto Resco Perez Date: Mon, 16 May 2011 12:56:44 +0200 Subject: [PATCH] [FIX] Update user profile when deleting conference - When deleting a conference or category the managers are deleted. - Fix to previous deleted conferences and categories. - Closes task #596. --- indico/MaKaC/webinterface/pages/admins.py | 18 ++++++++++++++++-- indico/MaKaC/webinterface/rh/categoryMod.py | 5 ++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/indico/MaKaC/webinterface/pages/admins.py b/indico/MaKaC/webinterface/pages/admins.py index d10761bab..119ce8c35 100644 --- a/indico/MaKaC/webinterface/pages/admins.py +++ b/indico/MaKaC/webinterface/pages/admins.py @@ -55,6 +55,9 @@ from MaKaC.plugins import PluginLoader, PluginsHolder from MaKaC.common.fossilize import fossilize from MaKaC.fossils.modules import INewsItemFossil from indico.modules import ModuleHolder +from MaKaC.errors import MaKaCError +from MaKaC.conference import ConferenceHolder +from MaKaC.webinterface.locators import CategoryWebLocator class WPAdminsBase( WPMainBase ): @@ -1466,11 +1469,22 @@ class WUserDetails(wcomponents.WTemplated): vars["categoryManager"] = "" categs = u.getLinkTo("category","manager") for categ in categs: - vars["categoryManager"] += """%s
""" % (urlHandlers.UHCategoryDisplay.getURL(categ), categ.getTitle()) + target = CategoryWebLocator({"categId": categ.getId()}).getObject() + if target == None: + u.unlinkTo(categ,"manager") + else: + vars["categoryManager"] += """%s
""" % (urlHandlers.UHCategoryDisplay.getURL(categ), categ.getTitle()) + vars["eventManager"] = "" + ch = ConferenceHolder() events = u.getLinkTo("conference","manager") for event in events: - vars["eventManager"] += """%s
""" % (urlHandlers.UHConferenceDisplay.getURL(event), event.getTitle()) + try: + ch.getById(event.getId()) + vars["eventManager"] += """%s
""" % (urlHandlers.UHConferenceDisplay.getURL(event), event.getTitle()) + except MaKaCError, e: + u.unlinkTo(event,"manager") + return vars def getEmailsHTML(self, u): diff --git a/indico/MaKaC/webinterface/rh/categoryMod.py b/indico/MaKaC/webinterface/rh/categoryMod.py index 78b9d0519..1c20f3271 100644 --- a/indico/MaKaC/webinterface/rh/categoryMod.py +++ b/indico/MaKaC/webinterface/rh/categoryMod.py @@ -408,6 +408,8 @@ class _ActionSubCategDeletion: def perform( self ): for categ in self._categs: + for manager in categ.getManagerList(): + categ.revokeModification(manager) categ.delete() class _ActionSortCategories: @@ -509,9 +511,10 @@ class _ActionConferenceDeletion: def perform( self,confs ): for event in confs: + for manager in event.getManagerList(): + event.revokeModification(manager) event.delete() - def askConfirmation( self, params ): p = category.WPConferenceDeletion( self._rh, self._target ) return p.display( events=self._confs ) -- 2.11.4.GIT