mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
cards/notes
This commit is contained in:
parent
9c16d59086
commit
912e1bad03
2 changed files with 16 additions and 14 deletions
|
@ -22,8 +22,9 @@ from typing import Any, Optional
|
|||
|
||||
class Card:
|
||||
|
||||
def __init__(self, col, id=None) -> None:
|
||||
self.col = col
|
||||
def __init__(self, col, id: Optional[int] = None) -> None:
|
||||
from anki.collection import _Collection
|
||||
self.col: _Collection = col
|
||||
self.timerStarted = None
|
||||
self._qa = None
|
||||
self._note = None
|
||||
|
@ -117,7 +118,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
|
|||
self.left, self.odue, self.odid, self.did, self.id)
|
||||
self.col.log(self)
|
||||
|
||||
def q(self, reload=False, browser=False) -> str:
|
||||
def q(self, reload: bool = False, browser: bool = False) -> str:
|
||||
return self.css() + self._getQA(reload, browser)['q']
|
||||
|
||||
def a(self) -> str:
|
||||
|
@ -126,7 +127,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
|
|||
def css(self) -> str:
|
||||
return "<style>%s</style>" % self.model()['css']
|
||||
|
||||
def _getQA(self, reload=False, browser=False) -> Any:
|
||||
def _getQA(self, reload: bool = False, browser: bool = False) -> Any:
|
||||
if not self._qa or reload:
|
||||
f = self.note(reload); m = self.model(); t = self.template()
|
||||
data = [self.id, f.id, m['id'], self.odid or self.did, self.ord,
|
||||
|
@ -138,7 +139,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
|
|||
self._qa = self.col._renderQA(data, *args)
|
||||
return self._qa
|
||||
|
||||
def note(self, reload=False) -> Any:
|
||||
def note(self, reload: bool = False) -> Any:
|
||||
if not self._note or reload:
|
||||
self._note = self.col.getNote(self.nid)
|
||||
return self._note
|
||||
|
@ -188,6 +189,6 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""",
|
|||
def userFlag(self) -> Any:
|
||||
return self.flags & 0b111
|
||||
|
||||
def setUserFlag(self, flag) -> None:
|
||||
def setUserFlag(self, flag: int) -> None:
|
||||
assert 0 <= flag <= 7
|
||||
self.flags = (self.flags & ~0b111) | flag
|
||||
|
|
|
@ -4,11 +4,12 @@
|
|||
|
||||
from anki.utils import fieldChecksum, intTime, \
|
||||
joinFields, splitFields, stripHTMLMedia, timestampID, guid64
|
||||
from typing import Any, List, Tuple
|
||||
from typing import List, Tuple
|
||||
from typing import Any, Optional
|
||||
|
||||
class Note:
|
||||
|
||||
def __init__(self, col, model=None, id=None) -> None:
|
||||
def __init__(self, col, model: Optional[Any] = None, id: Optional[int] = None) -> None:
|
||||
assert not (model and id)
|
||||
self.col = col
|
||||
self.newlyAdded = False
|
||||
|
@ -44,7 +45,7 @@ from notes where id = ?""", self.id)
|
|||
self._fmap = self.col.models.fieldMap(self._model)
|
||||
self.scm = self.col.scm
|
||||
|
||||
def flush(self, mod=None) -> None:
|
||||
def flush(self, mod: Optional[int] = None) -> None:
|
||||
"If fields or tags have changed, write changes to disk."
|
||||
assert self.scm == self.col.scm
|
||||
self._preFlush()
|
||||
|
@ -90,16 +91,16 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
|
|||
return [(f['name'], self.fields[ord])
|
||||
for ord, f in sorted(self._fmap.values())]
|
||||
|
||||
def _fieldOrd(self, key) -> Any:
|
||||
def _fieldOrd(self, key: str) -> Any:
|
||||
try:
|
||||
return self._fmap[key][0]
|
||||
except:
|
||||
raise KeyError(key)
|
||||
|
||||
def __getitem__(self, key) -> Any:
|
||||
def __getitem__(self, key: str) -> Any:
|
||||
return self.fields[self._fieldOrd(key)]
|
||||
|
||||
def __setitem__(self, key, value) -> None:
|
||||
def __setitem__(self, key: str, value: str) -> None:
|
||||
self.fields[self._fieldOrd(key)] = value
|
||||
|
||||
def __contains__(self, key) -> bool:
|
||||
|
@ -108,7 +109,7 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
|
|||
# Tags
|
||||
##################################################
|
||||
|
||||
def hasTag(self, tag) -> Any:
|
||||
def hasTag(self, tag: str) -> Any:
|
||||
return self.col.tags.inList(tag, self.tags)
|
||||
|
||||
def stringTags(self) -> Any:
|
||||
|
@ -125,7 +126,7 @@ insert or replace into notes values (?,?,?,?,?,?,?,?,?,?,?)""",
|
|||
for r in rem:
|
||||
self.tags.remove(r)
|
||||
|
||||
def addTag(self, tag) -> None:
|
||||
def addTag(self, tag: str) -> None:
|
||||
# duplicates will be stripped on save
|
||||
self.tags.append(tag)
|
||||
|
||||
|
|
Loading…
Reference in a new issue