Merge pull request #779 from Ebag333/ExportButton

Add button for exports
This commit is contained in:
Ryan Holmes
2016-10-21 22:29:40 -04:00
committed by GitHub

View File

@@ -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,46 @@ class ItemParams (wx.Panel):
self.UpdateList()
event.Skip()
def ExportItemStats(self, event):
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")