- def copy_booking(self, id_: int, to_end: bool) -> int:
- """Add copy of Booking of id_ to_end of ledger, or after copied."""
- copied = self.bookings[id_]
- new_id = len(self.bookings) if to_end else copied.id_ + 1
- if to_end:
- intro_comment = copied.booked_lines[0].comment
- intro = DatLine(
- f'{dt_date.today().isoformat()} {copied.target}'
- + (f' ; {intro_comment}' if intro_comment else ''))
- new_booking = Booking(new_id,
- [intro] + copied.booked_lines_copied[1:],
- copied.gap_lines_copied)
- self.bookings += [new_booking]
- else:
- new_booking = Booking(new_id,
- copied.booked_lines_copied,
- copied.gap_lines_copied)
- self.bookings[new_id:new_id] = [new_booking]
- for b in self.bookings[new_id + 1:]:
- b.id_ += 1
- new_booking.recalc_prev_next(self.bookings)
- self._recalc_dat_lines()
- return new_id
+ def add_empty_booking(self) -> int:
+ """Add new Booking to end of ledger."""
+ return self._add_new_booking('?', [])
+
+ def copy_booking(self, copied_id: int) -> int:
+ """Add copy of Booking of copied_id to_end of ledger."""
+ copied = self.bookings[copied_id]
+ return self._add_new_booking(copied.target,
+ copied.booked_lines_copied[1:],
+ copied.booked_lines[0].comment)