From aa64df5ed75d1d0fe560d3ac14df259558c544be Mon Sep 17 00:00:00 2001 From: modembcc Date: Sun, 14 Apr 2024 17:18:38 +0800 Subject: [PATCH 01/12] Add limitations for some commands --- docs/UserGuide.md | 58 +++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5046be87122..716ad20a4a9 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -18,7 +18,7 @@ Welcome to the user guide for our CLI-based project management application! This - [Add task : `add task`](#add-task--add-task) - [Delete task : `delete task`](#delete-task--delete-task) - [Show Project : `show project`](#show-project--show-project) - - [Set deadline of project : `set deadline`](#set-deadline-to-project--set-deadline) + - [Set deadline to project : `set deadline`](#set-deadline-to-project--set-deadline) - [Set deadline to task : `set deadline`](#set-deadline-to-task--set-deadline) - [Set Project Status : `set status`](#set-project-status--set-status) - [Set Task Status : `set status`](#set-task-status--set-status) @@ -94,6 +94,8 @@ Welcome to the user guide for our CLI-based project management application! This ⚠️ **Warning:** Project name is alphanumeric: slashes, commas, or any other punctuation mark aren't accepted. +⚠️ **Warning:** A long project name can result in incomplete display of the project name, status, and category. To see more text, you can resize the window horizontally or maximize the window. + **Examples:** - `add project CS2103T Duke Chatbot Project` @@ -119,6 +121,26 @@ Welcome to the user guide for our CLI-based project management application! This - Success: ` has been deleted from the project list.` - Failure: `Project not found: Please make sure the project exists.` +### Show Project : `show project` + +Sets the current showing project as the specified project. + +⚠️ **Warning:** The specified project must be in the current project list. Try using `list project` before using this command if you couldn't see your project in the current project list. + +**Format:** `show project ` + +**Examples:** + +- `show project CS2101 Presentation` + +**Expected output:** + +- Success: The UI now shows the project’s information. +- Failure: `Project not found: Please make sure the project exists.` + +![Show Project Command Result](images/Ui.png) +Description: An example of the result after executing the "show project" command, displaying project information in the UI. + ### Add task : `add task` Adds the specified task to a project. @@ -127,10 +149,12 @@ Adds the specified task to a project. ⚠️ **Warning:** The specified project must exist. -⚠️ **Warning:** The task name has to be unique within the project. +⚠️ **Warning:** Task name has to be unique within the project. ⚠️ **Warning:** Task name is alphanumeric: slashes, commas, or any other punctuation mark aren't accepted. +⚠️ **Warning:** Task name should be within 30 characters long. A longer name can result in incomplete display (see [known-issues](#known-issues)). + **Examples:** - `add task Prepare slides for presentation /to CS2101 Presentation` @@ -163,26 +187,6 @@ Deletes the specified task from a project. - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists.` -### Show Project : `show project` - -Sets the current showing project as the specified project. - -⚠️ **Warning:** The specified project must be in the current project list. Try using `list project` before using this command if you couldn't see your project in the current project list. - -**Format:** `show project ` - -**Examples:** - -- `show project CS2101 Presentation` - -**Expected output:** - -- Success: The UI now shows the project’s information. -- Failure: `Project not found: Please make sure the project exists.` - -![Show Project Command Result](images/Ui.png) -Description: An example of the result after executing the "show project" command, displaying project information in the UI. - ### Set deadline to project : `set deadline` **Format:** `set deadline /to ` @@ -228,11 +232,13 @@ Description: An example of the result after executing the "show project" command ### Set Project Status : `set status` +Projects set as `complete` will have a green `complete` status text beside its name. New projects are initially set as `incomplete`. + **Format:** `set status /of ` ⚠️ **Warning:** The specified project must exist. -⚠️ **Warning:** The status should only be `complete` or `incomplete`. Typing something else as a status might not prompt an error, but the project might be considered as `incomplete`. +⚠️ **Warning:** The status can only be `complete` or `incomplete`. **Examples:** @@ -246,11 +252,13 @@ Description: An example of the result after executing the "show project" command ### Set Task Status : `set status` +Tasks set as `complete` will me moved to the `Done` column on the right side of the ui. New tasks are initially set as `incomplete`. + ⚠️ **Warning:** The specified project must exist. ⚠️ **Warning:** The specified task must exist. -⚠️ **Warning:** The status can only be `complete` or `incomplete`. Typing something else as a status might not prompt an error, but the task might be considered as `incomplete`. +⚠️ **Warning:** The status can only be `complete` or `incomplete`. **Format:** `set status /of /in ` @@ -396,6 +404,8 @@ Similar to adding a tag to the project ⚠️ **Warning:** The specified project must exist. +⚠️ **Warning:** A long category can result in incomplete display of the project name, status, and category. To see more text, you can resize the window horizontally or maximize the window. + **Examples:** - `set category urgent /to 2103` From cb02a88b2083e81e769b87ac46e6b94acf1f5190 Mon Sep 17 00:00:00 2001 From: modembcc Date: Sun, 14 Apr 2024 20:34:38 +0800 Subject: [PATCH 02/12] Add screenshots --- docs/UserGuide.md | 68 +++++++++++++----- docs/images/AddProjectCommandResult.png | Bin 0 -> 19155 bytes docs/images/AddTaskCommandResult.png | Bin 0 -> 30843 bytes docs/images/FilterCategoryCommandResult.png | Bin 0 -> 24422 bytes .../SetProjectCategoryCommandResult.png | Bin 0 -> 37924 bytes docs/images/SetProjectStatusCommandResult.png | Bin 0 -> 31107 bytes docs/images/SetTaskStatusCommandResult.png | Bin 0 -> 30381 bytes docs/images/ShowHelpCommandResult.png | Bin 0 -> 38390 bytes docs/images/Ui.png | Bin 36139 -> 57087 bytes src/main/resources/view/CommentListCard.fxml | 8 +-- src/main/resources/view/DarkTheme.css | 25 ++++--- 11 files changed, 69 insertions(+), 32 deletions(-) create mode 100644 docs/images/AddProjectCommandResult.png create mode 100644 docs/images/AddTaskCommandResult.png create mode 100644 docs/images/FilterCategoryCommandResult.png create mode 100644 docs/images/SetProjectCategoryCommandResult.png create mode 100644 docs/images/SetProjectStatusCommandResult.png create mode 100644 docs/images/SetTaskStatusCommandResult.png create mode 100644 docs/images/ShowHelpCommandResult.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 716ad20a4a9..3b4e1b1ec5e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -46,26 +46,35 @@ Welcome to the user guide for our CLI-based project management application! This 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest `tp_new.jar` from [here](https://github.com/AY2324S2-CS2103T-W08-4/tp/releases/tag/v1.2). +2. Download the latest `tp_new.jar` from [here](https://github.com/AY2324S2-CS2103T-W08-4/tp/releases/tag/v1.2). -1. Copy the file to the folder you want to use as the _home folder_ for your app. +3. Copy the file to the folder you want to use as the _home folder_ for your app. -1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar tp_new.jar` command to run the application.
+4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar tp_new.jar` command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) + Some notes about the UI: -1. Type the command in the command box and press Enter to execute it. + - On the top left is the menu bar. There are 2 buttons: File and Help. File can be used as an alternative way to exit the app, and Help is used to open up the help window. + - Below the menu bar is the command box. This is where you will be typing the commands to use the app. See 5. for more details. + - Below the command box is the result box. In the [Features](#features) section the "expected result" of each commands will be stated. Those results are expected to be displayed here in this result box. + - Below the result box is the project list. This is where your projects will appear after you've added them. + - Now on the right side is the details of the project. To choose which project you would like to see the details, use the [show project](#show-project--show-project) command. + + ⚠️ If you are finding unexpected behaviors in the UI or the app itself, try checking out the [FAQ](#faq) or the [Known issues](#known-issues) sections of this User Guide. + +5. Type the command in the command box and press Enter to execute it. Some example commands you can try: - `add project Duke` : Adds a project named `Duke` to the project list. - `delete project Duke` : Deletes the Duke project from the project list. - - `clear` : Deletes all projects and tasks. + - `clear project` : Deletes all projects and tasks. - - `exit` : Exits the app. + - `exit program` : Exits the app. -1. Refer to the [Features](#features) below for details of each command. +6. Refer to the [Features](#features) section below for details of each command. --- @@ -75,19 +84,19 @@ Welcome to the user guide for our CLI-based project management application! This **:information_source: Notes about the commands:**
-- Words in `` are the parameters to be supplied by the user.
+- Words in `` are the parameters to be supplied by you, the user.
e.g. in `add project `, `` is a parameter which can be used as `add project CS2103`. - Extraneous parameters for commands that do not take in parameters (namely `list project`) will be ignored.
e.g. if the command specifies `list project 123`, it will be interpreted as `list project`. - If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application. - -- 🚨 Some commands that interact with the UI are laggy in V1.3. If you use a command and doesn't notice a change in the UI then try to **click on the project cards and tasks** and it should update to it's current data. ### Adding a project: `add project` +The added projects will appear on the project list on the left. + **Format:** `add project ` ⚠️ **Warning:** Project name needs to be unique. @@ -106,6 +115,9 @@ Welcome to the user guide for our CLI-based project management application! This - Success: ` has been added to the project list.` - Failure: `Project already exists.` +![AddProjectCommandResult](images/AddProjectCommandResult.png) +Description: An example of the result after executing the "add project" command. + ### Deleting a project : `delete project` **Format:** `delete project ` @@ -166,6 +178,8 @@ Adds the specified task to a project. - `Project not found: Please make sure the project exists.` - `Task already exists in .` +![AddTaskCommandResult](images/AddTaskCommandResult.png) + ### Delete task : `delete task` Deletes the specified task from a project. @@ -250,6 +264,8 @@ Projects set as `complete` will have a green `complete` status text beside its n - Failure: - `Project not found: Please make sure the project exists.` +![SetProjectStatusCommandResult](images/SetProjectStatusCommandResult.png) + ### Set Task Status : `set status` Tasks set as `complete` will me moved to the `Done` column on the right side of the ui. New tasks are initially set as `incomplete`. @@ -264,7 +280,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of **Examples:** -- `set status complete /of unit test /in CS2103T Duke Chatbot Project` +- `set status complete /of Prepare slides for presentation /in CS2101 Presentation` **Expected output:** @@ -273,6 +289,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Task not found: Please make sure the task exists.` - `Project not found: Please make sure the project exists.` +![SetTaskStatusCommandResult](images/SetTaskStatusCommandResult.png) + ### Assign team to project: `assign team` **Format:** `assign team [, , , ...] /to ` @@ -285,10 +303,12 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of ⚠️ **Warning:** Duplicate person names are allowed, but not recommended. It can cause confusion for both you and the app. -⚠️ **Warning:** Person name is alphanumeric: slashes, commas, or any other punctuation mark aren't accepted. +⚠️ **Warning:** Each person name is alphanumeric: slashes, commas, or any other punctuation mark aren't accepted. 🔔 **Note**: The part of the format in `[ ]` is optional +⚠️ **Warning:** Each person name should be within 25 characters long. A longer name can result in incomplete display (see [known-issues](#known-issues)). + **Examples:** - `assign team Joe, Cody /to CS2103_TP` @@ -308,6 +328,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of ⚠️ **Warning:** Person name is alphanumeric: slashes, commas, or any other punctuation mark aren't accepted. +⚠️ **Warning:** Person name should be within 25 characters long. A longer name can result in incomplete display (see [known-issues](#known-issues)). + **Examples:** - `add person Joe /to CS2103_TP` @@ -398,23 +420,27 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of ### Set project category: `set category` -Similar to adding a tag to the project +Similar to adding a tag to the project. The category will be shown as the orange text beside the project's name (it comes after the project status). **Format:** `set category /to ` ⚠️ **Warning:** The specified project must exist. +⚠️ **Warning:** Each project is limited to one category. Setting a new category overrides the old one. + ⚠️ **Warning:** A long category can result in incomplete display of the project name, status, and category. To see more text, you can resize the window horizontally or maximize the window. **Examples:** -- `set category urgent /to 2103` +- `set category urgent /to 2103 TP` **Expected output:** - Success: `The project category is set as .` - Failure: `Project not found: Please make sure the project exists.` +![SetProjectCategoryCommandResult](images/SetProjectCategoryCommandResult.png) + ### Filter projects by category: `filter category` **Format:** `filter category ` @@ -425,7 +451,9 @@ Similar to adding a tag to the project **Expected output:** -The project list will only show projects with the specified category. +The project list will list the projects with the specified category. + +![FilterCategoryCommandResult](images/FilterCategoryCommandResult.png) ### Add comments to project: `add comment` @@ -435,6 +463,8 @@ The project list will only show projects with the specified category. ⚠️ **Warning:** The specified member must exist in the project. +⚠️ **Warning:** The comments will not be deleted even if the person who made the comment is removed from the project. + **Examples:** - `add comment delete task can only be started after add task is implemented /from Mary /to 2103` @@ -458,7 +488,7 @@ Finds projects whose names contain any of the given keywords. The updated projec **Expected output:** -- Returns projects containing the specified keyword(s). +- The project list will list the projects containing the specified keyword(s). ### Listing all projects: `list project` @@ -478,6 +508,8 @@ Opens a help window containing the url to this user guide. **Format:** `show help` +![ShowHelpCommandResult](images/ShowHelpCommandResult.png) + ### Exit DevPlan Pro: `exit program` **Format:** `exit program` @@ -495,7 +527,7 @@ Opens a help window containing the url to this user guide. 1. **When using multiple screens**, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the `preferences.json` file created by the application before running the application again. -2. **When using v1.3 features**, sometimes the UI doesn't update once the commands are executed. The remedy is to click on the project cards and task cards to update the UI so that it shows the latest data. +2. **When viewing tasks in the UI**, if the name of the task is longer than 30 characters, the UI will not be able to display the full name of the task. A similar limit of 25 characters is applied to the name of the member set to the task. --- @@ -508,7 +540,7 @@ Opens a help window containing the url to this user guide. | **Add task** | `add task /to `
Example: `add task Prepare slides for presentation /to CS2101 Presentation` | | **Delete task** | `delete task /in `
Example: `delete task Prepare slides for presentation /in CS2101 Presentation` | | **Show Project** | `show project `
Example: `show project CS2101 Presentation` | -| **Set deadline of project** | `set deadline /to `
Example: `set deadline Feb 25 2024 /to CS2103_TP` | +| **Set deadline to project** | `set deadline /to `
Example: `set deadline Feb 25 2024 /to CS2103_TP` | | **Set deadline to task** | `set deadline /to /in `
Example: `Set deadline Feb 25 2024 /to submit feature list /in CS2103_TP` | | **Set Project Status** | `set status /of `
Example: `set status complete /of CS2103T Duke Chatbot Project` | | **Set Task Status** | `set status /of /in `
Example: `set status complete /of unit test /in CS2103T Duke Chatbot Project` | diff --git a/docs/images/AddProjectCommandResult.png b/docs/images/AddProjectCommandResult.png new file mode 100644 index 0000000000000000000000000000000000000000..af945b9ae47e98731169253fd621782c3f5a4e72 GIT binary patch literal 19155 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 z zPd6-&Sx-uUEB^JJz3y_cVRonx)1hJTEjx$$#?F9rREc9`TPxb;vJ<*;rq(S-gmyOc zbIuV8Ar$7vk@Xy^hX;pL zGJMiGH!ywwb zQq!szBjU5k?jkwDZU7b64`r1$d!kk%kYEcjC_Xth#Sm(~IWeC6>tdfiU;;_Lx z=gi*zU>?5Gza=zgQ2*(7S5Pi4hS{CKh89M(FBR993^#et#zPs-E{bVpsFNz$wyj@k z7_3+u!%KljJv~_VC#B7XdgjKV{-}WP&L5$!4ap6uAklMhc|u8UjlV6U)Nd)M?~8$E z8XH8KwW}&*wO5bg=s}jp=ng3jVf4yMw@a?- zAt||>8;nJ3Pctl1f23hYD`cd0B@W3+9mXqfX|p1}k*UtuVXZJyU#UC!Ms@^Ctb|!- zz^q6C$2v4o0S(Xnoedfpc3ooqN=5ZB*(;!<(j+8BtI^A!yT4dJz}X-g(S3Ymk^HK- z`zk%$7+pGo4p@>i|GqkTilL^ls(+@h)|4Ypt@dvbCiQMB`WV*og^H-jGsPUo)?rTI zXO-!3Ob-?6M|wD@u%3@Y?$2kAW*~D7ugSfd=_Nqr17Oh-FxyMKsPES|%QZ&kg&4S! zoGh`f;sv{oLYKv39$2a;kKS^r| zF$z~MPYFAj@S9tLJZ@rAluFtcRjHC0=;!{*C*qk_C9eVuS5wS1AA34r@pL2$i$nyI zJcjRd6_(BnFIx>zARbMEaqp-lyav}5lcsnb8irq5e$#K*(qDS~$u*J)n~DH)cgzM3 z6hXC%^Dut#7hLV{<$7#=>(r7@!dYhOtF4x=^H@OZ;x2MdrrPP<3lA2;_F)8_ihIeh z+|lb^y5hKwm&-3V#f9VuyaF9ZK6 zEy$V42CsI&1X%hs)RePNec&Y@0JBokJV&8eQ5Cojhv(x~j}^ z5BlDbsa|{DMMFNWolP?1!Wuoo_hIfZ7G@*W9X%}NrETzj#V@}*8IY-Ub}-CnsCPf~ z9v~WtQL?G>?Ri9vaA$6zMGW)EnNdhhtU+<#x4WQGi9NB^I1S<0=exA{gPsyOr0bR= zF_jvU&+t>*-!(Qqs=@Ai@;T~hW!dm+k4Z|)2qxZFDZls_DtYeGGe*i3e>r<8+Qh%X z4SP4gn~d@EKDF}ZLD!dt4Y=mh0c{_BRZL9-LC)t<(lc4jSvyM&2wk;bhdPw0x;1L9 ztTO7Y-1(~I@z9ROu&&c(;Mv`ADasD*S%re-#ru&pd267?(Ma2XsbTETo*h|*Rbld^ z>bqA<0)1YkChO8fb~y>2Ck;%*r6YSHr_sX=L#NX;POUKt56^(I6@$mWDAI0a+J+qm z42b7MoGL-D-rvqLT|=KGhl=jJQZ2eoaH8SHW%i1b?$B^M*v|lSVq=HAI?nA>EpanFB1Kf4#P~@7VZekZ>%KBLkL_RSTp-B7PS4igeFo|nT&Ck*;we{bu&KkcEv(tW z!DaqpA(-E`FNrJJ!pC#-`Dlj-_xIxvRf-FQp)ahj{Q;ewSJAu*n7~zJ#*` z&ck(Kli-IJ5WQ(7SnXctxMR7tkJvJ~?*W6d;OzHAF;F9_bCI_6$R@3lw^HtAAv~w8 zq-r(OJ|Mw4dp}Bh^hz3-v2;3Q+6mEkDSFz2IdWGgz6;bZ*J)8G(is({&3|!v^_a>? z$;@D%y{AM>ijgVv{klbnBU7`JL5lvV!J@RW>eee2CpwIa-;{$6n2#KoBm|)Y$d>p^y0R(qB>LEEC))t!D145(W{c=- zJ$mL<5?Z?^r>014C^4@R5`6y9GhBUeYz=}rG5JD&;x&EyiW(wk9Fo&$>7FL^p8It9CPm+5RQVEE+qM>LqzbMjuT(TNgw?Xmgja*#py zj%1cL{CquRynBzMtOs^duIW$|?}54hBGH5i3O_$!=%0Duy)J*IGGHR5GIIF4toCq_ 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/docs/images/SetProjectCategoryCommandResult.png b/docs/images/SetProjectCategoryCommandResult.png new file mode 100644 index 0000000000000000000000000000000000000000..605d0bcd05d3342e4a290987f5e9da12cd0707f9 GIT binary patch literal 37924 zcmce;2UJt*x-J|$E(;%&VfOolVqB+z&k$8c?Q6LCt%N1AAm~w*cO35PTSm9zYhYH#a!4oKLh-I-sPbI z3xKWp4?b~p8Dx0X`sDGORe$xKKEASl zlz9I5YUFQW`s1s-Tjt!yS5Kd`sU2T^j1T@VJ}^Jtd>%c!UF|;Y+8w7Y$#HytQB=;Y zUgKI9b7?{&amcHMJQJ@dmWYP+%MFjW9Bfq%YskdGmV}}SkOLeov^lgHBGGtLz@Yq7%BkZ|o({|Z zo;yg_FOiv|p>h~INNdHD*@E(GGz8CC zAH16erD+xF%x4-SyYaQsakAV(R_QPUvOmW-EKgq1?qi<898xfh_nnIL81O&GjGWb- z;mbxyspE$WlY7I3!RO*yb~=T^$E~%%>t}?#?@Nh+(>6cxWMg9#0`!R`#UXml8*w-m z#mwrTuypdY`+6s10xYEAM+oas2&>bCR&mdAX^Z^P8nOshw@g|m=cgXaM{AK7)ZDt^ zGhrEW=-Z9TvzC*STdZF$VbzT&TRI>UG-qaJa3j6mJ3m4ru!Z7;Df^v1uV(EMkr&t~ z3BhPCdyVRiZiNF80Z4PBz7s#)Tr~^>Coz@7$Td$`%hIRH=NOjeDbQnvB zR(qKg6H0N#W>{T9AfcpY0bgEIBas?-uqzOAYrdOYHvK~B_LSg0Rl`A`ph+`bQ7~(t zBsP-ni>-$@(rEUXpg|xYU8P3siXOIW=YGrgn0N(eZzFlFAtJ|m{B+%;>0Kf|0hZIP zowo5o)N5^81y*r9Bw;kLrWK{7LUQEE{{00#R^jaGL-4 z%e^YVQ};WC0<;>}8i{?K%Z{G-RIlr(-nEK;d0a{u+A>CNNJD1zxkhoh%a687OaM9i ziC~>l%Wu8vH3aUDyhpwF$vF;x7hg1bR=4lQRrA>+1;MBJ#lw~ete72@DVO$3RACh_ zsk)M z9GqUEs$ka@^I0v`8)Aj88fa{?rpHaZOr#I@iLBjMv0BL+!Soup6WC_dC1yTE%kM2% z82PZ;qUQ^xMD` znf$L!h$tSA*e~I3Y{!rNC_eJ+m$ZVD0O8IrEG$d`B(3%PcQY0yrrTX`8{np((f0J~zs=2m zr&awAGd+|tJ3Gtp|1}_>mKHW(I6+nIjXp$RGF;R(v^D2#>#c*~b3Dcd|D?{| zA$0L8>l>=z38*P2E;d{TuGIP>55s-|hAp*utJpbC`*;^X#dZXm}ng6dq1JuiCnT;P`058)tKUy4-cpa0m$G0FdPck&+-|2O%k|H%ic zwNX9c<_sY~BGq%s&hB7;7dJgB)N|D;ynM9|pN5;R(rlLRzTssob#6=}?R=}_t)sOH z5_h{YCfghG=l46BK93DQo81>Vc*WTG(c8pi&c8}JMnui)Yb{`$8A^?un>-8ww<;oU z)KO>W(T5c}`NBM=&_E*$2 z)l$>WgRnP`f0mnWP3bGKN3Xd&1#GOTsVSuk3EanW44>fU0$f`hp#2x zoOm$}C(U#&7uU=ps5Z;OU;3w?HSeoxw#@E2yKLXX&Vy)$gB`&6$mOS0^iaJ^o&X!3 zL`*;QpRzA34qxPNE7sPKvg+9Fx02ld)sB>ESDu(?#4yG9pv-alXqM8&W*gny+BC~E zy_R-fLVfWzC+~reBNI`dWh0DXuq>^@z6)L7{tSjxiHM%4PQR_*vxRHJyl$y9MO#J(a z;Glta&v70pYavCn)oxoimMwI0;^NBl2w{g9x$WCs zfxyn@)->V-xa?zf2`$slZG+!pcDf|O*ZIdHKoTd5uHdDs^_tQxlR6_98L^{=DL1#% z+xx7g_zTx0w&|-*aM?yqrOOZ+VIm5V)y3;>{h%WFv84?Px7UuWYw6TbPIn)bKaUn; zOmZl~;WnN^)4(L=iN+|JMmL2wqd3bXeQ}8vgBjJ4ZDawl03DuTLZ4rkG$7mIE(mdS zzPq=#*HflbVCCq=jzC^hEZo53ERsh*3yN|a+NvkayFCw`@SIgCfisESDn#2i3uc8O zLbR~L585>P9Go6Vyy~naKQ$^UxURsDd?8TOS9XXnH%nv+|wRW-QB5p|c{|JN7X$UCS#TaHy&Q z;LGiUVoBo#E!`SzYyKt{XqmNIODV5Uw_zo8(`;9(VOyhmjAA!oJEOebEb46Nige0~ zMdL8MOIj-eEE*bK7T`4H*%(M8%&zUx-(m9$oW84u4G0@gblRFMTH2ibCJh&l9!|DAAHlVW_g9nQC2*yC3W%J3C-M$=PURK$i77x!9Fl_ z6si(*^@md4_BW=C$0-Tl!dLM@cMvjAr)Oe4OzPoX^03%K*8@&>yS0ANF4$*A)W_(Y zdd$M>yUtvY*VA}QZ$RELG(H9RKS__6QEAOTE;-v4v8oqzkwt`Nks0nE1lqbiIX_1a z@KqN0OgwfxwB#V`m#tp;0)(F9Vg7B*N|zhKUt^BDuQxe9j}q$+bbD+ zr{Mb&9OjA*hL7p)`7b_!@a8_FyWH8RFJ!MBV*EsCK5!#8o$b1`3g&fLsl9hnG9Bv2 zz0Rn^t>z5i_YrbY^xr$&+DoSLxj^k@0O#-qB6`()JElo{ZmH$ z`4j<16kpVaN&{QnQC-gsNDXp&w0)MvR(N+WgZ*jrs9(ZZ0wU}{JQJ;S&_352PbdDN4$wQwva0&6=OX;<}Vu$DGPdMVHD zyn)dSSlfz|q-H$4V;Q`()%V4=84|D_0TFF$Xms4FkWcf=Er_*I%$e1J5T;eGI$ja!B3{i$UA0BQRP zbsZPxmyev}!L*}>?hY09tzt>m(pY~LV(!h8$W*V{Iwo4W7xVI$xhnneG8m~f@-6ub zb&%fqfhv}5^|+))n+?3I1c{}q04J^O_BJUQepWxZ*I+m1<3FRk(K;J>Vp2f_5ZP69 zdD}m~c=>Y9%a<=L{5dg6dt@?CB|B*AIt8Z;Euqn;#_F6j;Rqu-ZzaiVFBMA!u7Bw} z&y(`>^kX_fWmshKSbqUh6;;7D@pDy`zMyWmXF_vd&}-ux4Ewktf9Xj9Ru zNm-$vANlOhsZ4SjBbQa*vSM{cvC$w~(X1O@e5*Z7FQ2i&f*VFHQHCZFy2LrL2O0CL z608n^Iz9@;eLA@t;%)j?tm=hsdU%ieRnKnBQc8$F?VAN;g&`Iui@&S3B}Z=_2utdE zCID+LNu8C+nDMdSa->0}fAQ}fy;5KA-(cwg7;Rr}wVz2Ni{KYU4rhyY=VV+D+7ou# z^Y(A}HF7gpr}@k$37~rbASf@(#B(y6jWt=A-fWfO#C_3zW=gkCU}Wi8R?9b589HWz zPOLYbdF+FAUWc)XcWji+&UHqxo_J8ial+;_-MXpRy~OZ8ITP+YSNvd{a|MUU7Y28T z;G5YC@%bz}&&M4+-~~A6%VQQYf#jONWch>j7{+0rzznH}zN3Yvac(V1t81@4UuyG> zI$TH8Fl4T*x4W=G8jk`V{ar;t*cMwAAI7$TI9hS@Cy~W)2Av_TkWjo^G4L&b=!5tQ1_D_3g6mW*Y(+dy zJpXyS;GheBivmJA|6T|hYcT}K<9#=5i zZ6Kyr6p&WFU)PI_#LqI9diJL!a-6WJax5ziq>Kj&-fGALnsJ`85`u;cfup zWajA&0A>*Z-(Fc;pU^i_PV@m(Jon6n>mOhtg$~2TbglBFx_)4=dv1|F+B3PgK?AeT z#lS|vNjOO$dlLY1JN;ywJWnAzfW2*&#lZQGU?FXxQDNo_itg;mW1@b=J#00zFiU_I~NRwMntJ@_mUJwVaTwcF^9VKLVWMrAr0cp_b z{y)Yd=Qp>vOBUAFG)zoPa7BHaBvOJUFy@Nmq_^zSKg?q$CW*V89r&c^JYY9~ghpg` ze0+Q-TFx}~4=^5x^2Q8QaT>rhtWineT(;$20HcYI7lH^<)1e^dXA#1~j4BAtnHV_b7q$)aLB$@&{zBtBSZu&J{X%AbiuF~7v>5o<)mC12+j- zeJxXnwn3$V?N@9ix=!H<2d2=txp6rrvW>-A2IfHz#~fdKG$67^6wxs9qCX3?h=lg)5~?>0VezXtEs~^!x})Uy1Ld z7{GRq))tf~xYt{hk=#Eev3hs4>Mqw`jvNo7-Tn65f>9`)IVX9(Rlm8p%H@}#@!-c= z4eK@vPZ}U)PYidrY5ah|uu>Ve+Cx*vH6WWm_30OCu?U{ruiPsmA~3tv%6#d1#PZ!t ze{den2Zc20<`)i#+Huc(o8sO)__RT7-_J-=-4UAE>R988NV;(|;G_JVY|AN8z4~}D zunaf^;cc>s%clv=jK{4lQW_dt5_u7sQ7kFAkStH@U_{|IxN@IC;1t@M&|2vpnd8v@ zb=8x*$LpDN4jhH4#dx+@yl^pMDqa~bvbFZm+H<><%wdWa!w}UH^8KAoe6BVyLG|{f z%1FrlIInpduNK3=r~84bTAzJ&T4XeJz!h!1Rb!iPl29ta(ODsH1md0TBK@qd#a;mO zG-DpoTaU#H!*T$dkXSp)KuxS#r#|g9`4zPF8jSZk2A>`Dx3gr*Zu&ygDQ!}1P~>Mm z8DhtSw&RCv3ryPA(OE&HD*2xU+c8$#_lQ1dzdR-sb=zwagB{q1X}eq1Etj=plHWnA z)r>X;1bDitQSnBfnzL)-wYg^MD}|tCIHos~^VxPao3ZY@{10o;CZPp%NT6skSD)Sx zxb&zY#}du2JuR`@WWkjEXle;=cu~FW&GXZiglW+8Sx^OdnYfGu=cTF>rs2j|Q+Id+MRo$W$j+LJX<5#eHRN=*_uO?)LE(@@)y+qBsEoyd;{L}r49Lr? ze!TXQ$~z*4>fMqOqlkFaFjq%e^fMT2!PxPAAK~MjDcvq!!U8!4hPDG&q(VaH{Um$5 z*PIlX189|OM{=yKT{YM0y>Z1)eM%)YUHvXXnkTjoyhKqkRO#?Pp z`Q;9yD-Sc5q}V6{tVG1M9;jXkc>wRUQ-@w2P#i9{iPDOY=|jEkpXgb3Tkcu@+vXa+ zw4&eGRj^ANTu~d}kez<9A=GH*0#}UG{0-lQ;>DsKk(#UK^LhOv<|OZiWnJE$hQRu) z&Wc~H8OhwM4I9QKciq#Zea_OFw0nE5iSJ8B5Hb5w>Gk;QAcyqP$=(&|<=*<1n}C7^ zozD;ON-IDlRq*u6dXA5bv;Fbr`U%a#Aj^k%gMyljOm-H%V5)&oqh~=~QMg`dt_MR8|7x`X1B>PZC*|CE(ms zZ<4Z%U(?-0=Z!lo$kJYbbk{a>DK>5xR@JJko@&urBbXx+A{N88Aky=4l7>l!#-ZEY z;u>YEbL9zmrw@Lv{8(DB5u`?|zw>ctg>wXPSdecVIi)~U2@nk5Ld(jirj6h61=Lp8 z(8PRxu3-hEe7+O|#9XdgFr zzx6RjfxQ30)6b5jIy)X2qnqXelU_zf440gX9y*OTZOAo2$7S#CkfcB5ElSZVY^n|j z>%Nl`YfhhSK?>R>$g;%_J%S>NQZ(r5m7w1&r%aLIk07DR!>eAKpOlRfVzVY3NG5u- zzQv_qPzi^BZ9&Vdu(K@CNy&bjbc|j!Ei-&K4y~|^v|9&$(RQg~R9X?a*1SPK_@a{R z=fT`>{yExjpIq;~wsZZ`r6RvQ!v&SGU zZf)KP@NUV3su%CLHf9CeW)JRpI5J3A8V5vfTx$+gHk5rFq;>kSUZq^-bGc7tds!(g zS~5#EiefoAa$g;P%vTIGH?Y0y!^}-wCUd6*Jw6Qed5iE*WhZo$D2@afRkc{M>S(Eg zud!9N$O&pHJldU|;)d2KLzWu#Egc(vQQSM{faGpQ-eS^Zcun1Iet|@?<@BH7ydh%^ zN#;@p)pVAvlGE6LsSRbuzrfb(+5Z_zNH>|rgXyPhnw_xC2|T|pvU`vVMW&COf!UT3 zSjO3oPDv~TM$(k4_?**U(p@bX?#qfuF>G$z4!zj$~d=%xE@#sR|htF&#m6_ zP;n|au)VW9^^KH7E}C##Riu!mEW^rC8Rw#Bx^3;|-~t*geWi-5 zemDN!=7_&ie2r2WpH-*?Yw-F+k*WW|^>Bsn)#v!maBfKQ-XcHZ4YX$evEukL5?e16 zE>G{}XE((iy&k<@EK^P6h#Yhc9}r~iw-Ho=V)H+b-z3x0o;6zhtl~z#a`(Yc5z^3= z@xs#8CfUt>7Hi)0FIAP*Kx5#!2?-0oHAyW=#dvQv`N; zdBA+xOV`ik;mA)!eY2#qhRqFFfT6+HA6CXb{P?v%Rp~OfyP3>m@9_eN#eD;5@hFd3 z-CT{5_NM}!6ipWP>({#*$qWK}y^h)y8)O2+hdWwbp~2!6;f18;fh}C5`Nj8kR zb;OQO9}r0x9(~Z-oK(JDDiy2t-dMa z9%Uj2Z?=N}6u0a(ebd45_9eJ65Ux5dPggGR;A3d?a+jE=A2;B2T}x|rj(H5i4XDM{ zRg=M)nbi9F`W}PSMFK&S-k`K<R9L@N?Q$DJaY z&&W7%iv=*nG+!jiIV^KF7LCb;H*X?{$vVgyO)btu$(sCnlR{{f+$^VyeL)=qe7Ndj zY{-LgbB`Pqej}3{q13>8hfBEa$$gYa?gZU0McRF9wX3i z6gnrJ@*&zTuy}5t5TL9IXO4!hED!iYHd7VcIjUrxwW|H^BKq{YN#l>X;st7|HWY{V zrrrGso$D%r?<_ZmrIu{!Q{SW6U7af_vZDEE-4Bv&+9l;-qvbyxCQOOMJAnstOhA4i z+H-f~fEm+-X$+`KFHR<`UoJtvg=snQ6{oaptT#DNE3~_BUyLS>ZBH7kfcF-QOSI*3 zbozl|IS=kJp9Gn^xCmdmc=3}DaXt>#6+eEy@K6RwszJSi>#4Q5HVdkA&CShSUMuSb zj}i?OvJP71XL3ZYZ)&_xnxX~&d9pj+oEtO}ah#lv0m-Su3vflN(#5T8Ne|Td znhHJX7eKm~a3;wi7;0K?v{Z-PcB9gVK%ks>;fj#$Dfr*;^KD8i9uKElY+MoBM$V-( z!zB@=3wd=mOM;)3EKN2J*lkJ(o2A6uTS&b zil6Qfh-aAlB&zF@9%7ALQr6$>esF@!EzsL1PG`%W9D)%mxdp0-IO6h{S*z=$CsDxz zvnZaUEImm~#~g@C|BW1{R+hyPZB2Crfb?N_nczF#(37oOs@JrnV;RpQL|;05YddhQ z4xa-Qfj$FFqpjcN?XiahpMJj~!G@J*7wOKLdjEJ6wWt}mH;j9>^=l}hSyaHVGB3sO zR$HfD%ibvN8c=onO@}BPH1V2=qoOR8lx=hZOxI_uA}ua$ZzMMdb9g|)v4Qj(jtlKU zRk|Y~jXQG@tf+pK;Yyvseft2R5PR*?I=eAi_<~{-$VjNx#Ze7hrP!15{Hy~B@?6jRtimQq=d8H!a`zk}Jx3boSyP^Jc10G&p zj6^IY2EJms_)hUM^YvC}1xj3*DG7t|!oY_Unm4oEsZcYqq-lFM9W;b&r7zlv`Kg<(293E8;5SdE( zyDB8(fqHj-B4ax)0b;ts!{K~7!F9i^$y))j9<{h6o>?~yl&fKjw}gBi)i35G4^feD zN1pgFw^?s&RHxgM1VI7Q6K4F!n7>)^wI9*4F^2b;N_?x$n5E{GgKiLW}#sP*y1g2EDB zdkbr=W}xBB#Bcp@?Ke8QQ2y)0%ft&{q0nG`fjgHPyWb6fM_5q zItr0R_i_HuyU`-mb;Ldy#^IZNTJqccLL64RZH&!NBfG0flQtX~+#t)}#6E}Yw6wI$ zE;FZ-Vj;Bt-%lwEbOEM?0jX5nF|D>lmAkp7GBweUWGYK(q$3ip;?4BqMQ}7q`i>VL zo$kC@b(}XqAZbZ?-0AH!D_+ftj-fm!vEtrtywDbSC|&!;TVmIs|E=`uSV&S>gwo>e!RbmfQD$k%CrCKzEDRc!w( zT4yc)YL!S<*fcM0FdT7pI07Uo$?3q@? zFQ~JhkqCQ+c@;;GS2HoSb7T0I;Hq~DdI98jm2up*U>C+ zevbIDkQJkmVB%@8e&B;o)oWBC=B>{H)ndtFRBy<1|4%?zXRE(Wl=aAINnre8TJ&IN z@X6sA|DRmA2F068)FHYr<>!jWPkN%E5#zd<;`oZRt)i~-P&T)R(p0vD*NKl{n6ICo zUdQ3bV>cXjNT>cn4#;hj#3dyY&z?OSo--sJH-7$@#kAAmH3vwCg{+~>S4>&=6BJ-V zsjvS!vGaeDI0FLx-%wBg8%OxBtgF$agM$On_gldFSx+7F!5$LlQGEDFfl_+zy;Qrk z>AJ=9n%)njZ03vf%QBBBSxMTIH8xDPpRaHD`ftB}q_+-@{|c3<9UUGqTIORm z-oF6YsDC1l?$({*3_uM8)Y?leV+?QLki%3)o0KIh8=KmxQ>Qw2lv=uwDK|l7$d6~`S@b-?_993Ta|DY4CTc0Pay$n=k(={9|`-XOgZqI|1anMZ(@u8rwWaGaf2y!rJe@9j*)*B z?O}Z!`Ch})@Ai#gFqm~;tiko5Z^>lNk{N6*Uv83ao#nVX5pEBBkfq~u2Q8tsF+kpFV2WZWVSSq_q zdaV{aRBnX~Uo1#GoW{#bQ1-@KG*UZE>{7)tN z(7ov5hzc%CYp)a!JlL-UIPMABPc^AJ6eRX=|1CYLS7l<fsjt#mISZWgIBjLO#f> z)L;UJSvpSkUh9_#TC4zQ{MmBb6Io0#g4d|!*iS&%Q<2y=Csma1oJcwH%?^nG>-jG^ zz=tVo8)5U$TvMQ-vK568i9L#H~=4ZQcigbOb7^Tv>wQrXk&1tAg(F zC4U`EXwp$=uirim5Uv-?k%D|(GR44nU$6!4uXoZu&{=OM8`z|dZmVwOU&BQsvNNV? z29=Q4DIxO%Vlq45Uq^7fDBpkml<2npx{pfWi0-@5sxONH<><<`SI_z`TkHe09lisX zPxRVb(@{2yKy3PMcDK*#`Ux`~B2h9~#>;8%SE#}?&1FSLa5Y{3vVD5GR@yNit$ku1 zuW-0)z8pHC(h#sBvwPTSJLg|14G|s=P8u1CmRWn(?E6J8{ASnk3y-+f5pDUTX854Q z@E2#fyp)RVp7HM~LTRbu7=NOhpmwn{GJ7#WXy2gTiF~LLXiDnG8H3EK0a{`6pew9m zolE)PJyr&@tC1CxVL$wKFh*lPvHZoizo{J;8Tx`sv8H8?y%8jCY)s(3CARy(QP!$3 zoWocg?O37G@@Sn)ZA3R}mr7=!(#Q*^R4`UV{?1TVDVgqE<}h($Sn# zgg_wc(((DeYx9BUy20Xzx~KptRX=u{vZw|^vtNh2CF{De)9gV`veOieBUfV--q%s) zklaw;4{$79_E*yGgn9wCi`%k;8Ea5;KB?7L<)x?GD&*TaAaB=FAKf@Ea7u zbwVW%=0hot!;A2;YSvX#rsd}JqNucbt@W6=+Hv2Snd+1apnE#|9=@WQ3<~;@qth!F zOn<$a15l6r?K{tBRJOW5B#9=Ko49;A6BQ84Y1?$Lw;Zv)qs8;HWg!OI0cpou6{a&8_{fxLv8mULH0= z3)ojjRj0qXp!Y_Y&hZ9pb1lvFS)6~m`tcMk(|Sz5CsLzE@_?os@p^XBOqSH?{_Vt%CF#I2Og;@K zHb9nAsi|osFhm9{t6{Uh&$>b{t5aiHii}*&Qc6+r8v18o#8m3~AE4gGoiCgc66mGU zUd3KCpnJdyJz2M2*Bd7RruZ|5b`Fx-sxjxM`?lqCy4vJicOIDlWGyU1jZyoIl(K;R zY~L!5kJHBbA9#As2r~n=L3_EGyv7&6adC9M0iD!?cdDwUQ2TV|#2l(t`NzUMDkiKQ zW#(03KMe|}_IH`G#BDcS4d5ksAZa<(qj3-@5+5PdTsxsL>%109Z*3?5w5r_y?*7)r zDqXKJlPTuUpKrM^ai)~1aj}s8fHg=s>A~rjQWNz%ei+tj%=+@Hdx#31TH~hkVKr0B9>T%!>`l6#@bxG7 zYgie={{EcUtE7nLtyK%zh%Jr1uiv763AV*em^NCM^~UL$=tOoa=oiwCOazMU7xui= z^=K)Z))TD#NTbHJ2|pmF>Gje=fE5gZ=GJ49u92f)S57#-y$2H)MM=++Uk&OIMr&i< zyaa&?_4dj963Gmd^$yxAI_m*W@&!6D?ZIAM(HgNCh1PC}HwQqk?erE6WKc*^^P1d% zYZXp-q~zt@V6OU$>n~YKBp6w@isK!>FyF5U zv`+XbZ>u(ngdp^(Zh|3k{Bs%3%4><%^=kc}{gKdJ`h7>wKnUEB|o8CMJ_jipPvm z1pHJ6-RbVTsoSwrYtvQILL#CGBJtl)EZx$BN{;*zgVq*=27*^-LQa8yngyiacdUX1 zR~nx^>SI3&xWSUqU4XVV;LmRP)}#GJ|05^UD(OwA)N@NQKbJ4%l|Rq4uvPbp^+Wz< z4;X64T~*w06Y21F)v4FEuOdcO@k*BLWYW-8ji zfN~a#n6I~}`}P*z6|-8FzH>R2eD#mmJ81nm)qQ=TYS*9dRj6pXSl3Fy+m!@TO1!IkTW?`fQ{b*2os7{uSG{=Kj~@kz9OLmiv& zu)Pi#Car8+HX3hq9gDhYE;DZI2hH*{IL%!ApkT1WcQ^Ev28nt3r~I|GMws_%tG
RP}8y*kP`Druur<;pa?_v0A-y$!*Qljc?`|kOtz_%+j$% z$Fl$|l`cN#U6C00QznK<_u$G+^FpF%T0h2n?ac(lv8Ik~z57Be-F=hOo^-QfMhBmC zPB;g{CAMZ0+5OrqaVa+g1Lm?8C1gy|)jnel5{K#T1Z&ab51+GZK{j`u;EOJ71ilua+#OO?%2 z-xZn_HZkpN8Jy~RIWuh7{_}(*CrSDGGPHUzC+a|qC~tXi8SM-a6#L5_u0pJ;^RK%z zOY;oNn}|ra{3w#aa8Ct^i=}k9i_-`PP&0 zU3xhl(thWms6CgH8!2aTS8w&%#r`^9@@9u>x_)oWN5OM{k6L-|jKZ`@>1oEjF;)d) zOp2%BbZ@(=Eq3)KIt~Izo8+NPqZ;0Mh2;?FFg?59gR=eCMAZYV!|pWBE;WwOeZXQx zCf0ZQ6>l5q2>8uHs`z~XwaWOZt3<{Fc>TJ0-Xin$-lpm0waX0Wa|uhnOb6+nA;)B}vk!-=~KQSdI;lWHHRsv2(NAZwX* z-9Pv}YL1yHa3n$fNKv&*i=)A>I(+KH(i_hF_TiZWJ5Z8C0i!i49jSl042;DdWIjJ#lLn$8{bR>s*EnaXzPN`u!)jz9;&aZ_b7&ew%#hh=wShjh zB%xpLv@+cvZ*2R(eSyT?uj8`ua_gUBuHpK|`INkOb0pS`R=}@H>=Q@qXZX`&=RFFz z-5`tN-024zIPnUf z|AfNYA@Q(KCG{SR{PMiTKC=WgR@~bxz|u50mTn*FPZ*9M6_OohbqnE2>R)NDaMkW3 zF`GF&a*YKoMKrWo);7T(eOi2WY5wB+GwRA+=bGIeHv@JEzN~AHPDMokNn=!qyNsQ@ z3{s2xqRMfnTN?ZuNn8)}w^7^K6ObQs`mGmtgkDF(qVM5qZ*&_v-5^F1528 zb;>TgUwzvHU7}V?NM8#S{#x`cDg=u92OJ?1i_`Y#$yg5Gjn99AWpQ78qNb8opCj3C z+N|O4hS;)5JQ&r*If?6_kIGYKsG70hB)T-Ew^uVckYQ&Z(d8&Z8?R(M8VN$W36#*7 zaQ6C;v{!>*oYy3kB+PRz2=!wMXycq*aQ=mGC>6kuJ^3Ipel`m0yvA3l zvsz#Fs#Yisrh!J})TJZ6Tc!x+9!$k`Y zT1fbBIWS%>OhP!^Yu?BCUAMa68c+y-UwsvNTh9T(4tOD)OyMis{O-+dx^b7HsT6FJ z5O=23TO{eJjMk}|8M0Q_5}X;=QzZ|BRqQr)h$BvYugwMeIxlo$+0owE+&FD8SAtA* zmTy|tbnzNl7cdRaNsPq8%QBlca1*?#X|cBTVhEQ@gNH9R6_b=9@2GCwLRR8DD_mt8 zD&5Mz~%1~_g;K11k;g;Vn`*q8Ntnvx5B2IPYkN7)9 zO9A~Un_+j;fI8q}Xu_q^ID_I7N&Q-mTzhS7PuSWQZPE-J8(8jj?(>z_7cj-_j&5|w zZ@|F_Aeu_;fxC72gb`zF7>Nbr!pN!%FlNIU3A!bne)#3rSlM|PJN{M)+*UrV(SO=< zR9?U+&g1ThHE*RlBK#d;mnm~v>)^H?5sq<`B|Y#6L?Pw9a#O>1%{lQeeykda?xjWE zgXu%wSwX+%xk?_s)G;?Tok!p)^)xJ5y7O%^zAO}TjjG!i4*ZtHwx2d3N;!yyn6;l} z@GJBZ>rIEPoefWRNL^}?;VCc&-UEH;<;vbwapOoV$4sf+{qN?g(V_M)l>Zbr{3sHy zFM$Y(`YiAu+PSB0{0ptzxhR1tASO*xzTAIOIw-H8t_oH#BJL z>FG%of=!k+G$BqP%dn{eg3MALXXT3MXKn`dDV0m#XapmKVF>$xllM$6$xqd5E_JZwoR!SyhS2;HO_j+pE29uCP$t#v-l07|G%KsQiEX|?t9gP+7i5ofFnj7Xw0!q z%}h5;9tJf2%0;Z(1{f9}7sT{o=fN)xepvafyg$Orq#&{~&^lYK!HyM@VBIHw#-r`j zr>B04=T)yJaP&w0-jYL))Y1E`2wM$jXF_)*OYgkfTpDjKVY2Z5^6JcDA*27TRRDDQ z$H^_NQy<4ry@E#7{7v{gQVswHi8T4NP=*Od@q6g- zQTblL69Vv0OC^A{X4*|S0;||=Z=e#00E$ooxzFl}eGNmpMo#&Gzl*tv+4eWAfda+l z#R{9W_w3%^Uz)>>Okt~4cEjr8cAF8*FLBAUway}GIKz~4H@xqyvvBUq?tfN{7}w`P ze3aWMJ{LzgVyA;Z9?uGeE9zp9q#GX3_d4$6eu|ZMbF1rkS6JH2Z35W&Y_CR2dN__6 zP;ZWwnj`{UGp2&?!wplq*}VL!J=93jNKJLjeIS1q+_MduI{!L<8MfiuV z=*#?@>R11pqe}jD9@fKY%Exu2nck z^X;k$PehohNSNW%ke5feU{&8-J%Jdm_d&bYlNx_hkJ;gTw>IO6b`u2A|2}<@;() z#`Iq0fwJ!og){252^63a3OJ{su{K0v+S^i!F(~Ycb(?6SgtMvi+5&BMg@Tu^?|O+4 zFPGGlcuu6!7E!zR8jIJ@U zcAE+nNhK^+;*r~l?%?LK10S@nFS@(iD?xI6Q$75gg)6- zZDr7hP%c`9B7ZO6&VT|kN)dKtv>*}y?J8KTaX&_4;G)p_Z``=6T%FApb-F+Fhyj+e z^HucZFp7uU!A5}5C9ucAxTq%3^u`KgJ8hSNR>MvzH?LKn6I8das=(Wom6O)I4IKS4 z^DigFj3%l3U5~TW#zr}N!+jT@cnal)G*AskuEzh<-g`$imF|C|I6BH470fUKQU%5~ zQiXsN!4bg<$U%CQ-Vs8tR(f#+DWNGSErcpyAS5bPAt2IggqUEYgdQLyd7ll=DRavG zt#j{v*S+sL`A1h)#PICBzwJ}L8WJFR0_USHXU4%a_Im6}O?d=>?rdnv-JZfnjXL0s#+GQX43)qj7Zwa`s``0{WIg_}R?Q|yZ%KPm=G;$xr zovjL_IeJ2MHASyrJNO<=AU-oghb)+L3k*z8&0R|?fU4O_3#0L_7aCZ}?Z7|cf==Zo zj2_Hoj^PiW=J<7{aI~WQ*hMI@>!TEq9gSej{qc&ZGA3P=p}dyP&By4@6M`Z?(Ac8~ z63pT&%Q^34(nXg`W)x^AWJGJkG=&)WP}Y9xeOiRIoQzj~N%Hb2cKpLU)^P)=fJ(*m z`)8I%eEF=R;AVAVGdP}c+AU!ILPMBuFk1DTHL0;K-`~xzp}(qT#HnaP?^Y=T*Uu13 z^FX0%h5U0$=mw}WzCPyyhQb-Q815{gGS6*9y+&y`!ftow@oWQCX3 zG~>iBJUw*x!&(H>xMlrjNn|vWd#%teQKPbw_LZf%CtSHb{!VqhMQPpan|*Qgs!ORF zk9AdZ1)=WWE(r~s zxj1)mSvh*?(j!x;Wu*88qDRg~ypQXYf5>8)%fw#IY5XtY@hX#_Bc!|Xk3w0OKWSa6 zG#gzz@{6$Vr(M7mgELXQ-G$3Yd}yQZ{RY}Kpw(Y}u`-Ew#u1&G#M)#2y&}vXPKTv8 zuEEPsy+xOBI;e+Gj!0Z+7+Nz4Bq{@hZFcr;wvy9`FZ24WYg zjYboEvOzv>^Am3UapvazPT3JSva@FXbEwYBgeTXZ^5eZlRN=oda0bbk9D+lv)2~@x zci@&DZ##>a{F8b$YvdaCDly@MXEm@Svnss$z_bCk!2XG(AF_B(bp2EGND%A-*(?K7 z{NZHxF^yL*`MYf!i=L!)h`{;nLi&;Mm7OwalBZgyy()f{xO1SAE#$A*amy4SA-P`6 zQ9R$Tc8Cv|yWb5_?6o%dtXFee0{d))&@mQJNpM`|Uc8WrMNq$CldH?a36DA{IGYEqnuUPKtma#&KKaHVy z=hM1P)LomjKKVA^iaJcwI*7rd$26Q%9A2J3PWRwvBrvB}@yp|J9miDo9D;fU=~Atz z(YV2VMmcz+H)bcMm8=lN7{c@nz+6vL>UfyJ6a-9DJwQLMGFanf16L(+D8djmBb!R` zvyGlPY-XAN&SFNld+;J{4uK1uuW)Drv^L{X9{A7sG95!+?d15N{*h$6ak_U{$udbE zm_@9X4)CLqovZQ0wq@n^X?e;e4;^qF(5{YM&x>66;amWCnZ_;y;Dt$pY~*^lZC9es z9`>1Q>_OfQ+iVr&D_0u#>8Ngw zW-@jsR0Ni)tDCQ$9&yF!)*g0-DGeB z?8U4`-%Tm?odZh5+^@k@+RM+mU&F;ukl^q!7c%te42PLr^eFYRULn}F*G!2Iz4~HK zlx{_d2No;#ADIN=Bba+uI3*)tLH=!uXi5Zsu4YyVW$vQE6XjPW(xSTz{V-qs`6Nwb zZ5zbyJ$F6%)8wBe`PzJg$pIB6lt@7@A^At|o(NCTvz_bZ8KA^gbl1pkcZeaKT{Xz{ ze4x9y`DDNJ$u2v?!f7Qn!1`!$Tit5$amorZveO_vxnE70F_iLJ4tj?y*F1q7jG+!0 zH@GSExCxI6&4lVuCc1RWjnXVDd@!qn)_8u=j*IgQ-RqR#a4`2!?D|zb_ZFb^p0?UG zU|+)}pRf3-RZs(6bT^Q>s+58_A;XF~G|B~y=PTJKFLB|;n+20N>vC2*op?#v^YQ~R zW?9daZ^o}8dTW&zvbgg5qZ1IXXfsyky67L@m?IE%aw5x1L2+)kw|YbcYKBujysIsl zYLws#Ypa-Rg)`dj6IDtTXPs>u2#f3WRlfC1YZ%_dj;+$;*`XWDq zO{0MX`I+dF7isCID);&L)l2*B!#7aYhbK)|`P+K!oeib0^}P-K@+=BiF8#uFaRb$g z2*(G!JJzzfaTX6K7svbeIPYu5QdcPC(9OBpt2nzo8<=Zg z?()uRrm_oqDkzA<4(`ANgTFhB7*mYPLD%l8C@AqrKXSM0SFd3_r8VatRe&UJ8SWY5@*R0QlaUGad-e*=^<9RV- z6oK6CP>Ou4qjOxiT8F^1e!sl#9uO^7=tq1+bNeX>6!W>2|3*?Q`9k4nNo>UDi&7&L z2fJ{tinx&qhlr>B;TI6eZ=Yc-f>bLLUMZ2n&(5|7C{Zp|<0>sW0TF^g|8=%uq|jAb zFDv=15@E{1dYup#>wpR?&^|xma(O?v9DRCwE@PAoF?9F^Y$$ zgbXun5BA)2N|Abh7N&o?!q7zRh`xE*NT>_fWb0R+mt7^h#%`i!HcC3exL^MQcpUl4 z1a3BwTj6b)F7j^n4}@Jt(G_S*kNQV$Q(98>oTw?2f~q4!#VKyt6vyil6$iZ!A{jp% zgncsH{rVAuHv#ceSfV5BllJX&%@!eXW6jnDFJj{>*k1p7G$3`YdRYOFMl;0=i{A_S zuW^?T86()}gt<=3a?Yj`;`6^*OmH4YJ#&hmW?eD=KE=BXBs(9=#ok`hkwY?0*=hvHNz?(7w6dQBKd1}?bDtLJeYyG?fdE-vV?&fzHY5|2YzJ^n(F1jJ}E?9 zHJD@(+3M%2LW?5F&V-^`o?TWoz-ktpRSGlWMD~ZG-!^_@(<}Ae=5%h(cOz7qIZtNL+T*O$juLaGdz^ubhZL}o#wu3TTLH3633tKgc z&P9b&z;5bYJN%wRU-&0(P4?~L_c}-F{&X_4+pko#1FFH@>c$Q@@6iWf+)(r#X{4RU z;pbX})~{P8(n`BW07aqZ%D@n7yKS8)cCJ^rm*uRx5?vr2Dy|TV49xGZa95A)L8=R1 z^YnSC%$dM!+i>HOS3QSECrXIY?LWK01`9@Bdd|`aj5*_!)4%9m$A$VS*q1sE?ny0a@4P_~sPHLo?Gw+_S&cNnyxIH#|m;rMnJ8DT>R7HQhvU0Oz zuSK#;f&2x6GfSbFU0Mr{;Fng-JsFs!CeFD;jg8zkONr_c8Al+mJjf`xx~B~Du3t@I z5S#Ujw|hUus>!6r!s#lPT)rYCi8((`#_f|h6jLCF3fr&kJbZOa_iz}8qD;UleDJxb zmA|Q6j@z&yLu0GCO&ytP5#}d{H-KHW1Vung;DfUu9X0#sr+zjmaY%S(xuB9-G@hY} zaW$R7*6bGrX8?;eBz6;0`~~*Z{x~RJb|pHD?9mn!H}fNT^ZoaHFD2=LEwvZaBe6*f zpoKTFXse8$HVg2<9ry7HDA{0jh508=>=2){|3h)h@I*f@Vlg9acBCG%CKQG*(ucPFFS~wCa8q2qHXlQ!o}F zs5fuK3WWLHIA~3Jg?i@fSEP6(Gjl%S5WLH-FFdqq#!B^>ht5OJXLUg!TrIk4WMe{; ze{uqlIFk?OrJE4xPK&Bz`Pzj{A7 zo625}uzJKI@3)rh(qG9m4Z~wPvprA0RGsce^nb-hhK^ro*g%&dzS!gYm-{?b!C##N z%9fX4iT*wW4vx#z9Ncdj_Y$_ryD1U&ioemWFM2ioT~k(OoJjE0cawCzqh-SLjOU_9 zGc-VwW5pQg!V2VW-A_s!mm08VCmaMCx4#>AmS_<=zlh3i{%`*OBTX5F zVI`dTDzH(D(EbQs(#BY`qTMJgI&6l>YJ@%Q|8;)9JV08%2qNZ#QJccf;TpLeoC!^V zwQ#F`v&a4Fs^)|wu`WL_!-Ta*hN9c*YpvN7trmY|ohV68CXxPF)WS^qAh-nq@7o^* z#Aw;k0?q+rK~8caIxV`#+vEH)86Kr2d#@=!aOIt8+3fAdJ4Fiw>7y!ulTbvGavALD zfR=ipesYCrO{%j(!f0q0X-gYXhFP;O97RUIN@C4T#dQ=L+Om|Vvo%T~Qz77L+^qrIJ_j*g~U^3~T51I{;L3V~}? zkcaXwczw7IsXlDbPl2ppc*H`U$ELn0;|GPfZp`m);jab0DSJS^{?GkZsp;IJmIuHL zQ5+)P10x-O(1Kqj;=W|IxT$7(;eu4Al4&-#*!I1ME9pfT^gb z;LSD928gC+GP5(%vw;u$^yIBZ z8-nhSps^EG`83;m+hW`8afdWpf5f*}CvKtY>tSH@n<{DgIGoKO0t@iZM;8H3t5+UA zHxoPg9#wYrME32_o;F8bG1~`^7gi8vMc^_zN=!pk=q3SJY~rENqkoyh|3i%R1_ z+T{{8S0^+5T>Pi_5o8)`p~|Q07tEEBB8LnzIWLJIi7W&&IL+kn}Zc5|h-et-QDPC#Gg8VBZ z(D;qNJC8ys7G->?5Xgdsiv+AheH_kJMe$EDAzn_PjFp{A?KVV&>Hv7p&vU?;J^`5! zf^$z=dA*xk0qKDTcDu`YL4!pO8*_0u(*uRMYt+2f&nEMLVd_)bIOOHorPv(U38>G6 zSgJ0ah!y6z6N5Z_i^6n32<%t1xPkQ-zt;(+fqH7Hxd35+XXdf7~FTn;+3y=BI7E-q$;bV3(VjH91qO4l*IbMKx!<0IOhX6%c|?T50xCAaFs|)zx28b-qGV1;Q5$P;1F_ z)gC6^9oV58%dB4=@op1_(6j6ea7NmCVXkJZb_sAY;pPAs@hWS;^)$QttwU4BW6-Z) zvl_=b#wKZmKL&`y1gD~TOt?Z4$mx0h_Vd+eHp{Ua6!U`TN$;I6C~mfOjwUjjSw8IS z-o^-yJC6S*NSJnqI&Ojl{G4?)xvC#0gGjDGr-p$!@l^(HzJ`j()lg+p09Tu8JXfu^ z*<7e@sc;HJ)za~Q3?x4h4OJ|?)H=SC4dMxE4cJz`oIm~VrgWC_+f!l|@ydzk4&3Tz zOT9Y4^jypXyVxthwDkmIVXfPyPu#q5lYZq=R+@YA_sz2@Q}6-hRXb6sd-~9^fa?$r zrhUuX!A<}g)hf7}DWar_Y@3M9x;Po>?+A!4ReWXWo>W>0y&-ZnIcVa0wwZ!_CXqpY ze5~mn*rs4Zfb?b=AQu?u5w1Tq4ect-b9D6BR)A1}p6n=)mRvsvJp3fpr`9D=Mh^h|mOgFa`gpY^`2ray)Ggqy{eqy-_U9qPFPa zpGuWgHt1{rtcd%DS-XDTMsIF@*JV807*M}df)coE_aGS<@xE|DNg4N#ZGn;1K%fR# zZGo3`4JgC2HnmP3xdk!}?095g!foG;C34G3pap;#;cH;FCpq7xs)0`rhdAO`s}-~t zU-{%mQLgWwHI90kW3@R>x9{Ol`R1H15W{iiUi%@qa6T_d9q7{YhX?p47S|$vnJ6z& zlrRsA06Ws3#%v52Xsl9UOfN_MUU```4+xfK$rS#%ZzP`LC1LYDNBW<> z{fN85z>*_uty4aBVJXg9r7%mik4;Wgoqc3g+a>~TN(bUfs}e7X&StTu;I6)roIip$ z!r~SmF>2z2l=5xDy5+L?#F&?M$s~wuX#B!1QN2Ep_M9gXSn!cs zLQLJ4Ye&6gHp@FZAZk>RaD+*<`2v(@lddW!e9#RL-8wr26pN&xo`bt{k+`81> z{I1AR5zeVwHHaNlosamrku+=m@mHtu6qXxRvjv;6l9qW++2aHA!Akol64j1~k!LnJ zd0wAp`vxZ-*-j7xiZwsT?-LQZd?Gv42ljwG`PHrL)Wi&ceqGQ~n5MN+J~0Xuham#N z9t7+I`iHy$>JF%SP7&}VS~lVk0fd^tRKz8|UmeTd9eFkl5L>sQ8usio>qTJF@F`?L zcG)5Mi`8YzxnqX$#M^_pAMfwJ-?IL7flsi^96Ql4+wDRP>xlE-{ysLYeaAboOYc!1 z`;ECDrVT@^9?tdxg9l;2vDQ+Kg|cS;0zs55Sk4<6BCzZDZLv$z>&>V4xvv28S!20u z=0a7+$L*}LLneAXvcvkBpP%pRhu`cdHUM0v2=;AQFcd{&&o8Hw5=CKwIuD(LSB1UU zg?auqvm~fQLY_-_H1|9y%R(A%QDbx~y1)>aNtD^D0``oVLgff{+;w=_`ym8HN;D@N zS{<@e&#JX}S(MIIIpxdpm5&4R{M@uB1)iV!;B`C`9 zAUiA%6ZW<#&p#J3+!)H|bsqS-<(O?z2*8H6Fylt`>{x-AYjrqumO$0J@yvppQRD2w zeSDJF@L>Z4YUK$vqpmB|mdQuEiH{&$Dv; znrf*rN$TFs>U`t%h9m0}g=q$-Ry{B;O=QXu40%tT4qmkzSo(vuoEz>T_xDlwdY=Vt z3|$(qSfi{i*AtL+@B#mkVeq)2>YnyQn%GhCV+;idP_TC$P8PIum0BboHk za?aE;?AH>PAI>yEc`UGTZf!I!Y&-cCjKVzxf3-lI=kF~K?kA=hXy&~e;T$pRU+N@` zXiI$<^=xQN=VNTnW;n%j?zJ18+dL39=Vm3JC#l6hnm0!3DU%et_xjz+Ewef6Wss$5 zXWQd#mbQ^k`^d9+s5gNz@A?O4R~d~aEv65;Sm*b={0gXv^ys7Vk`W(E1X^Kh<9#6{ zKwsY4h)F6S&IWpnQcP(RTM>~DAMDm+8B}I-9?zr)P3Nh`R#Xg=PSb-(h%&c58Dj5Y zqtxf7Lq-mw-J8QVJqn*V-&=#ip49Gc&O;g@?TRkdRW3s%7(I&*l1SX^?^~HV9jpx z?@^VrjzB8<#qErYxl}+_o%36`t61dOv`Y8B%kF&QMjbzb5e-JoyYrb@&XCbWzyS=g z*MCrwUVa2P^PQN&PTN!kPoUa(nfF>T2T2%R@L+`|+P1fukFPn;Z^W@reb;&jE|(k8 zFWs_`g{t%F(~keEDkBaVCzcvx^YWK_IL?c}Eg-a1&^7`evKgkO)0r*`7tN2flN7Bv zn<OnPSyTHP?e(3YkSG+ZsDWJW^D>B9b@suE!~gh)}jo z2wo%0YT@$LML+Q0>h+DjA$_5Qb4|SYKtC{GYjcf$qWO+f2zAR+K{I$GDI6dtk9U9M zye{#xWNY2X8Hm!-qAtUnyn#StgkYW7;jI}h*h2t>H{AWc1WX&=YA5t#-G`uNc`&9Z zCmE`ZZatfZh}-(D{^Shlxvr3uxzoTU{6UeoE@>=s(W(#|`XH_UxG!lFtYI1ToSr;! zE-Refs>;W%SOoAb!%d!6^%JZL>?u5rAv+kMB%t^uWU)v&VGHQR<~|RFX!&o^MX(n=hdV-LvmX~U$Kn~vIo);Jpn*Dl+d^TdS z5zu8d>gVs;S}8aQ>I^~+KIDmObjxwi6^xNZjpNu&h3pZ@?;47{`Fwb)O}WHSVn&j9 zn>RN+wt>q)w5wsq0;C**v0Cb3KSqv$Za8;8AJ@Yx`aE#g=ai9Rxz7TTgk27M0--|C z$MrJGC&5^{V|PdDizpERs|Lw?jYT>F#|6?S0*JKOswixEPrTnme#V4znNk;3TW{QX zY_PaKw6Ci)hvAG<=OuOyW(o4~X^D@y&Ox{5s3ztn4niFAbp+8=Bvdbcf# zK)=55Y%2Dd4nKP<&9tY%vmkX~UlmW!FU0l5$DH?#w=Nnn}mBqnEnNhCG)#%cO(8iZtB+W3xT9hF_{M2BW zZ_!?R)Nz}9mwsp48VoPxW~|w71g5@rP(EO`pG`C>aY&-vLTIEBG;4;3j0#*;=eEk& zJukO<4tr$UGf_Dw_-HjH50x#EZg;hpYnOA?urWJK*{3yTK$-Hm5p;`^g+@^A3rCuw z2kg}Vn~x8ElEjQDiuBQ6t~Lx@9qwjcTMU=X%#0@NvPvl)Npgz6#Pb4uGxOJRk2*fS zau`J`I#tU$O-^`n0v06-?XY7ckqBX)y4oiQ^^~gSa3YWd9WFQBlce9u$tCeTyJ(E= z7`^QO^;E7rxDwq^yIs40*I{_5ZXmN*|K+sO(vJ(7%2AR1_5J5IUg&aT78)L2REM z>?{T84g0Dk)h65Hcr`!L{(;XkOGLSH-+oLa5pdE<`qa&C&}d1mig1luH|zsy}fHDqa})x=5Z=!}+M1*6eju@0zJ))27toom6>%7AU0m z{_dp1a9NFo_YV_r(tzqX?#-51kN z!uT>?5IyyvX#%nmO{7wA;?CDSLiPBE-r=gqYG?~?r9-iwRFTV_+-veByF*_XCtGwAw;{Kv~Sd3KdIaCX)kL2Xd z4V$x0Fgq>ZTwiISz&$GYUZl;?@L&L{wIO>kb|iy#mO)vu4%mXWsSRu3l%TBdG2-SB zIn;KEjV|ZZtL8M-+Z_1#(wz*^LIDk-_OAkq!S&7CGiJu}F|y_tlWX-g&)n+}@60Md z<^qsLaou?aM;QHEs^#BmDwg8u=KQa}{Hu{qiO%nXKn}y5xdoVO{flL>Z_S=guW3Ot z*2g*Emwj~5<>LG4n6|DVek|CP=GnXwPQ`t&7G z0qE_X7AK6n8{LO>O&4SPgAPSv*!l9QTjUjr25H$=GNFYvLeZ0jQ;y6V~|%jc?)>CI29P z*tT|w6Z^0J;r~qigMIEI$MyJWnNrIs#6)keK|FnR6|T-E88Ws#QNi7ErzUyFMDah9 z3;mBrW`B6jwqaIKfb|j2g z6!jb|1TN1?{s_P-^=$vv407M)OCsSWBY#hL7sFtO!7{KX>VBI?pf#;o@}FB8a3>ob z@DV2qBVU@=n$EJ7yC=%BTxCQrp~4*Ogh3cDz4A}+C3Y>%_n+vn|2BZtpffPk{gk>6*C-Fr()WZgglHH0#-v6Q3Dc4zl1UXFiMDPSK7#(sKj5@9&xm9nreB6U)tLauQqaN%k{)pMiwvXj$7TNQRaat_3cwu&~_L|;ouq{Lb*ChgO zELD{+LPjcN;myim#A?>dH+z>qvL^zp>+{RYIXBhUarw}CYLl{zSY#f1V>!1lN+h@_ zJ#i#SCWK1lUGCnR#Xqm^-tehsuDt+gGF#=`#ydUTBn?(z{rsk2tV3=UYm=(CJK}0# zj(>1v_t)^j%!Y{y2Xnvyjp#R#i3Dnat9ryh64s?Kp&;_y__isqkz23ZfVMPk zuVAiBih_Q7`q7eJXb7kh?bkFpAtVmw)&7=$oXmN8q;@uWDu{vC!^od zvYc7YmPUpg%=D;tSwvf~ zOQ6v>?Rs&l43d!jPT<+jb@~tkwo$;ia1_IcToF^&(~8UjTkDh^_m=y#D+I8AEc+HC5a6r&D}Jl3y#Lk zQOGFJZP8g2Q#}FX#B5B<8A996r2O>?$}&CZgZY}wX3`cwC#iQe)NXWTAJNzJ2I$Se znRNFPz}@wR_aYZvP6FWkM7*?@pjVb9L!Tp^OyD7dthTtssT9 z_dXRJbGyI7w;XkkP~kb4<+~7<^H`C1yB{mLFIPFR)0R1;%XJxLi?3`P^5nhifO_=P z_R-zxM}c;I<=jS=lb7)do1gHy>$$Td{9YfYh!@~BBv5P%HD_la0Z%p)Qyn`AL9k~j z6i2T@gRGe$ujo%_k@)N@=I7>Os2X0DIf?6EX}vwf@S{xH{iGLz?(EMBUh^u{o;Qc7 z)$AT?Ft?Eeb$?^f^lIFvs)!8|RU%FDbSm@1dk7Ll++KYmSUI1RDI!fF-lpfqIoMfYcb2Qa?kooKf2RFBqkfQ=X&=taf} z(w=2BvFW=3lD`}~^4oM)K=?*iXUrjbdlUER!U8Ly(JO7DqntO0fLi?1GAU4IZ7V=R0-WNXuDu*?P2MPV37NV3Sy&fc*TB+ab-XG4o0gH^(kd9E3!Z`%V<$y8I z5X}%T9E`7@HK24|8J|Iypm(&8ufH0{$;uDL9)SJaWiRz+o2=6=!FAfzUe|c8-MO}Q z#NJbg7^1%L#yGwyWu_)x-Noi#~3801Py!JNzQh?LeFE$->Bs z29<)PV^)THa$uo~^m0>SAM320U!zmEhErbRG7wF4YI=sl_a#ONZ_MZM+9_NM`P!zg zGKoY2d)jN;I-T_?6svlOa#4#14HOdBo+73KH zz(~6&J0r6O&DAE%d?vm!+YB@`3gbc3mI;*GcFeJho}EebY5>R;CMRn658;-odVZQ6 z?4US0#R<|j5c;ZBBLUvkoLLbhAabUIgT;c7cSC;CgsgCaJR;8F&?hB)1JqEY&h>NA~Kaw?JcjdkA; zmbEDeEUfhU>eZm+g~xaX9_;=SB~O_)%a}Z&VQG=lXe!Cb;SQDE*12U3Pez8YvT%W9 z(YPCO4U_X4g^2LA8_N9{RCoi{`Als+nr*sfqOu&zdKqe;YC6kUr%9hqby=&iW)=@k zTx_ZL7TUSQrRslEd`*UlBsy%XPOq0cQ&ua+rw`Zs%qA5?^=cV&r_ew@HT`#m19KDs zR)tO_38;Q!ru@s2tc#<#@!|fQM>(~u4`^gt`Lpag-T+wPh9z(5B^@m`J-1qmb zS5knf#FzWabyAyM5ETfbko?^F+z1NkR}1mf;)F@z2>Ei(Gfl_vL1#g{lVE(?^|$>w zMHZv%QZHLl@Q6_>mOG4b*SFs*Ee+85pqGi@Hfcicw?uy>h|Kr@r7H6u$i3A?LYV?y zfW6#%&AKW?x#s;}N!9Lgr<}Fom8`ki(`nn&WWavhTjS}d$WqyOkjz#d5AE>kb+cNf zyFi}BfYSoKzBQAi(<})OSuZQ7GKFOH=av?lfQSV&lbe-ET&OokCa1kGMV#DDW1yLY z5afRp(*xxIF3_@K^4?Sp56m9Nh;HiDsT=#~T)UQbE%iCQkzx7wVtST~&Czp1L~C6? zM+TmSnp%YjwAjepEnn}&%}ytE3FtYYLbTRRsOst5h8#FJzB(8^$N*|rX|M$^iJ&;H zAO%<&Dyt+>4+Z&Z8(`giy zD~+qN_;yr9sFA3Q9y%F1AS%ARq0Cu8F%$o0FCa0j6k;aER^Jz=%;TnWUbeh_xcTi~ zy<=K3aEpSd9hGL{lXWk5h=krYA*KQY0nHI$)&k#biGRIh$e1;Vcf#;a3tG`frr;OX zgFdmmq^<0-4K&tz080al`(_-$QIz~o+YIdou`*%r=7IVV_@n+DHoxptNVJFuQ+9gt zbqP{wMl`HXiGP43Z-O0{Y&HO0(9J|6W7=||98i5X8m*;G&q$sG&+5Q+I@pc(KQnIn zyM|$V{89kA$UB`$RIuH1r`uFNe9Li;vCZNIx6y#^|J8)&+cE#&b07cv^)lf9{r`1a zdFSy24)|fOtje3nKBhDr^us=dO)qcwhm2Ew>&Mkw?f>!T4M6MF#}1YJiZLdf$IYdl)RMV{?cf~r$z069!ds#Ly|LMlXt>0~v)|IY9 zUvTUeK@v0zv?|B74HHN-wxB6;7}`qlsl3XO7yMK3`pZYpK&^au?z?YCaP-RWRpR5{ hPv!rex9&wweqWVqlI){_6obCd6)oM1WfyGj{V&HMnr8q2 literal 0 HcmV?d00001 diff --git a/docs/images/SetProjectStatusCommandResult.png b/docs/images/SetProjectStatusCommandResult.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4712dc9935322567071c681a4b624ecc938c76 GIT binary patch literal 31107 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 z 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 QAh|BUjL(&xxpw>i12_%%Z2$lO literal 0 HcmV?d00001 diff --git a/docs/images/Ui.png b/docs/images/Ui.png index ea4e499d4430041ec8fb19d5975e85b2605e4a2d..ce250d11475c77cfa8a9922829d412e4a3227549 100644 GIT binary patch literal 57087 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 Li%S(3U2gw3pjN@j diff --git a/src/main/resources/view/CommentListCard.fxml b/src/main/resources/view/CommentListCard.fxml index 186c2b5df49..ee03f80589d 100644 --- a/src/main/resources/view/CommentListCard.fxml +++ b/src/main/resources/view/CommentListCard.fxml @@ -21,11 +21,11 @@ - - - diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 950a11914bd..621dee58d94 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -134,11 +134,11 @@ } .scroll-pane { - -fx-background-color: transparent; + -fx-background-color: transparent; } .scroll-pane > .viewport { - -fx-background-color: transparent; + -fx-background-color: transparent; } .pane-with-border { -fx-background-color: derive(#1d1d1d, 20%); @@ -146,8 +146,6 @@ -fx-border-top-width: 1px; } - - .status-bar { -fx-background-color: derive(#1d1d1d, 30%); } @@ -298,6 +296,14 @@ -fx-background-insets: 3; } +.scroll-bar .corner { + -fx-background-color: transparent; +} + +.scroll-bar .filler { + -fx-background-color: transparent; +} + .scroll-bar .increment-button, .scroll-bar .decrement-button { -fx-background-color: transparent; @@ -311,12 +317,12 @@ .scroll-bar:vertical .increment-arrow, .scroll-bar:vertical .decrement-arrow { - -fx-padding: 1 8 1 8; + -fx-padding: 1 4 1 4; } .scroll-bar:horizontal .increment-arrow, .scroll-bar:horizontal .decrement-arrow { - -fx-padding: 8 1 8 1; + -fx-padding: 4 1 4 1; } #cardPane { @@ -374,11 +380,10 @@ } .centeredTextArea { - -fx-background-color: transparent; - -fx-control-inner-background: transparent; + -fx-background-color: transparent; + -fx-control-inner-background: transparent; } - .centeredTextArea .scroll-pane .content .text { - -fx-text-alignment: center; + -fx-text-alignment: center; } From a582176ac53f885647a1273a472e44eff678ec35 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 11:22:21 +0800 Subject: [PATCH 03/12] Update error messages --- docs/UserGuide.md | 60 +++++++++++++++---- .../commands/SetDeadlineProjectCommand.java | 2 +- .../logic/parser/AddCommentCommandParser.java | 2 +- .../logic/parser/AddPersonCommandParser.java | 2 +- .../parser/AssignPersonCommandParser.java | 4 +- .../logic/parser/AssignTeamCommandParser.java | 4 +- .../parser/DeletePersonCommandParser.java | 2 +- .../parser/DeleteProjectCommandParser.java | 2 - .../logic/parser/RenameCommandParser.java | 4 +- .../parser/SetDeadlineCommandParser.java | 4 +- .../SetProjectCategoryCommandParser.java | 2 +- .../logic/parser/SetStatusCommandParser.java | 6 +- 12 files changed, 65 insertions(+), 29 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3b4e1b1ec5e..7baf45770cd 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -113,7 +113,9 @@ The added projects will appear on the project list on the left. **Expected output:** - Success: ` has been added to the project list.` -- Failure: `Project already exists.` +- Failure: + - `Project already exists.` + - `Project name should be alphanumerical and not empty.` ![AddProjectCommandResult](images/AddProjectCommandResult.png) Description: An example of the result after executing the "add project" command. @@ -148,7 +150,9 @@ Sets the current showing project as the specified project. **Expected output:** - Success: The UI now shows the project’s information. -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Please enter the project field.` ![Show Project Command Result](images/Ui.png) Description: An example of the result after executing the "show project" command, displaying project information in the UI. @@ -177,6 +181,8 @@ Adds the specified task to a project. - Failure: - `Project not found: Please make sure the project exists.` - `Task already exists in .` + - `Please enter the task and project fields.` + - `Names should be alphanumerical and not empty.` ![AddTaskCommandResult](images/AddTaskCommandResult.png) @@ -200,6 +206,7 @@ Deletes the specified task from a project. - Failure: - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists.` + - `Please enter the project and the task field` ### Set deadline to project : `set deadline` @@ -218,8 +225,11 @@ Deletes the specified task from a project. **Expected output:** - Success: `The project has been set with the following deadline .` -- Failure: `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024.` + - `Project not found: Please make sure the project exists.` + - `Please enter the project field.` + - `Please enter valid date.` ### Set deadline to task : `set deadline` @@ -240,9 +250,11 @@ Deletes the specified task from a project. **Expected output:** - Success: `Deadline has been assigned to :.` -- Failure: `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024` -- Failure: `Project not found: Please make sure the project exists.` -- Failure: `Task not found: Please make sure the task exists.` +- Failure: + - `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024` + - `Project not found: Please make sure the project exists.` + - `Task not found: Please make sure the task exists.` + - `Please enter the project and task fields.` ### Set Project Status : `set status` @@ -263,6 +275,9 @@ Projects set as `complete` will have a green `complete` status text beside its n - Success: `Project is set as .` - Failure: - `Project not found: Please make sure the project exists.` + - `The status has been entered in the wrong format.` + - `Please enter a valid status: complete/incomplete.` + - `Please enter the status and project fields.` ![SetProjectStatusCommandResult](images/SetProjectStatusCommandResult.png) @@ -288,6 +303,9 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Task not found: Please make sure the task exists.` - `Project not found: Please make sure the project exists.` + - `The status has been entered in the wrong format.` + - `Please enter a valid status: complete/incomplete.` + - `Please enter the status, project and task fields.` ![SetTaskStatusCommandResult](images/SetTaskStatusCommandResult.png) @@ -316,7 +334,11 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of **Expected output:** - Success: `The team [, , , ...] has been added to ` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Whoops! When referring to another field like a project always remember to put /to instead of just to.` + - `Please enter valid names.` + - `Please enter the project and team fields.` ### Add member to project : `add person` @@ -337,7 +359,9 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of **Expected output:** - Success: `The person has been assigned to the following project ` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Please enter the member and project fields.` ### Remove member from project : `delete person` @@ -359,6 +383,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Member not found: Please make sure the person exists in project .` + - `Please enter the member and the project field.` ### Assign member to task : `assign person` @@ -383,6 +408,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists` - `Member not found: Please make sure the person exists.` + - `Whoops! When referring to another field like a task, always remember to put /to instead of just to. When referring to a project, use /in instead of just in.` + - `Please enter the task, project and member fields.` ### Rename a project: `set name` @@ -397,7 +424,11 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of **Expected output:** - Success: `Project has been renamed to ` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Project already exists: Please set the name of the project to be unique.` + - `Whoops! When referring to another field like a project or task, always remember to put /of instead of just of.` + - `Please enter both the target and new project name or both target task and the project it belongs to if you want to rename a specific task.` ### Rename a task: `set name` @@ -417,6 +448,10 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists in project ` + - `Task already exists. Please set the name of the task in project %2$s to be unique.` + - `Whoops! When referring to another field like a project or task, always remember to put /of instead of just of.` + - `Please enter both the target and new project name or both target task and the project it belongs to if you want to rename a specific task.` + - `Please enter both the target task name and the project it belongs to.` ### Set project category: `set category` @@ -437,7 +472,9 @@ Similar to adding a tag to the project. The category will be shown as the orange **Expected output:** - Success: `The project category is set as .` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Please enter the project field.` ![SetProjectCategoryCommandResult](images/SetProjectCategoryCommandResult.png) @@ -475,6 +512,7 @@ The project list will list the projects with the specified category. - Failure: - `Project not found: Please make sure the project exists.` - `Team member not found: Please make sure the person exists.` + - `Please enter a comment.` ### Locating projects by name: `find project` diff --git a/src/main/java/seedu/address/logic/commands/SetDeadlineProjectCommand.java b/src/main/java/seedu/address/logic/commands/SetDeadlineProjectCommand.java index 674cb818104..f618f0a6915 100644 --- a/src/main/java/seedu/address/logic/commands/SetDeadlineProjectCommand.java +++ b/src/main/java/seedu/address/logic/commands/SetDeadlineProjectCommand.java @@ -25,7 +25,7 @@ public class SetDeadlineProjectCommand extends SetDeadlineCommand { public static final String MESSAGE_WRONG_FORMAT_DEADLINE = "The deadline %1s has been entered in the wrong format. " - + "An example of the correct format is Mar 15 2024"; + + "An example of the correct format is Mar 15 2024."; private final String deadline; private final Project project; diff --git a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java index b68de0b37a8..6f1af39fa29 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java @@ -31,7 +31,7 @@ public AddCommentCommand parse(String args) throws ParseException { String comment = args.split(" /from ")[0].trim(); String memberAndProject = args.split(" /from ")[1]; if (comment.length() == 0) { - throw new ParseException("Please enter a comment"); + throw new ParseException("Please enter a comment."); } String memberName = memberAndProject.split(" /to ")[0]; String projectName = memberAndProject.split(" /to ")[1]; diff --git a/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java index 1a8eae1027e..ee127ff2b07 100644 --- a/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java @@ -30,7 +30,7 @@ public AddPersonCommand parse(String args) throws ParseException { memberName = memberName.trim(); projectName = projectName.trim(); if ((memberName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the member and project fields"); + throw new ParseException("Please enter the member and project fields."); } Member member = new Member(memberName); Name name = ParserUtil.parseName(projectName); diff --git a/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java index ac8f2b76045..22c94500a3f 100644 --- a/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java @@ -23,14 +23,14 @@ public AssignPersonCommand parse(String args) throws ParseException { if (!args.contains(" /to ") || !args.contains(" /in ")) { throw new ParseException("Whoops! When referring to another field like a task," + " always remember to put /to instead of just to." - + " When referring to a project, use /in instead of just in. "); + + " When referring to a project, use /in instead of just in."); } String member = args.split(" /to")[0].trim(); String taskAndProject = args.split(" /to")[1].trim(); String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1].trim(); if ((taskName.length() == 0) || (projectName.length() == 0) || (member.length() == 0)) { - throw new ParseException("Please enter the task, project and member fields"); + throw new ParseException("Please enter the task, project and member fields."); } Project project = new Project(ParserUtil.parseName(projectName)); Task newTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java b/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java index 1bf46e5ed75..1328de931da 100644 --- a/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java @@ -33,10 +33,10 @@ public AssignTeamCommand parse(String args) throws ParseException { .map(String::trim) .collect(Collectors.toList()); if (team.stream().anyMatch(member -> member.length() == 0)) { - throw new ParseException("Please enter valid names"); + throw new ParseException("Please enter valid names."); } if ((team.size() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the project and team fields"); + throw new ParseException("Please enter the project and team fields."); } Project project = new Project(ParserUtil.parseName(projectName)); return new AssignTeamCommand(team, project); diff --git a/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java b/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java index 2b8d91b42fc..9fc8ef58235 100644 --- a/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java @@ -29,7 +29,7 @@ public DeletePersonCommand parse(String args) throws ParseException { String projectName = args.split("/in ")[1]; if ((memberName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the member and the project field"); + throw new ParseException("Please enter the member and the project field."); } return new DeletePersonCommand(new Member(memberName), new Project(new Name(projectName))); } catch (Exception e) { diff --git a/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java index 7152353cce3..8e4a3e44bfe 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java @@ -21,8 +21,6 @@ public DeleteProjectCommand parse(String args) throws ParseException { if (args.length() == 0) { throw new ParseException("Please enter the project field."); } - - System.out.println(args); return new DeleteProjectCommand(args); } catch (Exception e) { throw new ParseException(String.format( diff --git a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java index af5a9150b98..0c825a1ae98 100644 --- a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java @@ -30,7 +30,7 @@ public RenameCommand parse(String args) throws ParseException { String possibleTargetName = args.split(" /of ")[1]; if ((newName.length() == 0) || (possibleTargetName.length() == 0)) { throw new ParseException("Please enter both the target and new project name or both target task and " - + "the project it belongs to if you want to rename a specific task"); + + "the project it belongs to if you want to rename a specific task."); } Name changedTo = ParserUtil.parseName(newName); if (args.contains(" /in ")) { @@ -56,7 +56,7 @@ private EditTaskNameCommand parseEditTaskNameCommand(String possibleTargetName, String taskName = possibleTargetName.split(" /in ")[0]; String projectName = possibleTargetName.split(" /in ")[1]; if ((taskName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter both the target task name and the project it belongs to"); + throw new ParseException("Please enter both the target task name and the project it belongs to."); } Name targetProjectName = ParserUtil.parseName(projectName); Project targetProject = new Project(targetProjectName); diff --git a/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java b/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java index 8d03246bd8a..d799774b41f 100644 --- a/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java @@ -40,7 +40,7 @@ public SetDeadlineCommand parse(String args) throws ParseException { //SetDeadlineProjectCommand String projectName = args.split("/to ")[1]; if ((projectName.length() == 0)) { - throw new ParseException("Please enter the project field"); + throw new ParseException("Please enter the project field."); } Project project = new Project(ParserUtil.parseName(projectName)); return new SetDeadlineProjectCommand(deadline, project); @@ -62,7 +62,7 @@ private SetDeadlineTaskCommand parseSetDeadlineTaskCommand(String args) throws P String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1]; if ((projectName.length() == 0) || (taskName.length() == 0)) { - throw new ParseException("Please enter the project and task fields"); + throw new ParseException("Please enter the project and task fields."); } Project project = new Project(ParserUtil.parseName(projectName)); Task newTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java index 07c5b59bc3b..7964aef0c3b 100644 --- a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java @@ -26,7 +26,7 @@ public SetProjectCategoryCommand parse(String args) throws ParseException { String category = args.split(" /to")[0].trim(); String projectName = args.split("/to ")[1]; if ((projectName.length() == 0) || category.length() == 0) { - throw new ParseException("Please enter the project field"); + throw new ParseException("Please enter the project field."); } Project project = new Project(ParserUtil.parseName(projectName)); return new SetProjectCategoryCommand(category, project); diff --git a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java index 23e939c131d..9cd089210b6 100644 --- a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java @@ -34,7 +34,7 @@ public SetStatusCommand parse(String args) throws ParseException { String taskAndProject = args.split(" /of")[1].trim(); if (!args.contains(" /in ")) { if ((taskAndProject.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status and project fields"); + throw new ParseException("Please enter the status and project fields."); } Project project = new Project(ParserUtil.parseName(taskAndProject)); return new SetProjectStatusCommand(status, project); @@ -54,12 +54,12 @@ public SetStatusCommand parse(String args) throws ParseException { private SetTaskStatusCommand parseSetTaskStatusCommand(String taskAndProject, String status) throws ParseException { if ((taskAndProject.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status, project and task fields"); + throw new ParseException("Please enter the status, project and task fields."); } String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1]; if ((projectName.length() == 0) || (taskName.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status, project and task fields"); + throw new ParseException("Please enter the status, project and task fields."); } Project project = new Project(ParserUtil.parseName(projectName)); Task newTask = new Task(taskName); From a588e8dec8de6196035bcf9feeb76c35de506bbf Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 11:53:44 +0800 Subject: [PATCH 04/12] Add full stop to error message --- .../java/seedu/address/logic/parser/AddTaskCommandParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java index 31b0f7cfa34..f4c78d199fe 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -29,7 +29,7 @@ public AddTaskCommand parse(String args) throws ParseException { String taskName = args.split(" /to")[0]; String projectName = args.split("/to ")[1]; if ((taskName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the task and project fields"); + throw new ParseException("Please enter the task and project fields."); } ParserUtil.parseName(taskName); Task task = new Task(taskName); From b00b4bfbbc67cdbfffc2b82c6b484d0bcea08461 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 12:41:43 +0800 Subject: [PATCH 05/12] Add instructions and update TOC --- docs/UserGuide.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7baf45770cd..2305822888f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -11,13 +11,14 @@ Welcome to the user guide for our CLI-based project management application! This +- [Tips on using this User Guide](#tips-on-using-this-user-guide) - [Quick start](#quick-start) - [Features](#features) - [Adding a project: `add project`](#adding-a-project-add-project) - [Deleting a project : `delete project`](#deleting-a-project--delete-project) + - [Show Project : `show project`](#show-project--show-project) - [Add task : `add task`](#add-task--add-task) - [Delete task : `delete task`](#delete-task--delete-task) - - [Show Project : `show project`](#show-project--show-project) - [Set deadline to project : `set deadline`](#set-deadline-to-project--set-deadline) - [Set deadline to task : `set deadline`](#set-deadline-to-task--set-deadline) - [Set Project Status : `set status`](#set-project-status--set-status) @@ -42,6 +43,13 @@ Welcome to the user guide for our CLI-based project management application! This +## Tips on using this User Guide + +- Follow the [Quick start](#quick-start) to get DevPlan Pro set up on your device. +- Check out the detailed command list from the [Features](#features) section. +- For get to a more specific command or section quickly, click the corresponding section in the [Table of Contents](#table-of-contents) +- If you are finding unexpected behaviors in the UI or the app itself, try checking out the [FAQ](#faq) or the [Known issues](#known-issues) section. + ## Quick start 1. Ensure you have Java `11` or above installed in your Computer. From 0c0883715c05f54e4e214acf4081fae0dbd62141 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 16:08:11 +0800 Subject: [PATCH 06/12] Fix failed build --- .../address/logic/parser/AssignPersonCommandParserTest.java | 4 ++-- .../address/logic/parser/AssignTeamCommandParserTest.java | 4 ++-- .../seedu/address/logic/parser/RenameCommandParserTest.java | 2 +- .../address/logic/parser/SetStatusCommandParserTest.java | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/seedu/address/logic/parser/AssignPersonCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AssignPersonCommandParserTest.java index 1bd85ecd02b..380ca59e2a9 100644 --- a/src/test/java/seedu/address/logic/parser/AssignPersonCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AssignPersonCommandParserTest.java @@ -32,7 +32,7 @@ public void parse_emptyArgs_throwsParseException() { assertParseFailure( parser, " /to testing /in Code", - "Please enter the task, project and member fields"); + "Please enter the task, project and member fields."); assertParseFailure( parser, @@ -42,6 +42,6 @@ public void parse_emptyArgs_throwsParseException() { assertParseFailure( parser, "James /to /in Code", - "Please enter the task, project and member fields"); + "Please enter the task, project and member fields."); } } diff --git a/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java index 0d007d13b19..488a714edbe 100644 --- a/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java @@ -32,11 +32,11 @@ public void parse_emptyArgs_throwsParseException() { assertParseFailure( parser, " /to Code", - "Please enter valid names"); + "Please enter valid names."); assertParseFailure( parser, "James /to ", - "Please enter the project and team fields"); + "Please enter the project and team fields."); } } diff --git a/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java b/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java index 563274def5b..ff7534cf395 100644 --- a/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java @@ -44,7 +44,7 @@ public void parse_missingFields_failure() { // missing task name assertParseFailure(parser, "A /of /in proj", - "Please enter both the target task name and the project it belongs to"); + "Please enter both the target task name and the project it belongs to."); } } diff --git a/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java b/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java index ac3d88ea322..27b0b9a01c7 100644 --- a/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java @@ -35,14 +35,14 @@ public void parse_missingFields_failure() { // missing project name assertParseFailure(parser, "complete /of ", - "Please enter the status and project fields"); + "Please enter the status and project fields."); assertParseFailure(parser, "complete /of task /in ", expectedMessageTask); // missing task name assertParseFailure(parser, "complete /of /in proj", - "Please enter the status, project and task fields"); + "Please enter the status, project and task fields."); } } From 626a584e8f7dbf532231aa93dd481d80bcce94d9 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 16:26:52 +0800 Subject: [PATCH 07/12] Update error message --- docs/UserGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2305822888f..09c524b375f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -370,6 +370,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Please enter the member and project fields.` + - `Please enter valid names.` ### Remove member from project : `delete person` @@ -392,6 +393,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Project not found: Please make sure the project exists.` - `Member not found: Please make sure the person exists in project .` - `Please enter the member and the project field.` + - `Please enter valid names.` ### Assign member to task : `assign person` @@ -418,6 +420,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Member not found: Please make sure the person exists.` - `Whoops! When referring to another field like a task, always remember to put /to instead of just to. When referring to a project, use /in instead of just in.` - `Please enter the task, project and member fields.` + - `Please enter valid names.` ### Rename a project: `set name` From ab40a17336f87d20836ddf3b3a9ba6dd938456dd Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 22:44:28 +0800 Subject: [PATCH 08/12] Update Error messages --- docs/UserGuide.md | 39 +++++++++++-------- .../logic/commands/AssignPersonCommand.java | 6 +-- .../logic/commands/AssignTeamCommand.java | 4 +- .../commands/SetProjectStatusCommand.java | 3 +- .../logic/commands/SetStatusCommand.java | 2 - .../logic/commands/SetTaskStatusCommand.java | 2 - .../logic/parser/AddPersonCommandParser.java | 2 +- .../logic/parser/AddTaskCommandParser.java | 6 +-- .../parser/AssignPersonCommandParser.java | 7 ++-- .../logic/parser/AssignTeamCommandParser.java | 6 +-- .../parser/DeletePersonCommandParser.java | 9 +---- .../parser/DeleteProjectCommandParser.java | 17 +++----- .../logic/parser/DeleteTaskCommandParser.java | 6 +-- .../parser/SetDeadlineCommandParser.java | 8 ++-- .../logic/parser/SetStatusCommandParser.java | 11 ++---- .../parser/ShowProjectCommandParser.java | 20 +++------- .../java/seedu/address/model/person/Name.java | 2 +- 17 files changed, 59 insertions(+), 91 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 09c524b375f..1665b89e84d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -141,7 +141,9 @@ Description: An example of the result after executing the "add project" command. **Expected output:** - Success: ` has been deleted from the project list.` -- Failure: `Project not found: Please make sure the project exists.` +- Failure: + - `Project not found: Please make sure the project exists.` + - `Project name should be alphanumerical and not empty.` ### Show Project : `show project` @@ -160,7 +162,7 @@ Sets the current showing project as the specified project. - Success: The UI now shows the project’s information. - Failure: - `Project not found: Please make sure the project exists.` - - `Please enter the project field.` + - `Project name should be alphanumerical and not empty.` ![Show Project Command Result](images/Ui.png) Description: An example of the result after executing the "show project" command, displaying project information in the UI. @@ -189,8 +191,8 @@ Adds the specified task to a project. - Failure: - `Project not found: Please make sure the project exists.` - `Task already exists in .` - - `Please enter the task and project fields.` - `Names should be alphanumerical and not empty.` + - `Invalid command format! add task TASK_NAME /to PROJECT_NAME` ![AddTaskCommandResult](images/AddTaskCommandResult.png) @@ -214,7 +216,8 @@ Deletes the specified task from a project. - Failure: - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists.` - - `Please enter the project and the task field` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! delete task TASK_NAME /in PROJECT_NAME` ### Set deadline to project : `set deadline` @@ -236,8 +239,8 @@ Deletes the specified task from a project. - Failure: - `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024.` - `Project not found: Please make sure the project exists.` - - `Please enter the project field.` - `Please enter valid date.` + - `Names should be alphanumerical and not empty.` ### Set deadline to task : `set deadline` @@ -262,7 +265,9 @@ Deletes the specified task from a project. - `The deadline has been entered in the wrong format. An example of the correct format is Mar 15 2024` - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists.` - - `Please enter the project and task fields.` + - `Please enter valid date.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! set deadline DEADLINE /to TASK_NAME /in PROJECT_NAME` ### Set Project Status : `set status` @@ -283,9 +288,8 @@ Projects set as `complete` will have a green `complete` status text beside its n - Success: `Project is set as .` - Failure: - `Project not found: Please make sure the project exists.` - - `The status has been entered in the wrong format.` - `Please enter a valid status: complete/incomplete.` - - `Please enter the status and project fields.` + - `Names should be alphanumerical and not empty.` ![SetProjectStatusCommandResult](images/SetProjectStatusCommandResult.png) @@ -311,9 +315,9 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Task not found: Please make sure the task exists.` - `Project not found: Please make sure the project exists.` - - `The status has been entered in the wrong format.` - `Please enter a valid status: complete/incomplete.` - - `Please enter the status, project and task fields.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! set status [complete/incomplete] /of TASK_NAME /in PROJECT_NAME` ![SetTaskStatusCommandResult](images/SetTaskStatusCommandResult.png) @@ -344,9 +348,9 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Success: `The team [, , , ...] has been added to ` - Failure: - `Project not found: Please make sure the project exists.` - - `Whoops! When referring to another field like a project always remember to put /to instead of just to.` - - `Please enter valid names.` + - `Names should be alphanumerical and not empty.` - `Please enter the project and team fields.` + - `Invalid command format! assign team PERSON_NAME, PERSON_NAME, PERSON_NAME /to PROJECT_NAME` ### Add member to project : `add person` @@ -370,7 +374,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Please enter the member and project fields.` - - `Please enter valid names.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! add person /to PROJECT_NAME` ### Remove member from project : `delete person` @@ -392,8 +397,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Member not found: Please make sure the person exists in project .` - - `Please enter the member and the project field.` - - `Please enter valid names.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! delete person PERSON_NAME /in PROJECT_NAME` ### Assign member to task : `assign person` @@ -418,9 +423,9 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists` - `Member not found: Please make sure the person exists.` - - `Whoops! When referring to another field like a task, always remember to put /to instead of just to. When referring to a project, use /in instead of just in.` - `Please enter the task, project and member fields.` - - `Please enter valid names.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! assign person PERSON_NAME /to TASK_NAME/ in PROJECT_NAME` ### Rename a project: `set name` diff --git a/src/main/java/seedu/address/logic/commands/AssignPersonCommand.java b/src/main/java/seedu/address/logic/commands/AssignPersonCommand.java index 3d27819df09..89ba652c89f 100644 --- a/src/main/java/seedu/address/logic/commands/AssignPersonCommand.java +++ b/src/main/java/seedu/address/logic/commands/AssignPersonCommand.java @@ -18,9 +18,9 @@ public class AssignPersonCommand extends Command { public static final String COMMAND_WORD = "assign person"; - public static final String MESSAGE_USAGE = COMMAND_WORD + "PERSON_NAME" - + "/to TASK_NAME" - + "/in PROJECT_NAME"; + public static final String MESSAGE_USAGE = COMMAND_WORD + " PERSON_NAME" + + " /to TASK_NAME" + + " /in PROJECT_NAME"; public static final String MESSAGE_PROJECT_NOT_FOUND = "Project %1$s not found: " + "Please make sure the project exists."; diff --git a/src/main/java/seedu/address/logic/commands/AssignTeamCommand.java b/src/main/java/seedu/address/logic/commands/AssignTeamCommand.java index 1d5fed42b33..744e4963e4b 100644 --- a/src/main/java/seedu/address/logic/commands/AssignTeamCommand.java +++ b/src/main/java/seedu/address/logic/commands/AssignTeamCommand.java @@ -20,8 +20,8 @@ public class AssignTeamCommand extends Command { public static final String COMMAND_WORD = "assign team"; - public static final String MESSAGE_USAGE = COMMAND_WORD + "PERSON_NAME, PERSON_NAME, PERSON_NAME" - + "/to PROJECT_NAME"; + public static final String MESSAGE_USAGE = COMMAND_WORD + " PERSON_NAME, PERSON_NAME, PERSON_NAME" + + " /to PROJECT_NAME"; public static final String MESSAGE_PROJECT_NOT_FOUND = "Project %1$s not found: " + "Please make sure the project exists."; diff --git a/src/main/java/seedu/address/logic/commands/SetProjectStatusCommand.java b/src/main/java/seedu/address/logic/commands/SetProjectStatusCommand.java index 26bf98fc7ac..c8a74ba8eef 100644 --- a/src/main/java/seedu/address/logic/commands/SetProjectStatusCommand.java +++ b/src/main/java/seedu/address/logic/commands/SetProjectStatusCommand.java @@ -56,9 +56,8 @@ public CommandResult execute(Model model) throws CommandException { } else if (isIncompleted()) { realProject.setIncomplete(); resultString = String.format(MESSAGE_SUCCESS, Messages.format(statusProject), "incomplete"); - } else { - throw new CommandException(String.format(MESSAGE_WRONG_FORMAT_STATUS)); } + model.setProject(dupProject, realProject); model.updateFilteredProjectList(PREDICATE_SHOW_ALL_PROJECTS); diff --git a/src/main/java/seedu/address/logic/commands/SetStatusCommand.java b/src/main/java/seedu/address/logic/commands/SetStatusCommand.java index 2532471e5f1..33a23792cd1 100644 --- a/src/main/java/seedu/address/logic/commands/SetStatusCommand.java +++ b/src/main/java/seedu/address/logic/commands/SetStatusCommand.java @@ -11,8 +11,6 @@ public abstract class SetStatusCommand extends Command { public static final String COMMAND_WORD = "set status"; - public static final String MESSAGE_WRONG_FORMAT_STATUS = "The status has been entered in the wrong format."; - private final String status; /** diff --git a/src/main/java/seedu/address/logic/commands/SetTaskStatusCommand.java b/src/main/java/seedu/address/logic/commands/SetTaskStatusCommand.java index 33789eed789..445429caf93 100644 --- a/src/main/java/seedu/address/logic/commands/SetTaskStatusCommand.java +++ b/src/main/java/seedu/address/logic/commands/SetTaskStatusCommand.java @@ -61,8 +61,6 @@ public CommandResult execute(Model model) throws CommandException { } else if (isIncompleted()) { statusTask.setIncomplete(); resultString = String.format(MESSAGE_SUCCESS, Messages.format(statusTask), "incomplete"); - } else { - throw new CommandException(String.format(MESSAGE_WRONG_FORMAT_STATUS)); } model.updateCurrentProject( new NameEqualsPredicate( diff --git a/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java index ad1b248f8f4..88415519131 100644 --- a/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddPersonCommandParser.java @@ -41,7 +41,7 @@ public AddPersonCommand parse(String args) throws ParseException { MESSAGE_INVALID_COMMAND_FORMAT, AddPersonCommand.MESSAGE_USAGE)); } catch (IllegalArgumentException e) { - throw new ParseException("Please enter valid names."); + throw new ParseException("Names should be alphanumerical and not empty."); } } } diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java index 6a7aece603c..38f5c615bec 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -28,16 +28,14 @@ public AddTaskCommand parse(String args) throws ParseException { } String taskName = args.split(" /to")[0]; String projectName = args.split("/to ")[1]; - if ((taskName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the task and project fields."); + if(!Name.isValidName(projectName) || !Name.isValidName(taskName)) { + throw new ParseException("Names should be alphanumerical and not empty."); } ParserUtil.parseName(taskName); Task task = new Task(taskName); Name name = ParserUtil.parseName(projectName); Project project = new Project(name); return new AddTaskCommand(task, project); - } catch (ParseException e) { - throw e; } catch (ArrayIndexOutOfBoundsException e) { throw new ParseException(String.format( MESSAGE_INVALID_COMMAND_FORMAT, diff --git a/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java index 50db9ab4ee4..eba6b099968 100644 --- a/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AssignPersonCommandParser.java @@ -21,9 +21,8 @@ public class AssignPersonCommandParser implements Parser { public AssignPersonCommand parse(String args) throws ParseException { try { if (!args.contains(" /to ") || !args.contains(" /in ")) { - throw new ParseException("Whoops! When referring to another field like a task," - + " always remember to put /to instead of just to." - + " When referring to a project, use /in instead of just in."); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AssignPersonCommand.MESSAGE_USAGE)); } String member = args.split(" /to")[0].trim(); String taskAndProject = args.split(" /to")[1].trim(); @@ -39,7 +38,7 @@ public AssignPersonCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AssignPersonCommand.MESSAGE_USAGE)); } catch (IllegalArgumentException e) { - throw new ParseException("Please enter valid names."); + throw new ParseException("Names should be alphanumerical and not empty."); } } } diff --git a/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java b/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java index 3be514cbc48..0118d83a58a 100644 --- a/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AssignTeamCommandParser.java @@ -25,8 +25,8 @@ public class AssignTeamCommandParser implements Parser { public AssignTeamCommand parse(String args) throws ParseException { try { if (!args.contains(" /to ")) { - throw new ParseException("Whoops! When referring to another field like a project," - + " always remember to put /to instead of just to."); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AssignTeamCommand.MESSAGE_USAGE)); } String members = args.split(" /to")[0].trim(); String projectName = args.split(" /to")[1].trim(); @@ -34,7 +34,7 @@ public AssignTeamCommand parse(String args) throws ParseException { .map(String::trim) .collect(Collectors.toList()); if (team.stream().anyMatch(member -> (member.length() == 0 || !Name.isValidName(member)))) { - throw new ParseException("Please enter valid names."); + throw new ParseException("Names should be alphanumerical and not empty."); } if ((team.size() == 0) || (projectName.length() == 0)) { throw new ParseException("Please enter the project and team fields."); diff --git a/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java b/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java index b369c7aa957..5a987c26b8a 100644 --- a/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeletePersonCommandParser.java @@ -28,16 +28,9 @@ public DeletePersonCommand parse(String args) throws ParseException { String memberName = args.split(" /in")[0]; String projectName = args.split("/in ")[1]; - if ((memberName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the member and the project field."); - } return new DeletePersonCommand(new Member(memberName), new Project(new Name(projectName))); } catch (IllegalArgumentException e) { - throw new ParseException("Please enter valid names."); - } catch (Exception e) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, - DeletePersonCommand.MESSAGE_USAGE)); + throw new ParseException("Names should be alphanumerical and not empty."); } } diff --git a/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java index 8e4a3e44bfe..be1d54d4fb9 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteProjectCommandParser.java @@ -1,9 +1,8 @@ package seedu.address.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - import seedu.address.logic.commands.DeleteProjectCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; /** * Parses input arguments and creates a new DeleteProjectCommand object @@ -16,17 +15,11 @@ public class DeleteProjectCommandParser implements Parser * @throws ParseException if the user input does not conform the expected format */ public DeleteProjectCommand parse(String args) throws ParseException { - try { - args = args.trim(); - if (args.length() == 0) { - throw new ParseException("Please enter the project field."); - } - return new DeleteProjectCommand(args); - } catch (Exception e) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, - DeleteProjectCommand.MESSAGE_USAGE)); + args = args.trim(); + if (args.length() == 0 || !Name.isValidName(args)) { + throw new ParseException("Project name should be alphanumerical and not empty."); } + return new DeleteProjectCommand(args); } } diff --git a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java index 914d7d0cc3e..2f10980e172 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java @@ -28,10 +28,10 @@ public DeleteTaskCommand parse(String args) throws ParseException { } String taskName = args.split(" /in")[0]; String projectName = args.split("/in ")[1]; - Task task = new Task(taskName); - if ((taskName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter the project and the task field"); + if ((taskName.length() == 0) || (projectName.length() == 0 || (!Name.isValidName(projectName) || (!Name.isValidName(taskName))))) { + throw new ParseException("Names should be alphanumerical and not empty."); } + Task task = new Task(taskName); Name name = ParserUtil.parseName(projectName); Project project = new Project(name); return new DeleteTaskCommand(task, project); diff --git a/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java b/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java index d799774b41f..05c43e6c59c 100644 --- a/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetDeadlineCommandParser.java @@ -11,6 +11,7 @@ import seedu.address.logic.commands.SetDeadlineProjectCommand; import seedu.address.logic.commands.SetDeadlineTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; import seedu.address.model.project.Project; import seedu.address.model.project.Task; @@ -39,9 +40,6 @@ public SetDeadlineCommand parse(String args) throws ParseException { if (!args.contains(" /in ")) { //SetDeadlineProjectCommand String projectName = args.split("/to ")[1]; - if ((projectName.length() == 0)) { - throw new ParseException("Please enter the project field."); - } Project project = new Project(ParserUtil.parseName(projectName)); return new SetDeadlineProjectCommand(deadline, project); } else { @@ -61,8 +59,8 @@ private SetDeadlineTaskCommand parseSetDeadlineTaskCommand(String args) throws P String taskAndProject = args.split(" /to")[1].trim(); String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1]; - if ((projectName.length() == 0) || (taskName.length() == 0)) { - throw new ParseException("Please enter the project and task fields."); + if (!Name.isValidName(taskName)) { + throw new ParseException("Names should be alphanumerical and not empty."); } Project project = new Project(ParserUtil.parseName(projectName)); Task newTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java index 9cd089210b6..00d5058c4a9 100644 --- a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java @@ -6,6 +6,7 @@ import seedu.address.logic.commands.SetStatusCommand; import seedu.address.logic.commands.SetTaskStatusCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; import seedu.address.model.project.Project; import seedu.address.model.project.Task; @@ -33,9 +34,6 @@ public SetStatusCommand parse(String args) throws ParseException { } String taskAndProject = args.split(" /of")[1].trim(); if (!args.contains(" /in ")) { - if ((taskAndProject.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status and project fields."); - } Project project = new Project(ParserUtil.parseName(taskAndProject)); return new SetProjectStatusCommand(status, project); } @@ -53,13 +51,10 @@ public SetStatusCommand parse(String args) throws ParseException { } private SetTaskStatusCommand parseSetTaskStatusCommand(String taskAndProject, String status) throws ParseException { - if ((taskAndProject.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status, project and task fields."); - } String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1]; - if ((projectName.length() == 0) || (taskName.length() == 0) || (status.length() == 0)) { - throw new ParseException("Please enter the status, project and task fields."); + if ((projectName.length() == 0) || (taskName.length() == 0) || (!Name.isValidName(projectName)) || (!Name.isValidName(taskName))) { + throw new ParseException("Names should be alphanumerical and not empty."); } Project project = new Project(ParserUtil.parseName(projectName)); Task newTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/ShowProjectCommandParser.java b/src/main/java/seedu/address/logic/parser/ShowProjectCommandParser.java index b27d2c3315a..eb02bad2347 100644 --- a/src/main/java/seedu/address/logic/parser/ShowProjectCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/ShowProjectCommandParser.java @@ -1,9 +1,8 @@ package seedu.address.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - import seedu.address.logic.commands.ShowProjectCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; /** * Parses input arguments and creates a new ShowProjectCommand object @@ -16,19 +15,12 @@ public class ShowProjectCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public ShowProjectCommand parse(String args) throws ParseException { - try { - args = args.trim(); - if (args.length() == 0) { - throw new ParseException("Please enter the project field"); - } - - System.out.println(args); - return new ShowProjectCommand(args); - } catch (Exception e) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, - ShowProjectCommand.MESSAGE_USAGE)); + args = args.trim(); + if (args.length() == 0 || !Name.isValidName(args)) { + throw new ParseException("Project name should be alphanumerical and not empty."); } + System.out.println(args); + return new ShowProjectCommand(args); } } diff --git a/src/main/java/seedu/address/model/person/Name.java b/src/main/java/seedu/address/model/person/Name.java index 173f15b9b00..f7470103bd8 100644 --- a/src/main/java/seedu/address/model/person/Name.java +++ b/src/main/java/seedu/address/model/person/Name.java @@ -10,7 +10,7 @@ public class Name { public static final String MESSAGE_CONSTRAINTS = - "Names should only contain alphanumeric characters and spaces, and it should not be blank"; + "Names should be alphanumerical and not empty."; /* * The first character of the address must not be a whitespace, From 81be8b07494e42571c51f2a2c859b489191be82c Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 22:59:39 +0800 Subject: [PATCH 09/12] Update Error messages --- docs/UserGuide.md | 13 +++++++------ .../address/logic/commands/EditTaskNameCommand.java | 4 ++-- .../logic/parser/AddCommentCommandParser.java | 7 ++----- .../address/logic/parser/RenameCommandParser.java | 12 +++--------- .../parser/SetProjectCategoryCommandParser.java | 9 ++------- 5 files changed, 16 insertions(+), 29 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 1665b89e84d..56497801332 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -443,8 +443,7 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - Failure: - `Project not found: Please make sure the project exists.` - `Project already exists: Please set the name of the project to be unique.` - - `Whoops! When referring to another field like a project or task, always remember to put /of instead of just of.` - - `Please enter both the target and new project name or both target task and the project it belongs to if you want to rename a specific task.` + - `Names should be alphanumerical and not empty.` ### Rename a task: `set name` @@ -465,9 +464,8 @@ Tasks set as `complete` will me moved to the `Done` column on the right side of - `Project not found: Please make sure the project exists.` - `Task not found: Please make sure the task exists in project ` - `Task already exists. Please set the name of the task in project %2$s to be unique.` - - `Whoops! When referring to another field like a project or task, always remember to put /of instead of just of.` - - `Please enter both the target and new project name or both target task and the project it belongs to if you want to rename a specific task.` - - `Please enter both the target task name and the project it belongs to.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! set name NEW_TASK_NAME /of TARGET_TASK_NAME /in PROJECT_NAME` ### Set project category: `set category` @@ -490,7 +488,8 @@ Similar to adding a tag to the project. The category will be shown as the orange - Success: `The project category is set as .` - Failure: - `Project not found: Please make sure the project exists.` - - `Please enter the project field.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! set category CATEGORY /to PROJECT_NAME` ![SetProjectCategoryCommandResult](images/SetProjectCategoryCommandResult.png) @@ -529,6 +528,8 @@ The project list will list the projects with the specified category. - `Project not found: Please make sure the project exists.` - `Team member not found: Please make sure the person exists.` - `Please enter a comment.` + - `Names should be alphanumerical and not empty.` + - `Invalid command format! add comment /from PERSON_NAME /to PROJECT_NAME` ### Locating projects by name: `find project` diff --git a/src/main/java/seedu/address/logic/commands/EditTaskNameCommand.java b/src/main/java/seedu/address/logic/commands/EditTaskNameCommand.java index b7de447d6d4..957b9718de7 100644 --- a/src/main/java/seedu/address/logic/commands/EditTaskNameCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditTaskNameCommand.java @@ -18,8 +18,8 @@ */ public class EditTaskNameCommand extends RenameCommand { public static final String MESSAGE_USAGE = RenameCommand.COMMAND_WORD - + "NEW_TASK_NAME /of TARGET_TASK_NAME" - + "/in PROJECT_NAME"; + + " NEW_TASK_NAME /of TARGET_TASK_NAME" + + " /in PROJECT_NAME"; public static final String MESSAGE_SUCCESS = "Task %1$s of project %2$s has been renamed to %3$s"; diff --git a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java index 6f1af39fa29..a2b9f576c00 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java @@ -3,7 +3,6 @@ import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.logic.commands.AddCommentCommand; -import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.person.Name; import seedu.address.model.project.Member; @@ -35,10 +34,8 @@ public AddCommentCommand parse(String args) throws ParseException { } String memberName = memberAndProject.split(" /to ")[0]; String projectName = memberAndProject.split(" /to ")[1]; - if (memberName.length() == 0 || projectName.length() == 0) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, - AddTaskCommand.MESSAGE_USAGE)); + if (memberName.length() == 0 || projectName.length() == 0 || !Name.isValidName(projectName) || !Name.isValidName(memberName)) { + throw new ParseException("Names should be alphanumerical and not empty."); } Member member = new Member(memberName); Name name = ParserUtil.parseName(projectName); diff --git a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java index 0c825a1ae98..44055689a67 100644 --- a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java @@ -23,15 +23,12 @@ public class RenameCommandParser implements Parser { public RenameCommand parse(String args) throws ParseException { try { if (!args.contains(" /of ")) { - throw new ParseException("Whoops! When referring to another field like a project or task," - + " always remember to put /of instead of just of."); + throw new ParseException(String.format( + MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskNameCommand.MESSAGE_USAGE)); } String newName = args.split(" /of ")[0]; String possibleTargetName = args.split(" /of ")[1]; - if ((newName.length() == 0) || (possibleTargetName.length() == 0)) { - throw new ParseException("Please enter both the target and new project name or both target task and " - + "the project it belongs to if you want to rename a specific task."); - } Name changedTo = ParserUtil.parseName(newName); if (args.contains(" /in ")) { return parseEditTaskNameCommand(possibleTargetName, changedTo); @@ -55,9 +52,6 @@ private EditTaskNameCommand parseEditTaskNameCommand(String possibleTargetName, Name changedTo) throws ParseException { String taskName = possibleTargetName.split(" /in ")[0]; String projectName = possibleTargetName.split(" /in ")[1]; - if ((taskName.length() == 0) || (projectName.length() == 0)) { - throw new ParseException("Please enter both the target task name and the project it belongs to."); - } Name targetProjectName = ParserUtil.parseName(projectName); Project targetProject = new Project(targetProjectName); Task targetTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java index 7964aef0c3b..da8e9a887c3 100644 --- a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java @@ -25,16 +25,11 @@ public SetProjectCategoryCommand parse(String args) throws ParseException { } String category = args.split(" /to")[0].trim(); String projectName = args.split("/to ")[1]; - if ((projectName.length() == 0) || category.length() == 0) { - throw new ParseException("Please enter the project field."); - } Project project = new Project(ParserUtil.parseName(projectName)); return new SetProjectCategoryCommand(category, project); - } catch (Exception e) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, - SetProjectCategoryCommand.MESSAGE_USAGE)); + } catch (IllegalArgumentException e) { + throw new ParseException("Names should be alphanumerical and not empty."); } } From a06b9463c94eaea89b746c2c4206823df509ceb0 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 23:03:01 +0800 Subject: [PATCH 10/12] Fix checkstyles --- .../seedu/address/logic/parser/AddCommentCommandParser.java | 3 ++- .../java/seedu/address/logic/parser/AddTaskCommandParser.java | 2 +- .../seedu/address/logic/parser/DeleteTaskCommandParser.java | 3 ++- .../seedu/address/logic/parser/SetStatusCommandParser.java | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java index a2b9f576c00..770314a490d 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommentCommandParser.java @@ -34,7 +34,8 @@ public AddCommentCommand parse(String args) throws ParseException { } String memberName = memberAndProject.split(" /to ")[0]; String projectName = memberAndProject.split(" /to ")[1]; - if (memberName.length() == 0 || projectName.length() == 0 || !Name.isValidName(projectName) || !Name.isValidName(memberName)) { + if (memberName.length() == 0 || projectName.length() == 0 + || !Name.isValidName(projectName) || !Name.isValidName(memberName)) { throw new ParseException("Names should be alphanumerical and not empty."); } Member member = new Member(memberName); diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java index 38f5c615bec..e2a45ff12c4 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -28,7 +28,7 @@ public AddTaskCommand parse(String args) throws ParseException { } String taskName = args.split(" /to")[0]; String projectName = args.split("/to ")[1]; - if(!Name.isValidName(projectName) || !Name.isValidName(taskName)) { + if (!Name.isValidName(projectName) || !Name.isValidName(taskName)) { throw new ParseException("Names should be alphanumerical and not empty."); } ParserUtil.parseName(taskName); diff --git a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java index 2f10980e172..8cc5d5084fa 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java @@ -28,7 +28,8 @@ public DeleteTaskCommand parse(String args) throws ParseException { } String taskName = args.split(" /in")[0]; String projectName = args.split("/in ")[1]; - if ((taskName.length() == 0) || (projectName.length() == 0 || (!Name.isValidName(projectName) || (!Name.isValidName(taskName))))) { + if ((taskName.length() == 0) || (projectName.length() == 0 + || (!Name.isValidName(projectName) || (!Name.isValidName(taskName))))) { throw new ParseException("Names should be alphanumerical and not empty."); } Task task = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java index 00d5058c4a9..21b78e00dd6 100644 --- a/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetStatusCommandParser.java @@ -53,7 +53,8 @@ public SetStatusCommand parse(String args) throws ParseException { private SetTaskStatusCommand parseSetTaskStatusCommand(String taskAndProject, String status) throws ParseException { String taskName = taskAndProject.split("/in ")[0].trim(); String projectName = taskAndProject.split("/in ")[1]; - if ((projectName.length() == 0) || (taskName.length() == 0) || (!Name.isValidName(projectName)) || (!Name.isValidName(taskName))) { + if ((projectName.length() == 0) || (taskName.length() == 0) + || (!Name.isValidName(projectName)) || (!Name.isValidName(taskName))) { throw new ParseException("Names should be alphanumerical and not empty."); } Project project = new Project(ParserUtil.parseName(projectName)); From faca831b61c1646dd42cefd40477a28811c6f9dc Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 23:23:21 +0800 Subject: [PATCH 11/12] Fix tests --- docs/UserGuide.md | 1 + .../seedu/address/logic/parser/RenameCommandParser.java | 7 +++++-- .../logic/parser/SetProjectCategoryCommandParser.java | 7 +++++++ .../logic/parser/AssignTeamCommandParserTest.java | 4 +--- .../logic/parser/DeleteProjectCommandParserTest.java | 3 +-- .../address/logic/parser/RenameCommandParserTest.java | 2 +- .../parser/SetProjectCategoryCommandParserTest.java | 6 +----- .../address/logic/parser/SetStatusCommandParserTest.java | 4 ++-- .../logic/parser/ShowProjectCommandParserTest.java | 9 +-------- 9 files changed, 20 insertions(+), 23 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 56497801332..bb0a07775e2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -489,6 +489,7 @@ Similar to adding a tag to the project. The category will be shown as the orange - Failure: - `Project not found: Please make sure the project exists.` - `Names should be alphanumerical and not empty.` + - `Please enter the category.` - `Invalid command format! set category CATEGORY /to PROJECT_NAME` ![SetProjectCategoryCommandResult](images/SetProjectCategoryCommandResult.png) diff --git a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java index 44055689a67..7aefe3cfc31 100644 --- a/src/main/java/seedu/address/logic/parser/RenameCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/RenameCommandParser.java @@ -27,8 +27,8 @@ public RenameCommand parse(String args) throws ParseException { MESSAGE_INVALID_COMMAND_FORMAT, EditTaskNameCommand.MESSAGE_USAGE)); } - String newName = args.split(" /of ")[0]; - String possibleTargetName = args.split(" /of ")[1]; + String newName = args.split(" /of ")[0].trim(); + String possibleTargetName = args.split(" /of ")[1].trim(); Name changedTo = ParserUtil.parseName(newName); if (args.contains(" /in ")) { return parseEditTaskNameCommand(possibleTargetName, changedTo); @@ -52,6 +52,9 @@ private EditTaskNameCommand parseEditTaskNameCommand(String possibleTargetName, Name changedTo) throws ParseException { String taskName = possibleTargetName.split(" /in ")[0]; String projectName = possibleTargetName.split(" /in ")[1]; + if (!Name.isValidName(taskName)) { + throw new ParseException("Names should be alphanumerical and not empty."); + } Name targetProjectName = ParserUtil.parseName(projectName); Project targetProject = new Project(targetProjectName); Task targetTask = new Task(taskName); diff --git a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java index da8e9a887c3..07b4bec2ada 100644 --- a/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SetProjectCategoryCommandParser.java @@ -25,11 +25,18 @@ public SetProjectCategoryCommand parse(String args) throws ParseException { } String category = args.split(" /to")[0].trim(); String projectName = args.split("/to ")[1]; + if (category.length() == 0) { + throw new ParseException("Please enter the category."); + } Project project = new Project(ParserUtil.parseName(projectName)); return new SetProjectCategoryCommand(category, project); } catch (IllegalArgumentException e) { throw new ParseException("Names should be alphanumerical and not empty."); + } catch (ArrayIndexOutOfBoundsException e) { + throw new ParseException(String.format( + MESSAGE_INVALID_COMMAND_FORMAT, + SetProjectCategoryCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java index 488a714edbe..5d24540cc95 100644 --- a/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AssignTeamCommandParserTest.java @@ -10,12 +10,10 @@ import seedu.address.logic.commands.AssignTeamCommand; import seedu.address.model.person.Name; -import seedu.address.model.project.Member; import seedu.address.model.project.Project; class AssignTeamCommandParserTest { private Project taskProject = new Project(new Name("Code")); - private Member member = new Member("James"); private List team = new ArrayList<>(); private AssignTeamCommandParser parser = new AssignTeamCommandParser(); @@ -32,7 +30,7 @@ public void parse_emptyArgs_throwsParseException() { assertParseFailure( parser, " /to Code", - "Please enter valid names."); + "Names should be alphanumerical and not empty."); assertParseFailure( parser, diff --git a/src/test/java/seedu/address/logic/parser/DeleteProjectCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteProjectCommandParserTest.java index 6b9998fd6fc..f6c14c0a082 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteProjectCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteProjectCommandParserTest.java @@ -1,6 +1,5 @@ package seedu.address.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; @@ -29,6 +28,6 @@ public void parse_emptyArgs_throwsParseException() { assertParseFailure( parser, "", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteProjectCommand.MESSAGE_USAGE)); + "Project name should be alphanumerical and not empty."); } } diff --git a/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java b/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java index ff7534cf395..42ccf8c4266 100644 --- a/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/RenameCommandParserTest.java @@ -44,7 +44,7 @@ public void parse_missingFields_failure() { // missing task name assertParseFailure(parser, "A /of /in proj", - "Please enter both the target task name and the project it belongs to."); + expectedMessageTask); } } diff --git a/src/test/java/seedu/address/logic/parser/SetProjectCategoryCommandParserTest.java b/src/test/java/seedu/address/logic/parser/SetProjectCategoryCommandParserTest.java index c0a8c99c60b..f79cbeebc02 100644 --- a/src/test/java/seedu/address/logic/parser/SetProjectCategoryCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/SetProjectCategoryCommandParserTest.java @@ -9,9 +9,6 @@ import seedu.address.logic.commands.SetProjectCategoryCommand; import seedu.address.model.person.Name; import seedu.address.model.project.Project; -import seedu.address.model.project.Task; - - class SetProjectCategoryCommandParserTest { private SetProjectCategoryCommandParser parser = new SetProjectCategoryCommandParser(); @@ -19,7 +16,6 @@ class SetProjectCategoryCommandParserTest { @Test public void parse_allFieldsPresent_success() { Project project = new Project(new Name("project")); - Task task = new Task("task"); assertParseSuccess(parser, "A /to project", new SetProjectCategoryCommand("A", project)); @@ -39,6 +35,6 @@ public void parse_missingFields_failure() { // missing category name assertParseFailure(parser, " /to project", - expectedMessage); + "Please enter the category."); } } diff --git a/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java b/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java index 27b0b9a01c7..3201b172631 100644 --- a/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/SetStatusCommandParserTest.java @@ -35,14 +35,14 @@ public void parse_missingFields_failure() { // missing project name assertParseFailure(parser, "complete /of ", - "Please enter the status and project fields."); + "Names should be alphanumerical and not empty."); assertParseFailure(parser, "complete /of task /in ", expectedMessageTask); // missing task name assertParseFailure(parser, "complete /of /in proj", - "Please enter the status, project and task fields."); + "Names should be alphanumerical and not empty."); } } diff --git a/src/test/java/seedu/address/logic/parser/ShowProjectCommandParserTest.java b/src/test/java/seedu/address/logic/parser/ShowProjectCommandParserTest.java index 65c8203d718..5687c39d246 100644 --- a/src/test/java/seedu/address/logic/parser/ShowProjectCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/ShowProjectCommandParserTest.java @@ -1,23 +1,17 @@ package seedu.address.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import org.junit.jupiter.api.Test; import seedu.address.logic.commands.ShowProjectCommand; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.project.Task; class ShowProjectCommandParserTest { private ShowProjectCommandParser parser = new ShowProjectCommandParser(); @Test public void parse_allFieldsPresent_success() { - Person project = new Person(new Name("project")); - Task task = new Task("task"); assertParseSuccess(parser, "project", new ShowProjectCommand("project")); @@ -25,11 +19,10 @@ public void parse_allFieldsPresent_success() { @Test public void parse_compulsoryFieldMissing_failure() { - String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, ShowProjectCommand.MESSAGE_USAGE); // missing project name assertParseFailure(parser, "", - expectedMessage); + "Project name should be alphanumerical and not empty."); } } From 0bdcbb98af34bed6165f8b4e9257af6a6bf16be2 Mon Sep 17 00:00:00 2001 From: modembcc Date: Mon, 15 Apr 2024 23:30:17 +0800 Subject: [PATCH 12/12] Final changes --- build.gradle | 2 +- docs/UserGuide.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index b7f9789849f..c061806df41 100644 --- a/build.gradle +++ b/build.gradle @@ -66,7 +66,7 @@ dependencies { } shadowJar { - archiveFileName = 'tp_new.jar' + archiveFileName = '[CS2103T-W08-4][DevPlanPro].jar' } run { diff --git a/docs/UserGuide.md b/docs/UserGuide.md index bb0a07775e2..813c3f503b3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -54,11 +54,11 @@ Welcome to the user guide for our CLI-based project management application! This 1. Ensure you have Java `11` or above installed in your Computer. -2. Download the latest `tp_new.jar` from [here](https://github.com/AY2324S2-CS2103T-W08-4/tp/releases/tag/v1.2). +2. Download the latest `[CS2103T-W08-4][DevPlanPro].jar` from [here](https://github.com/AY2324S2-CS2103T-W08-4/tp/releases/tag/v1.4). 3. Copy the file to the folder you want to use as the _home folder_ for your app. -4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar tp_new.jar` command to run the application.
+4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar [CS2103T-W08-4][DevPlanPro].jar` command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) Some notes about the UI: