diff --git a/README.md b/README.md index 1130d95..9706cc1 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ View the [Change Logs](https://github.com/csgoh/roadmapper/wiki/Change-Logs) to ### Library Dependencies * python-dateutil >= 2.8.2 -* Pillow >= 10.0.0 -* drawsvg >= 2.2.0 +* Pillow >= 10.3.0 +* drawsvg >= 2.3.0 Any feedback or suggestions are welcome. Please feel free to create an issue or pull request. @@ -72,20 +72,20 @@ from roadmapper.timelinemode import TimelineMode roadmap = Roadmap(1200, 400, colour_theme="BLUEMOUNTAIN") roadmap.set_title("My Demo Roadmap") roadmap.set_subtitle("Matariki Technologies Ltd") -roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01", number_of_items=12) +roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01", number_of_items=12) roadmap.add_logo("matariki-tech-logo.png", "top-right", 50, 50) group = roadmap.add_group("Core Product Work Stream") -task = group.add_task("Base Functionality", "2023-01-01", "2023-10-31") -task.add_milestone("v.1.0", "2023-02-15") -task.add_milestone("v.1.1", "2023-08-01") +task = group.add_task("Base Functionality", "2024-01-01", "2024-10-31") +task.add_milestone("v.1.0", "2024-02-15") +task.add_milestone("v.1.1", "2024-08-01") -parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") -parellel_task.add_milestone("v.2.0", "2024-03-30") +parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2025-03-31") +parellel_task.add_milestone("v.2.0", "2025-03-30") -task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") -task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") +task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") +task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") roadmap.set_footer("Generated by Roadmapper") roadmap.draw() diff --git a/images/black_roadmap.png b/images/black_roadmap.png index c8d9db1..b76a919 100644 Binary files a/images/black_roadmap.png and b/images/black_roadmap.png differ diff --git a/images/black_roadmap.svg b/images/black_roadmap.svg index 74ce5cc..d41b3cb 100644 --- a/images/black_roadmap.svg +++ b/images/black_roadmap.svg @@ -5,11 +5,11 @@ -Black Background Test Roadmap +Black Background Test Roadmap -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -44,13 +44,13 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B -Milestone 2 +Milestone 2 +Task 2-B -Milestone 1 +Milestone 1 +Task 1-A \ No newline at end of file diff --git a/images/color-theme01.png b/images/color-theme01.png index 42c3386..5a1ff37 100644 Binary files a/images/color-theme01.png and b/images/color-theme01.png differ diff --git a/images/color-theme01.svg b/images/color-theme01.svg index b53ef5a..1333eba 100644 --- a/images/color-theme01.svg +++ b/images/color-theme01.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/color-theme02.png b/images/color-theme02.png index 1e2b4ae..a6d9df8 100644 Binary files a/images/color-theme02.png and b/images/color-theme02.png differ diff --git a/images/color-theme02.svg b/images/color-theme02.svg index 02ed214..ee8bdf1 100644 --- a/images/color-theme02.svg +++ b/images/color-theme02.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/color-theme03.png b/images/color-theme03.png index e0ded0e..72115f9 100644 Binary files a/images/color-theme03.png and b/images/color-theme03.png differ diff --git a/images/color-theme03.svg b/images/color-theme03.svg index affd84e..be0d3f3 100644 --- a/images/color-theme03.svg +++ b/images/color-theme03.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/color-theme04.png b/images/color-theme04.png index 14bb442..49eab6a 100644 Binary files a/images/color-theme04.png and b/images/color-theme04.png differ diff --git a/images/color-theme04.svg b/images/color-theme04.svg index f7efe6d..67fbd3b 100644 --- a/images/color-theme04.svg +++ b/images/color-theme04.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/color-theme05.png b/images/color-theme05.png index b23cb65..5741702 100644 Binary files a/images/color-theme05.png and b/images/color-theme05.png differ diff --git a/images/color-theme05.svg b/images/color-theme05.svg index a1a77b6..82a0e49 100644 --- a/images/color-theme05.svg +++ b/images/color-theme05.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/demo01.png b/images/demo01.png index 4498f18..facd27a 100644 Binary files a/images/demo01.png and b/images/demo01.png differ diff --git a/images/demo01.svg b/images/demo01.svg index 0a768ef..a1dac91 100644 --- a/images/demo01.svg +++ b/images/demo01.svg @@ -4,12 +4,12 @@ -My Demo Roadmap -Matariki Technologies Ltd +My Demo Roadmap +Matariki Technologies Ltd -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -44,26 +44,19 @@ -Core Product Work Stream +Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 - - - - - - - -Generated by Roadmapper +Showcase #2 +Showcase #1 +Generated by Roadmapper \ No newline at end of file diff --git a/images/en_NZ-roadmap.png b/images/en_NZ-roadmap.png index 6d447ca..640fa81 100644 Binary files a/images/en_NZ-roadmap.png and b/images/en_NZ-roadmap.png differ diff --git a/images/en_NZ-roadmap.svg b/images/en_NZ-roadmap.svg index 315448c..f060069 100644 --- a/images/en_NZ-roadmap.svg +++ b/images/en_NZ-roadmap.svg @@ -4,10 +4,10 @@ -Strategy Roadmap 2023 -Matariki Technologies Ltd +Strategy Roadmap 2023 +Matariki Technologies Ltd -Year 2023 +Year 2023 Q1 @@ -20,52 +20,32 @@ -People Stream +People Stream -Develop Inclusion Strategy -Promote diversity, equity, and inclusion +Promote diversity, equity, and inclusion +Develop Inclusion Strategy -Implement a sustainability programme +Implement a sustainability programme -Process Stream +Process Stream -Implement Business Improvement Programme +Implement Business Improvement Programme -Automate processes -30% Automated +30% Automated -60% Automated +60% Automated +Automate processes -Tool Stream +Tool Stream -Implement strategy +Implement strategy -Tools Selection +Tools Selection -Centralized Tool Administration -Admin Centralised - - - - - - - - - - - - - - - - - - - - -Generated by Roadmapper +Admin Centralised +Centralized Tool Administration +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-BLUEMOUNTAIN-monthly.png b/images/gallery/gallery-BLUEMOUNTAIN-monthly.png index 80271c3..05a159a 100644 Binary files a/images/gallery/gallery-BLUEMOUNTAIN-monthly.png and b/images/gallery/gallery-BLUEMOUNTAIN-monthly.png differ diff --git a/images/gallery/gallery-BLUEMOUNTAIN-monthly.svg b/images/gallery/gallery-BLUEMOUNTAIN-monthly.svg index 5cb0225..c379092 100644 --- a/images/gallery/gallery-BLUEMOUNTAIN-monthly.svg +++ b/images/gallery/gallery-BLUEMOUNTAIN-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -46,30 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-generic-monthly.png b/images/gallery/gallery-DEFAULT-generic-monthly.png index bb2f60f..63c6ff0 100644 Binary files a/images/gallery/gallery-DEFAULT-generic-monthly.png and b/images/gallery/gallery-DEFAULT-generic-monthly.png differ diff --git a/images/gallery/gallery-DEFAULT-generic-monthly.svg b/images/gallery/gallery-DEFAULT-generic-monthly.svg index ce32410..50b8877 100644 --- a/images/gallery/gallery-DEFAULT-generic-monthly.svg +++ b/images/gallery/gallery-DEFAULT-generic-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 1 +Year 1 -Month 1 +Month 1 Month 2 @@ -27,11 +27,11 @@ Month 9 -Month 10 +Month 10 -Month 11 +Month 11 -Month 12 +Month 12 @@ -46,20 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-halfyearly.png b/images/gallery/gallery-DEFAULT-halfyearly.png index d30bb2d..0332067 100644 Binary files a/images/gallery/gallery-DEFAULT-halfyearly.png and b/images/gallery/gallery-DEFAULT-halfyearly.png differ diff --git a/images/gallery/gallery-DEFAULT-halfyearly.svg b/images/gallery/gallery-DEFAULT-halfyearly.svg index bfeecc2..9bc85b6 100644 --- a/images/gallery/gallery-DEFAULT-halfyearly.svg +++ b/images/gallery/gallery-DEFAULT-halfyearly.svg @@ -4,18 +4,18 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Year 2024 +Year 2024 -H1 +H1 H2 -H1 +H1 H2 @@ -24,32 +24,32 @@ Core Product Work Stream -Base Functionality -Enhancements -v.2.0 +v.2.0 +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development + + + + + + + + + + +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-monthly.png b/images/gallery/gallery-DEFAULT-monthly.png index db0668f..b4b13d2 100644 Binary files a/images/gallery/gallery-DEFAULT-monthly.png and b/images/gallery/gallery-DEFAULT-monthly.png differ diff --git a/images/gallery/gallery-DEFAULT-monthly.svg b/images/gallery/gallery-DEFAULT-monthly.svg index 72c08e1..1a0894e 100644 --- a/images/gallery/gallery-DEFAULT-monthly.svg +++ b/images/gallery/gallery-DEFAULT-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -46,30 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-quarterly.png b/images/gallery/gallery-DEFAULT-quarterly.png index 69e53a4..35d32e7 100644 Binary files a/images/gallery/gallery-DEFAULT-quarterly.png and b/images/gallery/gallery-DEFAULT-quarterly.png differ diff --git a/images/gallery/gallery-DEFAULT-quarterly.svg b/images/gallery/gallery-DEFAULT-quarterly.svg index ba5d124..8ab8620 100644 --- a/images/gallery/gallery-DEFAULT-quarterly.svg +++ b/images/gallery/gallery-DEFAULT-quarterly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Year 2024 +Year 2024 Q1 @@ -30,32 +30,32 @@ Core Product Work Stream -Base Functionality -Enhancements -v.2.0 +v.2.0 +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development + + + + + + + + + + +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-weekly.png b/images/gallery/gallery-DEFAULT-weekly.png index 771d190..7055267 100644 Binary files a/images/gallery/gallery-DEFAULT-weekly.png and b/images/gallery/gallery-DEFAULT-weekly.png differ diff --git a/images/gallery/gallery-DEFAULT-weekly.svg b/images/gallery/gallery-DEFAULT-weekly.svg index fd436c8..b934bfa 100644 --- a/images/gallery/gallery-DEFAULT-weekly.svg +++ b/images/gallery/gallery-DEFAULT-weekly.svg @@ -4,13 +4,13 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year -2022 +Year +2022 -Year 2023 +Year 2023 W52 @@ -34,7 +34,7 @@ W10 -W11 +W11 W12 @@ -169,30 +169,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-DEFAULT-yearly.png b/images/gallery/gallery-DEFAULT-yearly.png index f5c6972..c4a7be7 100644 Binary files a/images/gallery/gallery-DEFAULT-yearly.png and b/images/gallery/gallery-DEFAULT-yearly.png differ diff --git a/images/gallery/gallery-DEFAULT-yearly.svg b/images/gallery/gallery-DEFAULT-yearly.svg index 36d93e2..5522d74 100644 --- a/images/gallery/gallery-DEFAULT-yearly.svg +++ b/images/gallery/gallery-DEFAULT-yearly.svg @@ -4,42 +4,42 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Year 2024 +Year 2024 Core Product Work Stream -Base Functionality -Enhancements -v.2.0 +v.2.0 +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development + + + + + + + + + + +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-GREENTURTLE-monthly.png b/images/gallery/gallery-GREENTURTLE-monthly.png index 8889962..9bbc3b5 100644 Binary files a/images/gallery/gallery-GREENTURTLE-monthly.png and b/images/gallery/gallery-GREENTURTLE-monthly.png differ diff --git a/images/gallery/gallery-GREENTURTLE-monthly.svg b/images/gallery/gallery-GREENTURTLE-monthly.svg index 87ac916..acc5ea4 100644 --- a/images/gallery/gallery-GREENTURTLE-monthly.svg +++ b/images/gallery/gallery-GREENTURTLE-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -46,30 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-GREYWOOF-monthly.png b/images/gallery/gallery-GREYWOOF-monthly.png index 72a4438..81c0362 100644 Binary files a/images/gallery/gallery-GREYWOOF-monthly.png and b/images/gallery/gallery-GREYWOOF-monthly.png differ diff --git a/images/gallery/gallery-GREYWOOF-monthly.svg b/images/gallery/gallery-GREYWOOF-monthly.svg index e68cf34..ffbe487 100644 --- a/images/gallery/gallery-GREYWOOF-monthly.svg +++ b/images/gallery/gallery-GREYWOOF-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -46,30 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-ORANGEPEEL-monthly.png b/images/gallery/gallery-ORANGEPEEL-monthly.png index e3bc994..be7f1cc 100644 Binary files a/images/gallery/gallery-ORANGEPEEL-monthly.png and b/images/gallery/gallery-ORANGEPEEL-monthly.png differ diff --git a/images/gallery/gallery-ORANGEPEEL-monthly.svg b/images/gallery/gallery-ORANGEPEEL-monthly.svg index 1e1e802..a356ded 100644 --- a/images/gallery/gallery-ORANGEPEEL-monthly.svg +++ b/images/gallery/gallery-ORANGEPEEL-monthly.svg @@ -4,12 +4,12 @@ -SAMPLE ROADMAP 2022/2023 +SAMPLE ROADMAP 2022/2023 GodZone Corporation -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -46,30 +46,20 @@ Core Product Work Stream -Base Functionality -Enhancements +Enhancements -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 Mobility Work Stream -Mobile App Development - - - - - - - - - - -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-marker-monthly.png b/images/gallery/gallery-marker-monthly.png index bfb640b..279e621 100644 Binary files a/images/gallery/gallery-marker-monthly.png and b/images/gallery/gallery-marker-monthly.png differ diff --git a/images/gallery/gallery-marker-monthly.svg b/images/gallery/gallery-marker-monthly.svg index 0932ea7..3fe6196 100644 --- a/images/gallery/gallery-marker-monthly.svg +++ b/images/gallery/gallery-marker-monthly.svg @@ -4,17 +4,17 @@ -My Demo Roadmap!!! +My Demo Roadmap!!! -Year 2022 +Year 2022 -Year 2023 +Year 2023 -Nov +Nov -Dec +Dec -Jan +Jan Feb @@ -24,11 +24,11 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep @@ -45,20 +45,20 @@ -Core Product Work Stream +Core Product Work Stream -Base Functionality -v.1.0 +v.1.0 -v.1.1 +v.1.1 +Base Functionality -Showcase #1 -Showcase #2 +Showcase #2 +Showcase #1 -Mobility Work Stream +Mobility Work Stream -Mobile App Development -Generated by Roadmapper +Mobile App Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/gallery/gallery-sample-01.png b/images/gallery/gallery-sample-01.png index 630d8c1..d4a1af2 100644 Binary files a/images/gallery/gallery-sample-01.png and b/images/gallery/gallery-sample-01.png differ diff --git a/images/gallery/gallery-sample-01.svg b/images/gallery/gallery-sample-01.svg index ceb2d6b..0718ff3 100644 --- a/images/gallery/gallery-sample-01.svg +++ b/images/gallery/gallery-sample-01.svg @@ -4,12 +4,12 @@ -STRATEGY ROADMAP 2023 -Matariki Technologies Inc. +STRATEGY ROADMAP 2023 +Matariki Technologies Inc. -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -44,64 +44,64 @@ -Planning +Planning -Vision +Vision -Goals -Strategic Intent +Strategic Intent -Sales Budget +Sales Budget -Release Plans +Release Plans +Goals Strategy -Market Analysis -SWOT +SWOT -Competitor Review +Competitor Review +Market Analysis -Business Model -Price Reseach -Price List (Final) +Price List (Final) +Price Reseach -Price List (Draft) +Price List (Draft) +Business Model -Objectives +Objectives -Sales Trends Analysis +Sales Trends Analysis -Service Development +Service Development -Product Roadmap -Development -Alpha May 20 +Alpha May 20 -Private Beta Jul 02 +Private Beta Jul 02 -Public Beta Aug 15 +Public Beta Aug 15 +Development -Release Candidate +Release Candidate -Release To Public -Go Live Dec 20 +Go Live Dec 20 +Release To Public +Product Roadmap -Business Intelligence +Business Intelligence -BI Development -Service Dashboard +Service Dashboard -Real-Time Analytics +Real-Time Analytics -Sales Dashboard -Generated by Roadmapper +Sales Dashboard +BI Development +Generated by Roadmapper \ No newline at end of file diff --git a/images/ja_JP-roadmap.png b/images/ja_JP-roadmap.png index 96ca9b0..48a1e2d 100644 Binary files a/images/ja_JP-roadmap.png and b/images/ja_JP-roadmap.png differ diff --git a/images/ja_JP-roadmap.svg b/images/ja_JP-roadmap.svg index 5f9ada1..c6966da 100644 --- a/images/ja_JP-roadmap.svg +++ b/images/ja_JP-roadmap.svg @@ -4,10 +4,10 @@ -戦略的ロードマップ 2023 -マタリッチサンテクノロジー株式会社 +戦略的ロードマップ 2023 +マタリッチサンテクノロジー株式会社 -2023 年 +2023 年 第1 四半期 @@ -22,9 +22,9 @@ 人事プロセス -インクルージョン戦略を策定する 多様性、公平性、包括性の促進 +インクルージョン戦略を策定する 持続可能な開発計画の実施 @@ -32,11 +32,11 @@ 業務改善計画の実施 -自動化されたプロセス -30%自動化 +30%自動化 -60%自動化 +60%自動化 +自動化されたプロセス ツールフロー @@ -44,28 +44,8 @@ ツールの選択 -集中ツール管理 -システムは集中型 - - - - - - - - - - - - - - - - - - - - +システムは集中型 +集中ツール管理 ロードマッパーによって生成 \ No newline at end of file diff --git a/images/ko-KR-roadmap.png b/images/ko-KR-roadmap.png index 3dd1a65..76f4656 100644 Binary files a/images/ko-KR-roadmap.png and b/images/ko-KR-roadmap.png differ diff --git a/images/ko-KR-roadmap.svg b/images/ko-KR-roadmap.svg index aca50d0..32f50f4 100644 --- a/images/ko-KR-roadmap.svg +++ b/images/ko-KR-roadmap.svg @@ -5,67 +5,47 @@ 전략 로드맵 2023 -마타리키 테크놀로지스 +마타리키 테크놀로지스 -2023 년 +2023 년 -第1 분기 +第1 분기 -第2 분기 +第2 분기 -第3 분기 +第3 분기 -第4 분기 +第4 분기 -인사 프로세스 +인사 프로세스 -포함 전략을 수립 -다양성, 공정성, 포괄성 촉진 +다양성, 공정성, 포괄성 촉진 +포함 전략을 수립 -지속 가능한 개발 계획 실시 +지속 가능한 개발 계획 실시 -작업 과정 +작업 과정 -업무 개선 계획 실시 +업무 개선 계획 실시 -자동화된 프로세스 -30% 자동화 +30% 자동화 -60% 자동화 +60% 자동화 +자동화된 프로세스 -공구 흐름 +공구 흐름 -도구 선택 전략 구현 +도구 선택 전략 구현 -도구 선택 +도구 선택 -중앙 집중식 도구 관리 -시스템은 중앙 집중식 - - - - - - - - - - - - - - - - - - - - -로드매퍼에서 생성 +시스템은 중앙 집중식 +중앙 집중식 도구 관리 +로드매퍼에서 생성 \ No newline at end of file diff --git a/images/my_roadmap.png b/images/my_roadmap.png index 26ea8a6..6be97ee 100644 Binary files a/images/my_roadmap.png and b/images/my_roadmap.png differ diff --git a/images/my_roadmap.svg b/images/my_roadmap.svg index 40a08ad..012dc29 100644 --- a/images/my_roadmap.svg +++ b/images/my_roadmap.svg @@ -4,17 +4,17 @@ -My Roadmap +My Roadmap -Year 2022 +Year 2022 -Year 2023 +Year 2023 -Nov +Nov -Dec +Dec -Jan +Jan Feb @@ -27,12 +27,12 @@ -Development +Development Activity 1 Activity 2 Activity 3 -Generated by Roadmapper +Generated by Roadmapper \ No newline at end of file diff --git a/images/roadmapper-anatomy-base.png b/images/roadmapper-anatomy-base.png index 10d9323..f3bd02c 100644 Binary files a/images/roadmapper-anatomy-base.png and b/images/roadmapper-anatomy-base.png differ diff --git a/images/roadmapper-anatomy-base.svg b/images/roadmapper-anatomy-base.svg index f24c7c3..0246f04 100644 --- a/images/roadmapper-anatomy-base.svg +++ b/images/roadmapper-anatomy-base.svg @@ -4,12 +4,12 @@ -Product Roadmap -Matariki Tech Ltd +Product Roadmap +Matariki Tech Ltd -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,11 +19,11 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep @@ -35,14 +35,14 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C -Milestone 1 -Generated by Roadmapper +Milestone 1 +Task 3-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/theme-demo01.png b/images/theme-demo01.png index c5a9fe0..125cd68 100644 Binary files a/images/theme-demo01.png and b/images/theme-demo01.png differ diff --git a/images/theme-demo01.svg b/images/theme-demo01.svg index d93c409..bed1b38 100644 --- a/images/theme-demo01.svg +++ b/images/theme-demo01.svg @@ -4,9 +4,9 @@ -My Demo Roadmap +My Demo Roadmap -Year 2023 +Year 2023 Q1 @@ -19,33 +19,20 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B +Task 2-B +Task 1-A -Task 3-C +Task 3-C Workstream 2 -Task 2-A +Task 2-A -Task 2-B +Task 2-B -Task 2-C - - - - - - - - - - - - - -Generated by Roadmapper +Task 2-C +Generated by Roadmapper \ No newline at end of file diff --git a/images/transparent_roadmap.png b/images/transparent_roadmap.png index 12186c8..7e6b7ed 100644 Binary files a/images/transparent_roadmap.png and b/images/transparent_roadmap.png differ diff --git a/images/transparent_roadmap.svg b/images/transparent_roadmap.svg index 1480431..f1a7698 100644 --- a/images/transparent_roadmap.svg +++ b/images/transparent_roadmap.svg @@ -5,11 +5,11 @@ -Transparent Background Test Roadmap +Transparent Background Test Roadmap -Year 2023 +Year 2023 -Jan +Jan Feb @@ -19,19 +19,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -44,13 +44,13 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B -Milestone 2 +Milestone 2 +Task 2-B -Milestone 1 +Milestone 1 +Task 1-A \ No newline at end of file diff --git a/images/with_context_manager.png b/images/with_context_manager.png index fbae3c5..8e98456 100644 Binary files a/images/with_context_manager.png and b/images/with_context_manager.png differ diff --git a/images/with_context_manager.svg b/images/with_context_manager.svg index c209068..e3a375a 100644 --- a/images/with_context_manager.svg +++ b/images/with_context_manager.svg @@ -4,11 +4,11 @@ -Context Manager Test Roadmap +Context Manager Test Roadmap -Year 2023 +Year 2023 -Jan +Jan Feb @@ -18,19 +18,19 @@ May -Jun +Jun -Jul +Jul -Aug +Aug Sep Oct -Nov +Nov -Dec +Dec @@ -43,13 +43,13 @@ -Workstream 1 +Workstream 1 -Task 1-A -Task 2-B -Milestone 2 +Milestone 2 +Task 2-B -Milestone 1 +Milestone 1 +Task 1-A \ No newline at end of file diff --git a/images/zh_TW-roadmap.png b/images/zh_TW-roadmap.png index fcb95b4..d4de773 100644 Binary files a/images/zh_TW-roadmap.png and b/images/zh_TW-roadmap.png differ diff --git a/images/zh_TW-roadmap.svg b/images/zh_TW-roadmap.svg index efe40e2..5d2f9e0 100644 --- a/images/zh_TW-roadmap.svg +++ b/images/zh_TW-roadmap.svg @@ -7,7 +7,7 @@ 戰略路線圖 2023 瑪塔里奇太陽科技有限公司 -2023 年 +2023 年 第1季度 @@ -22,9 +22,9 @@ 人員流程 -制定包容戰略 促進多樣性、公平性和包容性 +制定包容戰略 實施可持續發展計劃 @@ -32,11 +32,11 @@ 實施業務改進計劃 -自動化流程 30%自動化 60%自動化 +自動化流程 工具流程 @@ -44,28 +44,8 @@ 工具選擇 -集中工具管理 系統集中完成 - - - - - - - - - - - - - - - - - - - - -由 Roadmapper 生成 +集中工具管理 +由 Roadmapper 生成 \ No newline at end of file diff --git a/images/zh_TW-timeline-roadmap.png b/images/zh_TW-timeline-roadmap.png index 2e84cfe..dd6430d 100644 Binary files a/images/zh_TW-timeline-roadmap.png and b/images/zh_TW-timeline-roadmap.png differ diff --git a/images/zh_TW-timeline-roadmap.svg b/images/zh_TW-timeline-roadmap.svg index 6009f47..8205fdb 100644 --- a/images/zh_TW-timeline-roadmap.svg +++ b/images/zh_TW-timeline-roadmap.svg @@ -7,9 +7,9 @@ 戰略路線圖 2023 瑪塔里奇太陽科技有限公司 -Year 2023 +Year 2023 -Q1 +Q1 Q2 @@ -22,9 +22,9 @@ 人員流程 -制定包容戰略 促進多樣性、公平性和包容性 +制定包容戰略 實施可持續發展計劃 @@ -32,11 +32,11 @@ 實施業務改進計劃 -自動化流程 30%自動化 60%自動化 +自動化流程 工具流程 @@ -44,28 +44,8 @@ 工具選擇 -集中工具管理 系統集中完成 - - - - - - - - - - - - - - - - - - - - -由 Roadmapper 生成 +集中工具管理 +由 Roadmapper 生成 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index b74a17a..5528e14 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/src/debug.py b/src/debug.py index a4f6702..6d2f4f4 100644 --- a/src/debug.py +++ b/src/debug.py @@ -110,17 +110,57 @@ def debug03(): my_roadmap.save(output_file) -if __name__ == "__main__": - output_file = "debug01" - debug01( - file_name=output_file, - timelinemode=TimelineMode.MONTHLY, - number_of_items=14, +def debug04(): + output_file = "debug04.png" + + my_roadmap = Roadmap(width=800, height=400, show_marker=False) + my_roadmap.set_title("My Roadmap") + my_roadmap.set_timeline( + mode=TimelineMode.MONTHLY, start="2024-01-01", number_of_items=6 ) - output_file = "debug02" - debug02( - file_name=output_file, - timelinemode=TimelineMode.MONTHLY, - number_of_items=14, + + group = my_roadmap.add_group("Development") + task1 = group.add_task("Activity 1", "2024-01-01", "2024-03-10") + task1.add_milestone("MS1", "2024-02-01", fill_colour="green", font_colour="red") + group.add_task("Activity 2", "2024-01-11", "2024-03-20") + + my_roadmap.set_footer("Generated by Roadmapper") + my_roadmap.draw() + my_roadmap.save(output_file) + + +def debug04_svg(): + output_file = "debug04.svg" + + my_roadmap = Roadmap(width=800, height=400, show_marker=False, painter_type="svg") + my_roadmap.set_title("My Roadmap") + my_roadmap.set_timeline( + mode=TimelineMode.MONTHLY, start="2024-01-01", number_of_items=6 ) - debug03() + + group = my_roadmap.add_group("Development") + task1 = group.add_task("Activity 1", "2024-01-01", "2024-03-10") + task1.add_milestone("MS1", "2024-02-01", fill_colour="green", font_colour="red") + group.add_task("Activity 2", "2024-01-11", "2024-03-20") + + my_roadmap.set_footer("Generated by Roadmapper") + my_roadmap.draw() + my_roadmap.save(output_file) + + +if __name__ == "__main__": + # output_file = "debug01" + # debug01( + # file_name=output_file, + # timelinemode=TimelineMode.MONTHLY, + # number_of_items=14, + # ) + # output_file = "debug02" + # debug02( + # file_name=output_file, + # timelinemode=TimelineMode.MONTHLY, + # number_of_items=14, + # ) + # debug03() + debug04() + debug04_svg() diff --git a/src/roadmapper/painter.py b/src/roadmapper/painter.py index fd950d7..c7f889e 100644 --- a/src/roadmapper/painter.py +++ b/src/roadmapper/painter.py @@ -331,6 +331,22 @@ def draw_box_with_text( box_y + box_height, ) + def draw_text_on_box( + self, + box_x: int, + box_y: int, + box_width: int, + box_height: int, + box_fill_colour: int, + text: str, + text_alignment: str, + text_font: str, + text_font_size: int, + text_font_colour: str, + style: str = "rectangle", + ) -> None: + raise NotImplementedError + def draw_diamond( self, x: int, y: int, width: int, height: int, fill_colour: str ) -> list: @@ -521,13 +537,86 @@ def draw_box_with_text( multi_lines = [] wrap_lines = [] - ### Make '\n' work + # ** Make '\n' work multi_lines = text.splitlines() left, _, right, _ = font.getbbox("a") single_char_width = right - left - ### wrap text + # ** wrap text + for line in multi_lines: + wrap_lines.extend(textwrap.wrap(line, int(box_width / single_char_width))) + + pad = 4 + line_count = len(wrap_lines) + + for i, line in enumerate(wrap_lines): + font_width, font_height = self.get_text_dimension( + line, text_font, text_font_size + ) + + match text_alignment: + case "centre": + x = box_x1 + (box_width - font_width) / 2 + case "left": + x = box_x1 + 15 + case "right": + x = box_x2 - font_width - 15 + case _: + x = box_x1 + (box_width - font_width) / 2 + + total_line_height = (font_height * line_count) + (pad * (line_count - 1)) + + single_line_height = font_height + + y = ( + box_y1 + + ((box_height - total_line_height) / 2) + + ((single_line_height * i) + (pad * i)) + ) + + self.__cr.text((x, y), line, fill=text_font_colour, anchor="la", font=font) + + def draw_text_on_box( + self, + box_x: int, + box_y: int, + box_width: int, + box_height: int, + box_fill_colour: int, + text: str, + text_alignment: str, + text_font: str, + text_font_size: int, + text_font_colour: str, + style: str = "rectangle", + ) -> None: + box_x1, box_y1, box_x2, box_y2 = super().draw_box_with_text( + box_x, + box_y, + box_width, + box_height, + box_fill_colour, + text, + text_alignment, + text_font, + text_font_size, + text_font_colour, + style, + ) + + font = ImageFont.truetype(self.get_font_path(text_font), size=text_font_size) + + multi_lines = [] + wrap_lines = [] + + # ** Make '\n' work + multi_lines = text.splitlines() + + left, _, right, _ = font.getbbox("a") + single_char_width = right - left + + # ** wrap text for line in multi_lines: wrap_lines.extend(textwrap.wrap(line, int(box_width / single_char_width))) @@ -579,6 +668,7 @@ def draw_diamond( # Use Pillow's ImageDraw module to draw a polygon with the given points and fill color. self.__cr.polygon(points, fill=fill_colour) + # self.__cr.polygon(points, outline=fill_colour, width=2) def draw_text( self, x: int, y: int, text: str, font: str, font_size: int, font_colour: str @@ -912,6 +1002,89 @@ def draw_box_with_text( ) self.elements.append(txt) + def draw_text_on_box( + self, + box_x: int, + box_y: int, + box_width: int, + box_height: int, + box_fill_colour: int, + text: str, + text_alignment: str, + text_font: str, + text_font_size: int, + text_font_colour: str, + style: str = "rectangle", + ) -> None: + box_x1, box_y1, box_x2, box_y2 = super().draw_box_with_text( + box_x, + box_y, + box_width, + box_height, + box_fill_colour, + text, + text_alignment, + text_font, + text_font_size, + text_font_colour, + style, + ) + + font = ImageFont.truetype(self.get_font_path(text_font), size=text_font_size) + + multi_lines = [] + wrap_lines = [] + + # ** Make '\n' work + multi_lines = text.splitlines() + + left, _, right, _ = font.getbbox("a") + single_char_width = right - left + + # ** wrap text + for line in multi_lines: + wrap_lines.extend(textwrap.wrap(line, int(box_width / single_char_width))) + + pad = 4 + line_count = len(wrap_lines) + + for i, line in enumerate(wrap_lines): + font_width, font_height = self.get_text_dimension( + line, text_font, text_font_size + ) + + match text_alignment: + case "centre": + x = box_x1 + (box_width - font_width) / 2 + case "left": + x = box_x1 + 15 + case "right": + x = box_x2 - font_width - 15 + case _: + x = box_x1 + (box_width - font_width) / 2 + + total_line_height = (font_height * line_count) + (pad * (line_count - 1)) + + single_line_height = font_height + + y = ( + box_y1 + + ((box_height - total_line_height) / 2) + + ((single_line_height * i) + (pad * i)) + ) + + txt = dw.Text( + line, + x=x, + y=y, + font_size=text_font_size, + stroke=text_font_colour, + text_anchor="start", + dominant_baseline="hanging", + font_family=text_font, + ) + self.elements.append(txt) + def draw_diamond( self, x: int, y: int, width: int, height: int, fill_colour: str ) -> None: diff --git a/src/roadmapper/task.py b/src/roadmapper/task.py index 0a8364d..638731e 100644 --- a/src/roadmapper/task.py +++ b/src/roadmapper/task.py @@ -546,23 +546,32 @@ def draw(self, painter: Painter) -> None: if i == 0: box_x = box[0] box_y = box[1] - ### Fix for [69] - factored in gap spaces width + # ** Fix for [69] - factored in gap spaces width width += int(box[2]) + 2 - ### + # ** height = box[3] - ### Fix for [69] - ignore the last gap space + # ** Fix for [69] - ignore the last gap space if width >= 2: width -= 2 - ### + # ** box_width, box_height = ( width, height, ) - if box_x != 0 or box_y != 0 or box_width != 0 or box_height != 0: - painter.draw_box_with_text( + if box_x != 0 and box_y != 0 and box_width > 0 and box_height != 0: + painter.draw_box(box_x, box_y, box_width, box_height, self.fill_colour) + + # ** Fix for v1.4.1 - Draw milestone first before task text + for task in self.tasks: + task.draw(painter) + + for milestone in self.milestones: + milestone.draw(painter) + + painter.draw_text_on_box( box_x, box_y, box_width, @@ -575,12 +584,7 @@ def draw(self, painter: Painter) -> None: self.font_colour, style=self.style, ) - - for task in self.tasks: - task.draw(painter) - - for milestone in self.milestones: - milestone.draw(painter) + # ** def __enter__(self): """This method is called when the 'with' statement is used""" diff --git a/src/roadmapper/version.py b/src/roadmapper/version.py index 7df8e08..bf25615 100644 --- a/src/roadmapper/version.py +++ b/src/roadmapper/version.py @@ -1 +1 @@ -__version__ = "1.4.1-SNAPSHOT" +__version__ = "1.4.1" diff --git a/src/tests/test_cases.py b/src/tests/test_cases.py index 53f3039..8506d23 100644 --- a/src/tests/test_cases.py +++ b/src/tests/test_cases.py @@ -4,13 +4,13 @@ from src.roadmapper.timelinemode import TimelineMode -### Roadmap Tests ### +# ** Roadmap Tests def colour_theme_demo( width: int = 1200, timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2024-12-01", number_of_items: int = 12, show_generic_dates: bool = False, file_name: str = "colour_theme_demo.png", @@ -24,7 +24,7 @@ def colour_theme_demo( roadmap = Roadmap( width, 1000, auto_height=True, colour_theme=colour_theme, show_marker=False ) - roadmap.set_title("STRATEGY ROADMAP 2023") + roadmap.set_title("STRATEGY ROADMAP 2024") roadmap.set_subtitle("Mars Software Inc.") roadmap.set_timeline( timelinemode, @@ -39,29 +39,29 @@ def colour_theme_demo( group = roadmap.add_group("Planning", fill_colour="#FFC000", font_colour="black") task = group.add_task( - "Vision", "2023-01-01", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "Vision", "2024-01-01", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task = group.add_task( - "Goals", "2023-02-15", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "Goals", "2024-02-15", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task.add_parallel_task( "Strategic Intent", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "Sales Budget", - "2023-06-01", - "2023-07-15", + "2024-06-01", + "2024-07-15", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "Release Plans", - "2023-07-16", - "2023-09-30", + "2024-07-16", + "2024-09-30", fill_colour="#FFC000", font_colour="black", ) @@ -69,49 +69,49 @@ def colour_theme_demo( group = roadmap.add_group("Strategy", fill_colour="#ED7D31", font_colour="black") task = group.add_task( "Market Analysis", - "2023-02-01", - "2023-03-30", + "2024-02-01", + "2024-03-30", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "Competitor Review", "2023-03-30", fill_colour="#843C0C", font_colour="black" + "Competitor Review", "2024-03-30", fill_colour="#843C0C", font_colour="black" ) task.add_parallel_task( - "SWOT", "2023-04-01", "2023-04-30", fill_colour="#ED7D31", font_colour="black" + "SWOT", "2024-04-01", "2024-04-30", fill_colour="#ED7D31", font_colour="black" ) task = group.add_task( "Business Model", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "Price List (Draft)", "2023-06-01", fill_colour="#843C0C", font_colour="black" + "Price List (Draft)", "2024-06-01", fill_colour="#843C0C", font_colour="black" ) parallel_task = task.add_parallel_task( - "Price Reseach", - "2023-06-01", - "2023-08-05", + "Price Reseach XXXXXXXXXXX", + "2024-06-01", + "2024-08-05", fill_colour="#ED7D31", font_colour="black", ) parallel_task.add_milestone( - "Price List (Final)", "2023-07-28", fill_colour="#843C0C", font_colour="black" + "Price List (Final)", "2024-07-28", fill_colour="#843C0C", font_colour="black" ) group.add_task( "Objectives", - "2023-06-20", - "2023-09-10", + "2024-06-20", + "2024-09-10", fill_colour="#ED7D31", font_colour="black", ) group.add_task( "Sales Trends Analysis", - "2023-08-15", - "2023-10-10", + "2024-08-15", + "2024-10-10", fill_colour="#ED7D31", font_colour="black", ) @@ -121,46 +121,46 @@ def colour_theme_demo( ) task = group.add_task( "Product Roadmap", - "2023-02-15", - "2023-03-31", + "2024-02-15", + "2024-03-31", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "Development", - "2023-04-01", - "2023-08-30", + "2024-04-01", + "2024-08-30", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "Alpha May 20", "2023-05-20", fill_colour="#385723", font_colour="black" + "Alpha May 20", "2024-05-20", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "Private Beta Jun 30", "2023-06-30", fill_colour="#385723", font_colour="black" + "Private Beta Jun 30", "2024-06-30", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "Public Beta Jun 30", "2023-08-10", fill_colour="#385723", font_colour="black" + "Public Beta Jun 30", "2024-08-10", fill_colour="#385723", font_colour="black" ) parallel_task = task.add_parallel_task( "Release Candidate", - "2023-09-01", - "2023-10-15", + "2024-09-01", + "2024-10-15", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "Release To Public", - "2023-10-16", - "2023-12-31", + "2024-10-16", + "2024-12-31", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "Go Live Dec 20", "2023-12-20", fill_colour="#385723", font_colour="black" + "Go Live Dec 20", "2024-12-20", fill_colour="#385723", font_colour="black" ) group = roadmap.add_group( @@ -170,22 +170,22 @@ def colour_theme_demo( ) task = group.add_task( "BI Development", - "2023-04-15", - "2023-12-31", + "2024-04-15", + "2024-12-31", fill_colour="#4472C4", font_colour="black", ) task.add_milestone( - "Service Dashboard", "2023-05-15", fill_colour="#162641", font_colour="black" + "Service Dashboard", "2024-05-15", fill_colour="#162641", font_colour="black" ) task.add_milestone( - "Real-Time Analytics", "2023-08-01", fill_colour="#162641", font_colour="black" + "Real-Time Analytics", "2024-08-01", fill_colour="#162641", font_colour="black" ) task.add_milestone( - "Sales Dashboard", "2023-12-15", fill_colour="#162641", font_colour="black" + "Sales Dashboard", "2024-12-15", fill_colour="#162641", font_colour="black" ) roadmap.set_footer( @@ -215,7 +215,7 @@ def unicode_demo( roadmap = Roadmap( width, 1000, auto_height=True, colour_theme=colour_theme, show_marker=False ) - roadmap.set_title("2023 年戰略路線圖") + roadmap.set_title("2024 年戰略路線圖") roadmap.set_subtitle("火星科技公司") roadmap.set_timeline( timelinemode, @@ -230,29 +230,29 @@ def unicode_demo( group = roadmap.add_group("規劃", fill_colour="#FFC000", font_colour="black") task = group.add_task( - "願景", "2023-01-01", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "願景", "2024-01-01", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task = group.add_task( - "目標", "2023-02-15", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "目標", "2024-02-15", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task.add_parallel_task( "戰略意圖", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "銷售預算", - "2023-06-01", - "2023-07-15", + "2024-06-01", + "2024-07-15", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "發布計劃", - "2023-07-16", - "2023-09-30", + "2024-07-16", + "2024-09-30", fill_colour="#FFC000", font_colour="black", ) @@ -260,49 +260,49 @@ def unicode_demo( group = roadmap.add_group("戰略", fill_colour="#ED7D31", font_colour="black") task = group.add_task( "市場分析", - "2023-02-01", - "2023-03-30", + "2024-02-01", + "2024-03-30", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "競爭對手審查", "2023-03-30", fill_colour="#843C0C", font_colour="black" + "競爭對手審查", "2024-03-30", fill_colour="#843C0C", font_colour="black" ) task.add_parallel_task( - "SWOT", "2023-04-01", "2023-04-30", fill_colour="#ED7D31", font_colour="black" + "SWOT", "2024-04-01", "2024-04-30", fill_colour="#ED7D31", font_colour="black" ) task = group.add_task( "商業模式", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "價目表(草稿)", "2023-06-01", fill_colour="#843C0C", font_colour="black" + "價目表(草稿)", "2024-06-01", fill_colour="#843C0C", font_colour="black" ) parallel_task = task.add_parallel_task( "價格研究", - "2023-06-01", - "2023-08-05", + "2024-06-01", + "2024-08-05", fill_colour="#ED7D31", font_colour="black", ) parallel_task.add_milestone( - "價目表(最終)", "2023-07-28", fill_colour="#843C0C", font_colour="black" + "價目表(最終)", "2024-07-28", fill_colour="#843C0C", font_colour="black" ) group.add_task( "目標", - "2023-06-20", - "2023-09-10", + "2024-06-20", + "2024-09-10", fill_colour="#ED7D31", font_colour="black", ) group.add_task( "銷售趨勢分析", - "2023-08-15", - "2023-10-10", + "2024-08-15", + "2024-10-10", fill_colour="#ED7D31", font_colour="black", ) @@ -310,46 +310,46 @@ def unicode_demo( group = roadmap.add_group("服務發展", fill_colour="#70AD47", font_colour="black") task = group.add_task( "產品路線圖", - "2023-02-15", - "2023-03-31", + "2024-02-15", + "2024-03-31", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "軟件開發", - "2023-04-01", - "2023-08-30", + "2024-04-01", + "2024-08-30", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "阿尔法 5月20", "2023-05-20", fill_colour="#385723", font_colour="black" + "阿尔法 5月20", "2024-05-20", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "私人測試 6月30", "2023-06-30", fill_colour="#385723", font_colour="black" + "私人測試 6月30", "2024-06-30", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "公開測試 8月30", "2023-08-10", fill_colour="#385723", font_colour="black" + "公開測試 8月30", "2024-08-10", fill_colour="#385723", font_colour="black" ) parallel_task = task.add_parallel_task( "候选版本", - "2023-09-01", - "2023-10-15", + "2024-09-01", + "2024-10-15", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "公開發布", - "2023-10-16", - "2023-12-31", + "2024-10-16", + "2024-12-31", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "上綫 12月20", "2023-12-20", fill_colour="#385723", font_colour="black" + "上綫 12月20", "2024-12-20", fill_colour="#385723", font_colour="black" ) group = roadmap.add_group( @@ -359,20 +359,22 @@ def unicode_demo( ) task = group.add_task( "商業智能開發", - "2023-04-15", - "2023-12-31", + "2024-04-15", + "2024-12-31", fill_colour="#4472C4", font_colour="black", ) task.add_milestone( - "服務儀表板", "2023-05-15", fill_colour="#162641", font_colour="black" + "服務儀表板", "2024-05-15", fill_colour="#162641", font_colour="black" ) - task.add_milestone("實時分析", "2023-08-01", fill_colour="#162641", font_colour="black") + task.add_milestone( + "實時分析", "2024-08-01", fill_colour="#162641", font_colour="black" + ) task.add_milestone( - "Sales Dashboard", "2023-12-15", fill_colour="#162641", font_colour="black" + "Sales Dashboard", "2024-12-15", fill_colour="#162641", font_colour="black" ) roadmap.set_footer("由 Roadmapper 生成於 " + datetime.now().strftime("%Y-%m-%d")) @@ -399,7 +401,7 @@ def sample_roadmap( roadmap = Roadmap( width, 1000, auto_height=True, colour_theme=colour_theme, show_marker=False ) - roadmap.set_title("STRATEGY ROADMAP 2023") + roadmap.set_title("STRATEGY ROADMAP 2024") roadmap.set_subtitle("Matariki Technologies Inc.") roadmap.set_timeline( timelinemode, @@ -414,29 +416,29 @@ def sample_roadmap( group = roadmap.add_group("Planning", fill_colour="#FFC000", font_colour="black") task = group.add_task( - "Vision", "2023-01-01", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "Vision", "2024-01-01", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task = group.add_task( - "Goals", "2023-02-15", "2023-03-31", fill_colour="#FFC000", font_colour="black" + "Goals", "2024-02-15", "2024-03-31", fill_colour="#FFC000", font_colour="black" ) task.add_parallel_task( "Strategic Intent", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "Sales Budget", - "2023-06-01", - "2023-07-15", + "2024-06-01", + "2024-07-15", fill_colour="#FFC000", font_colour="black", ) task.add_parallel_task( "Release Plans", - "2023-07-16", - "2023-09-30", + "2024-07-16", + "2024-09-30", fill_colour="#FFC000", font_colour="black", ) @@ -444,49 +446,49 @@ def sample_roadmap( group = roadmap.add_group("Strategy", fill_colour="#ED7D31", font_colour="black") task = group.add_task( "Market Analysis", - "2023-02-01", - "2023-03-30", + "2024-02-01", + "2024-03-30", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "Competitor Review", "2023-03-30", fill_colour="#843C0C", font_colour="black" + "Competitor Review", "2024-03-30", fill_colour="#843C0C", font_colour="black" ) task.add_parallel_task( - "SWOT", "2023-04-01", "2023-04-30", fill_colour="#ED7D31", font_colour="black" + "SWOT", "2024-04-01", "2024-04-30", fill_colour="#ED7D31", font_colour="black" ) task = group.add_task( "Business Model", - "2023-04-01", - "2023-05-31", + "2024-04-01", + "2024-05-31", fill_colour="#ED7D31", font_colour="black", ) task.add_milestone( - "Price List (Draft)", "2023-06-01", fill_colour="#843C0C", font_colour="black" + "Price List (Draft)", "2024-06-01", fill_colour="#843C0C", font_colour="black" ) parallel_task = task.add_parallel_task( "Price Reseach", - "2023-06-01", - "2023-08-05", + "2024-06-01", + "2024-08-05", fill_colour="#ED7D31", font_colour="black", ) parallel_task.add_milestone( - "Price List (Final)", "2023-07-28", fill_colour="#843C0C", font_colour="black" + "Price List (Final)", "2024-07-28", fill_colour="#843C0C", font_colour="black" ) group.add_task( "Objectives", - "2023-06-20", - "2023-09-10", + "2024-06-20", + "2024-09-10", fill_colour="#ED7D31", font_colour="black", ) group.add_task( "Sales Trends Analysis", - "2023-08-15", - "2023-10-10", + "2024-08-15", + "2024-10-10", fill_colour="#ED7D31", font_colour="black", ) @@ -496,46 +498,46 @@ def sample_roadmap( ) task = group.add_task( "Product Roadmap", - "2023-02-15", - "2023-03-31", + "2024-02-15", + "2024-03-31", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "Development", - "2023-04-01", - "2023-08-30", + "2024-04-01", + "2024-08-30", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "Alpha May 20", "2023-05-20", fill_colour="#385723", font_colour="black" + "Alpha May 20", "2024-05-20", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "Private Beta Jul 02", "2023-07-02", fill_colour="#385723", font_colour="black" + "Private Beta Jul 02", "2024-07-02", fill_colour="#385723", font_colour="black" ) parallel_task.add_milestone( - "Public Beta Aug 15", "2023-08-15", fill_colour="#385723", font_colour="black" + "Public Beta Aug 15", "2024-08-15", fill_colour="#385723", font_colour="black" ) parallel_task = task.add_parallel_task( "Release Candidate", - "2023-09-01", - "2023-10-15", + "2024-09-01", + "2024-10-15", fill_colour="#70AD47", font_colour="black", ) parallel_task = task.add_parallel_task( "Release To Public", - "2023-10-16", - "2023-12-31", + "2024-10-16", + "2024-12-31", fill_colour="#70AD47", font_colour="black", ) parallel_task.add_milestone( - "Go Live Dec 20", "2023-12-20", fill_colour="#385723", font_colour="black" + "Go Live Dec 20", "2024-12-20", fill_colour="#385723", font_colour="black" ) group = roadmap.add_group( @@ -545,22 +547,22 @@ def sample_roadmap( ) task = group.add_task( "BI Development", - "2023-04-15", - "2023-12-31", + "2024-04-15", + "2024-12-31", fill_colour="#4472C4", font_colour="black", ) task.add_milestone( - "Service Dashboard", "2023-05-15", fill_colour="#162641", font_colour="black" + "Service Dashboard", "2024-05-15", fill_colour="#162641", font_colour="black" ) task.add_milestone( - "Real-Time Analytics", "2023-08-01", fill_colour="#162641", font_colour="black" + "Real-Time Analytics", "2024-08-01", fill_colour="#162641", font_colour="black" ) task.add_milestone( - "Sales Dashboard", "2023-12-15", fill_colour="#162641", font_colour="black" + "Sales Dashboard", "2024-12-15", fill_colour="#162641", font_colour="black" ) roadmap.set_footer("Generated by Roadmapper") @@ -574,7 +576,7 @@ def sample_roadmap( def colour_theme_roadmap( width: int = 1200, timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 12, show_generic_dates: bool = False, file_name: str = "colour_theme_roadmap.png", @@ -588,7 +590,7 @@ def colour_theme_roadmap( roadmap = Roadmap( width, 1000, auto_height=True, colour_theme=colour_theme, show_marker=True ) - roadmap.set_title("SAMPLE ROADMAP 2022/2023") + roadmap.set_title("SAMPLE ROADMAP 2023/2024") roadmap.set_subtitle("GodZone Corporation") roadmap.set_timeline( timelinemode, @@ -598,17 +600,17 @@ def colour_theme_roadmap( ) group = roadmap.add_group("Core Product Work Stream", text_alignment="left") - task = group.add_task("Base Functionality", "2022-11-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") + task = group.add_task("Base Functionality", "2023-11-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2024-03-31") parellel_task.add_milestone("v.2.0", "2024-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("Mobility Work Stream", text_alignment="left") - group.add_task("Mobile App Development", "2023-02-01", "2024-12-07") + group.add_task("Mobile App Development", "2024-02-01", "2024-12-07") roadmap.set_footer("Generated by Roadmapper") roadmap.draw() @@ -622,7 +624,7 @@ def custom_colour_roadmap( width: int = 1200, height: int = 1000, timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-11-01", + start_date: str = "2023-11-01", number_of_items: int = 24, show_marker: bool = False, show_generic_dates: bool = False, @@ -650,17 +652,17 @@ def custom_colour_roadmap( ) group = roadmap.add_group("Core Product Work Stream") - task = group.add_task("Base Functionality", "2022-11-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") + task = group.add_task("Base Functionality", "2023-11-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2024-03-31") parellel_task.add_milestone("v.2.0", "2024-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("Mobility Work Stream") - group.add_task("Mobile App Development", "2023-02-01", "2024-12-07") + group.add_task("Mobile App Development", "2024-02-01", "2024-12-07") roadmap.set_footer("Generated by Roadmapper") roadmap.draw() @@ -717,9 +719,9 @@ def home_roadmap(): ) group = my_roadmap.add_group("Development") - group.add_task("Activity 1", "2022-12-01", "2023-02-10") - group.add_task("Activity 2", "2023-01-11", "2023-03-20") - group.add_task("Activity 3", "2023-01-21", "2023-06-30") + group.add_task("Activity 1", "2022-12-01", "2024-02-10") + group.add_task("Activity 2", "2024-01-11", "2024-03-20") + group.add_task("Activity 3", "2024-01-21", "2024-06-30") my_roadmap.set_footer("Generated by Roadmapper") my_roadmap.draw() @@ -739,7 +741,7 @@ def readme_roadmap(): roadmap = Roadmap(1200, 400, colour_theme="BLUEMOUNTAIN") roadmap.set_title("My Demo Roadmap") roadmap.set_subtitle("Matariki Technologies Ltd") - roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01", number_of_items=12) + roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01", number_of_items=12) roadmap.add_logo( "../../images/logo/matariki-tech-logo.png", position="top-right", @@ -749,15 +751,15 @@ def readme_roadmap(): group = roadmap.add_group("Core Product Work Stream") - task = group.add_task("Base Functionality", "2023-01-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") + task = group.add_task("Base Functionality", "2024-01-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2024-03-31") parellel_task.add_milestone("v.2.0", "2024-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") roadmap.set_footer("Generated by Roadmapper") roadmap.draw() @@ -773,18 +775,18 @@ def color_theme_roadmap(filename: str, colour_theme: str): roadmap = Roadmap(600, 500, colour_theme=colour_theme, show_marker=True) roadmap.set_title("My Demo Roadmap") - roadmap.set_timeline(TimelineMode.QUARTERLY, start="2023-07-01", number_of_items=4) + roadmap.set_timeline(TimelineMode.QUARTERLY, start="2024-07-01", number_of_items=4) roadmap.set_footer("Generated by Roadmapper") group = roadmap.add_group("Workstream 1") - task = group.add_task("Task 1-A", "2023-07-01", "2023-10-30") - task.add_parallel_task("Task 2-B", "2023-11-15", "2024-02-28") - group.add_task("Task 3-C", "2023-10-01", "2023-12-31") + task = group.add_task("Task 1-A", "2024-07-01", "2024-10-30") + task.add_parallel_task("Task 2-B", "2024-11-15", "2024-02-28") + group.add_task("Task 3-C", "2024-10-01", "2024-12-31") group = roadmap.add_group("Workstream 2") - group.add_task("Task 2-A", "2023-10-01", "2023-12-30") - group.add_task("Task 2-B", "2023-11-01", "2024-01-30") - group.add_task("Task 2-C", "2023-12-01", "2024-02-28") + group.add_task("Task 2-A", "2024-10-01", "2024-12-30") + group.add_task("Task 2-B", "2024-11-01", "2024-01-30") + group.add_task("Task 2-C", "2024-12-01", "2024-02-28") roadmap.draw() roadmap.save(filename) @@ -798,36 +800,36 @@ def en_NZ_roadmap(filename: str, colour_theme: str, locale_name: str): os.remove(output_file) roadmap = Roadmap(800, 700, colour_theme=colour_theme, show_marker=True) - roadmap.set_title("Strategy Roadmap 2023") + roadmap.set_title("Strategy Roadmap 2024") roadmap.set_subtitle("Matariki Technologies Ltd") roadmap.set_timeline( TimelineMode.QUARTERLY, - start="2023-01-01", + start="2024-01-01", number_of_items=4, timeline_locale=locale_name, ) roadmap.set_footer("Generated by Roadmapper") group = roadmap.add_group("People Stream") - task = group.add_task("Develop Inclusion Strategy", "2023-01-01", "2023-04-30") + task = group.add_task("Develop Inclusion Strategy", "2024-01-01", "2024-04-30") task.add_parallel_task( - "Promote diversity, equity, and inclusion", "2023-05-01", "2023-12-30" + "Promote diversity, equity, and inclusion", "2024-05-01", "2024-12-30" ) - group.add_task("Implement a sustainability programme", "2023-03-01", "2023-11-30") + group.add_task("Implement a sustainability programme", "2024-03-01", "2024-11-30") group = roadmap.add_group("Process Stream") group.add_task( - "Implement Business Improvement Programme", "2023-02-01", "2023-11-30" + "Implement Business Improvement Programme", "2024-02-01", "2024-11-30" ) - task = group.add_task("Automate processes", "2023-07-01", "2023-12-30") - task.add_milestone("30% Automated ", "2023-8-01") - task.add_milestone("60% Automated ", "2023-12-01") + task = group.add_task("Automate processes", "2024-07-01", "2024-12-30") + task.add_milestone("30% Automated ", "2024-8-01") + task.add_milestone("60% Automated ", "2024-12-01") group = roadmap.add_group("Tool Stream") - group.add_task("Implement strategy", "2023-01-01", "2023-04-30") - group.add_task("Tools Selection", "2023-02-01", "2023-08-30") - task = group.add_task("Centralized Tool Administration", "2023-04-01", "2023-11-30") - task.add_milestone("Admin Centralised", "2023-12-01") + group.add_task("Implement strategy", "2024-01-01", "2024-04-30") + group.add_task("Tools Selection", "2024-02-01", "2024-08-30") + task = group.add_task("Centralized Tool Administration", "2024-04-01", "2024-11-30") + task.add_milestone("Admin Centralised", "2024-12-01") roadmap.draw() roadmap.save(filename) @@ -841,32 +843,32 @@ def zh_TW_with_locale_roadmap(filename: str, colour_theme: str, locale_name: str os.remove(output_file) roadmap = Roadmap(800, 700, colour_theme=colour_theme, show_marker=True) - roadmap.set_title("戰略路線圖 2023") + roadmap.set_title("戰略路線圖 2024") roadmap.set_subtitle("瑪塔里奇太陽科技有限公司") roadmap.set_timeline( TimelineMode.QUARTERLY, - start="2023-01-01", + start="2024-01-01", number_of_items=4, timeline_locale=locale_name, ) roadmap.set_footer("由 Roadmapper 生成") group = roadmap.add_group("人員流程") - task = group.add_task("制定包容戰略", "2023-01-01", "2023-04-30") - task.add_parallel_task("促進多樣性、公平性和包容性", "2023-05-01", "2023-12-30") - group.add_task("實施可持續發展計劃", "2023-03-01", "2023-11-30") + task = group.add_task("制定包容戰略", "2024-01-01", "2024-04-30") + task.add_parallel_task("促進多樣性、公平性和包容性", "2024-05-01", "2024-12-30") + group.add_task("實施可持續發展計劃", "2024-03-01", "2024-11-30") group = roadmap.add_group("工作流程") - group.add_task("實施業務改進計劃", "2023-02-01", "2023-11-30") - task = group.add_task("自動化流程", "2023-07-01", "2023-12-30") - task.add_milestone("30%自動化 ", "2023-8-01") - task.add_milestone("60%自動化 ", "2023-12-01") + group.add_task("實施業務改進計劃", "2024-02-01", "2024-11-30") + task = group.add_task("自動化流程", "2024-07-01", "2024-12-30") + task.add_milestone("30%自動化 ", "2024-8-01") + task.add_milestone("60%自動化 ", "2024-12-01") group = roadmap.add_group("工具流程") - group.add_task("實施工具選擇策略", "2023-01-01", "2023-04-30") - group.add_task("工具選擇", "2023-02-01", "2023-08-30") - task = group.add_task("集中工具管理", "2023-04-01", "2023-11-30") - task.add_milestone("系統集中完成", "2023-12-01") + group.add_task("實施工具選擇策略", "2024-01-01", "2024-04-30") + group.add_task("工具選擇", "2024-02-01", "2024-08-30") + task = group.add_task("集中工具管理", "2024-04-01", "2024-11-30") + task.add_milestone("系統集中完成", "2024-12-01") roadmap.draw() roadmap.save(filename) @@ -880,27 +882,27 @@ def zh_TW_roadmap(filename: str, colour_theme: str): os.remove(output_file) roadmap = Roadmap(800, 700, colour_theme=colour_theme, show_marker=True) - roadmap.set_title("戰略路線圖 2023") + roadmap.set_title("戰略路線圖 2024") roadmap.set_subtitle("瑪塔里奇太陽科技有限公司") - roadmap.set_timeline(TimelineMode.QUARTERLY, start="2023-01-01", number_of_items=4) + roadmap.set_timeline(TimelineMode.QUARTERLY, start="2024-01-01", number_of_items=4) roadmap.set_footer("由 Roadmapper 生成") group = roadmap.add_group("人員流程") - task = group.add_task("制定包容戰略", "2023-01-01", "2023-04-30") - task.add_parallel_task("促進多樣性、公平性和包容性", "2023-05-01", "2023-12-30") - group.add_task("實施可持續發展計劃", "2023-03-01", "2023-11-30") + task = group.add_task("制定包容戰略", "2024-01-01", "2024-04-30") + task.add_parallel_task("促進多樣性、公平性和包容性", "2024-05-01", "2024-12-30") + group.add_task("實施可持續發展計劃", "2024-03-01", "2024-11-30") group = roadmap.add_group("工作流程") - group.add_task("實施業務改進計劃", "2023-02-01", "2023-11-30") - task = group.add_task("自動化流程", "2023-07-01", "2023-12-30") - task.add_milestone("30%自動化 ", "2023-8-01") - task.add_milestone("60%自動化 ", "2023-12-01") + group.add_task("實施業務改進計劃", "2024-02-01", "2024-11-30") + task = group.add_task("自動化流程", "2024-07-01", "2024-12-30") + task.add_milestone("30%自動化 ", "2024-8-01") + task.add_milestone("60%自動化 ", "2024-12-01") group = roadmap.add_group("工具流程") - group.add_task("實施工具選擇策略", "2023-01-01", "2023-04-30") - group.add_task("工具選擇", "2023-02-01", "2023-08-30") - task = group.add_task("集中工具管理", "2023-04-01", "2023-11-30") - task.add_milestone("系統集中完成", "2023-12-01") + group.add_task("實施工具選擇策略", "2024-01-01", "2024-04-30") + group.add_task("工具選擇", "2024-02-01", "2024-08-30") + task = group.add_task("集中工具管理", "2024-04-01", "2024-11-30") + task.add_milestone("系統集中完成", "2024-12-01") roadmap.draw() roadmap.save(filename) @@ -914,32 +916,32 @@ def ja_JP_roadmap(filename: str, colour_theme: str, locale_name: str): os.remove(output_file) roadmap = Roadmap(800, 700, colour_theme=colour_theme, show_marker=True) - roadmap.set_title("戦略的ロードマップ 2023") + roadmap.set_title("戦略的ロードマップ 2024") roadmap.set_subtitle("マタリッチサンテクノロジー株式会社") roadmap.set_timeline( TimelineMode.QUARTERLY, - start="2023-01-01", + start="2024-01-01", number_of_items=4, timeline_locale=locale_name, ) roadmap.set_footer("ロードマッパーによって生成") group = roadmap.add_group("人事プロセス") - task = group.add_task("インクルージョン戦略を策定する", "2023-01-01", "2023-04-30") - task.add_parallel_task("多様性、公平性、包括性の促進", "2023-05-01", "2023-12-30") - group.add_task("持続可能な開発計画の実施", "2023-03-01", "2023-11-30") + task = group.add_task("インクルージョン戦略を策定する", "2024-01-01", "2024-04-30") + task.add_parallel_task("多様性、公平性、包括性の促進", "2024-05-01", "2024-12-30") + group.add_task("持続可能な開発計画の実施", "2024-03-01", "2024-11-30") group = roadmap.add_group("作業過程") - group.add_task("業務改善計画の実施", "2023-02-01", "2023-11-30") - task = group.add_task("自動化されたプロセス", "2023-07-01", "2023-12-30") - task.add_milestone("30%自動化", "2023-8-01") - task.add_milestone("60%自動化", "2023-12-01") + group.add_task("業務改善計画の実施", "2024-02-01", "2024-11-30") + task = group.add_task("自動化されたプロセス", "2024-07-01", "2024-12-30") + task.add_milestone("30%自動化", "2024-8-01") + task.add_milestone("60%自動化", "2024-12-01") group = roadmap.add_group("ツールフロー") - group.add_task("ツール選択戦略を実装する", "2023-01-01", "2023-04-30") - group.add_task("ツールの選択", "2023-02-01", "2023-08-30") - task = group.add_task("集中ツール管理", "2023-04-01", "2023-11-30") - task.add_milestone("システムは集中型", "2023-12-01") + group.add_task("ツール選択戦略を実装する", "2024-01-01", "2024-04-30") + group.add_task("ツールの選択", "2024-02-01", "2024-08-30") + task = group.add_task("集中ツール管理", "2024-04-01", "2024-11-30") + task.add_milestone("システムは集中型", "2024-12-01") roadmap.draw() roadmap.save(filename) @@ -953,32 +955,32 @@ def ko_KR_roadmap(filename: str, colour_theme: str, locale_name: str): os.remove(output_file) roadmap = Roadmap(800, 700, colour_theme=colour_theme, show_marker=True) - roadmap.set_title("전략 로드맵 2023") + roadmap.set_title("전략 로드맵 2024") roadmap.set_subtitle("마타리키 테크놀로지스") roadmap.set_timeline( TimelineMode.QUARTERLY, - start="2023-01-01", + start="2024-01-01", number_of_items=4, timeline_locale=locale_name, ) roadmap.set_footer("로드매퍼에서 생성") group = roadmap.add_group("인사 프로세스") - task = group.add_task("포함 전략을 수립", "2023-01-01", "2023-04-30") - task.add_parallel_task("다양성, 공정성, 포괄성 촉진", "2023-05-01", "2023-12-30") - group.add_task("지속 가능한 개발 계획 실시", "2023-03-01", "2023-11-30") + task = group.add_task("포함 전략을 수립", "2024-01-01", "2024-04-30") + task.add_parallel_task("다양성, 공정성, 포괄성 촉진", "2024-05-01", "2024-12-30") + group.add_task("지속 가능한 개발 계획 실시", "2024-03-01", "2024-11-30") group = roadmap.add_group("작업 과정") - group.add_task("업무 개선 계획 실시", "2023-02-01", "2023-11-30") - task = group.add_task("자동화된 프로세스", "2023-07-01", "2023-12-30") - task.add_milestone("30% 자동화", "2023-8-01") - task.add_milestone("60% 자동화", "2023-12-01") + group.add_task("업무 개선 계획 실시", "2024-02-01", "2024-11-30") + task = group.add_task("자동화된 프로세스", "2024-07-01", "2024-12-30") + task.add_milestone("30% 자동화", "2024-8-01") + task.add_milestone("60% 자동화", "2024-12-01") group = roadmap.add_group("공구 흐름") - group.add_task("도구 선택 전략 구현", "2023-01-01", "2023-04-30") - group.add_task("도구 선택", "2023-02-01", "2023-08-30") - task = group.add_task("중앙 집중식 도구 관리", "2023-04-01", "2023-11-30") - task.add_milestone("시스템은 중앙 집중식", "2023-12-01") + group.add_task("도구 선택 전략 구현", "2024-01-01", "2024-04-30") + group.add_task("도구 선택", "2024-02-01", "2024-08-30") + task = group.add_task("중앙 집중식 도구 관리", "2024-04-01", "2024-11-30") + task.add_milestone("시스템은 중앙 집중식", "2024-12-01") roadmap.draw() roadmap.save(filename) @@ -997,7 +999,7 @@ def test_sample_case1(): colour_theme="ORANGEPEEL", timelinemode=TimelineMode.WEEKLY, number_of_items=52, - start_date="2023-01-01", + start_date="2024-01-01", ) @@ -1009,7 +1011,7 @@ def test_sample_case2(): colour_theme="ORANGEPEEL", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) @@ -1021,7 +1023,7 @@ def test_sample_case3(): colour_theme="ORANGEPEEL", timelinemode=TimelineMode.QUARTERLY, number_of_items=4, - start_date="2023-01-01", + start_date="2024-01-01", ) @@ -1033,7 +1035,7 @@ def test_sample_unicase1(): # colour_theme="ORANGEPEEL", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) assert True @@ -1050,14 +1052,14 @@ def test_draw_anatomy(): roadmap = Roadmap(1200, 380, colour_theme="BLUEMOUNTAIN", show_marker=True) roadmap.set_title("Product Roadmap") roadmap.set_subtitle("Matariki Tech Ltd") - roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01", number_of_items=9) + roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01", number_of_items=9) roadmap.set_footer("Generated by Roadmapper") group = roadmap.add_group("Workstream 1") - task = group.add_task("Task 1-A", "2023-01-01", "2023-05-15") - task.add_parallel_task("Task 2-B", "2023-05-16", "2023-08-30") - task = group.add_task("Task 3-C", "2023-04-01", "2023-06-30") - task.add_milestone("Milestone 1", "2023-06-30") + task = group.add_task("Task 1-A", "2024-01-01", "2024-05-15") + task.add_parallel_task("Task 2-B", "2024-05-16", "2024-08-30") + task = group.add_task("Task 3-C", "2024-04-01", "2024-06-30") + task.add_milestone("Milestone 1", "2024-06-30") roadmap.draw() @@ -1076,18 +1078,18 @@ def test_draw_banner_theme(): roadmap = Roadmap(600, 380, colour_theme="BLUEMOUNTAIN", show_marker=True) roadmap.set_title("My Demo Roadmap") - roadmap.set_timeline(TimelineMode.QUARTERLY, start="2023-01-01", number_of_items=4) + roadmap.set_timeline(TimelineMode.QUARTERLY, start="2024-01-01", number_of_items=4) roadmap.set_footer("Generated by Roadmapper") group = roadmap.add_group("Workstream 1") - task = group.add_task("Task 1-A", "2023-01-01", "2023-04-30") - task.add_parallel_task("Task 2-B", "2023-05-15", "2023-08-30") - group.add_task("Task 3-C", "2023-04-01", "2023-06-30") + task = group.add_task("Task 1-A", "2024-01-01", "2024-04-30") + task.add_parallel_task("Task 2-B", "2024-05-15", "2024-08-30") + group.add_task("Task 3-C", "2024-04-01", "2024-06-30") group = roadmap.add_group("Workstream 2") - group.add_task("Task 2-A", "2023-04-01", "2023-06-30") - group.add_task("Task 2-B", "2023-05-01", "2023-07-30") - group.add_task("Task 2-C", "2023-06-01", "2023-08-30") + group.add_task("Task 2-A", "2024-04-01", "2024-06-30") + group.add_task("Task 2-B", "2024-05-01", "2024-07-30") + group.add_task("Task 2-C", "2024-06-01", "2024-08-30") roadmap.draw() roadmap.save(output_file) @@ -1107,7 +1109,7 @@ def test_draw_banner(): roadmap.set_title("My Demo Roadmap") roadmap.set_timeline( TimelineMode.QUARTERLY, - start="2023-01-01", + start="2024-01-01", number_of_items=3, year_fill_colour="#7CC1AC", year_font_colour="black", @@ -1120,22 +1122,22 @@ def test_draw_banner(): ) task = group.add_task( "Task 1-A", - "2023-01-01", - "2023-04-30", + "2024-01-01", + "2024-04-30", font_colour="black", fill_colour="#D7B3BD", ) task.add_parallel_task( "Task 2-B", - "2023-05-15", - "2023-08-30", + "2024-05-15", + "2024-08-30", font_colour="black", fill_colour="#D7B3BD", ) group.add_task( "Task 3-C", - "2023-04-01", - "2023-06-30", + "2024-04-01", + "2024-06-30", font_colour="black", fill_colour="#D7B3BD", ) @@ -1145,22 +1147,22 @@ def test_draw_banner(): ) group.add_task( "Task 2-A", - "2023-04-01", - "2023-06-30", + "2024-04-01", + "2024-06-30", font_colour="black", fill_colour="#EFC5A7", ) group.add_task( "Task 2-B", - "2023-05-01", - "2023-07-30", + "2024-05-01", + "2024-07-30", font_colour="black", fill_colour="#EFC5A7", ) group.add_task( "Task 2-C", - "2023-06-01", - "2023-08-30", + "2024-06-01", + "2024-08-30", font_colour="black", fill_colour="#EFC5A7", ) @@ -1177,7 +1179,7 @@ def test_gallery_images(): file_name="../../images/gallery/gallery-sample-01.png", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) ### Colour Theme Roadmap ### @@ -1187,7 +1189,7 @@ def test_gallery_images(): # colour_theme="ORANGEPEEL", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) colour_theme_roadmap( @@ -1195,7 +1197,7 @@ def test_gallery_images(): colour_theme="ORANGEPEEL", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) colour_theme_roadmap( @@ -1203,7 +1205,7 @@ def test_gallery_images(): colour_theme="BLUEMOUNTAIN", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) colour_theme_roadmap( @@ -1211,7 +1213,7 @@ def test_gallery_images(): colour_theme="GREENTURTLE", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) colour_theme_roadmap( @@ -1219,7 +1221,7 @@ def test_gallery_images(): colour_theme="GREYWOOF", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", ) ### Marker Roadmap ### @@ -1228,7 +1230,7 @@ def test_gallery_images(): file_name="../../images/gallery/gallery-marker-monthly.png", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2022-11-01", + start_date="2023-11-01", show_marker=True, show_generic_dates=False, ) @@ -1240,7 +1242,7 @@ def test_gallery_images(): colour_theme="DEFAULT", timelinemode=TimelineMode.WEEKLY, number_of_items=52, - start_date="2023-01-01", + start_date="2024-01-01", show_generic_dates=False, ) @@ -1251,7 +1253,7 @@ def test_gallery_images(): colour_theme="DEFAULT", timelinemode=TimelineMode.QUARTERLY, number_of_items=6, - start_date="2023-01-01", + start_date="2024-01-01", show_generic_dates=False, ) @@ -1262,7 +1264,7 @@ def test_gallery_images(): colour_theme="DEFAULT", timelinemode=TimelineMode.HALF_YEARLY, number_of_items=4, - start_date="2023-01-01", + start_date="2024-01-01", show_generic_dates=False, ) @@ -1284,7 +1286,7 @@ def test_gallery_images(): colour_theme="DEFAULT", timelinemode=TimelineMode.MONTHLY, number_of_items=12, - start_date="2023-01-01", + start_date="2024-01-01", show_generic_dates=True, ) @@ -1301,22 +1303,22 @@ def test_with_context_manager(): 1200, 500, show_marker=False, auto_height=True, colour_theme="ORANGEPEEL" ) as my_roadmap: my_roadmap.set_title("Context Manager Test Roadmap") - my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01") + my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01") with my_roadmap.add_group("Workstream 1") as group1: with group1.add_task( "Task 1-A", - "2023-01-01", - "2023-04-30", + "2024-01-01", + "2024-04-30", ) as task1: with task1.add_parallel_task( "Task 2-B", - "2023-05-15", - "2023-08-30", + "2024-05-15", + "2024-08-30", ) as parallel_task1: - parallel_task1.add_milestone("Milestone 2", "2023-08-10") + parallel_task1.add_milestone("Milestone 2", "2024-07-10") task1.add_milestone( "Milestone 1", - "2023-04-01", + "2024-04-01", ) my_roadmap.draw() my_roadmap.save("../../images/with_context_manager.png") @@ -1328,22 +1330,22 @@ def test_black_blackground(): ) as my_roadmap: my_roadmap.set_background_colour("black") my_roadmap.set_title("Black Background Test Roadmap") - my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01") + my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01") with my_roadmap.add_group("Workstream 1") as group1: with group1.add_task( "Task 1-A", - "2023-01-01", - "2023-04-30", + "2024-01-01", + "2024-04-30", ) as task1: with task1.add_parallel_task( "Task 2-B", - "2023-05-15", - "2023-08-30", + "2024-05-15", + "2024-08-30", ) as parallel_task1: - parallel_task1.add_milestone("Milestone 2", "2023-08-10") + parallel_task1.add_milestone("Milestone 2", "2024-08-10") task1.add_milestone( "Milestone 1", - "2023-04-01", + "2024-04-01", ) my_roadmap.draw() my_roadmap.save("../../images/black_roadmap.png") @@ -1355,22 +1357,22 @@ def test_transparent_blackground(): ) as my_roadmap: my_roadmap.set_background_colour("transparent") my_roadmap.set_title("Transparent Background Test Roadmap") - my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2023-01-01") + my_roadmap.set_timeline(TimelineMode.MONTHLY, start="2024-01-01") with my_roadmap.add_group("Workstream 1") as group1: with group1.add_task( "Task 1-A", - "2023-01-01", - "2023-04-30", + "2024-01-01", + "2024-04-30", ) as task1: with task1.add_parallel_task( "Task 2-B", - "2023-05-15", - "2023-08-30", + "2024-05-15", + "2024-08-30", ) as parallel_task1: - parallel_task1.add_milestone("Milestone 2", "2023-08-10") + parallel_task1.add_milestone("Milestone 2", "2024-08-10") task1.add_milestone( "Milestone 1", - "2023-04-01", + "2024-04-01", ) my_roadmap.draw() my_roadmap.save("../../images/transparent_roadmap.png") diff --git a/src/tests/test_roadmapper.py b/src/tests/test_roadmapper.py index 205f422..9a6031f 100644 --- a/src/tests/test_roadmapper.py +++ b/src/tests/test_roadmapper.py @@ -8,7 +8,7 @@ def colour_theme_demo( mode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 12, show_generic_dates: bool = False, file_name: str = "demo01.png", @@ -18,7 +18,7 @@ def colour_theme_demo( roadmap = Roadmap( 1200, 1000, auto_height=True, colour_theme=colour_theme, show_marker=True ) - roadmap.set_title("SAMPLE ROADMAP 2022/2023") + roadmap.set_title("SAMPLE ROADMAP 2023/2024") roadmap.set_subtitle("ABC Corporation") roadmap.set_timeline( mode, @@ -29,17 +29,17 @@ def colour_theme_demo( ) group = roadmap.add_group("Core Product Work Stream", text_alignment="left") - task = group.add_task("Base Functionality", "2022-11-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") - parellel_task.add_milestone("v.2.0", "2024-03-30") + task = group.add_task("Base Functionality", "2023-11-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2025-03-31") + parellel_task.add_milestone("v.2.0", "2025-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("Mobility Work Stream", text_alignment="left") - group.add_task("Mobile App Development", "2023-02-01", "2024-12-07") + group.add_task("Mobile App Development", "2024-02-01", "2025-12-07") roadmap.set_footer("Updated on " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -49,7 +49,7 @@ def colour_theme_demo( def colour_theme_demo_without_locale( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 12, show_generic_dates: bool = False, file_name: str = "demo01.png", @@ -58,7 +58,7 @@ def colour_theme_demo_without_locale( roadmap = Roadmap( 1200, 1000, auto_height=True, colour_theme=colour_theme, show_marker=True ) - roadmap.set_title("SAMPLE ROADMAP 2022/2023") + roadmap.set_title("SAMPLE ROADMAP 2023/2024") roadmap.set_subtitle("ABC Corporation") roadmap.set_timeline( timelinemode, @@ -68,17 +68,17 @@ def colour_theme_demo_without_locale( ) group = roadmap.add_group("Core Product Work Stream", text_alignment="left") - task = group.add_task("Base Functionality", "2022-11-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") - parellel_task.add_milestone("v.2.0", "2024-03-30") + task = group.add_task("Base Functionality", "2023-11-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2025-03-31") + parellel_task.add_milestone("v.2.0", "2025-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("Mobility Work Stream", text_alignment="left") - group.add_task("Mobile App Development", "2023-02-01", "2024-12-07") + group.add_task("Mobile App Development", "2024-02-01", "2025-12-07") roadmap.set_footer("Updated on " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -88,7 +88,7 @@ def colour_theme_demo_without_locale( def chinese_theme_demo( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 12, show_generic_dates: bool = False, show_first_day_of_week=False, @@ -99,7 +99,7 @@ def chinese_theme_demo( roadmap = Roadmap( 1200, 1000, auto_height=True, colour_theme=colour_theme, show_marker=True ) - roadmap.set_title("示例路線圖 2022/2023") + roadmap.set_title("示例路線圖 2023/2024") roadmap.set_subtitle("甲乙丙有限公司") roadmap.set_timeline( timelinemode, @@ -111,17 +111,17 @@ def chinese_theme_demo( ) group = roadmap.add_group("核心產品工作流程", text_alignment="left") - task = group.add_task("基本功能", "2022-11-01", "2023-10-31") - task.add_milestone("版本 1.0", "2023-02-15") - task.add_milestone("版本 1.1", "2023-08-01") - parellel_task = task.add_parallel_task("增強功能", "2023-11-15", "2024-03-31") - parellel_task.add_milestone("版本 2.0", "2024-01-30") + task = group.add_task("基本功能", "2023-11-01", "2024-10-31") + task.add_milestone("版本 1.0", "2024-02-15") + task.add_milestone("版本 1.1", "2024-08-01") + parellel_task = task.add_parallel_task("增強功能", "2024-11-15", "2025-03-31") + parellel_task.add_milestone("版本 2.0", "2025-01-30") - task = group.add_task("陳列 #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("陳列 #2", "2023-06-01", "2023-08-07") + task = group.add_task("陳列 #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("陳列 #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("移動工作流程", text_alignment="left") - group.add_task("移動應用程序開發", "2023-02-01", "2024-12-07") + group.add_task("移動應用程序開發", "2024-02-01", "2024-12-07") roadmap.set_footer("更新於 " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -131,7 +131,7 @@ def chinese_theme_demo( def japanese_theme_demo( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 12, show_generic_dates: bool = False, show_first_day_of_week=False, @@ -142,7 +142,7 @@ def japanese_theme_demo( roadmap = Roadmap( 1200, 1000, auto_height=True, colour_theme=colour_theme, show_marker=True ) - roadmap.set_title("ロードマップの例 2022/2023") + roadmap.set_title("ロードマップの例 2024/2025") roadmap.set_subtitle("株式会社エー・ビー・シー") roadmap.set_timeline( timelinemode, @@ -154,17 +154,17 @@ def japanese_theme_demo( ) group = roadmap.add_group("コア製品のワークフロー", text_alignment="left") - task = group.add_task("基本的なスキル", "2022-11-01", "2023-10-31") - task.add_milestone("バージョン 1.0", "2023-02-15") - task.add_milestone("バージョン 1.1", "2023-08-01") - parellel_task = task.add_parallel_task("強化", "2023-11-15", "2024-03-31") - parellel_task.add_milestone("バージョン 2.0", "2024-01-30") + task = group.add_task("基本的なスキル", "2023-11-01", "2024-10-31") + task.add_milestone("バージョン 1.0", "2024-02-15") + task.add_milestone("バージョン 1.1", "2024-08-01") + parellel_task = task.add_parallel_task("強化", "2024-11-15", "2025-03-31") + parellel_task.add_milestone("バージョン 2.0", "2025-01-30") - task = group.add_task("ショーケース #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("ショーケース #2", "2023-06-01", "2023-08-07") + task = group.add_task("ショーケース #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("ショーケース #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("モバイル ワークフロー", text_alignment="left") - group.add_task("モバイルアプリ開発", "2023-02-01", "2024-12-07") + group.add_task("モバイルアプリ開発", "2024-02-01", "2025-12-07") roadmap.set_footer("更新日 " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -174,7 +174,7 @@ def japanese_theme_demo( def generic_date_test( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-11-01", + start_date: str = "2023-11-01", number_of_items: int = 24, show_generic_dates: bool = False, show_first_day_of_week: bool = False, @@ -192,17 +192,17 @@ def generic_date_test( ) group = roadmap.add_group("Core Product Work Stream") - task = group.add_task("Base Functionality", "2022-11-01", "2023-10-31") - task.add_milestone("v.1.0", "2023-02-15") - task.add_milestone("v.1.1", "2023-08-01") - parellel_task = task.add_parallel_task("Enhancements", "2023-11-15", "2024-03-31") - parellel_task.add_milestone("v.2.0", "2024-03-30") + task = group.add_task("Base Functionality", "2023-11-01", "2024-10-31") + task.add_milestone("v.1.0", "2024-02-15") + task.add_milestone("v.1.1", "2024-08-01") + parellel_task = task.add_parallel_task("Enhancements", "2024-11-15", "2025-03-31") + parellel_task.add_milestone("v.2.0", "2025-03-30") - task = group.add_task("Showcase #1", "2023-03-01", "2023-05-07") - task.add_parallel_task("Showcase #2", "2023-06-01", "2023-08-07") + task = group.add_task("Showcase #1", "2024-03-01", "2024-05-07") + task.add_parallel_task("Showcase #2", "2024-06-01", "2024-08-07") group = roadmap.add_group("Mobility Work Stream") - group.add_task("Mobile App Development", "2023-02-01", "2024-12-07") + group.add_task("Mobile App Development", "2024-02-01", "2025-12-07") roadmap.set_footer("Generated by Roadmapper") roadmap.draw() @@ -211,7 +211,7 @@ def generic_date_test( def parallel_task_demo( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2022-12-01", + start_date: str = "2023-12-01", number_of_items: int = 14, file_name: str = "demo01.png", colour_theme: str = "DEFAULT", @@ -223,7 +223,7 @@ def parallel_task_demo( colour_theme=colour_theme, show_marker=True, ) - roadmap.set_title("ROADMAP EXAMPLE 2022/2023") + roadmap.set_title("ROADMAP EXAMPLE 2023/2024") roadmap.set_subtitle("This is a subtitle") roadmap.set_timeline( timelinemode, @@ -234,13 +234,13 @@ def parallel_task_demo( group = roadmap.add_group("Core Product Work Stream") - task = group.add_task("Base Functionality", "2022-11-01", "2023-01-31") - parellel_task = task.add_parallel_task("Enhancements", "2023-02-15", "2024-03-31") - parellel_task.add_milestone("v.2.0", "2023-04-30") + task = group.add_task("Base Functionality", "2023-11-01", "2024-01-31") + parellel_task = task.add_parallel_task("Enhancements", "2024-02-15", "2025-03-31") + parellel_task.add_milestone("v.2.0", "2024-04-30") - task = group.add_task("Showcase #1", "2023-01-01", "2023-01-31") - parellel_task = task.add_parallel_task("Showcase #2", "2023-02-02", "2023-03-15") - parellel_task.add_milestone("v.2.0", "2023-04-15") + task = group.add_task("Showcase #1", "2024-01-01", "2024-01-31") + parellel_task = task.add_parallel_task("Showcase #2", "2024-02-02", "2024-03-15") + parellel_task.add_milestone("v.2.0", "2024-04-15") # group = roadmap.add_group("Core Product Work Stream 2") # task = group.add_task("Base Functionality", "2022-11-01", "2023-01-31") @@ -252,7 +252,7 @@ def parallel_task_demo( def singleton_demo( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2023-01-01", + start_date: str = "2024-01-01", number_of_items: int = 2, file_name: str = "demo01.png", colour_theme: str = "BLUEMOUNTAIN", @@ -276,11 +276,9 @@ def singleton_demo( group = roadmap.add_group("Showcase Task Styles") - group.add_task("Rectangle Style", "2023-01-15", "2023-02-15") - group.add_task("Rounded Style", "2023-01-15", "2023-02-15", style="rounded") - group.add_task( - "Arrowhead Style", "2023-01-15", "2023-02-15", style="arrowhead" - ) + group.add_task("Rectangle Style", "2024-01-15", "2024-02-15") + group.add_task("Rounded Style", "2024-01-15", "2024-02-15", style="rounded") + group.add_task("Arrowhead Style", "2024-01-15", "2024-02-15", style="arrowhead") # roadmap.set_footer("Author: CS Goh " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -289,7 +287,7 @@ def singleton_demo( def logo_demo( timelinemode: TimelineMode = TimelineMode.MONTHLY, - start_date: str = "2023-01-01", + start_date: str = "2025-01-01", number_of_items: int = 2, file_name: str = "demo01.png", colour_theme: str = "BLUEMOUNTAIN", @@ -321,7 +319,7 @@ def logo_demo( text = "I love Python" # emojized_text = emojize(text) - group.add_task(text, "2023-01-15", "2023-02-15") + group.add_task(text, "2024-01-15", "2024-02-15") roadmap.set_footer("Author: CS Goh " + datetime.now().strftime("%Y-%m-%d")) roadmap.draw() @@ -353,7 +351,7 @@ def test_dev(): file_name=output_file, colour_theme="../json/chinese.json", timelinemode=TimelineMode.WEEKLY, - start_date="2023-01-01", + start_date="2024-01-01", number_of_items=14, locale_name="../json/zh_TW_timeline_settings.json", show_generic_dates=False, @@ -366,7 +364,7 @@ def test_dev(): file_name=output_file, colour_theme="../json/chinese.json", timelinemode=TimelineMode.MONTHLY, - start_date="2023-01-01", + start_date="2024-01-01", number_of_items=14, locale_name="../json/ja_JP_timeline_settings.json", show_generic_dates=False, @@ -376,12 +374,11 @@ def test_dev(): assert os.path.exists(output_file) - -# check if calling from main -if __name__ == "__main__": - output_file = "../../images/test/colour_theme_demo_without_locale.png" - colour_theme_demo_without_locale( - file_name=output_file, - timelinemode=TimelineMode.MONTHLY, - number_of_items=14, - ) \ No newline at end of file +# # check if calling from main +# if __name__ == "__main__": +# output_file = "../../images/test/colour_theme_demo_without_locale.png" +# colour_theme_demo_without_locale( +# file_name=output_file, +# timelinemode=TimelineMode.MONTHLY, +# number_of_items=14, +# )