Anki/anki
Damien Elmes b5c0b1f2c7 drop required/unique field properties
Instead of having required and unique flags for every field, enforce both
requirements on the first field, and neither on the rest. This mirrors the
subject/body format people are used to in note-taking apps. The subject
defines the object being learnt, and the remaining fields represent properties
of that object.

In the past, duplicate checking served two purposes: it quickly notified the
user that they're entering the same fact twice, and it notified the user if
they'd accidentally mistyped a secondary field. The former behaviour is
important for avoiding wasted effort, and so it should be done in real time.
The latter behaviour is not essential however - a typo is not wasted effort,
and it could be fixed in a periodic 'find duplicates' function. Given that
some users ended up with sluggish decks due to the overhead a large number of
facts * a large number of unique fields caused, this seems like a change for
the better.

This also means Anki will let you add notes as long as as the first field has
been filled out. Again, this is not a big deal: Anki is still checking to make
sure one or more cards will be generated, and the user can easily add any
missing fields later.

As a bonus, this change simplifies field configuration somewhat. As the card
layout and field dialogs are a popular point of confusion, the more they can
be simplified, the better.
2011-11-24 22:16:03 +09:00
..
importing drop required/unique field properties 2011-11-24 22:16:03 +09:00
template change template replacement behaviour 2011-11-18 02:50:47 +09:00
__init__.py deck -> collection 2011-11-23 17:47:44 +09:00
cards.py groups -> decks 2011-11-23 19:28:09 +09:00
collection.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
consts.py groups -> decks 2011-11-23 19:28:09 +09:00
cram.py groups -> decks 2011-11-23 19:28:09 +09:00
db.py initial work on media syncing 2011-10-03 12:45:08 +09:00
decks.py groups -> decks 2011-11-23 19:28:09 +09:00
errors.py support partial syncs of arbitrary size 2011-09-24 12:42:02 +09:00
exporting.py deck -> collection 2011-11-23 17:47:44 +09:00
find.py groups -> decks 2011-11-23 19:28:09 +09:00
hooks.py update license link 2011-04-28 09:24:01 +09:00
js.py add a pie graph, add average interval to ivls area 2011-04-28 09:24:00 +09:00
lang.py update license link 2011-04-28 09:24:01 +09:00
latex.py deck -> collection 2011-11-23 17:47:44 +09:00
media.py deck -> collection 2011-11-23 17:47:44 +09:00
models.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
notes.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
sched.py deckCounts -> deckDue 2011-11-24 17:04:26 +09:00
sound.py deck -> collection 2011-11-23 17:47:44 +09:00
stats.py groups -> decks 2011-11-23 19:28:09 +09:00
stdmodels.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
storage.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
sync.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
tags.py groups -> decks 2011-11-23 19:28:09 +09:00
upgrade.py drop required/unique field properties 2011-11-24 22:16:03 +09:00
utils.py facts -> notes 2011-11-23 12:37:21 +09:00