From 595c139ca884e3e4bb25628f4a28b105c3c1ce30 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 21 Oct 2016 10:53:47 -0700 Subject: [PATCH 1/2] Add button for exports --- gui/itemStats.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gui/itemStats.py b/gui/itemStats.py index f154d277a..a2775a688 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -30,6 +30,7 @@ import service import config from gui.contextMenu import ContextMenu from gui.utils.numberFormatter import formatAmount +import csv try: from collections import OrderedDict @@ -299,6 +300,9 @@ class ItemParams (wx.Panel): self.toggleViewBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle view mode", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer.Add( self.toggleViewBtn, 0, wx.ALIGN_CENTER_VERTICAL) + self.exportStatsBtn = wx.ToggleButton( self, wx.ID_ANY, u"Export Item Stats", wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer.Add( self.exportStatsBtn, 0, wx.ALIGN_CENTER_VERTICAL) + if stuff is not None: self.refreshBtn = wx.Button( self, wx.ID_ANY, u"Refresh", wx.DefaultPosition, wx.DefaultSize, wx.BU_EXACTFIT ) bSizer.Add( self.refreshBtn, 0, wx.ALIGN_CENTER_VERTICAL) @@ -309,6 +313,7 @@ class ItemParams (wx.Panel): self.PopulateList() self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleViewMode) + self.exportStatsBtn.Bind(wx.EVT_TOGGLEBUTTON, self.ExportItemStats) def _fetchValues(self): if self.stuff is None: @@ -347,6 +352,49 @@ class ItemParams (wx.Panel): self.UpdateList() event.Skip() + def ExportItemStats(self, event): + self.UpdateList() + event.Skip() + + exportFileName = self.item.name + " (" + str(self.item.ID) + ").csv" + + saveFileDialog = wx.FileDialog(self, "Save CSV file", "", exportFileName, + "CSV files (*.csv)|*.csv", wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) + + if saveFileDialog.ShowModal() == wx.ID_CANCEL: + return # the user hit cancel... + + with open(saveFileDialog.GetPath(), "wb") as exportFile: + writer = csv.writer(exportFile, delimiter=',') + + writer.writerow( + [ + "ID", + "Internal Name", + "Friendly Name", + "Modified Value", + "Base Value", + ] + ) + + for attributeName in self.attrInfo: + attribute = self.attrInfo[attributeName] + + try: + modifiedAttributeValue = self.attrValues[attributeName].value + except (KeyError, AttributeError): + modifiedAttributeValue = self.attrValues[attributeName] + + writer.writerow( + [ + attribute.ID, + attribute.name, + attribute.displayName, + modifiedAttributeValue, + attribute.value, + ] + ) + def PopulateList(self): self.paramList.InsertColumn(0,"Attribute") self.paramList.InsertColumn(1,"Current Value") From 2b1abfc9b2c2a8d8388e308693ca4dc52c40a949 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 21 Oct 2016 19:28:54 -0700 Subject: [PATCH 2/2] No longer refresh GUI. They can click the refresh button themselves, lazy jerks. --- gui/itemStats.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index a2775a688..ff47d1e66 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -353,9 +353,6 @@ class ItemParams (wx.Panel): event.Skip() def ExportItemStats(self, event): - self.UpdateList() - event.Skip() - exportFileName = self.item.name + " (" + str(self.item.ID) + ").csv" saveFileDialog = wx.FileDialog(self, "Save CSV file", "", exportFileName,