add 'sort by fact creation'

This commit is contained in:
Damien Elmes 2009-04-13 12:43:24 +09:00
parent ecc54ea222
commit c239768d19

View file

@ -123,12 +123,22 @@ class DeckModel(QAbstractTableModel):
sort = "" sort = ""
if isinstance(self.sortKey, types.StringType): if isinstance(self.sortKey, types.StringType):
# card property # card property
sort = "order by cards." + self.sortKey if self.sortKey == "fact":
sort = "order by facts.created, cards.created"
else:
sort = "order by cards." + self.sortKey
if self.sortKey in ("question", "answer"): if self.sortKey in ("question", "answer"):
sort += " collate nocase" sort += " collate nocase"
query = ("select id from cards ") if self.sortKey == "fact":
if ads: query = """
query += "where %s " % ads select cards.id from cards, facts
where cards.factId = facts.id """
if ads:
query += ads + " "
else:
query = "select id from cards "
if ads:
query += "where %s " % ads
query += sort query += sort
else: else:
# field value # field value
@ -359,6 +369,7 @@ class EditDeck(QMainWindow):
_("Interval"), _("Interval"),
_("Reps"), _("Reps"),
_("Ease"), _("Ease"),
_("Fact Created"),
] ]
self.sortFields = sorted(self.deck.allFields()) self.sortFields = sorted(self.deck.allFields())
self.sortList.extend([_("'%s'") % f for f in self.sortFields]) self.sortList.extend([_("'%s'") % f for f in self.sortFields])
@ -385,8 +396,10 @@ class EditDeck(QMainWindow):
self.sortKey = "reps" self.sortKey = "reps"
elif idx == 7: elif idx == 7:
self.sortKey = "factor" self.sortKey = "factor"
elif idx == 8:
self.sortKey = "fact"
else: else:
self.sortKey = ("field", self.sortFields[idx-8]) self.sortKey = ("field", self.sortFields[idx-9])
self.rebuildSortIndex(self.sortKey) self.rebuildSortIndex(self.sortKey)
self.sortIndex = idx self.sortIndex = idx
self.deck.setVar('sortIndex', idx) self.deck.setVar('sortIndex', idx)