Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a67332149 | |||
| ccfaeed2ad | |||
| a55fc67a47 |
@@ -168,6 +168,13 @@ class QualKardHelper extends Base
|
||||
'recoreco_frequency' => 'daily',
|
||||
'recoreco_anchor' => 0,
|
||||
));
|
||||
|
||||
// QualKard adopts the card as a fresh flashcard, so wipe any stale RecoReco copy lineage. A
|
||||
// card that was a RecoReco duplicate carries recoreco_clone/recoreco_source; left in place it
|
||||
// makes an armed QualKard card look like a copy (yellow icon, "cannot be made recurring"
|
||||
// modal) while the cron still moves it. Removing them makes it a clean move-mode template.
|
||||
$this->taskMetadataModel->remove($task_id, 'recoreco_clone');
|
||||
$this->taskMetadataModel->remove($task_id, 'recoreco_source');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,6 +209,25 @@ class QualKardHelper extends Base
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Surgically un-study ONE card that the user dropped back into Drafts: wipe its mastery to
|
||||
* unread, clear the due date, and make it inert to RecoReco. Unlike resetCard() this does not
|
||||
* move or re-arm the card (it is already in Drafts and already armed) -- a lighter, per-card
|
||||
* counterpart to the board-wide Reset.
|
||||
*
|
||||
* The anchor is REMOVED, not saved as 0: Kanboard's metadata save drops the string "0" (empty()),
|
||||
* which would leave the old positive anchor in place and let RecoReco pull the card back out of
|
||||
* Drafts on the next cron. A removed key reads back as the default 0, so RecoReco skips it.
|
||||
*
|
||||
* @param int $task_id
|
||||
*/
|
||||
public function park($task_id)
|
||||
{
|
||||
$this->taskMetadataModel->save($task_id, array('qualkard_avg' => self::UNREAD)); // mastery -> new
|
||||
$this->taskMetadataModel->remove($task_id, 'recoreco_anchor'); // -> inert
|
||||
$this->db->table(TaskModel::TABLE)->eq('id', $task_id)->update(array('date_due' => 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Grade a card by a score (a grade column's value): update the running average, compute the next
|
||||
* due date, and arm the anchor. RecoReco moves the card from here.
|
||||
|
||||
@@ -47,6 +47,11 @@ class Plugin extends Base
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Dropped back into Drafts -> surgically un-study this one card (new badge, no due, inert).
|
||||
if ($dst === $helper->col($task['project_id'], 'draft')) {
|
||||
$helper->park($task['id']);
|
||||
}
|
||||
});
|
||||
|
||||
// Mastery badge under the card title on the board, plus its stylesheet.
|
||||
@@ -81,7 +86,7 @@ class Plugin extends Base
|
||||
|
||||
public function getPluginVersion()
|
||||
{
|
||||
return '1.1.1';
|
||||
return '1.1.4';
|
||||
}
|
||||
|
||||
public function getPluginHomepage()
|
||||
|
||||
@@ -112,7 +112,7 @@ harmlessly in place -- your columns and cards are untouched.
|
||||
|
||||
AGPL-3.0. See LICENSE.
|
||||
|
||||
## More Kanboard plugins by Dr. Bèco
|
||||
## More Kanboard plugins by Dr. Beco
|
||||
|
||||
All free and AGPL-3.0, at [code.beco.cc](https://code.beco.cc/beco):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user