import wx from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE #from .helpers import ModuleInfoCache from eos.saveddata.module import Module, State import eos.db from logbook import Logger from eos.saveddata.module import Module from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from .fitRemoveProjectedModule import FitRemoveProjectedModuleCommand pyfalog = Logger(__name__) # this has the same exact definition that regular rpojected modules, besides the undo class FitRemoveProjectedEnvCommand(FitRemoveProjectedModuleCommand): """" from sFit.project """ def __init__(self, fitID, itemID): wx.Command.__init__(self, True) self.fitID = fitID self.itemID = itemID self.removed_item = None def Do(self): pyfalog.debug("Removing ({0}) onto: {1}", self.fitID, self.itemID) fit = eos.db.getFit(self.fitID) item = next((x for x in fit.projectedModules if x.itemID == self.itemID), None) self.removed_item = item.itemID fit.projectedModules.remove(item) eos.db.commit() return True def Undo(self): from gui.fitCommands.calc.fitAddProjectedEnv import FitAddProjectedEnvCommand cmd = FitAddProjectedEnvCommand(self.fitID, self.removed_item) cmd.Do() return True