From e57fce39feed01461b8c32dcfe86b55060b1d16f Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 16 Apr 2019 16:25:44 +0300 Subject: [PATCH] Fix fetching of prices of on-character implants --- gui/builtinAdditionPanes/implantView.py | 2 +- gui/builtinStatsViews/priceViewFull.py | 4 ++-- gui/builtinStatsViews/priceViewMinimal.py | 4 ++-- gui/fitCommands/calc/module/localAdd.py | 1 - gui/mainFrame.py | 2 +- service/fit.py | 10 +++++----- service/price.py | 1 - 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index e958882d7..9f027d7d2 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -156,7 +156,7 @@ class ImplantDisplay(d.Display): event.Skip() return - self.original = fit.implants if fit is not None else None + self.original = fit.appliedImplants if fit is not None else None self.implants = fit.appliedImplants[:] if fit is not None else None if self.implants is not None: self.implants.sort(key=lambda implant: implant.slot or 0) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index f77e352fd..da90945c9 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -120,8 +120,8 @@ class PriceViewFull(StatsView): for booster in fit.boosters: booster_price += booster.item.price.price - if fit.implants: - for implant in fit.implants: + if fit.appliedImplants: + for implant in fit.appliedImplants: implant_price += implant.item.price.price total_price = 0 diff --git a/gui/builtinStatsViews/priceViewMinimal.py b/gui/builtinStatsViews/priceViewMinimal.py index 486bf00d5..3bab797c1 100644 --- a/gui/builtinStatsViews/priceViewMinimal.py +++ b/gui/builtinStatsViews/priceViewMinimal.py @@ -114,8 +114,8 @@ class PriceViewMinimal(StatsView): for booster in fit.boosters: booster_price += booster.item.price.price - if fit.implants: - for implant in fit.implants: + if fit.appliedImplants: + for implant in fit.appliedImplants: implant_price += implant.item.price.price fitting_price = module_price diff --git a/gui/fitCommands/calc/module/localAdd.py b/gui/fitCommands/calc/module/localAdd.py index 64b9337ce..259a4cc95 100644 --- a/gui/fitCommands/calc/module/localAdd.py +++ b/gui/fitCommands/calc/module/localAdd.py @@ -41,7 +41,6 @@ class CalcAddLocalModuleCommand(wx.Command): if not newMod.fits(fit): pyfalog.warning('Module does not fit') return False - newMod.owner = fit try: fit.modules.append(newMod) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 87e28fd45..d8724410c 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -658,7 +658,7 @@ class MainFrame(wx.Frame): rebaseMap = {k.ID: v.ID for k, v in replacementsCheaper.items()} self.command.Submit(cmd.GuiRebaseItemsCommand(fitID=fitID, rebaseMap=rebaseMap)) - fitItems = {i for i in Fit.fitItemIter(fit) if i is not fit.ship.item} + fitItems = {i for i in Fit.fitItemIter(fit, forceFitImplants=True) if i is not fit.ship.item} self.disablerAll = wx.WindowDisabler() self.waitDialog = wx.BusyInfo("Please Wait...", parent=self) Price.getInstance().findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=10) diff --git a/service/fit.py b/service/fit.py index 9860346d9..976f5575e 100644 --- a/service/fit.py +++ b/service/fit.py @@ -485,20 +485,20 @@ class Fit(FitDeprecated): return changedMods, changedProjMods, changedProjDrones @classmethod - def fitObjectIter(cls, fit): + def fitObjectIter(cls, fit, forceFitImplants=False): yield fit.ship for mod in fit.modules: if not mod.isEmpty: yield mod - - for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): + implants = fit.implants if forceFitImplants else fit.appliedImplants + for container in (fit.drones, fit.fighters, implants, fit.boosters, fit.cargo): for obj in container: yield obj @classmethod - def fitItemIter(cls, fit): - for fitobj in cls.fitObjectIter(fit): + def fitItemIter(cls, fit, forceFitImplants=False): + for fitobj in cls.fitObjectIter(fit, forceFitImplants): yield fitobj.item charge = getattr(fitobj, 'charge', None) if charge: diff --git a/service/price.py b/service/price.py index 0fa8b92ba..23b6afbcf 100644 --- a/service/price.py +++ b/service/price.py @@ -165,7 +165,6 @@ class Price: except Exception as e: pyfalog.critical("Execution of callback from getPrices failed.") pyfalog.critical(e) - db.commit() if waitforthread: