Change time on the new entry when --change-time and --edit are used together with a search that matching no entries

This commit is contained in:
Richard Schneider 2022-11-13 16:26:52 -06:00
parent 0fbdf25e83
commit 3bd76faa9a
2 changed files with 23 additions and 8 deletions

View file

@ -328,7 +328,11 @@ def _other_entries(journal: Journal, entries: list["Entry"]) -> list["Entry"]:
def _edit_search_results(
config: dict, journal: Journal, old_entries: list["Entry"], **kwargs
args: "Namespace",
config: dict,
journal: Journal,
old_entries: list["Entry"],
**kwargs
) -> None:
"""
1. Send the given journal entries to the user-configured editor
@ -350,6 +354,10 @@ def _edit_search_results(
# Get stats now for summary later
old_stats = _get_predit_stats(journal)
# If we're adding a new entry (due to no entries matching the
# search), apply the change time operation if it was requested
do_change_time = not journal.entries and args.change_time
# Send user to the editor
edited = get_text_from_editor(config, journal.editable_str())
journal.parse_editable_str(edited)
@ -358,9 +366,16 @@ def _edit_search_results(
_print_edited_summary(journal, old_stats)
# Put back entries we separated earlier, sort, and write the journal
journal.entries += other_entries
journal.sort()
journal.write()
if do_change_time:
# If we're changing time, _change_time_search_results will
# handle the recombining, sorting, and saving
_change_time_search_results(
args, journal, other_entries, no_prompt=True, **kwargs
)
else:
journal.entries += other_entries
journal.sort()
journal.write()
def _print_edited_summary(

View file

@ -243,19 +243,19 @@ Feature: Change entry times in journal
# | basic_dayone.yaml | @todo
Scenario Outline: --change-time with --edit and an empty search adds an entry
Scenario Outline: --change-time with --edit and an empty search adds an entry at the specified time
Given we use the config "<config_file>"
And we write nothing to the editor if opened
And we use the password "test" if prompted
And we append to the editor if opened
[2022-11-13 11:25] worked on jrnl tests
When we run "jrnl -on tomorrow --change-time --edit"
worked on jrnl tests
When we run "jrnl -on tomorrow --change-time '2022-11-13 13:25' --edit"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
2020-08-31 14:32 A second entry in what I hope to be a long series.
2020-09-24 09:14 The third entry finally after weeks without writing.
2022-11-13 11:25 worked on jrnl tests
2022-11-13 13:25 worked on jrnl tests
Examples: Configs
| config_file |