MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / Do

Method Do

gui/fitCommands/calc/module/projectedAdd.py:26–57  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

24 self.savedStateCheckChanges = None
25
26 def Do(self):
27 pyfalog.debug('Doing addition of projected module {} onto: {}'.format(self.newModInfo, self.fitID))
28 newMod = self.newModInfo.toModule(fallbackState=FittingModuleState.ACTIVE)
29 if newMod is None:
30 return False
31
32 sFit = Fit.getInstance()
33 fit = sFit.getFit(self.fitID)
34 canHaveState = newMod.canHaveState(newMod.state, projectedOnto=fit)
35 if canHaveState is not True:
36 newMod.state = canHaveState
37 if not self.ignoreRestrictions and not newMod.isValidCharge(newMod.charge):
38 newMod.charge = None
39 self.oldPosition, self.oldModInfo = fit.projectedModules.makeRoom(newMod)
40
41 if self.newPosition is not None:
42 fit.projectedModules.insert(self.newPosition, newMod)
43 if newMod not in fit.projectedModules:
44 return False
45 else:
46 fit.projectedModules.append(newMod)
47 if newMod not in fit.projectedModules:
48 return False
49 self.newPosition = fit.projectedModules.index(newMod)
50
51 if self.recalc:
52 # Need to flush because checkStates sometimes relies on module->fit
53 # relationship via .owner attribute, which is handled by SQLAlchemy
54 eos.db.flush()
55 sFit.recalc(fit)
56 self.savedStateCheckChanges = sFit.checkStates(fit, newMod)
57 return True
58
59 def Undo(self):
60 pyfalog.debug('Undoing addition of projected module {} onto: {}'.format(self.newModInfo, self.fitID))

Callers 1

UndoMethod · 0.95

Calls 11

toModuleMethod · 0.80
getFitMethod · 0.80
canHaveStateMethod · 0.80
isValidChargeMethod · 0.80
flushMethod · 0.80
recalcMethod · 0.80
checkStatesMethod · 0.80
getInstanceMethod · 0.45
makeRoomMethod · 0.45
insertMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected