mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 08:22:24 -04:00
fix add & rename fields when we have a fact not yet added to db
This commit is contained in:
parent
f17d0cc187
commit
047b06cabd
1 changed files with 21 additions and 1 deletions
|
@ -386,9 +386,13 @@ order by n""", id=card.id)
|
|||
field = self.field
|
||||
name = unicode(self.form.fieldName.text()) or _("Field")
|
||||
if field.name != name:
|
||||
oldVal = self.fact[field.name]
|
||||
self.deck.renameFieldModel(self.model, field, name)
|
||||
# the card models will have been updated
|
||||
self.readCard()
|
||||
# for add card case
|
||||
self.updateFact()
|
||||
self.fact[name] = oldVal
|
||||
field.unique = self.form.fieldUnique.isChecked()
|
||||
field.required = self.form.fieldRequired.isChecked()
|
||||
field.numeric = self.form.numeric.isChecked()
|
||||
|
@ -444,12 +448,28 @@ order by n""", id=card.id)
|
|||
f = FieldModel(required=False, unique=False)
|
||||
f.name = _("Field %d") % (len(self.model.fieldModels) + 1)
|
||||
self.deck.addFieldModel(self.model, f)
|
||||
self.deck.s.refresh(self.fact)
|
||||
try:
|
||||
self.deck.s.refresh(self.fact)
|
||||
except:
|
||||
# not yet added
|
||||
self.updateFact()
|
||||
self.fillFieldList()
|
||||
self.form.fieldList.setCurrentRow(len(self.model.fieldModels)-1)
|
||||
self.form.fieldName.setFocus()
|
||||
self.form.fieldName.selectAll()
|
||||
|
||||
def updateFact(self):
|
||||
oldFact = self.fact
|
||||
model = self.deck.s.query(Model).get(oldFact.model.id)
|
||||
fact = self.deck.newFact(model)
|
||||
for field in fact.fields:
|
||||
try:
|
||||
fact[field.name] = oldFact[field.name]
|
||||
except KeyError:
|
||||
fact[field.name] = u""
|
||||
fact.tags = oldFact.tags
|
||||
self.fact = fact
|
||||
|
||||
def deleteField(self):
|
||||
row = self.form.fieldList.currentRow()
|
||||
if row == -1:
|
||||
|
|
Loading…
Reference in a new issue