Skip to content
Snippets Groups Projects
  1. May 13, 2023
  2. May 09, 2023
    • Jed Fox's avatar
      Enable 'curly' rule (#1015) · 54fa4bcc
      Jed Fox authored
      Multi-line `if`/`for` statements in JS can be confusing since there
      aren’t braces to indicate which code is enclosed in the statement. I set
      the configuration to `multi-line` to enforce usage of braces for
      multi-line statement bodies, but still allow things like `if (foo)
      return;`. I additionally added the `consistent` option to require braces
      for all elements of an if/else chain if one element has it. As you can
      see, this set of options pretty closely matches the existing code style.
      
      I was going to comment in #1008 about this stylistic change but realized
      that it’s (IMO) a little impolite to ask for code style changes unless
      they can be automatically enforced.
      
      Note that `if (foo) { \n return; \n }` is still valid and won’t be
      collapsed. I tried to automatically collapse all such cases but it was a
      lot of files and I didn’t want to pick out the useful from the useless
      differences.
      Unverified
      54fa4bcc
  3. May 07, 2023
  4. May 02, 2023
    • shall0pass's avatar
      Priorities for goals (#961) · 66f7336b
      shall0pass authored
      This attempts to add priorities for goal templates and addresses most of
      https://github.com/actualbudget/actual/issues/959
      
      .
      
      I couldn't find a good way to preserve both "Apply" and "Overwrite"
      operations, so this PR does away with the current "Apply" action
      behavior. Every box with a budgeted value will be overwritten if a
      template goal is present.
      
      The added syntax to define priorities is as follows:
      #template    -- priority 0, highest priority
      #template-1  --priority 1, 2nd highest priority
      #template-2 --priority 2, 3rd highest priority
      #template-N --priority N, as many as you'd like.
      
      ~~Leaving as a draft as this may not be the preferred implementation but
      I wanted others to be able to try it with netlify.~~
      
      ---------
      
      Co-authored-by: default avatarCaleb Young <cwy@rincon.com>
      Unverified
      66f7336b
  5. Apr 23, 2023
  6. Apr 22, 2023
    • shall0pass's avatar
      [Feature] Initial concept for adding percentage based goals (#858) · 3ceb2d92
      shall0pass authored
      This is an initial concept for adding percent based goal targets.
      
      This version works by using a string in the form of: 
      #template 10% of Income <- Income is an income category name. Only
      income category names will work here currently.
      or
      #template 10% of all income<- 'all income' is a keyword in this context
      and will base the calculation on the total income for the month.
      
      Some of the nicer touches like Jed's polite notification that the syntax
      isn't correct is not implemented here yet.
      Unverified
      3ceb2d92
    • shall0pass's avatar
      Change method of calculating 'by' matches to use averaging (#879) · 0bcf6ea6
      shall0pass authored
      I've changed the method of calculating the budgeted amount. There may be
      a more efficient way of writing the loop, so I'm looking forward to the
      review.
      
      This change implements the mathematics of
      (Target1+Target2+TargetN-Last_months_category_balance) / (MonthsRemaing1
      + MonthsRemaining2 + MonthsRemaingN) * N. This is an averaged approach
      for multiple templates in the same category. It will appear to
      overbudget or underbudget some months compared to multiple single
      targets in different categories, yet there should always be enough saved
      in the category to satisfy the target due.
      
      Setting a target, it's assumed that money will be spent in the
      appropriate month, When a target reaches maturity, the money in the
      category associated with that target should be spent or moved so the
      remaining targets continue to be funded. I don't see an easy way of
      fixing that, but I hope this change will be of some help.
      
      Current method:
      Notice how the Bills (flexible) category reduces each month, resulting
      in larger budgeted amounts later in the goal cycle.
      
      
      ![Templates-now](https://user-images.githubusercontent.com/20625555/230964939-d20ca72b-1055-471a-9044-7cd640f19875.gif)
      
      Proposed method:
      **Note: The fact that the initial fill in this example equals the
      expected fill is a coincidence based on the template values I chose. The
      initial fills can be different from expected fill.
      
      
      ![Templates-proposed](https://user-images.githubusercontent.com/20625555/230965265-669f996c-3112-437b-ab83-9715ea5dfc7f.gif)
      Unverified
      0bcf6ea6
  7. Apr 16, 2023
  8. Apr 13, 2023
  9. Apr 07, 2023
    • shall0pass's avatar
      Allow goal template 'by' matches to compound (#860) · adf205db
      shall0pass authored
      I believe this change allows for having multiple 'by' rules in the same
      category. It seems to be working well for my purposes, but I would
      appreciate further testing to assure there aren't regressions.
      
      Example:
      
      #template 300 by 2023-06
      #template 3000 by 2023-08
      
      Before this PR, having these two lines in the notes would only budget
      funds for the earliest of the two strings and ignore the 3000 funding
      target. With this PR, the sum of the two funding targets will be
      respected.
      Unverified
      adf205db
  10. Mar 21, 2023
  11. Mar 16, 2023
  12. Mar 14, 2023
  13. Feb 12, 2023
    • Jed Fox's avatar
      Updates to the template/goal feature (#588) · a8656162
      Jed Fox authored
      * Dedupe loot-core webpack configs
      
      * Swap to parsing using Peggy
      
      * Actually record syntax errors
      
      * Refactor template types
      
      * Add notifications after applying the templates
      
      * “Successfully”
      
      * Try a Nearley grammar
      
      * Revert "Try a Nearley grammar"
      
      This reverts commit 1e11c07b855a492b905f1291c3eadd93f78ac3de.
      
      Not going with this approach since the error messages are inscrutable.
      
      * switch to PEG.js which has slightly better tooling support
      
      * fix parser
      
      * Fix error reporting
      
      * Adjust grammar for better error messages
      
      Also allow spaces between currency symbol and number
      
      * Fix grammar
      
      * Make #template prefix case insensitive
      
      * Trailing commas
      
      * Remove patch-package from loot-core
      Unverified
      a8656162
  14. Feb 10, 2023
  15. Jan 28, 2023
Loading