From 7eb3ad98faad0dd625b567c77558b3d61729daf6 Mon Sep 17 00:00:00 2001 From: tgraviou Date: Mon, 21 Nov 2016 17:38:28 +0100 Subject: [PATCH 01/10] beginnings of price system choice --- gui/builtinStatsViews/priceViewFull.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 16935a136..5ee9ec829 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -69,6 +69,10 @@ class PriceViewFull(StatsView): setattr(self, "labelPrice%s" % type.capitalize(), lbl) hbox.Add(lbl, 0, wx.ALIGN_LEFT) + self.priceChoice = wx.Choice(contentPanel, choices=["Jita", "Amarr", "Dodixie", "Rens", "Hek"]) + contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) + self.priceChoice.SetStringSelection("Jita") + def refreshPanel(self, fit): if fit is not None: self.fit = fit From 2f2800c360d74906ce0dd43db8c02bcf537c49f3 Mon Sep 17 00:00:00 2001 From: tgraviou Date: Thu, 24 Nov 2016 12:00:53 +0100 Subject: [PATCH 02/10] System list --- gui/builtinStatsViews/priceViewFull.py | 5 ++++- service/price.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 5ee9ec829..f392d31aa 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -23,6 +23,8 @@ from gui import builtinStatsViews from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import service +from service import Price + class PriceViewFull(StatsView): name = "priceViewFull" @@ -69,9 +71,10 @@ class PriceViewFull(StatsView): setattr(self, "labelPrice%s" % type.capitalize(), lbl) hbox.Add(lbl, 0, wx.ALIGN_LEFT) - self.priceChoice = wx.Choice(contentPanel, choices=["Jita", "Amarr", "Dodixie", "Rens", "Hek"]) + self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) self.priceChoice.SetStringSelection("Jita") + Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) def refreshPanel(self, fit): if fit is not None: diff --git a/service/price.py b/service/price.py index 71858cf7c..8215a46d9 100644 --- a/service/price.py +++ b/service/price.py @@ -29,6 +29,16 @@ TIMEOUT = 15*60 # Network timeout delay for connection issues, 15 minutes class Price(): + systemsList = { + "Jita": 30000142, + "Amarr": 30002187, + "Dodixie": 30002659, + "Rens": 30002510, + "Hek": 30002053 + } + + currentSystemId = systemsList.get("Jita") + @classmethod def fetchPrices(cls, prices): """Fetch all prices passed to this method""" @@ -64,7 +74,7 @@ class Price(): # Base request URL baseurl = "https://eve-central.com/api/marketstat" - data.append(("usesystem", 30000142)) # Use Jita for market + data.append(("usesystem", Price.currentSystemId)) # Use Jita for market for typeID in toRequest: # Add all typeID arguments data.append(("typeid", typeID)) From edc48f00178f60029731a34c4be96a6f5b25ca7e Mon Sep 17 00:00:00 2001 From: petosorus Date: Mon, 21 Nov 2016 17:38:28 +0100 Subject: [PATCH 03/10] beginnings of price system choice --- gui/builtinStatsViews/priceViewFull.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 16935a136..5ee9ec829 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -69,6 +69,10 @@ class PriceViewFull(StatsView): setattr(self, "labelPrice%s" % type.capitalize(), lbl) hbox.Add(lbl, 0, wx.ALIGN_LEFT) + self.priceChoice = wx.Choice(contentPanel, choices=["Jita", "Amarr", "Dodixie", "Rens", "Hek"]) + contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) + self.priceChoice.SetStringSelection("Jita") + def refreshPanel(self, fit): if fit is not None: self.fit = fit From 48ccc7ff060f31abd2188af03ef37da47c17e0e9 Mon Sep 17 00:00:00 2001 From: petosorus Date: Thu, 24 Nov 2016 12:00:53 +0100 Subject: [PATCH 04/10] System list --- gui/builtinStatsViews/priceViewFull.py | 5 ++++- service/price.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 5ee9ec829..f392d31aa 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -23,6 +23,8 @@ from gui import builtinStatsViews from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import service +from service import Price + class PriceViewFull(StatsView): name = "priceViewFull" @@ -69,9 +71,10 @@ class PriceViewFull(StatsView): setattr(self, "labelPrice%s" % type.capitalize(), lbl) hbox.Add(lbl, 0, wx.ALIGN_LEFT) - self.priceChoice = wx.Choice(contentPanel, choices=["Jita", "Amarr", "Dodixie", "Rens", "Hek"]) + self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) self.priceChoice.SetStringSelection("Jita") + Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) def refreshPanel(self, fit): if fit is not None: diff --git a/service/price.py b/service/price.py index 71858cf7c..8215a46d9 100644 --- a/service/price.py +++ b/service/price.py @@ -29,6 +29,16 @@ TIMEOUT = 15*60 # Network timeout delay for connection issues, 15 minutes class Price(): + systemsList = { + "Jita": 30000142, + "Amarr": 30002187, + "Dodixie": 30002659, + "Rens": 30002510, + "Hek": 30002053 + } + + currentSystemId = systemsList.get("Jita") + @classmethod def fetchPrices(cls, prices): """Fetch all prices passed to this method""" @@ -64,7 +74,7 @@ class Price(): # Base request URL baseurl = "https://eve-central.com/api/marketstat" - data.append(("usesystem", 30000142)) # Use Jita for market + data.append(("usesystem", Price.currentSystemId)) # Use Jita for market for typeID in toRequest: # Add all typeID arguments data.append(("typeid", typeID)) From fcd934319db707e2686b920490a81d79f3f5c65d Mon Sep 17 00:00:00 2001 From: petosorus Date: Sun, 27 Nov 2016 11:10:33 +0100 Subject: [PATCH 05/10] Price listing price panel --- gui/builtinStatsViews/priceViewFull.py | 58 ++++++++++++++++++-------- service/price.py | 7 +++- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index f392d31aa..b4800c4ce 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -18,6 +18,7 @@ #=============================================================================== import wx +import gui.mainFrame from gui.statsView import StatsView from gui import builtinStatsViews from gui.bitmapLoader import BitmapLoader @@ -74,30 +75,51 @@ class PriceViewFull(StatsView): self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) self.priceChoice.SetStringSelection("Jita") + self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) + + def priceSelection(self, event): Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) + mainFrame = gui.mainFrame.MainFrame.getInstance() + sFit = service.Fit.getInstance() + fit = sFit.getFit(mainFrame.getActiveFit()) + + typeIDs = self.fitItemsList(fit) + + sMkt = service.Market.getInstance() + sMkt.getPrices(typeIDs, Price.invalidPrices) + + self.refreshPanel(fit); + + + def fitItemsList(self, fit): + # Compose a list of all the data we need & request it + typeIDs = [] + typeIDs.append(fit.ship.item.ID) + + for mod in fit.modules: + if not mod.isEmpty: + typeIDs.append(mod.itemID) + + for drone in fit.drones: + for _ in xrange(drone.amount): + typeIDs.append(drone.itemID) + + for fighter in fit.fighters: + for _ in xrange(fighter.amountActive): + typeIDs.append(fighter.itemID) + + for cargo in fit.cargo: + for _ in xrange(cargo.amount): + typeIDs.append(cargo.itemID) + + return typeIDs + def refreshPanel(self, fit): if fit is not None: self.fit = fit - # Compose a list of all the data we need & request it - typeIDs = [] - typeIDs.append(fit.ship.item.ID) - for mod in fit.modules: - if not mod.isEmpty: - typeIDs.append(mod.itemID) - - for drone in fit.drones: - for _ in xrange(drone.amount): - typeIDs.append(drone.itemID) - - for fighter in fit.fighters: - for _ in xrange(fighter.amountActive): - typeIDs.append(fighter.itemID) - - for cargo in fit.cargo: - for _ in xrange(cargo.amount): - typeIDs.append(cargo.itemID) + typeIDs = self.fitItemsList(fit) sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, self.processPrices) diff --git a/service/price.py b/service/price.py index 8215a46d9..0a3b3b53d 100644 --- a/service/price.py +++ b/service/price.py @@ -37,7 +37,12 @@ class Price(): "Hek": 30002053 } - currentSystemId = systemsList.get("Jita") + currentSystemId = "" + + @classmethod + def invalidPrices(self, prices): + for price in prices: + price.time = 0 @classmethod def fetchPrices(cls, prices): From 9df54238d9ac71747830ee0e425de695943dfef2 Mon Sep 17 00:00:00 2001 From: petosorus Date: Thu, 5 Jan 2017 00:06:25 +0100 Subject: [PATCH 06/10] refresh modules price view --- gui/builtinStatsViews/priceViewFull.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index b4800c4ce..ac2de40ea 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -25,6 +25,7 @@ from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import service from service import Price +import gui.globalEvents as GE class PriceViewFull(StatsView): @@ -35,6 +36,7 @@ class PriceViewFull(StatsView): self._cachedShip = 0 self._cachedFittings = 0 self._cachedTotal = 0 + self.mainFrame = gui.mainFrame.MainFrame.getInstance() def getHeaderText(self, fit): return "Price" @@ -73,12 +75,13 @@ class PriceViewFull(StatsView): hbox.Add(lbl, 0, wx.ALIGN_LEFT) self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) - contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) + contentSizer.Add(self.priceChoice) self.priceChoice.SetStringSelection("Jita") self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) def priceSelection(self, event): Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) + fitID = self.mainFrame.getActiveFit() mainFrame = gui.mainFrame.MainFrame.getInstance() sFit = service.Fit.getInstance() @@ -89,8 +92,8 @@ class PriceViewFull(StatsView): sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, Price.invalidPrices) - self.refreshPanel(fit); - + self.refreshPanel(fit) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) def fitItemsList(self, fit): # Compose a list of all the data we need & request it From d25673b8fe87b66b65fa207e80f5452da0744fc0 Mon Sep 17 00:00:00 2001 From: petosorus Date: Sun, 27 Nov 2016 11:10:33 +0100 Subject: [PATCH 07/10] Price listing price panel --- gui/builtinStatsViews/priceViewFull.py | 58 ++++++++++++++++++-------- service/price.py | 7 +++- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index f392d31aa..b4800c4ce 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -18,6 +18,7 @@ #=============================================================================== import wx +import gui.mainFrame from gui.statsView import StatsView from gui import builtinStatsViews from gui.bitmapLoader import BitmapLoader @@ -74,30 +75,51 @@ class PriceViewFull(StatsView): self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) self.priceChoice.SetStringSelection("Jita") + self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) + + def priceSelection(self, event): Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) + mainFrame = gui.mainFrame.MainFrame.getInstance() + sFit = service.Fit.getInstance() + fit = sFit.getFit(mainFrame.getActiveFit()) + + typeIDs = self.fitItemsList(fit) + + sMkt = service.Market.getInstance() + sMkt.getPrices(typeIDs, Price.invalidPrices) + + self.refreshPanel(fit); + + + def fitItemsList(self, fit): + # Compose a list of all the data we need & request it + typeIDs = [] + typeIDs.append(fit.ship.item.ID) + + for mod in fit.modules: + if not mod.isEmpty: + typeIDs.append(mod.itemID) + + for drone in fit.drones: + for _ in xrange(drone.amount): + typeIDs.append(drone.itemID) + + for fighter in fit.fighters: + for _ in xrange(fighter.amountActive): + typeIDs.append(fighter.itemID) + + for cargo in fit.cargo: + for _ in xrange(cargo.amount): + typeIDs.append(cargo.itemID) + + return typeIDs + def refreshPanel(self, fit): if fit is not None: self.fit = fit - # Compose a list of all the data we need & request it - typeIDs = [] - typeIDs.append(fit.ship.item.ID) - for mod in fit.modules: - if not mod.isEmpty: - typeIDs.append(mod.itemID) - - for drone in fit.drones: - for _ in xrange(drone.amount): - typeIDs.append(drone.itemID) - - for fighter in fit.fighters: - for _ in xrange(fighter.amountActive): - typeIDs.append(fighter.itemID) - - for cargo in fit.cargo: - for _ in xrange(cargo.amount): - typeIDs.append(cargo.itemID) + typeIDs = self.fitItemsList(fit) sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, self.processPrices) diff --git a/service/price.py b/service/price.py index 8215a46d9..0a3b3b53d 100644 --- a/service/price.py +++ b/service/price.py @@ -37,7 +37,12 @@ class Price(): "Hek": 30002053 } - currentSystemId = systemsList.get("Jita") + currentSystemId = "" + + @classmethod + def invalidPrices(self, prices): + for price in prices: + price.time = 0 @classmethod def fetchPrices(cls, prices): From d15acf89baafda891ac781e0e28ff6bd34cd3bef Mon Sep 17 00:00:00 2001 From: petosorus Date: Thu, 5 Jan 2017 00:06:25 +0100 Subject: [PATCH 08/10] refresh modules price view --- gui/builtinStatsViews/priceViewFull.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index b4800c4ce..ac2de40ea 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -25,6 +25,7 @@ from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import service from service import Price +import gui.globalEvents as GE class PriceViewFull(StatsView): @@ -35,6 +36,7 @@ class PriceViewFull(StatsView): self._cachedShip = 0 self._cachedFittings = 0 self._cachedTotal = 0 + self.mainFrame = gui.mainFrame.MainFrame.getInstance() def getHeaderText(self, fit): return "Price" @@ -73,12 +75,13 @@ class PriceViewFull(StatsView): hbox.Add(lbl, 0, wx.ALIGN_LEFT) self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) - contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) + contentSizer.Add(self.priceChoice) self.priceChoice.SetStringSelection("Jita") self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) def priceSelection(self, event): Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) + fitID = self.mainFrame.getActiveFit() mainFrame = gui.mainFrame.MainFrame.getInstance() sFit = service.Fit.getInstance() @@ -89,8 +92,8 @@ class PriceViewFull(StatsView): sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, Price.invalidPrices) - self.refreshPanel(fit); - + self.refreshPanel(fit) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) def fitItemsList(self, fit): # Compose a list of all the data we need & request it From bfa772609a21f3469bb59d80aecc459b04ee30a2 Mon Sep 17 00:00:00 2001 From: petosorus Date: Thu, 9 Feb 2017 18:25:27 +0100 Subject: [PATCH 09/10] Transfer of the price dropbox in the preferences pane. Moving of the modules list compiling from priceview to price service. --- .../pyfaGeneralPreferences.py | 26 ++++++++++- gui/builtinStatsViews/priceViewFull.py | 46 +------------------ service/price.py | 24 ++++++++++ 3 files changed, 50 insertions(+), 46 deletions(-) diff --git a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py index a1f43696f..e48277439 100644 --- a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py +++ b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py @@ -6,7 +6,7 @@ from gui.bitmapLoader import BitmapLoader import gui.mainFrame import service import gui.globalEvents as GE - +from service import Price class PFGeneralPref ( PreferenceView): title = "General" @@ -65,6 +65,9 @@ class PFGeneralPref ( PreferenceView): self.cbExportCharges = wx.CheckBox( panel, wx.ID_ANY, u"Export loaded charges", wx.DefaultPosition, wx.DefaultSize, 0 ) mainSizer.Add( self.cbExportCharges, 0, wx.ALL|wx.EXPAND, 5 ) + self.chPriceSystem = wx.Choice( panel, choices=Price.systemsList.keys()) + mainSizer.Add( self.chPriceSystem, 0, wx.ALL|wx.EXPAND, 5) + defCharSizer = wx.BoxSizer( wx.HORIZONTAL ) self.sFit = service.Fit.getInstance() @@ -81,6 +84,7 @@ class PFGeneralPref ( PreferenceView): self.cbMarketShortcuts.SetValue(self.sFit.serviceFittingOptions["showMarketShortcuts"] or False) self.cbGaugeAnimation.SetValue(self.sFit.serviceFittingOptions["enableGaugeAnimation"]) self.cbExportCharges.SetValue(self.sFit.serviceFittingOptions["exportCharges"]) + self.chPriceSystem.SetStringSelection("Jita") self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange) self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange) @@ -94,6 +98,7 @@ class PFGeneralPref ( PreferenceView): self.cbMarketShortcuts.Bind(wx.EVT_CHECKBOX, self.onCBShowShortcuts) self.cbGaugeAnimation.Bind(wx.EVT_CHECKBOX, self.onCBGaugeAnimation) self.cbExportCharges.Bind(wx.EVT_CHECKBOX, self.onCBExportCharges) + self.chPriceSystem.Bind(wx.EVT_CHOICE, self.onPriceSelection) self.cbRackLabels.Enable(self.sFit.serviceFittingOptions["rackSlots"] or False) @@ -162,4 +167,23 @@ class PFGeneralPref ( PreferenceView): def getImage(self): return BitmapLoader.getBitmap("prefs_settings", "gui") + def onPriceSelection(self, event): + Price.currentSystemId = Price.systemsList.get( + self.chPriceSystem.GetString(self.chPriceSystem.GetSelection()) + ) + + mainFrame = gui.mainFrame.MainFrame.getInstance() + sFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + fit = sFit.getFit(fitID) + + sMkt = service.Market.getInstance() + typeIDs = Price.fitItemsList(fit) + sMkt.getPrices(typeIDs, Price.invalidPrices) + + + self.sFit.refreshFit(fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + + PFGeneralPref.register() diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index ac2de40ea..9ce5d62f9 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -25,7 +25,6 @@ from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import service from service import Price -import gui.globalEvents as GE class PriceViewFull(StatsView): @@ -74,55 +73,12 @@ class PriceViewFull(StatsView): setattr(self, "labelPrice%s" % type.capitalize(), lbl) hbox.Add(lbl, 0, wx.ALIGN_LEFT) - self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) - contentSizer.Add(self.priceChoice) - self.priceChoice.SetStringSelection("Jita") - self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) - - def priceSelection(self, event): - Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) - fitID = self.mainFrame.getActiveFit() - - mainFrame = gui.mainFrame.MainFrame.getInstance() - sFit = service.Fit.getInstance() - fit = sFit.getFit(mainFrame.getActiveFit()) - - typeIDs = self.fitItemsList(fit) - - sMkt = service.Market.getInstance() - sMkt.getPrices(typeIDs, Price.invalidPrices) - - self.refreshPanel(fit) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - - def fitItemsList(self, fit): - # Compose a list of all the data we need & request it - typeIDs = [] - typeIDs.append(fit.ship.item.ID) - - for mod in fit.modules: - if not mod.isEmpty: - typeIDs.append(mod.itemID) - - for drone in fit.drones: - for _ in xrange(drone.amount): - typeIDs.append(drone.itemID) - - for fighter in fit.fighters: - for _ in xrange(fighter.amountActive): - typeIDs.append(fighter.itemID) - - for cargo in fit.cargo: - for _ in xrange(cargo.amount): - typeIDs.append(cargo.itemID) - - return typeIDs def refreshPanel(self, fit): if fit is not None: self.fit = fit - typeIDs = self.fitItemsList(fit) + typeIDs = Price.fitItemsList(fit) sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, self.processPrices) diff --git a/service/price.py b/service/price.py index 0a3b3b53d..32fd82cd6 100644 --- a/service/price.py +++ b/service/price.py @@ -127,3 +127,27 @@ class Price(): priceobj = priceMap[typeID] priceobj.time = time.time() + REREQUEST priceobj.failed = True + + @classmethod + def fitItemsList(self, fit): + # Compose a list of all the data we need & request it + typeIDs = [] + typeIDs.append(fit.ship.item.ID) + + for mod in fit.modules: + if not mod.isEmpty: + typeIDs.append(mod.itemID) + + for drone in fit.drones: + for _ in xrange(drone.amount): + typeIDs.append(drone.itemID) + + for fighter in fit.fighters: + for _ in xrange(fighter.amountActive): + typeIDs.append(fighter.itemID) + + for cargo in fit.cargo: + for _ in xrange(cargo.amount): + typeIDs.append(cargo.itemID) + + return typeIDs \ No newline at end of file From aaece725aa0430c50cdebb44e1f87118ecf6ee38 Mon Sep 17 00:00:00 2001 From: petosorus Date: Thu, 9 Feb 2017 23:26:31 +0100 Subject: [PATCH 10/10] Saving price system preference --- gui/builtinPreferenceViews/pyfaGeneralPreferences.py | 9 ++++----- service/fit.py | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py index e48277439..d75c3002f 100644 --- a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py +++ b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py @@ -84,7 +84,7 @@ class PFGeneralPref ( PreferenceView): self.cbMarketShortcuts.SetValue(self.sFit.serviceFittingOptions["showMarketShortcuts"] or False) self.cbGaugeAnimation.SetValue(self.sFit.serviceFittingOptions["enableGaugeAnimation"]) self.cbExportCharges.SetValue(self.sFit.serviceFittingOptions["exportCharges"]) - self.chPriceSystem.SetStringSelection("Jita") + self.chPriceSystem.SetStringSelection(self.sFit.serviceFittingOptions["priceSystem"]) self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange) self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange) @@ -168,11 +168,10 @@ class PFGeneralPref ( PreferenceView): return BitmapLoader.getBitmap("prefs_settings", "gui") def onPriceSelection(self, event): - Price.currentSystemId = Price.systemsList.get( - self.chPriceSystem.GetString(self.chPriceSystem.GetSelection()) - ) + system = self.chPriceSystem.GetString(self.chPriceSystem.GetSelection()) + Price.currentSystemId = Price.systemsList.get(system) + self.sFit.serviceFittingOptions["priceSystem"] = system - mainFrame = gui.mainFrame.MainFrame.getInstance() sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() fit = sFit.getFit(fitID) diff --git a/service/fit.py b/service/fit.py index 2d3b75be5..0a4867359 100644 --- a/service/fit.py +++ b/service/fit.py @@ -106,7 +106,8 @@ class Fit(object): "showTooltip": True, "showMarketShortcuts": False, "enableGaugeAnimation": True, - "exportCharges": True} + "exportCharges": True, + "priceSystem": "Jita"} self.serviceFittingOptions = SettingsProvider.getInstance().getSettings( "pyfaServiceFittingOptions", serviceFittingDefaultOptions)