From 0c628f9df458154a3d5a42a9d00d99b87f501e20 Mon Sep 17 00:00:00 2001 From: Remco Tolsma <869674+remcotolsma@users.noreply.github.com> Date: Thu, 15 Feb 2024 20:26:44 +0100 Subject: [PATCH] Add project start date, end date and billed to fields. Closes https://github.com/pronamic/orbis.pronamic.nl/issues/35. --- admin/meta-box-project-details.php | 77 +++++++++++++++++++++++++++++ classes/AdminProjectPostType.php | 3 ++ languages/orbis-projects-nl_NL.mo | Bin 7736 -> 7866 bytes languages/orbis-projects-nl_NL.po | 61 +++++++++++++---------- languages/orbis-projects.pot | 59 +++++++++++++--------- 5 files changed, 151 insertions(+), 49 deletions(-) diff --git a/admin/meta-box-project-details.php b/admin/meta-box-project-details.php index a0ec852..6bdcdfe 100644 --- a/admin/meta-box-project-details.php +++ b/admin/meta-box-project-details.php @@ -29,6 +29,36 @@ $hourly_rate = get_post_meta( $post->ID, '_orbis_hourly_rate', true ); +$start_date = null; + +$start_date_string = \get_post_meta( $post->ID, '_orbis_project_start_date', true ); + +if ( '' !== $start_date_string ) { + $value = DateTimeImmutable::createFromFormat( 'Y-m-d', $start_date_string ); + + $start_date = ( false === $value ) ? null : $value->setTime( 0, 0 ); +} + +$end_date = null; + +$end_date_string = \get_post_meta( $post->ID, '_orbis_project_end_date', true ); + +if ( '' !== $end_date_string ) { + $value = DateTimeImmutable::createFromFormat( 'Y-m-d', $end_date_string ); + + $end_date = ( false === $value ) ? null : $value->setTime( 0, 0 ); +} + +$billed_to = null; + +$billed_to_string = \get_post_meta( $post->ID, '_orbis_project_billed_to', true ); + +if ( '' !== $billed_to_string ) { + $value = DateTimeImmutable::createFromFormat( 'Y-m-d', $billed_to_string ); + + $billed_to = ( false === $value ) ? null : $value->setTime( 0, 0 ); +} + ?> @@ -189,6 +219,53 @@ + + + + + + + + +
+ + + ', + \esc_attr( null === $start_date ? '' : $start_date->format( 'Y-m-d' ) ) + ), + \sprintf( + '', + esc_attr( null === $end_date ? '' : $end_date->format( 'Y-m-d' ) ) + ) + ), + [ + 'input' => [ + 'id' => true, + 'name' => true, + 'value' => true, + 'type' => true, + ], + ] + ); + + ?> +
+ + + +
diff --git a/classes/AdminProjectPostType.php b/classes/AdminProjectPostType.php index 5bbe2e8..534e416 100644 --- a/classes/AdminProjectPostType.php +++ b/classes/AdminProjectPostType.php @@ -180,6 +180,9 @@ public function save_project( $post_id, $post ) { '_orbis_project_invoice_number' => FILTER_SANITIZE_STRING, '_orbis_invoice_reference' => FILTER_SANITIZE_STRING, '_orbis_invoice_line_description' => FILTER_SANITIZE_STRING, + '_orbis_project_start_date' => FILTER_SANITIZE_STRING, + '_orbis_project_end_date' => FILTER_SANITIZE_STRING, + '_orbis_project_billed_to' => FILTER_SANITIZE_STRING, ]; if ( current_user_can( 'edit_orbis_project_administration' ) ) { diff --git a/languages/orbis-projects-nl_NL.mo b/languages/orbis-projects-nl_NL.mo index d469970d20fa96ca82de8ddcdcda2ede2785cbf9..0035c1bfd8f683c2ff63502cc5cf36b887432b8c 100644 GIT binary patch delta 2946 zcmX|@eN2{B7>5sv%7>x>DQXBI5+tW6Yg9jTnJ~u6v)qIahV76VFWCKbKxHAH^VUc0m#oC zvHo#5oBrF7=K}5n8@ON`gEN_M1*XEQ)}PH&q4cAma*KtUmt;(Z3YZ0za2||;JMDfQ z)B+lzo^OZ2#CM%Ew1RGLz`57q9Qu8bpF7Eg9Nfn+8jeEU{|3s@b-RB9&Y(X5E8ss+ z36wEei8Vtd&;es$H;f>@J3-?Pcm~Sh1>@&XCH~5I4YE7#7S#L+D90gWuLPr@wjd5p zgXvJu`=Bba4(hoQxET6jKsR2bp;GoiB`^T_xl>$J@=u@~Uxae_we_zKHtmB6o16})W>gfL4JmvB)=J{S-4;SyL0FTJfp?FGF&4$Dk@V2p7PQj9);-xdxdRaKBA9ytGxCNYd9{B|te!h1!xl z<2I;3yP*%(SicYIEf|0ba2l$T=j{Gx*8dVJv2Q)H|2Jr8ul|PGt02-<$wHyVBO!}) zF*cq8wc>0jN1LD$EVXezR3aTvehx!z)oV~&+z*@JAdJ%cAHl{c;{>P#GNATym5moc zRiXlFMf;%~cS0p{*zWg31vm>SsvCmxd&zhiYW`19XKDflw1U5Akc)HyaG z&n9ezO0XEJ0(Hg%P-o=`l*4|gEqWg+ff1;LE<=_6CRDX|9l{KQrQGq&`wyM)>aoCL8j6yuhKwed9Xskl{ zXdhaGWOe9XbP(wf?m~NzPO@y{B)lu<%CltS6rQ5-B%0Hk8R~uQywjwkDBFT6Q8PM( zI5aK?rJ@p4iptPBbRRl^c(vRkNT*Zfdj_?kl}MjA*-0%-!@6JlDZfLKmZ`vEYEHkk+zHMLpGGAh=t8bbbE~sy4sIB3~ vaA)L8K{I?At9>hnL!t*lmrOp8-Z=S0VQpPybz6H&ZEXv)(;ItF#`gXPoVWIn delta 2845 zcmZA23usqW9Ki8o&Zf=gT$=N3I@dB?^VNK8y?nK%R+ia(EzL)2YHg-z>0cvFj54%T zh?I~-sW2K+T4+!bC6V;7Kr4eR=phwWU`zXcw_hL~?r)!S?!Eu>_?>(24ph8Zp7}aI z>$yZ(Lv$euvr>8$`?ll{<>VzP<>R-Qjb|_i8!!)B(#XY**anNEJp{QWjX{nyA==Zi zHSKxG?=op=oLC!f!i%|K2lm5V(f$lu(LRpO?NppU9sYq1*nmzrn^7*qPH2B6=mG|# zzpub7#!sWExPq$26Ddu`OKI02M_R}q`b;aZ9j-&KKaX~_C$7JaEodLa8hj6(Kp{6f zu_5RLMqmL}VJ_pRSyb9$9opgA@M$!~Tf^PR?xg+b{Rh#GkD?Pij&8vZcoF`E{{AeQ zksMa(@48`UEH(dL7)!+z)u0oYgB)owe@yu*wBz+?hufmP2kATQM~?Ja zT!dzzFPf1-=y=1?@v1UZoN+bUK`rv!q-Al#tCV7X4D0PUv` z-I{*rmX_fnEJyo&8J+MU%=Z2Nh>Cmnd0aS+rm6v5Q7#wlxHCGDLiBnWIzT0ooHQQo zcve`8-oF}shBl)M*ot(Wc4NlMJ5-ABOXNuB`D4lpIyMd59bIuTy3#WAcO%gIr=Sy9 zg1&AWqP+v1&_47nco*I3Bj^?!>q!2+;Y8fj9`;2iFcclQ5*=t7 z-iveb8a#qL7U^$vYx4P*YQG)O6&Irem!KIb&rmUCBhiUeBXdX#&;iz=9Xx|h>_zn3 z{u{0uLsvMScXlvNLNoIedVUu=;9hhBZ=mC44pXt?FVF$MM_2x9wEqdS`8fDY zv_-!U1<2_|u-w)} zdNk~V!-%Vh;lwoJcA__NVR?v#&%>ZNX+{?ltD=1)E+e`$t)G7oG~AbQgs(^`VezTH zu(;=zGNOi9V1v?=aGw_uK6vv9OaCTP3C<&?M!OQH5SfZN;lpxa@ged_XPeVlq8D*9 z@c=P~@Zo7s)Dk{7_Yu{^|I2?1e2@z(iM!*52~B1ipLU+H#&3HY976a&`Wjt9TuaO% zZXzs&L{Vdn?*aN$FCpf}Ilp)Vqwc%DkQhZ26QhaoMC#qYu&zhljOBIpJ#)5Z*MFD) XShE(TLx&9\n" "Language-Team: Pronamic \n" "Language: nl_NL\n" @@ -44,63 +44,63 @@ msgstr "Pronamic" msgid "https://www.pronamic.eu/" msgstr "https://www.pronamic.nl/" -#: admin/meta-box-project-details.php:37 templates/projects-to-invoice.php:180 +#: admin/meta-box-project-details.php:67 templates/projects-to-invoice.php:180 #: templates/projects-to-invoice.php:184 #: templates/projects-without-agreement.php:29 msgid "Orbis ID" msgstr "Orbis ID" -#: admin/meta-box-project-details.php:45 templates/projects-table-view.php:33 +#: admin/meta-box-project-details.php:75 templates/projects-table-view.php:33 msgid "Client" msgstr "Klant" -#: admin/meta-box-project-details.php:48 +#: admin/meta-box-project-details.php:78 msgid "Select Client" msgstr "Selecteer klant" -#: admin/meta-box-project-details.php:57 classes/AdminProjectPostType.php:46 +#: admin/meta-box-project-details.php:87 classes/AdminProjectPostType.php:46 msgid "Price" msgstr "Prijs" -#: admin/meta-box-project-details.php:65 +#: admin/meta-box-project-details.php:95 msgid "Hourly Rate" msgstr "Uurtarief" -#: admin/meta-box-project-details.php:73 classes/AdminProjectPostType.php:47 +#: admin/meta-box-project-details.php:103 classes/AdminProjectPostType.php:47 #: templates/projects-to-invoice.php:189 templates/projects-to-invoice.php:192 #: templates/projects-to-invoice.php:198 msgid "Time" msgstr "Tijd" -#: admin/meta-box-project-details.php:79 +#: admin/meta-box-project-details.php:109 msgid "" "You can enter time as 1.5 or 1:30 (they both mean 1 hour and 30 minutes)." msgstr "" "Je kunt de tijd invoeren als 1.5 of 1:30 (beide zijn 1 uur en 30 minuten)." -#: admin/meta-box-project-details.php:86 +#: admin/meta-box-project-details.php:116 msgid "Agreement ID" msgstr "Akkoord ID" -#: admin/meta-box-project-details.php:93 +#: admin/meta-box-project-details.php:123 msgid "Choose an Agreement" msgstr "Kies een akkoord" -#: admin/meta-box-project-details.php:96 +#: admin/meta-box-project-details.php:126 msgid "Set as Agreement" msgstr "Stel in als akkoord" -#: admin/meta-box-project-details.php:96 +#: admin/meta-box-project-details.php:126 msgid "Choose a Agreement" msgstr "Kies een akkoord" -#: admin/meta-box-project-details.php:99 +#: admin/meta-box-project-details.php:129 msgid "You can select an .PDF or .TXT file from the WordPress media library." msgstr "" "Je kunt een .PDF of .TXT bestand selecteren uit de WordPress media " "bibliotheek." -#: admin/meta-box-project-details.php:100 +#: admin/meta-box-project-details.php:130 msgid "" "If you received the agreement by mail print the complete mail conversation " "with an PDF printer." @@ -108,46 +108,57 @@ msgstr "" "Als je een akkoord per e-mail hebt ontvangen print dan de complete e-mail " "conversatie uit met een PDF-printer." -#: admin/meta-box-project-details.php:107 +#: admin/meta-box-project-details.php:137 msgid "Finished" msgstr "Afgerond" -#: admin/meta-box-project-details.php:113 +#: admin/meta-box-project-details.php:143 msgid "Project is finished" msgstr "Project is afgerond" -#: admin/meta-box-project-details.php:121 templates/projects-table-view.php:45 +#: admin/meta-box-project-details.php:151 templates/projects-table-view.php:45 msgid "Invoicable" msgstr "Factureerbaar" -#: admin/meta-box-project-details.php:127 +#: admin/meta-box-project-details.php:157 msgid "Project is invoicable" msgstr "Project is factureerbaar" -#: admin/meta-box-project-details.php:137 +#: admin/meta-box-project-details.php:167 msgid "Invoiced" msgstr "Gefactureerd" -#: admin/meta-box-project-details.php:143 +#: admin/meta-box-project-details.php:173 msgid "Project is invoiced" msgstr "Project is gefactureerd" -#: admin/meta-box-project-details.php:152 templates/projects-table-view.php:105 +#: admin/meta-box-project-details.php:182 templates/projects-table-view.php:105 msgid "Invoice reference" msgstr "Factuurreferentie" -#: admin/meta-box-project-details.php:160 +#: admin/meta-box-project-details.php:190 msgid "Invoice Line Description" msgstr "Factuurregelbeschrijving" -#: admin/meta-box-project-details.php:175 +#: admin/meta-box-project-details.php:205 msgid "Payment Method" msgstr "Betaalmethode" -#: admin/meta-box-project-details.php:182 +#: admin/meta-box-project-details.php:212 msgid "— Select Payment Method —" msgstr "— Selecteer betaalmethode —" +#. translators: 1: input for start date, 2: input for end date +#: admin/meta-box-project-details.php:238 +msgctxt "including" +msgid "%1$s to %2$s" +msgstr "%1$s t/m %2$s" + +#: admin/meta-box-project-details.php:263 +msgctxt "including" +msgid "Billed to" +msgstr "Gefactureerd t/m" + #: admin/meta-box-project-invoices.php:17 classes/AdminProjectPostType.php:50 #: templates/project-invoices.php:16 templates/projects-table-view.php:42 msgid "Date" diff --git a/languages/orbis-projects.pot b/languages/orbis-projects.pot index dbee274..414e119 100644 --- a/languages/orbis-projects.pot +++ b/languages/orbis-projects.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2024-02-15T08:31:59+00:00\n" +"POT-Creation-Date: 2024-02-15T19:23:22+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.10.0\n" "X-Domain: orbis-projects\n" @@ -39,32 +39,32 @@ msgstr "" msgid "https://www.pronamic.eu/" msgstr "" -#: admin/meta-box-project-details.php:37 +#: admin/meta-box-project-details.php:67 #: templates/projects-to-invoice.php:180 #: templates/projects-to-invoice.php:184 #: templates/projects-without-agreement.php:29 msgid "Orbis ID" msgstr "" -#: admin/meta-box-project-details.php:45 +#: admin/meta-box-project-details.php:75 #: templates/projects-table-view.php:33 msgid "Client" msgstr "" -#: admin/meta-box-project-details.php:48 +#: admin/meta-box-project-details.php:78 msgid "Select Client" msgstr "" -#: admin/meta-box-project-details.php:57 +#: admin/meta-box-project-details.php:87 #: classes/AdminProjectPostType.php:46 msgid "Price" msgstr "" -#: admin/meta-box-project-details.php:65 +#: admin/meta-box-project-details.php:95 msgid "Hourly Rate" msgstr "" -#: admin/meta-box-project-details.php:73 +#: admin/meta-box-project-details.php:103 #: classes/AdminProjectPostType.php:47 #: templates/projects-to-invoice.php:189 #: templates/projects-to-invoice.php:192 @@ -72,76 +72,87 @@ msgstr "" msgid "Time" msgstr "" -#: admin/meta-box-project-details.php:79 +#: admin/meta-box-project-details.php:109 msgid "You can enter time as 1.5 or 1:30 (they both mean 1 hour and 30 minutes)." msgstr "" -#: admin/meta-box-project-details.php:86 +#: admin/meta-box-project-details.php:116 msgid "Agreement ID" msgstr "" -#: admin/meta-box-project-details.php:93 +#: admin/meta-box-project-details.php:123 msgid "Choose an Agreement" msgstr "" -#: admin/meta-box-project-details.php:96 +#: admin/meta-box-project-details.php:126 msgid "Set as Agreement" msgstr "" -#: admin/meta-box-project-details.php:96 +#: admin/meta-box-project-details.php:126 msgid "Choose a Agreement" msgstr "" -#: admin/meta-box-project-details.php:99 +#: admin/meta-box-project-details.php:129 msgid "You can select an .PDF or .TXT file from the WordPress media library." msgstr "" -#: admin/meta-box-project-details.php:100 +#: admin/meta-box-project-details.php:130 msgid "If you received the agreement by mail print the complete mail conversation with an PDF printer." msgstr "" -#: admin/meta-box-project-details.php:107 +#: admin/meta-box-project-details.php:137 msgid "Finished" msgstr "" -#: admin/meta-box-project-details.php:113 +#: admin/meta-box-project-details.php:143 msgid "Project is finished" msgstr "" -#: admin/meta-box-project-details.php:121 +#: admin/meta-box-project-details.php:151 #: templates/projects-table-view.php:45 msgid "Invoicable" msgstr "" -#: admin/meta-box-project-details.php:127 +#: admin/meta-box-project-details.php:157 msgid "Project is invoicable" msgstr "" -#: admin/meta-box-project-details.php:137 +#: admin/meta-box-project-details.php:167 msgid "Invoiced" msgstr "" -#: admin/meta-box-project-details.php:143 +#: admin/meta-box-project-details.php:173 msgid "Project is invoiced" msgstr "" -#: admin/meta-box-project-details.php:152 +#: admin/meta-box-project-details.php:182 #: templates/projects-table-view.php:105 msgid "Invoice reference" msgstr "" -#: admin/meta-box-project-details.php:160 +#: admin/meta-box-project-details.php:190 msgid "Invoice Line Description" msgstr "" -#: admin/meta-box-project-details.php:175 +#: admin/meta-box-project-details.php:205 msgid "Payment Method" msgstr "" -#: admin/meta-box-project-details.php:182 +#: admin/meta-box-project-details.php:212 msgid "— Select Payment Method —" msgstr "" +#. translators: 1: input for start date, 2: input for end date +#: admin/meta-box-project-details.php:238 +msgctxt "including" +msgid "%1$s to %2$s" +msgstr "" + +#: admin/meta-box-project-details.php:263 +msgctxt "including" +msgid "Billed to" +msgstr "" + #: admin/meta-box-project-invoices.php:17 #: classes/AdminProjectPostType.php:50 #: templates/project-invoices.php:16