Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repeat Every X Days (Monthlies) [$140] #4173

Closed
lemoness opened this issue Oct 20, 2014 · 67 comments · Fixed by #8572
Closed

Repeat Every X Days (Monthlies) [$140] #4173

lemoness opened this issue Oct 20, 2014 · 67 comments · Fixed by #8572
Assignees

Comments

@lemoness
Copy link
Contributor

This is a Github ticket for this much-requested Trello card feature so that people can put Bounties on it!

From card:
Tasks that repeat every "n" days

Examples:
Every 5 days after last Clean Bathroom
On Aug 1st every year, Send birthday card
Every 2 weeks ...
Every 3 days ...

The original card is here: https://trello.com/c/XuVokK2V/108-repeat-every-days-weeklies-monthlies

There is a $140 open bounty on this issue. Add to the bounty at Bountysource.

@lefnire lefnire changed the title Repeat Every X Days (Monthlies) Repeat Every X Days (Monthlies) [$10] Oct 21, 2014
@crookedneighbor
Copy link
Contributor

Maybe look at the way Todoist handles repeating events:
https://todoist.com/Help/timeInsert

@lemoness
Copy link
Contributor Author

A lot of people on Trello recommend the way Todoist handles things so
that's a good suggestion.

On Tue, Oct 21, 2014 at 6:03 AM, Blade Barringer notifications@github.com
wrote:

Maybe look at the way Todoist handles repeating events:
https://todoist.com/Help/timeInsert


Reply to this email directly or view it on GitHub
#4173 (comment).

@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$10] Repeat Every X Days (Monthlies) [$60] Oct 22, 2014
@lemoness
Copy link
Contributor Author

I've just added an additional $50 to this ticket.

@me-and
Copy link

me-and commented Oct 23, 2014

I've not published it widely yet because it works but isn't commented/documented, but if you have a handy system that can run a Python3 script on a regular basis, the Python3 module I've been writing has a script that implements recurring tasks and might work as an interim solution.

My next task with the module is to get it commented to a point at which I'm happy advertising it more widely, but I thought it might be useful here as an interim solution.

@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$60] Repeat Every X Days (Monthlies) [$75] Oct 24, 2014
@breadstrings
Copy link

Would this also include weeklies and yearlies?

@lemoness
Copy link
Contributor Author

lemoness commented Nov 3, 2014

Yes, ideally, since there was talk of implementing it as "repeat every X
days."

On Monday, November 3, 2014, breadstrings notifications@github.com wrote:

Would this also include weeklies and yearlies?


Reply to this email directly or view it on GitHub
#4173 (comment).

@breadstrings
Copy link

But considering leap years, and the different days of the month, would it really be "repeat every X days" or should it also include a specific date it repeats on as well as a task that appears on the first of week/month/year and lasts for the duration of the month/year if ticked off, but clears the tick on the next first of week/month/year?

Did that make sense? I know it was one of the things requested on Trello, but I can't remember if it's the same card or a different feature.

@crookedneighbor
Copy link
Contributor

@lemoness Will this be in addition to dailies, or replacing dailies?

@breadstrings
Copy link

@crookedneighbor - I believe this will be in addition to dailies.

@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$75] Repeat Every X Days (Monthlies) [$80] Nov 14, 2014
@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$80] Repeat Every X Days (Monthlies) [$90] Nov 17, 2014
@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$90] Repeat Every X Days (Monthlies) [$105] Nov 28, 2014
@paglias
Copy link
Contributor

paglias commented Nov 28, 2014

I think the biggest blocker here is the design. Someone has an idea on where to put them? I believe another 2 columns are out of question for a lot of reasons, starting from space

@lemoness
Copy link
Contributor Author

What about having them as tabs, or a toggle-able checkbox? How do other
sites do this?

On Fri, Nov 28, 2014 at 11:37 AM, Matteo Pagliazzi <notifications@github.com

wrote:

I think the biggest blocker here is the design. Someone has an idea on
where to put them? I believe another 2 columns are out of question for a
lot of reasons, starting from space


Reply to this email directly or view it on GitHub
#4173 (comment).

@crookedneighbor
Copy link
Contributor

@paglias I agree, adding even one more column would be undesirable.

@lemoness The best implementation I've seen of it is Todoist. Takes some getting use to using natural language processing instead of a series of buttons, but it becomes very efficient.

The difficult thing is dealing with making it translation friendly. Could be a reason to take it off the table entirely.

iCal on Macs use this for repeating events:
screen shot 2014-11-28 at 7 59 33 pm

Here are the options for custom:
repeating

It might be worth doing both a natural language option and a dropdown/button option.

@Alys
Copy link
Contributor

Alys commented Nov 29, 2014

