From 66ce3caee3c46eca0279bc2432999162437cc95e Mon Sep 17 00:00:00 2001 From: coderkun Date: Tue, 27 May 2014 11:13:23 +0200 Subject: [PATCH] add e?mail notification for Character submissions that need to be reviewed by moderators --- controllers/MailController.inc | 26 ++++++ controllers/QuestsController.inc | 41 +++++++++ locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 15990 -> 16284 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 95 ++++++++++++-------- views/htmlmail/mail/charactersubmission.tpl | 2 + views/textmail/mail/charactersubmission.tpl | 2 + 6 files changed, 128 insertions(+), 38 deletions(-) create mode 100644 views/htmlmail/mail/charactersubmission.tpl create mode 100644 views/textmail/mail/charactersubmission.tpl diff --git a/controllers/MailController.inc b/controllers/MailController.inc index b6519cbe..f4696091 100644 --- a/controllers/MailController.inc +++ b/controllers/MailController.inc @@ -80,6 +80,32 @@ $this->set('character', $newCharacter); } + + /** + * Action: charactersubmission. + * + * Generate a mail message to notify of a new Character + * submission for a Quest that needs to be valuated. + * + * @param array $receiver User that the message will be send to + * @param array $seminary Seminary which the Quest belongs to + * @param array $questgroup Questgroup of Quest + * @param array $quest Quest the answer has been submitted for + * @param array $character Character that send the submission + */ + public function charactersubmission($receiver, $seminary, $questgroup, $quest, $character) + { + // Set subject + $this->response->setSubject(_('New Character submission')); + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('questgroup', $questgroup); + $this->set('quest', $quest); + $this->set('character', $character); + } + } ?> diff --git a/controllers/QuestsController.inc b/controllers/QuestsController.inc index fb68e11a..4b23d8af 100644 --- a/controllers/QuestsController.inc +++ b/controllers/QuestsController.inc @@ -660,6 +660,9 @@ else { // Mark Quest as submitted $this->Quests->setQuestSubmitted($quest['id'], $character['id']); + + // Send notification mail + $this->sendSubmissionMail($seminary, $questgroup, $quest, $character); // Redirect $this->redirect($this->linker->link(array(), 5, true, null, false, 'task')); @@ -849,6 +852,44 @@ return $questtypeAgent->render(); } + + /** + * Send mail for new Character submission. + * + * @param array $seminary Seminary which the Quest belongs to + * @param array $questgroup Questgroup of Quest + * @param array $quest Quest the answer has been submitted for + * @param array $character Character that send the submission + */ + private function sendSubmissionMail($seminary, $questgroup, $quest, $character) + { + // Get system moderators + $moderators = $this->Users->getUsersWithRole('moderator'); + + // Send notification mail + try { + foreach($moderators as &$moderator) + { + \hhu\z\Utils::sendMail( + $moderator['email'], + 'charactersubmission', + true, + array( + $moderator, + $seminary, + $questgroup, + $quest, + $character + ), + $this->linker + ); + } + } + catch(\hhu\z\exceptions\MailingException $e) { + $this->log($e->getMessage()); + } + } + } ?> diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index dc70c71f49dfdaaee277df531ac9bdb153e70082..0e3f0964d902c00bb9f0f8597660a1f63b26a9ff 100644 GIT binary patch delta 5566 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 EUrHxg*Z=?k delta 5316 zcmYk;3z&~p9>DQqOv7Lp3}U1~Oa?QUX_RJc$x>mvtjo5wHd|U$vte7U=x@bpl`Mr6 zTDO%b>{!`abd#)VH@eV;)+OvFqi1W^Q~T_GzyJ5l^K>4+|L2_da^7=(=e+M&lKN^& z>R_|X1%dJf(Uw?WFN8sLLa1os(GbSug-{>IVm3~Q?J3xf_DpPutFRSr#IE={Ho|{l zW31C6xjz@}uMM6PLMn8m(u@OLFb6BJ4PK4h8%AR;PR367Aa=%0Xvh2UJUos?cuva@ z_!oNcV|ySvpb2Py%di1fV;0X3+o>?=uoE5eo7f9KKp&jLv^?Gpn_^dVz?JBOuf^tA zh3#=Vo{OuHF@= znR^b+$WF}1chG^=p#5jIPOi&Cm$Cz;S=bv{lh7C43;m;`(1G2D=i^+Y&#(dc z7hdPb>kp%u`X4&*My#XPwL|;ujjnwqX5xT0_7Mwf6eI`a?W`LEFazCkCL%}M*oMKh3}PyRj8i31L#8=9&C=nRHO$DkceMjt#2 zy>AZs;78Gpm!KW5L7o{lq1V5GF410ek9>k=AS1=JU88zffcfZyDq{O8^oDWBehd%A z^DEH@Y>e(f*Z$LZ{!2778EhmsVMDav_OV@zo=^3sVv2|01vnBr;r-~1Ytc=%1D)yn z*bxt*nX1c2z;<)={@!S2ZbD~%3)=r!G((foO*|9Ha4O8B;tea&)IE)Mycx~RtLQ-X z$M)yZ40fWMt0nq?67>4Z(9{k^2YdtC-zap(<1xLI*wpub78OUd7`<^dI`XHZ8`1ZD z3;KZF=uAFFJ3fIv=s$P~x{f8#2P<(L4#20dC!R*nw`W~@q^Mj+#g3+<1DTJGbXjb# zK{Hbw-GoI#ZcTr4YBEGe3xap^hSb zg|q1H&8K(UU64az5W4BAqEpem@(}uZvPie*&qe#`V*byeQjDgu z472bG^v0{vkq<>PP!*koN9r&G^!{5fOwNx(2R0Fze7FzI%u0L%H=y5*DWu1@Ahn2! zAC^_<2w#Z4iLUt}^z}Q1W~y#c@;9J4`udfkn{P1kQ42$nZ%?=jy?+j}+~EoAjysSS zC7i+%-~XJh$?H&w4&+X3fHTmJ=VCT4iszSOZ`xbYrKv#&mf0;CXdXJSA~d5{pnKqY z^ty3q1}0+*-~RxF(2Q1NOW*(9RNNGwpd&nk-cYAF>9_@E(e4;6LQ~xn3vdW}e--*#rlKp*jP68V z?~l+-WRiC$(iZ*u6H2I<^1)aiN1(g&W^|;Z(bwi)w8LkyA?`#6`ZjvqF|^~a(M{R7 zM>2stwEqrRpH15xJzw6F{JR+{dL}cx37gQq1x?{ZbnT~MI)&&1mZ7QLgkJwzJpLY< zsgvkLYS0ItMf=NS7WUT^&0u~n^6yA`bHLP8qNy5&W?(A1S*D|}(^518FC%YWI1mk` z$zCYL9FCWx1M83Jw*t-BUFd+OU}Kz>qT&M|L21n!hQ&>d1epzBEdi_Y` zFL4-;>9+-)z#{a!u>*N?!+~hsi;@g=M<<>tqmoCZ4?4nY&{W-s&R`6h(tFSWrO+8Z zfX-wgI+Nv?iyP4tzl7eu2fhA7wEvUngTF)uoC;r4@xr?0$%C7tHxyuVEJh#D554g^ zbU-7bBhd+rMpHc*y>1~oz$NIw*P!2xjmRUziFBLwZ^zL=92kx)XIO#km+&t3!Fm@b zsqTjkbQn6o(ddjPMrXwH3(x_tMl-P)9l&hGf zza`Owu#6$jPuJLB_%mWiY|AfWeGMKVeiGZapaZmgK`bL)vq4Gk5xkf9h#<-7>_SNW zgP(oGQCogN<=2F- z_EFz|-^Je$ml5rWZ=Dd7&cEG2%Ft|dQR;B(?8 z!ta75^<#bx5gEkqi3x-s9ZQRZa2?)9{FQLPD~P`k>xe6fdc;9uCh;+G6;WIKu+^5j zRN4}gh*8AVc9%=#=Y(Z&LU;-n6Tc%qBlZ&46WPRL#9hQ%qP9Fo<&)T$i`B6%r9|)8 z=93?8kM(=fGMy4Cx5k4HM7v^RqJZd5bS5nC5lxBbi7kZXa$*E=f*4M`NZd>`Bi)sL5DH2go=h5Cp9 diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.po b/locale/de_DE/LC_MESSAGES/The Legend of Z.po index 7fc50c2c..279c3c62 100644 --- a/locale/de_DE/LC_MESSAGES/The Legend of Z.po +++ b/locale/de_DE/LC_MESSAGES/The Legend of Z.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: The Legend of Z\n" -"POT-Creation-Date: 2014-05-25 22:38+0100\n" -"PO-Revision-Date: 2014-05-25 22:41+0100\n" +"POT-Creation-Date: 2014-05-27 10:48+0100\n" +"PO-Revision-Date: 2014-05-27 10:52+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" @@ -18,26 +18,32 @@ msgstr "" "X-Poedit-SearchPath-2: controllers\n" #: controllers/CharactersController.inc:368 -#: controllers/UsersController.inc:289 views/html/characters/index.tpl:39 +#: controllers/UsersController.inc:312 views/ajax/characters/index.tpl:10 +#: views/ajax/users/index.tpl:10 views/html/characters/index.tpl:39 #: views/html/characters/manage.tpl:35 views/html/characters/manage.tpl:50 -#: views/html/characters/manage.tpl:58 views/html/users/manage.tpl:28 -#: views/html/users/manage.tpl:41 views/html/users/manage.tpl:49 +#: views/html/characters/manage.tpl:58 views/html/users/index.tpl:26 +#: views/html/users/manage.tpl:28 views/html/users/manage.tpl:41 +#: views/html/users/manage.tpl:49 msgid "Admin" msgstr "Administrator" #: controllers/CharactersController.inc:374 -#: controllers/UsersController.inc:295 views/html/characters/index.tpl:40 +#: controllers/UsersController.inc:318 views/ajax/characters/index.tpl:12 +#: views/ajax/users/index.tpl:12 views/html/characters/index.tpl:40 #: views/html/characters/manage.tpl:36 views/html/characters/manage.tpl:51 -#: views/html/characters/manage.tpl:59 views/html/users/manage.tpl:29 -#: views/html/users/manage.tpl:42 views/html/users/manage.tpl:50 +#: views/html/characters/manage.tpl:59 views/html/users/index.tpl:27 +#: views/html/users/manage.tpl:29 views/html/users/manage.tpl:42 +#: views/html/users/manage.tpl:50 msgid "Moderator" msgstr "Moderator" #: controllers/CharactersController.inc:380 -#: controllers/UsersController.inc:301 views/html/characters/index.tpl:41 +#: controllers/UsersController.inc:324 views/ajax/characters/index.tpl:14 +#: views/ajax/users/index.tpl:14 views/html/characters/index.tpl:41 #: views/html/characters/manage.tpl:37 views/html/characters/manage.tpl:53 -#: views/html/characters/manage.tpl:61 views/html/users/manage.tpl:30 -#: views/html/users/manage.tpl:44 views/html/users/manage.tpl:52 +#: views/html/characters/manage.tpl:61 views/html/users/index.tpl:28 +#: views/html/users/manage.tpl:30 views/html/users/manage.tpl:44 +#: views/html/users/manage.tpl:52 msgid "User" msgstr "Benutzer" @@ -49,7 +55,11 @@ msgstr "Neue Benutzerregistrierung" msgid "New Character registration" msgstr "Neue Charakterregistrierung" -#: controllers/QuestsController.inc:732 +#: controllers/MailController.inc:99 +msgid "New Character submission" +msgstr "Neuer Lösungsvorschlag" + +#: controllers/QuestsController.inc:735 #: questtypes/submit/html/submission.tpl:30 views/html/quests/quest.tpl:45 #: views/html/quests/submissions.tpl:30 msgid "solved" @@ -229,6 +239,12 @@ msgstr "Texteingabe" msgid "%d XPs" msgstr "%d XP" +#: views/ajax/users/index.tpl:20 views/html/users/index.tpl:25 +#: views/html/users/manage.tpl:31 views/html/users/user.tpl:22 +#, php-format +msgid "registered on %s" +msgstr "registriert am %s" + #: views/binary/error/index.tpl:1 views/html/error/index.tpl:1 msgid "Error" msgstr "Fehler" @@ -542,8 +558,9 @@ msgstr "%squests" #: views/html/charactergroupsquests/create.tpl:77 #: views/html/charactergroupsquests/edit.tpl:77 #: views/html/charactergroupsquests/edit.tpl:78 -#: views/html/characters/index.tpl:22 views/html/characters/manage.tpl:17 -#: views/html/quests/create.tpl:29 views/html/quests/create.tpl:30 +#: views/html/characters/index.tpl:22 views/html/characters/index.tpl:81 +#: views/html/characters/manage.tpl:17 views/html/quests/create.tpl:29 +#: views/html/quests/create.tpl:30 msgid "XPs" msgstr "XP" @@ -828,20 +845,30 @@ msgid "Manage" msgstr "Verwalten" #: views/html/characters/index.tpl:23 views/html/characters/manage.tpl:18 -#: views/html/users/manage.tpl:15 +#: views/html/users/index.tpl:15 views/html/users/manage.tpl:15 msgid "Role" msgstr "Rolle" #: views/html/characters/index.tpl:24 views/html/characters/manage.tpl:19 -#: views/html/users/manage.tpl:16 +#: views/html/users/index.tpl:16 views/html/users/manage.tpl:16 msgid "Date of registration" msgstr "Registrierungsdatum" #: views/html/characters/index.tpl:29 views/html/characters/manage.tpl:24 -#: views/html/users/manage.tpl:18 +#: views/html/users/index.tpl:18 views/html/users/manage.tpl:18 msgid "Sort list" msgstr "Liste sortieren" +#: views/html/characters/index.tpl:52 views/html/quests/index.tpl:80 +#: views/html/users/index.tpl:36 +msgid "Show more" +msgstr "Weitere anzeigen" + +#: views/html/characters/index.tpl:53 views/html/quests/index.tpl:81 +#: views/html/users/index.tpl:37 +msgid "Show all" +msgstr "Alle anzeigen" + #: views/html/characters/manage.tpl:10 msgid "Manage Characters" msgstr "Charaktere verwalten" @@ -872,9 +899,9 @@ msgstr "Login" #: views/html/introduction/index.tpl:7 views/html/users/create.tpl:84 #: views/html/users/create.tpl:85 views/html/users/edit.tpl:87 #: views/html/users/edit.tpl:89 views/html/users/edit.tpl:91 -#: views/html/users/login.tpl:12 views/html/users/login.tpl:13 -#: views/html/users/manage.tpl:14 views/html/users/register.tpl:83 -#: views/html/users/register.tpl:84 +#: views/html/users/index.tpl:14 views/html/users/login.tpl:12 +#: views/html/users/login.tpl:13 views/html/users/manage.tpl:14 +#: views/html/users/register.tpl:83 views/html/users/register.tpl:84 msgid "Username" msgstr "Benutzername" @@ -1033,14 +1060,6 @@ msgstr "Filter anwenden" msgid "open submissions" msgstr "offene Lösungsvorschläge" -#: views/html/quests/index.tpl:80 -msgid "Show more" -msgstr "Weitere anzeigen" - -#: views/html/quests/index.tpl:81 -msgid "Show all" -msgstr "Alle anzeigen" - #: views/html/quests/quest.tpl:11 msgid "Prolog" msgstr "Prolog" @@ -1288,12 +1307,6 @@ msgstr "Benutzer bearbeiten" msgid "Create new user" msgstr "Neuen Benutzer erstellen" -#: views/html/users/index.tpl:11 views/html/users/manage.tpl:31 -#: views/html/users/user.tpl:22 -#, php-format -msgid "registered on %s" -msgstr "registriert am %s" - #: views/html/users/login.tpl:8 msgid "Login failed" msgstr "Die Anmeldung war nicht korrekt" @@ -1321,6 +1334,16 @@ msgid "User “%s” has registered a new Character for the Seminary “%s”" msgstr "" "Der Benutzer „%s“ hat einen neuen Charakter für das Seminar „%s“ erstellt" +#: views/htmlmail/mail/charactersubmission.tpl:1 +#: views/textmail/mail/charactersubmission.tpl:1 +#, php-format +msgid "" +"Character “%s” has submitted a new submission for the Quest “%s” of the " +"Seminary “%s”" +msgstr "" +"Der Charakter „%s“ hat einen neuen Lösungsvorschlag für die Quest „%s“ des " +"Seminars „%s“ eingereicht" + #: views/htmlmail/mail/userregistration.tpl:1 #: views/textmail/mail/userregistration.tpl:1 msgid "A new user has been registered" @@ -1332,10 +1355,6 @@ msgstr "Ein neuer Benutzer wurde registriert" msgid "Hello %s" msgstr "Hallo %s" -#, fuzzy -#~ msgid "New Character submission" -#~ msgstr "Neue Gruppengruppe" - #, fuzzy #~ msgid "Character submission solved" #~ msgstr "gelöst" diff --git a/views/htmlmail/mail/charactersubmission.tpl b/views/htmlmail/mail/charactersubmission.tpl new file mode 100644 index 00000000..ebd247d2 --- /dev/null +++ b/views/htmlmail/mail/charactersubmission.tpl @@ -0,0 +1,2 @@ +: +//// diff --git a/views/textmail/mail/charactersubmission.tpl b/views/textmail/mail/charactersubmission.tpl new file mode 100644 index 00000000..d65692e9 --- /dev/null +++ b/views/textmail/mail/charactersubmission.tpl @@ -0,0 +1,2 @@ +. +link(array('quests','submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),0,false,null,false,null,true)?>