Skip to content

v2.65.0

Choose a tag to compare

@akashc777 akashc777 released this 08 Oct 14:56
· 7 commits to main since this release

Invoices you keep track of

  • An invoice made from a project's time can now be saved: Save draft, or Save as sent once it's gone to the client. It takes the next number in the project's sequence (QL-0001, QL-0002…), or one you type; numbers are unique across your OneCamp.
  • A saved invoice keeps its lines as they were billed, with amounts and totals worked out on the server, so changing a rate later doesn't change it. Open it again from the project's time report to print it.
  • A draft can still be changed or deleted. Once sent, an invoice stays as it was sent: Mark paid when the money arrives (Mark unpaid takes it back), Back to draft if it went out by mistake, or Void it to correct it with a new one; a void invoice keeps its number, so no number is used twice.
  • The time report lists a project's invoices, with what's still owed and which are Overdue.
  • Only a project's admins see and make invoices, as with rates. New: migration 194; GET/POST /project/{p}/invoices, /invoices/{i}, /invoices/{i}/status, /invoices/{i}/delete.

Dependencies that work the way your plan does

  • A dependency can now be start to start, finish to finish or start to finish as well as finish to start, with a lag in days: positive to leave a gap, negative to let the tasks overlap, up to 365 either way. In a task's panel, press the words beside the other task's name (Finish to start, to begin with); the panel says what you chose in a sentence before you save.
  • The timeline draws each arrow between the ends its kind ties, and turns it red when the dates can't keep to its kind and lag.
  • Moving a task later moves the tasks waiting on it just far enough for each kind and lag.
  • Only finish to start marks a task as blocked: with the other kinds, both tasks can be under way at once.
  • API: POST /task/dependency takes kind (fs, ss, ff or sf; empty is fs) and lag; posting a dependency that's already there changes how it waits. Task and timeline responses carry each dependency's task_blocked_by|kind and task_blocked_by|lag (task_blocks|… on the other side). No migration.

Fixes

  • Deleting a message, a file or a search entry that was never indexed no longer logs an error.

Known issue, fixed on 8 October: in this release's web app, live updates (new messages, typing and other changes) didn't arrive until a reload. The web app's branches are fixed; run make web_up in your OneCamp folder (or make update) to rebuild the web app, or redeploy your frontend if you host it elsewhere.