From dac35597ea7304fbb25be65758f9e3886a380b55 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 25 Jun 2020 21:32:43 -0400 Subject: [PATCH] Update traits --- db_update.py | 31 ++++++++++++++----------- eos/db/gamedata/traits.py | 20 ++++++++++++---- gui/builtinItemStatsViews/itemTraits.py | 2 +- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/db_update.py b/db_update.py index 25f9d40ef..b509f7273 100644 --- a/db_update.py +++ b/db_update.py @@ -326,20 +326,25 @@ def update_db(): newData = [] for row in data: - typeLines = [] - typeId = row['typeID'] - traitData = row['traits_en-us'] - for skillData in sorted(traitData.get('skills', ()), key=lambda i: i['header']): - typeLines.append(convertSection(skillData)) - if 'role' in traitData: - typeLines.append(convertSection(traitData['role'])) - if 'misc' in traitData: - typeLines.append(convertSection(traitData['misc'])) - traitLine = '
\n
\n'.join(typeLines) - newRow = {'typeID': typeId, 'traitText': traitLine} - newData.append(newRow) + newRow = { + 'typeID': row['typeID'], + } + for (k, v) in eos.config.translation_mapping.items(): + if v == '': + v = '_en-us' + typeLines = [] + traitData = row['traits{}'.format(v)] + for skillData in sorted(traitData.get('skills', ()), key=lambda i: i['header']): + typeLines.append(convertSection(skillData)) + if 'role' in traitData: + typeLines.append(convertSection(traitData['role'])) + if 'misc' in traitData: + typeLines.append(convertSection(traitData['misc'])) + traitLine = '
\n
\n'.join(typeLines) + newRow['traitText{}'.format(v)] = traitLine - _addRows(newData, eos.gamedata.Traits) + newData.append(newRow) + _addRows(newData, eos.gamedata.Traits, fieldMap={'traitText_en-us': 'displayName'}) def processMetadata(): print('processing metadata') diff --git a/eos/db/gamedata/traits.py b/eos/db/gamedata/traits.py index d70c6ca58..8c5650eb4 100644 --- a/eos/db/gamedata/traits.py +++ b/eos/db/gamedata/traits.py @@ -1,11 +1,21 @@ from sqlalchemy import Column, Table, Integer, String, ForeignKey -from sqlalchemy.orm import mapper +from sqlalchemy.orm import mapper, synonym from eos.db import gamedata_meta from eos.gamedata import Traits +import eos.config -traits_table = Table("invtraits", gamedata_meta, - Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True), - Column("traitText", String)) +traits_table = Table( + "invtraits", + gamedata_meta, + Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True), + *[Column("traitText{}".format(lang), String) for lang in eos.config.translation_mapping.values()], +) -mapper(Traits, traits_table) +mapper( + Traits, + traits_table, + properties={ + "display": synonym("traitText{}".format(eos.config.lang)), + } +) diff --git a/gui/builtinItemStatsViews/itemTraits.py b/gui/builtinItemStatsViews/itemTraits.py index 14042c143..65fd6d728 100644 --- a/gui/builtinItemStatsViews/itemTraits.py +++ b/gui/builtinItemStatsViews/itemTraits.py @@ -13,7 +13,7 @@ class ItemTraits(wx.Panel): self.SetSizer(mainSizer) self.traits = wx.html.HtmlWindow(self) - self.traits.SetPage(item.traits.traitText) + self.traits.SetPage(item.traits.display) self.traits.Bind(wx.EVT_CONTEXT_MENU, self.onPopupMenu) self.traits.Bind(wx.EVT_KEY_UP, self.onKeyUp)