I think where they're put would depend on whether the user wanted to be punished if they did not do the task on the exact day specified (Dailies) or not punished (To-Dos). I could see people wanting both options.

@woop
Copy link

woop commented Nov 29, 2014

I'd like to develop this feature since it is in very high demand. The problem I have is that there isn't a consensus on exactly what functionality is required, and how the user interface must accommodate this. At the moment we have loads of people pitching in ideas and features that they would like, but I don't know which I should include.

If somebody can give me a breakdown of exactly what is required then I can start coding it.

@deilann
Copy link
Contributor

deilann commented Nov 29, 2014

I think there are two separate features desired: monthlies and repeating
tasks.

Monthlies would be due on a specific day of the month, just like weeklies
are due on a specific day of the week. In other words, they are more like
Dailies.

Repeating tasks would be tasks not tied to a specific day -- in other
words, they are To-Dos that should auto-generate with a deadline.

On Sat, Nov 29, 2014 at 1:18 AM, Willem Pienaar notifications@github.com
wrote:

I'd like to develop this feature since it is in very high demand. The
problem I have is that there isn't a consensus on exactly what
functionality is required, and how the user interface must accommodate
this. At the moment we have loads of people pitching in ideas and features
that they would like, but I don't know which I should include.

If somebody can give me a breakdown of exactly what is required then I can
start coding it.


Reply to this email directly or view it on GitHub
#4173 (comment).

@paglias
Copy link
Contributor

paglias commented Nov 29, 2014

@deilann but repeating tasks wouldn't behave like dailies in terms of damage? If I create a "weekly" I would like it to do damege if I didn't complete it during the whole week

@paglias
Copy link
Contributor

paglias commented Nov 29, 2014

@willempienaar I think we're still brainstorming it :)

@crookedneighbor I like what iCal does, I would love it under a tab that is the current Dailies (with changed name) which cover all the different uses

@crookedneighbor
Copy link
Contributor

@paglias makes a good point. There are two kinds of repeating tasks here:

  1. Tasks that repeat at a set interval and should be completed on a specific day. IE, every Monday, every 3 days or every 2nd of the month.

  2. Tasks that repeat within a set interval and must be completed within that time frame, but not on a specific day. IE, once a week or twice a month.

The first seem like they should be treated like dailies, but the second should be treated like todos.

For simplicity's sake, it might be best to leave dailies as is, for tasks that occur at regular intervals in a week, and allow todos to have a repeating option for everything else.

If not that, I think that dailies would need to be overhauled completely to make this (proposed and still unclear) system work, and I'm not sure that it's worth it.

Thoughts?

@Alys
Copy link
Contributor

Alys commented Nov 29, 2014

"For simplicity's sake, it might be best to leave dailies as is, for tasks that occur at regular intervals in a week, and allow todos to have a repeating option for everything else."

I like this. At the very least, it could be the first solution that's made for this issue, and then later Dailies could be modified if there still seemed to be a need for it.

@lemoness
Copy link
Contributor Author

I'm also a fan of expanding Dailies to encompass Weeklies/Monthlies, and then leaving the repeating for a different feature! I think iCal does it well. Should I change the name of this ticket?

@crookedneighbor
Copy link
Contributor

For the todos, one approach would be this:

After a todo is checked as completed, check if it has the repeating flag. If it does, change the due date to the next applicable date and uncheck the todo.

So if the repeating flag is once a month, and it's November, my due date will be November 30th. If I complete the task in November, the due date will be changed to December 31st. If the November todo doesn't get completed until some time in February, the due date would change to March 31st (rather than December, since that has already passed).

@lemoness
Copy link
Contributor Author

lemoness commented Dec 1, 2014

Should I split off a separate ticket and give it the $50 December Bounty?
If so, should I branch off Monthlies, or Repeat Every X Days?

On Sun, Nov 30, 2014 at 8:25 AM, Blade Barringer notifications@github.com
wrote:

For the todos, one approach would be this:

After a todo is checked as completed, check if it has the repeating flag.
If it does, change the due date to the next applicable date and uncheck the
todo.

So if the repeating flag is once a month, and it's November, my due date
will be November 30th. If I complete the task in November, the due date
will be changed to December 31st. If the November todo doesn't get
completed until some time in February, the due date would change to March
31st (rather than December, since that has already passed).


Reply to this email directly or view it on GitHub
#4173 (comment).

@lemoness
Copy link
Contributor Author

@sadanyagci I think some of the programmers are concerned about this solution. Definitely wait to start programming until they've had some time to weigh in.

@kusold
Copy link
Contributor

kusold commented Feb 16, 2015

I'm not very active outside of this one issue, but I would definitely be wary of importing a dependency as big as the JRE into a project. While this is a robust solution, based on previous comments in this thread an MVP would be more appropriate. Probably something not as flexible but involving dropdown menus.

