mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-07-07 16:56:13 +02:00
Prevent filtered deletion from deleting entire journal #932 and add lots of deletion tests
This commit is contained in:
parent
3820c1f4ba
commit
1c2432ba08
6 changed files with 186 additions and 5 deletions
|
@ -234,8 +234,15 @@ class Journal:
|
|||
|
||||
self.entries = result
|
||||
|
||||
def delete_entries(self, entries_to_delete):
|
||||
"""Deletes specific entries from a journal."""
|
||||
self.entries = [
|
||||
entry for entry in self.entries if entry not in entries_to_delete
|
||||
]
|
||||
|
||||
def prompt_delete_entries(self):
|
||||
"""Prompts for deletion of entries in a journal."""
|
||||
"""Prompts for deletion of each of the entries in a journal.
|
||||
Returns the entries the user wishes to delete."""
|
||||
|
||||
to_delete = []
|
||||
|
||||
|
@ -248,8 +255,7 @@ class Journal:
|
|||
if ask_delete(entry):
|
||||
to_delete.append(entry)
|
||||
|
||||
self.entries = [entry for entry in self.entries if entry not in to_delete]
|
||||
self.write()
|
||||
return to_delete
|
||||
|
||||
def new_entry(self, raw, date=None, sort=True):
|
||||
"""Constructs a new entry from some raw text input.
|
||||
|
|
16
jrnl/cli.py
16
jrnl/cli.py
|
@ -335,6 +335,7 @@ def run(manual_args=None):
|
|||
config = util.scope_config(config, journal_name)
|
||||
|
||||
log.debug('Using journal "%s"', journal_name)
|
||||
|
||||
mode_compose, mode_export, mode_import = guess_mode(args, config)
|
||||
|
||||
# How to quit writing?
|
||||
|
@ -478,5 +479,16 @@ def run(manual_args=None):
|
|||
journal.write()
|
||||
|
||||
elif args.delete:
|
||||
journal.prompt_delete_entries()
|
||||
journal.write()
|
||||
if journal.entries:
|
||||
entries_to_delete = journal.prompt_delete_entries()
|
||||
|
||||
if entries_to_delete:
|
||||
journal.entries = old_entries
|
||||
journal.delete_entries(entries_to_delete)
|
||||
|
||||
journal.write()
|
||||
else:
|
||||
print(
|
||||
"No entries deleted, because the search returned no results.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue