Git Product home page Git Product logo

Comments (6)

vonshednob avatar vonshednob commented on May 28, 2024 1

The program-wide option was inspired by topydo, but I was considering a possibility to specify the mode on a task-by-task basis.

Semantically, + feels more like the interval mode than the strict mode, but since it appears to be the qualifier used by sleek and SwiftoDo (just not by topydo), I’ll follow that to keep pter as compatible as possible.

pter already supports relative dates, which means I can just reuse that pattern, so the + is well in the syntax. And of course it doesn’t make a lot of sense to have a recurring task with a negative time interval.

This makes me wonder whether the global option is of any use 🤔 probably not, because it’ll result rather in user surprise than consistent behaviour.

from pter.

vonshednob avatar vonshednob commented on May 28, 2024 1

Well, let’s see how that worked out… fixed in 3.1.0.

Just scream when there’s something wrong with it 😁

from pter.

vonshednob avatar vonshednob commented on May 28, 2024

Glad you like it so far.

You are right though, pter does not support recurring tasks at the moment. But I like that feature quite a bit. Gotta think about it some more, but I’ll add it!

Thanks for the suggestion!

from pter.

pglaz avatar pglaz commented on May 28, 2024

Thank you so much! That's awesome.

Just to give you something to consider, what I saw in other todotxt apps is the normal recurring and strict recurring (for example Michael Descy's SwiftoDo or sleek both do this).

Some apps though require recurring tasks to have due dates, which I don't understand given that there could be a threshold date present instead. In my personal opinion, due dates should be used sparingly (if I don't do this by this day, I'll be fired or my wife will leave me). Adding due dates to all recurring tasks, even with a threshold date present, desensitizes me from due dates -- my todo list is full of them so they're no longer scary. I think the following approach makes most sense:

  • if recurring task has a due date only, the new due date is today + recur period (e.g. 2w) but no threshold date is added,
  • if recurring task has a threshold date only, the new threshold date is today + recur period but no due date is added,
  • if recurring task has both due and threshold dates, the new dates are today + recur period,
  • if recurring task has neither threshold, nor due date, well... Maybe adding a due date makes sense here or just re-creating the task as-is.

Anyway, that's just my 5 cents. You'll decide which approach is best given your vision of pter!

from pter.

vonshednob avatar vonshednob commented on May 28, 2024

Yeah, I pretty much agree with the points you listed there. There will likely be two configuration options to control the behaviour:

  • reuse-recurring, whether or not to create new tasks
  • recurring-mode, either strict or interval, to have the new task follow the due/t date or the completion date.

I like your suggestion to follow t if no due has been defined.

Thanks for the input! I’ll get to it :)

from pter.

pglaz avatar pglaz commented on May 28, 2024

For recurring-mode, do you mean that it'd be set in the config for all tasks? Perhaps it could also be modified on per-task basis with the presence or absence of + sign, like

  • (A) pay rent t:2021-12-03 due:2021-12-10 rec:+m -- I should pay my rent between 3rd and 10th of each month, no matter on which day I paid it last month,
  • (A) schedule dentist check-up t:2022-03-01 rec:6m -- I want to visit the dentist roughly 6 months but it shouldn't be strict -- perhaps I'll get it done even 3 weeks after the todo re-appears on my list.

So one might need both normal and strict recurring within a single todo list. But again -- I don't want to get too intrusive here and it's just my opinion!

from pter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.