@Alys
Copy link
Contributor

Alys commented Feb 28, 2015

@sadanyagci What do you think about implementing this in a way that doesn't need a big dependency?

@sadanyagci
Copy link

I've been looking at other options. There's a javascript implementation here. It looks like it could work out with some modification. It functions to return correct days when working with daily, weekly, monthly, yearly, hourly, minutely... not too sure about secondly... all multiples of the previous. I haven't fully checked out its ability to work with time zones yet. It successfully returns lists of correct days within the limits specified, basically seeming to handle RFC2445 well. I'm unsure how I want to handle incorporating it yet, and my development environment is currently out of commission. If anyone wants to take a look and see what can be done, they can go right ahead. Or I can start right back up when I'm back up and running and not so busy.

@lefnire lefnire changed the title Repeat Every X Days (Monthlies) [$125] Repeat Every X Days (Monthlies) [$140] Mar 8, 2015
@louy2
Copy link

louy2 commented Mar 17, 2015

This is going towards the direction of a ical client...
I propose this API called Cronofy: http://www.cronofy.com/developers

@jaywink
Copy link

jaywink commented Mar 17, 2015

I think this feature has failed if it becomes a calendar in complexity ;)

@aliceinwire
Copy link

👍
If the complexity, can be made simple to understand, i like it!
And actually HabitRPG need many flexibility for became widespread.

@fallenpanda1
Copy link

Hi guys,

I've really wanted this feature for a while now, so I've made my own pull request for it: #5172. I understand there are others working on the same thing/similar things, would like to know if I should continue...if so I'm committed to seeing it through (and am completely open to feedback and discussion)! Thanks!

@PatchRanger
Copy link

As #5172 is merged as a fix for this issue, should not the corresponding bounty be paid to @fallenpanda1 via Bountysource and this issue be closed? I guess, they should)

@crookedneighbor
Copy link
Contributor

The ticket isn't fully addressed. For it to be completely resolved we need:

  • The ability to do every x days since last completed. IE, if I have a daily that repeats every 3 days since last completed and it is due on Saturday and I do not do it, it should damage me and still be due on Sunday. If I do it on Sunday, it'll be due again 3 days from then.
  • The ability to do tasks on a set day each month. IE, every 17th
  • The ability to do tasks on non-deterministic days of the month, IE, every 2nd Tuesday

@allynia6
Copy link

I would like to see the repeating function added to the To Dos (not just the dailies).

Specifically, I would like to see the following functionality:

Repeat every [x] [days/weeks/months] regardless of completion date (new to do every 2 weeks regardless of whether the last one was completed - so there could be two identical to dos on the list at the same time)

Repeat every [x] [days/weeks/months/years] after completion (new to do that appears every 2 weeks after last one, but does not generate unless the old one is completed)

Repeat on the [1st/2nd/3rd] day of the month or day of the week (eg an option to repeat on 1st of month or repeat on third Thursday of the month)

@sr-ix
Copy link

sr-ix commented Dec 2, 2015

Crowding the UI with an additional column seems like a bad option to me.

I would pose that instead of an additional "monthlies" section that there be an toggle for an advanced mode of "dailies" that has complete recurring task features. The "recurring" section could encompass the existing daily features as well as weeklies, monthlies, etc.

@jaywink
Copy link

jaywink commented Dec 3, 2015

TBH, the current implementation, no offence to the persons who contributed it, is kinda useless, to me at least. I'd rather have an implementation where I do something once a week, month, etc, like proposed here.

@alexlarsongit
Copy link

Hi, folks. I'm curious if anyone is still working on this issue? I was updating wiki pages, and that led me here. Did the group come to a consensus on the functionality needed (summarized by @crookedneighbor and @allynia6 on 24 Aug 2015 and 20 Nov 2015 respectively)? I can help analyze and document the requirements, if that's something folks would like help with.

@aliceinwire
Copy link

for me is perfect as now. we can recurring every x days and is what the topic says.

@paglias
Copy link
Contributor

paglias commented Sep 1, 2016

@SabreCat are you working on this?

@SabreCat
Copy link
Member

SabreCat commented Sep 2, 2016

@paglias: Subscription issues have moved up ahead of this in priority, but yes.

@JedMeister
Copy link

👍 Looking forward to this one people... 😄

@toddmedema
Copy link
Contributor

Also looking forward to this! Much needed for exercise tasks (aka exercise every 2 days)

@TheHollidayInn
Copy link
Contributor

This and a few more repeatables are being worked on here: #8444 .

@TheHollidayInn
Copy link
Contributor

Please donate the bounty back into Habitica. Thank you :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.