Issue tracker: Issueshttps://it.michalczyk.pro/https://it.michalczyk.pro/favicon.ico?15431677302023-12-21T01:21:05ZIssue tracker
Redmine Issue recurring - task #48 (closed): date_limit before anchor_date results in exception on recurr...https://it.michalczyk.pro/issues/482023-12-21T01:21:05Zcryptogopher
<p>Anchor mode <code>date_fixed_after_close</code> does not properly handle case when <code>date_limit</code> is before <code>anchor_date</code>.</p>
Solution:
<ul>
<li>fix case when <code>IssueRecurrence#advance</code> returns <code>nil</code> for <code>date_fixed_after_close</code> right from recurrence creation</li>
<li>disallow <code>date_limit</code> <= <code>anchor_date</code> as it does not make sense anyway</li>
</ul> Issue recurring - task #47 (new): Test Rake task :renew_allhttps://it.michalczyk.pro/issues/472023-12-09T00:00:10Zcryptogopher
<ul>
<li>check email delivery, if possible</li>
</ul> Issue recurring - task #44 (new): Disabling recurrenceshttps://it.michalczyk.pro/issues/442023-06-08T13:47:17Zcryptogopher
<ul>
<li>stop creating recurrences without removing recurrence scheme configuration</li>
<li>add <code>:disabled_before</code> field to exclude time period from recurrence creation after re-enabling fixed_date recurrences
<ul>
<li>alternatively add date range exclusion from <a class="issue tracker-1 status-1 priority-1 priority-lowest" title="task: Allow exclusion of multiple date ranges (new)" href="https://it.michalczyk.pro/issues/3">#3</a> first</li>
</ul></li>
</ul> Issue recurring - task #36 (closed): system/issue_recurrences_test.rb --name test_update_recurren...https://it.michalczyk.pro/issues/362022-11-18T17:39:05ZcryptogopherIssue recurring - task #35 (closed): Fix db migrations which use modelshttps://it.michalczyk.pro/issues/352022-09-13T12:48:02Zcryptogopher
<ul>
<li>003: IssueRecurrence</li>
<li>add migration tests</li>
</ul> Issue recurring - task #25 (new): Add journal on issue recurrence scheme creation/deletion/editionhttps://it.michalczyk.pro/issues/252020-04-09T14:34:27Zcryptogopher
Rationale:
<ul>
<li>to enable recurrence scheme change history auditing</li>
</ul> Issue recurring - task #24 (closed): Extend add_journal setting to include "in-place only" optionhttps://it.michalczyk.pro/issues/242020-04-07T22:44:18Zcryptogopher
Rationale:
<ul>
<li>to allow creation of journal only on recurrences which don't cause new issue creation. This may e.g. allow for creating better email notification experience. When you have email notifications set to inform about new issues, you may not need to have 2nd one for journal entry addition on base issue in 'copy issue' or 'copy last recurrence of issue' modes. On the other hand 'in-place' mode does not create new issue. So to trigger email notification on new recurrence you may want to have journal entry added on it.</li>
</ul>
Actions:
<ul>
<li>add settings processing in SettingsController
<ul>
<li>convert settings to proper data type (e.g. int; currently all setting values are stored as strings)</li>
<li>check settings validity and <del>reject settings if invalid</del> correct if invalid</li>
</ul>
</li>
<li>change setting name add_journal -> journal_mode</li>
<li>update code to account for new journal_mode setting values and value types</li>
<li>update system and integration tests with new journal_mode setting values and value types</li>
<li>migrate add_journal settings to journal_mode:
<ul>
<li>add conversion to db migration: up ['true' -> :always, nil -> :never], down [:never -> nil, :always/:inplace -> 'true']</li>
</ul></li>
</ul> Issue recurring - task #17 (closed): Fix next_dates computation for displaying next recurrence dateshttps://it.michalczyk.pro/issues/172019-07-27T14:49:45Zcryptogopher
<ul>
<li>as a consequence order of recurrence renewal will not matter anymore: next recurrence dates should be computed independently, without creating issue recurrences during the process</li>
</ul> Issue recurring - task #16 (closed): Add system testshttps://it.michalczyk.pro/issues/162019-07-14T12:18:50Zcryptogopher
<ul>
<li>test create/destroy actions results on issue show page</li>
</ul>
<p>Depending on level of complication can be for Rails 5/Redmine 4 only, <a class="external" href="https://guides.rubyonrails.org/testing.html#system-testing">https://guides.rubyonrails.org/testing.html#system-testing</a></p> Issue recurring - task #14 (closed): Disallow multiple in-place recurrences for one issuehttps://it.michalczyk.pro/issues/142019-02-20T15:53:20Zcryptogopher
<p>It is illogical to have more than one in-place recurrence: different start/due dates cannot be applied to single issue and in-place recurrence does not create additional issues.</p>
<p>Also it is impossible to create meaningful algorithm to choose order for applying multiple different in-place recurrences without additional information. Just picking the earliest recurrence may be solution, but it's hard to come up with some real world application of something like that.</p>
<p>Until some good reason will be found for enabling it again (preferably through switch in plugin settings), it should be disabled to avoid misleading users creating multiple in-place recurrences, hoping it will work in any reasonable way.</p> Issue recurring - task #12 (new): Add ability to clear/set arbitrary issue field on recurrence fo...https://it.michalczyk.pro/issues/122019-01-06T22:59:07Zcryptogopher
<p>Use case: when recurrence requires scheduling some appointment, you want to set appointment time in issue field (e.g. custom field called "due time"). Then after closing - when next recurrence is scheduled - you want to have "due time" cleared as you need to schedule an appointment once again, probably on different time.</p> Issue recurring - task #11 (closed): Add editing supporthttps://it.michalczyk.pro/issues/112018-11-07T16:03:30ZcryptogopherIssue recurring - task #10 (new): Recurrence algorithms explanation docs with timeline graphshttps://it.michalczyk.pro/issues/102018-11-05T16:30:07ZcryptogopherIssue recurring - task #8 (new): Remove all clear texts into translations filehttps://it.michalczyk.pro/issues/82018-11-04T17:03:58ZcryptogopherIssue recurring - task #7 (new): Display schedule of future recurrences in issue view, 'Details' ...https://it.michalczyk.pro/issues/72018-11-04T17:02:21Zcryptogopher
<p>Few first and last (if limited).</p> Issue recurring - task #6 (new): Optimize DB querieshttps://it.michalczyk.pro/issues/62018-11-04T17:01:02Zcryptogopher
<p>To avoid N+1 problem. Provide appropriate test if possible.</p> Issue recurring - task #5 (rejected): Add configuration option to specify, how far into the futur...https://it.michalczyk.pro/issues/52018-11-04T16:57:36Zcryptogopher
<p>Currently next recurrence is created when any date of last recurrence is earlier than tomorrow.</p> Issue recurring - task #4 (rejected): Monthly recurrence based on working days doesn't work with ...https://it.michalczyk.pro/issues/42018-11-04T16:55:14Zcryptogopher
<p>Due to Array#bsearch_index missing.</p> Issue recurring - task #3 (new): Allow exclusion of multiple date rangeshttps://it.michalczyk.pro/issues/32018-11-04T16:53:30Zcryptogopher
<p>Currently recurrences flow uninterrupted since start until forever or limit condition. It should be possible to exclude specific date ranges, during which no recurrence will be created (though recurrence pattern should be maintained over the extent of these periods).</p> Issue recurring - task #2 (new): Sorting recurrences table in project 'Issue recurrences' tabhttps://it.michalczyk.pro/issues/22018-11-04T16:49:38ZcryptogopherIssue recurring - task #1 (closed): Add separate field (anchor_to_start:bool) to specify if issue...https://it.michalczyk.pro/issues/12018-11-04T16:25:10Zcryptogopher
<p>Currently start/due can only be specified for monthly recurrences. While it is not needed for fixed daily/weekly modes (yearly mode can make use of it on leap years), it should be possible for flexible modes to have either start or due date based on last recurrence close date (currently plugin decides which one to use, based on availability, but defaults to due date). That's why anchor date should be separated from recurrence mode.</p>
Migration of existing records can be as follows:
<ul>
<li>monthly_start/due are converted accordingly,</li>
<li>all others: if start_date available and due_date empty anchor_to_start=true, false otherwise</li>
</ul>