From 6bf26787d3541b2bf80f224f4c53e894b1cabfdb Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Mon, 6 Nov 2023 10:01:52 +0100
Subject: [PATCH] fixed messages and competency body

---
 dta.zip                              | Bin 19032 -> 19148 bytes
 dta/lang/en/assignsubmission_dta.php |  12 ++++++------
 dta/models/DtaResult.php             |  11 +++++++----
 dta/utils/view.php                   |   3 ++-
 4 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/dta.zip b/dta.zip
index 518b55068e577eaa52d8c3800486db8b3ffacef4..3dc4044545d887c632ab5dd8f94f236ef472dcb1 100644
GIT binary patch
delta 10022
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
S@=HR|m1GfD{=w!jF#iYJ2h{lh

delta 9821
zcmZ8{Wl$YJlP&J<?(XjH?h@SH9m0i+yI(B0LkRBf!QI_85V$~ad*8mTw^jT4&(u`c
z={fzUtIu>#XF#r}LxM;th#HA1U{Twut@TA`C-i<GKtLRUW?=b%Ji!{JwNF7STO-Ua
zD+Ii#J2pn?k*E!;ub26dkM<6|ymWMZ4d}z%^c=mxzYKNd<*2i3BO;{~(4K+66QE57
zv}?Wc1Yw!as(+PgUW`e*WKtW4e-Xjd^5%uFL>h4q*AL09rEtPVoec?5<F!g>Ls#6T
z@@f1r#vx9Z@M@g|c0#rv?sqV<USGkZ7xqR(8+#1X^i<(%S%YP)jSbLH1Q!!bZb|TH
z#_IhgNGd|1lX#G9)$Dz+ItFgw#5}A#P|gm?5(hv<sEC52B%J(3%!Ym>7p@XqYpkSn
zaqX{^xWzro8Fd1mp+g$ottnV|B#u+@h6QE65u(<T?UD<C{dt4W8^r#i1uCO+wr+Kl
z>$N<=Cx!kPw3A9m=?O%H729yJZ+~ypuf>LFkA#y8MGAT)U%~sgR~sJ}IAkJ)0|cfC
z^vz>_W@3cu`@g3q;?I`eq(d0bXmDTwQyq~{=tLZ6Nr(=_8GA*_tW6-nnsxf5x|xpW
zh;0Jvu1x@N&xIyJu{P6m#$KxIp#!3PN3lWS<~vI3!*@~R>dmnnl&Qbxr{M9_g;;F)
zeHfL6Q%8qbmTOZzLyr^lff`(8n@d?nmQJSvVLpLaHl3*)RzZ{wqJ7Ua_ioD#`5fr=
z_DSiXS(pv!`1H&k_fi|$XlDJ%qSttO@CAtw%?K(mj*wLHH!%n$nWVMgbxV@=vRorB
z0{|v-9oR3J74xL-E0VR_78)7wS2QH;<|ig6H+Ir5!E&YyxX${E>o?;TpkCCPmAzto
zI&M2Sk;U3qS@(sfu&*~CB)L>A#o~0d6qEi+Rjq9;Kx07o5o%XQojI9T-%%5`|3(RY
zspJThqqOn}Elc>is=At2BXEgpku!t3^%o34$-tY;9daNyiPGOhs+<{x*BoE%a4A#x
z_YN4w_)zZo`N;Ez939{U&fP{ip!JZvAkA$9G>YJt34uJNp|NzeG^;Wsx=$<fB#ba5
z=N<_(>orsvam16%+3gd3CgB|i1Nta@t3bd<N4}qUBkPGiJuSn~bgkP9YQAe`Xr(q=
z+Tt`tXL$wO@01wM$cgTYF6!?OFy=^O6Ch0+M(GUqu7?*fyQ3?5I@wPzw5KwTHrdns
zocj{Y%r}~$CdD7Mx+L{~U{}mM3(cGyBR2#h_{F{(=Ue4$xGVygO>f;KBk9g`jtqbZ
z^q|^^`tZyw<c$%GFJlYi15?q{7OPXoBhp!SdNsSDD5!s+aSt1wB!-f|z)hA=^Rr9y
zd`SivzlH583-*@@1Yg%nmZMcX9~3(9(!A<ZzUjV!Mrj@9CdwNI(}>h7LY|jZi^D)K
z`o1_xvk`2q9(jhTRftf{4^cJ*<Uc@J2>$_JZ|oI8mjTT&6&{$%S}afLrg3W4Nh309
z4|yE}uIAXO;i9h{hp}U0jVQS31iAtBD~-E6mHF}`DBEa&h`AMAwB%P{^~#Q`Ei&O;
zQ-EJiPfX<&ciskHtGnpBGKp_Co6swPNTL=>K#8j}>8Dz_%{8Ac&K<?{01D9VkrLHT
z@0ZKf$lSw1woO$TS_8d6h@DU8zU`J{Q{?ta6Wa<IhOK%Fc7>)E7b(#kVJ7cqDd)6(
z$xKz6{sQ{2OLQa!8|U8Pp|8ISd`HT+Jg9TDj~@_7Ki3whp7Bi^0CdEx*k#K?dWVQ(
z5Vu6M6g6FZX<f>|Ceb`GPHZ4XeKw}fJhsf4mbc9-q1$#1s~=~R2U3Lxn+auuz>gB%
z$0GriP@FE4WjL>6Migz~+_g;BT$KUNImQCh!(&Jh69~Tp?L4bMM&(8hm!JMvaPVbT
zx`oY3Bg*r3%c>R&1pWR12)B#Ty^;L>54)k?LNqGKR>;bbO2KIB9{j+C5qo{+AyI>U
z;Y)5)Cu_ZE!yfETyPmS}!JgrN&JvZF`4n>j)<m0#;2!vj)O-kb7;~Z>#JduCI?jT9
zwg6+I3q)`eJXz9<_wNi}S)zN!*J%fIb!u^0I3Ov~Cl0xYFU7OA|79BwSlj)wi|3!V
z`%xdywf0pK^wRzw;v*2%WB}ZI2L0~tQh?25jaDJ2h&Xtm+oYKUWA`~!=wNmJF<*z2
z{5_%N`LKP)XZlc3nwT$nzq|-ugb1J6UU1v&B@kzG-=Qv>;SnMOD_Y~t&lC*@-#2TS
z-LoWN+b%=mnA_d>q<&&*)6AfEnk7$OBK~5xBhDpR+=6EEoeWsKS)qeM=9^IWJ3s!a
zu;SoSDLJ}m42rM*{G@SD@i_~aS`;wE88|Or{2+_rrulwjw_(BhChJ;w2>Dfc7+r0X
zth8Q!@npkX%bLVwY<kewfsCs<Aba4BB+cd*q#*1TTxi@c^(8W8dm>)ENrL+3097st
z9Sfl0R(6%*8~~~UP+yh|B!-@_Ug^92DmT?6_X}mu(<8sHuV|WCxB!$(&4ZaVW*c$i
z)d9t-<Ej3?--HtszgxC^B{_;Lp?_<;W$&w|d6H)fc<I-s+U5042WMpb$jhnDmlN3?
z`tr*k%BZT;vi0w%cxD%8t@m@;WNu+Y3QdNUjg|>_c>;nn=yquOcul#bQ9C|^lrIFU
zuit|1eV$3ocwInoll@<)Cp&|uPu-zktuhz+dOWd-GlB*3SWk(?!A$Ks46izP%ME%j
z)T%D1f2+`m%o?iZ2HOISBmcJ3k6_}rk=ReMs&<cV?Jes+2?Jcd8k?o$V}t9m?b7lH
zg*@&T<$yv~2=~R9@Iq4x<N}ZOe1VW>;y|&2@y6}_db6K-9R2#UkwKo8*zA~Pn~!9*
zJE@hrmk1~dHps3e-D3f<z3UZ~JDs_ISbo`f-+s(zR=7HG16e~|eVP=H6;XUF-d5QJ
zKe@8n`%iCWYSb~h@|gRQ`War3rN)POu&j>g|B&-Nw8`XqhTnDr6$@=)k{Vd?lMe8O
z-ff8w76cj2nVVzKs$kG?5iRv0Y{L0EQ6M0qxItpr1VAUREg5iN@bA=H^UkA9o9ELM
z9RB1(N>!<=A#bHouS~T^O#`ehZ7k@Io2y-EH({<8=;?in7}gyz*S&7Pk5ikTIP@rK
zE+Y>~02v1q&?-j(>*ZJ#CjfjbXrM@#95vkfDjJh^f?>Wd-VJ4eJsJ}Oc#**7qsnEV
zWkXdQ0*bI%58?leut}SrCzeArkSBZM4}mN!FCN39(oayxtbx_g6E`*MrL8v@$0AC}
z^~QA1GWN`h48uecImB+XBr~8OgY^g%QQ<`gGeeE&+%a5Xj~)a`T^msC^S^A)Hz2&x
zC}G4((|Q)9FvxX~HFQ%#W(b}awcR=c2awQlfvdVW+|N+s=6>iR2;*U?IvnDtuLvmd
z6Y8K1zcn{IYrsR&J5OIPsoBgf>7Zq2+&*i!9TBeC7$p33Luo{mCv*by-C29(9_0A*
z%CRR`Ap8|5e&Xs6K!_H9t=(G1b+o;C;$my+mbEh=Fwjd>lpKT01|=0L%w*^xBUmB?
zNCrxWA98&mt<r(;3zgUVR}kuGGI|rrue8muD^klRBNfhIT<t=H31x&`7?FB~4S5x0
zrSkXSz@h;~+r}vr4u2RlI2bwxAmf_5=<Dng>lP_gud_XC*FTzaO@6<HX9ySUErl-Q
zF&M+lz7<vVPe&S(nmB>OL3$tMEYisYN`~1_nAkiw%td_U+(pck&fBP+{X2ZP$4;hK
z#8Kp;*r6o&n}Rf$b)Zoe&x>!5A+4?j7>42$0sYI2<w=1CSG(Sv*Hf#|!UN2Ey(MAa
zWX|!HKL(_3ur0dJt_Dkl2*d(?B??kQ*s*e)V~8QjxXPM0vXA#^&=zS05ChYJ0|@ZS
z^EgDA`+dA*5(ypsiJ?JV)^Ie@+0g2alIAGcDR9(M*r?g;(Nh8hHOE5pQQy53ulwPi
z7EICXqu}GJin-W9oC*BByv|?2?h^aZk55doRrt;WH=G;<%9mEo<xX&zNBsT?Se82O
zG3?iIQObN8^R75ZifZ+H+s0<Ve6yKT{UiRf<7^VXzwh92ED_}@b{~{zusp8ku>lt)
zY-%c!lm~?I&mspXHXlk3yosdBrHRX57hC#nbl|_Qj%ZAIg*!>?w)gQ9Coj*B0FlCc
zb-VEtDbc4C_a9mDb3?M+AC(MecU+D}(k%As%)lfZFYC-Ysj@3_@wstenxfM%rTwPZ
zC!YnEs#Mqnm2pm`^aKB@=AybZz7>{bHg(k!@sAU8y%7KoQLkLT7aA{bgun;|(Q~Qh
zhVOSnA#$glJ~&g#A}s_12nO1sCD&Z!YKlJRSjf4y3g^v{dvdMo;EtFy-iw-`_wX<2
zUhO$*7V{A84M|<LC(I{cL3*6cfJ4O!F(Z$h;V8wZ#M+dxm8x_MB_dY@26XqLxqmQ}
zbAb~Zsecv_4S7EL<B*y9t}R$QjP-&u%e!qMKmwm-y<(NCngccL4wMv8ef@&CC~<w(
zRgIaXqP04u7v`gL(rPK0pc|JURVs9f`+JR{?FQmJBW!}!E*}fHRz~^7YqJW6@PzR&
z9M{b(J*+_j;5vXhx!I^laEnfN8py&((_XLN6yk_&?1`w=WZi-ZB!wepDI!yf8V@37
z6~JTk#^k7H+r@oaAK8<xLjWtn1`tUO$=yp{Vbt!Rt1ClY#&m9Iw?}y}{nXJi(Y~mg
zCrx#lmnZbVca#RoqPttOx5>45V920DHOFE8(lWY&WCYlk?ueplMI|Q9ZwR6*bX4OY
zuZ<uQLc@pfK0`HJ_?I*#%nOppVAJA3qbkp)$@ZGknp-ONQ|4nS3rkb1hTjWVcwlv^
zAfOPLWe(<26~*0wS?-Vl)LWZ1tXXU#vP`f?+Ebm@P9Z=sy<cYp%IWZm=YA@uYs`5c
zC^d&9{0+?ezXpmOv3T@r2nKIWMoVp(RtKU;jm<^N`%*^{epCvRvKF(YX#5fEJ)?)X
zEz56LgBLcwl6^UQV^biU^jM%Bqd)#_Vx_@&`S}ry)ImK)JLr60#n{U(AandxzA2$_
zqm!{h+HwGNyf%~3Y*+%rf>Y?fxSDnq20?quk35<)_Ni;Q&yEDRq}neK-fw(b?`cw;
z1RO=W51~*PT|)(p|Hdtc&2IpMuva6RJ>udH1ACW*PqpcQ>{c%wa^<ajspka;Bzn$;
zu0!_f?E^~hW6g1<*;4D=z*%EThg^rIY_0WBO9)_j{g9<#w%eW$tEdV@plYnhvcgxb
znz7fC2n>EJG^B{FqO`!}Gt@LQ^Eymb2AfA&YW=)@k_Y3pSLLcFVV6T%h_$D|XQ0iu
z&yACn#lgx@^DUU5xD2RQ!j+A`p>Z`kB<b%dwN{-TEdow#PtC}m|G0I?w)sIN3o(Pv
zG#<b>*g%4rMrhsYFh~;w^!AKDy`@1WL@II)XpQKTf9S_TAi`n}`l!MfRT!G$R%QX!
zAJhrerWg8d9y#1Zh|h7kkcn>qMr!EuWt7tTfOXT*jJF=CB#jjvui$U@@(OqP0GCY8
z&w;iI-O3HNlk+SR<6;mJibx<mbqhope><>y#LP?P6o(IjyAmd$u0L`kII_RbhF;lD
zbwx9&k4%_{%+r`HHX_0?oo=@W!#V%ELfvy-*<tv3n-g7z@Z%%%FEM$ViNY+4OCd^j
zVlvARYU(>nd879yID{Q2@AiJ?eyK}5%l$#I?z+quHIc0K2`I0w1r*6m@bE}#PY}?J
zJ8a$RF61!v6hj834UP6r?OX1wIr^KUVC}jehsP9@GrM<Tw2!;ZHx1D9K`?d{UwCBY
z+xh0{C1V*`++}J5j#+bkfb<>?B5v?_mQZnrdl{XF#x1dOiHRiE>a<Uo3zccIM@~sA
zr0i%q4=jgn_!S}Y_v7d6o^`q+Z5m)%54Fk~GWd^zn~r(0Vl#nL=9-s+hxRt}Bu=nF
zW9HzMOnZ2YMMk*=#quh1oP?5%1^qkOG+)*uUTA0s3n_!Um~QIE3rcy(LDPFf3rJ7b
zVn)2hzDdf#E;&A69!@#%t^&Wsqsn(hev1e?w@Gg8=PIgR{R0#Qmex$~XFU)S;U`S0
z%Y^k|mhm?X+@XI85J{N_14eMUp7<8NKO(!K%KI0`tQHCr*Sr~Cr)LiOTREM7PU=|{
zyEKoByVYlVeHQ*95QZQO&w@@nZR6b2|JBy0@Is$=tEEeerCj0mgtQi&PBPU6p+9`0
zHoA%@u3cR}#Uwr(LM+PFKXM0*pU=RU*6Orl;{anwR~p?7%9wyLF1{z?lO`$po>^6s
zC(4m|9S9*DP6gDcb>DKOrf3w3V}xVa+ZoW)`?WQAjzXHnwk2HMxe#tNx#hK-3T4b(
z85kFMV8XixOE#`RC=#*Q?w8HJ{oTE4Hf+;boBc=2G!p3-E8|O%h_3>C{evR`X;rtt
zWSPuK!xK*B<TgMzok%NTg@C?!=C;M1k@ZKYHJm*qKO~wwrXZy(*3-wQ9|66CrRQL_
zVGHo;W|J`ie_eW22cPo1E#dMLxsRpUz&#G>YfP!u$L0$Gxq?v2%1_w`q|7BvOz5+D
z9NqM{b#_!(wYGYfevSy}DfHvzM4S~%#91px`~Ih7^C;Ki+s_(J-J&18GWCjI+-dD1
z=gmq!ui@}D6@00=*%td;21}E53z1FOG>~Mq$?p%kVkmzgVTLDrL4QKiY;m$e{BPnX
zTe7h5r(-}H>lzE?yCc_X)q0zmoi~XIG{Nj=`prau%ie%g;3PdT;A8V`m^Vnr-~|I8
zpldc?UN>ba;wBsFB%(&2r9ON{8vqnYNxlQu-99i_HGeL+e~{h)k8U%c{CeT8TfxXZ
zW-3Ted{Yp9^0;dZv3_H`74N&b94Y(jn{`xsBJ#jSyC9}QBohn%9K`MKWV!XeOht_X
z<m+<(mMQzkB65N5rQgT$2E;{$<?gjQ@}e}rpKdyn4BM777lS^bhmpL6ZMkQy#c}Zb
zs{c4{+DpCLRrC23kIUJn9x7L0*yd;}41-P%G3%fH7_D+#!r4g8&oez9biu6_6R_U>
zy-8)UO(8Y(eiUfXce+L9fD8(Ow*^Ikx3+9`9xDU1@&teZSDHJqI_O{_GiGfp^;yJ}
z-s#0VBE0aGorTIjY+pt}CC5$`pQuoF>S$>Lo8Vw3&R*=ysy{}WWsgW~#`ety48N2h
zB}2XjC@VZ+>0;MV?!;7gFoS*^OyrU{uPO!3!zCkNY9<3-Xg6-jMhhJ2Y1x?Jz@{$L
z<Y(u?m47r$5k6U-3ds?no&Tm%Vyn3|;Kzn<@>44-TPu%fsAcb!7;!|=8WB}%F(43p
zFGs!=R<VL^e3F>8(ztHu>40in&2332IsKjDU0`1$M)r>QpD$W&G%8dx{b|L;Lu6P8
zhzoR(DFqd9i38(v*UUo-WFKG<8e|l}TpAv?sOG@TLmAOCVlbm6+?20}d)4pN2I>fK
zh>oeC6WqIh7Thzr>J84STU6^ukH^)<XpVr|)u!T&A?QQGEItveX;GVd`)Cak$GvMy
zCU|ESLDADfQX2WLOd}edKTbhILX()in6_h0w8I0$AbW_6XpQ;SBMoOY<u5~fjti@L
zVt6q9c(UY;SjbSBM&q8bL&Fk*h|H*ugW$-6*II(PO+Xgk!9#Sa2Hl59Lzjd2iNY}K
zfk@1R+c#_=CNKGn62U`bQj+M2NX6ShHn}4y)e>F62gQCQ&6r@cnxVibMnNdoZlegr
zkHZC&Jz@#49XLnX8;zf9K7oo_a(d=N2|Mui5S6g&#S&2BU)F5&$>FdbjiEXC9zFE;
zU+MlKw^S7QDCqW(=w$fBpObXv%v})K96^8BoU`wnS`?%)Yxu7XfHx9H<#GzuVB_yZ
zmtc2D>S{z~9n3r43Z3FEnlRiA4HXxK4Y*byCW35NpnywM1Wnl9CdWOkjKL8>$NZc`
zanD-7PnY(sC8L53LuC@<hrI${A<RU=O3kO+wT-JI>wjJ%CJA8|?spyVz)y27`*!|w
z@1Y0=SaM#(s!1%=eqqu9W}okBT3EZOMw1gcXiU&}Ydpg7ybpyUjeh=6UaBpup~l!i
znyVzsYV1ZIwsQKOkduE?-j6PZhNeS+0FO{aX4d+BPk{oKa7_on@c50jU$@pB1alRo
z6xpyZ8vP||grwn)5uCPcAe|d65(mPRbcR8Ap8~L&GS=#ZRI0VpZ1V$ZhOR=GNBf3$
zarQ;gX-TiV=8t3Z%;oe1TsQr?Z=;z&f?E9D!-VK4JlCIX62pr&#%J;K!thH8-z@qu
z|FYppuO$xU@`Ib~qTe&70?L{=%9KQj(o3Htuw|W|^`pVICJz5F-mfr3a4yqnN8sek
zahe9bA+m3U+1dbmy+^?}#4a3jt4>sY53cjhs+tEvwWnY{On#bMSxwTJHD)=WAq?>g
z&Jre9b#<_%RUZtxfFiScs}8cOthEWv!!iEq)wbx3XjIrybli~@^|Ij#@90<gDiu*&
zOwLP}UI_M*uv^Lt%0`Tq_wO>Ja&c0{Nb~vI>q*Wc{>m*l&frC&y1Bhf2WcI_y@F0u
z?KubB&1rw+-v=Z56FqxSA8bg#{+$e*)4YX>*_BDn-JuH%2jpMOY{Mn?ScQdefG*7D
z=IgE#6xt$%l$*A+<=B34ox02g-OG8gE=Fo2B;V!h%omYWjbA!9C-KFGztUX5xr+>|
z(1V2GK_gAPPlmOQ#(6j5042-NH|dTr(IP>we2u!3x=%#mjTD;Fheci>@7BNXpQ~=Y
z2or?LmpHY58!W9Ji?)3UwC>rSz!jASGB<yA(O+H@SE!XPp=$qHGHtnH6MPF4UVbVa
z3pk?8e+%@DWuDe{axJXeUKE`sOb(6v2u9ZuhPu+<dLlnRD+=7wE8PH_^5lGpy&2BE
z(T`a5U0a&uS`FL?#S)7G7oKkt-LBv_*9z$eK9C4Glg13%Sz6V2uU(0jYN=2-^GW&v
z>m`=M4VPYNxSD<8xeEgISl8Zxw29AZ8Yp##@wQ8=C9R3f@fEdsan=T}Zg&pVuE7<R
z>c0Z|#k2V?gLzy6<w*k<1q%j5vfEY!FG=&q^2a}OKUO?^`+GkypHSG7=TZu<K65`K
zEBkNWVVh5B-(W!W6d297OrOYT$G@!gbsCMpI7ko>Uy`5?K4PHTe`@9zu<$U(zeU54
zOiF<mdemPvEOZk}%D#Gg*@b$sOertp?)iFqV^;XD@#=sCj*P=q_uI=gz^*VKKKXR%
zMXeJ0<0tmex`*KYQywhTJ7>@12c}pjqBiAecmAx(r|a8bSvb!#|FvWb<Qc}RRiioN
zUSv6W=!^)$^EePub{~a0bO(mRZTS{D`-R%BM+WU5%blDE1m_8bKL@gA)BEk=GilF0
z8G1IdTWRs-I(V|N6W`N3Cbb|!TP%$7HWg<MQCi(%z)XzGcIdVj&mDdXTHr)7rvIQW
z6O-FHlpF&DhaDjT0aWu=jp&BSicN1ZA@b)Ei#YU8y96#5dcC7_4KJ{gtVL2rGaMg{
zyI^wqMxo1pWV!7=9PB?+0|d@}(UacDpBkF8U)LwqJ1tM9PwT?-JY*p6N3cSbZ|AzA
z*;9}ACl-E{e#%Fn&n3T(&3za3|ExfU2R{~Vi3<Uq{uCkqNB!*eU5GkC{}Z6E7&p)N
z99tBt8USMAPkRjekCQKyQI>egbJ$dps5*I_;WTnKe7xK_H)CR-zV6DPY5&5oAWa;+
zmqnI}c#`Pev~09j?@@To`87T~JN!7C^tXv4;t9>{U&+BV;snDD%us}zuy6=D&K(VS
zW89=<GDFoEc(~5$>BM(rUsL~_EjM9sUgYqX@g7Lmqq;1B#g60teEP7(KQ@>27Jd}I
zHfK)G5*0>gnjJ%u0Mq=~GIF_g!fzZMOVY7V$+3v5R?3kx^Q~cok;hB7zU<x#5djiO
z<H~LudzRt8w8RbxGO$8i;@KRYM7H!eWKNR@mD2*l9TS!;<=1x*OLo$GfwHs(H}*4c
zk_a&OU7Rq93?`Mgq5oZhC#!kD=%s>1Yh!VH<<3gm!AtaPr~pb$cU6tdY?Vs$Nj-Y8
zue%$Ytqb8duIS362-r?N)p1;Ecbs}c+3mU<;DBPS;lv(&kkaWZ!%gbrxJ6=;FuDU3
z4Zx;ewwp6E=K&ph;4F>=hg@^z3M<G>9s(uz;Vo<ta<Dn6Vv}oN;2K><q<da8n#D&#
zXo*zU_o9v5ADGHWxhxA()1Bw&03c`m7*qx%KCU5e?$MHLWqNAGM2&Wy1uxgVu9Yz1
z6wQO=yhBra{8X_Ow)4(j^h=ob!9U*uZE~VE#ueqAGS;UVPc;Lw8PV*&J^x3WivoKW
zTX^FCH8Zmsz$NYqYFzI$%nQp1D8M^wx_gavcfSl!(TWqmp{JUS@~Vt}aqt2#V?*~^
zyzIGq;U;5I!4<par^~h>yqdgfI|3<7H)|AnhRRzG65sd30^5ey?28sl-|WG|*?<>5
zumhv6jR|Qq;;1>MKu6R14yj-zDiE;-7Ox_Mr~X2~?qcG}%BO3gljwev(RNfk*ExYJ
zZs-l2KD`of<zH6Fxj8%vpu%SpDZ}NM)^uo*$!Jj-xwJAoVwGOJPH9%yM>43Za+efH
zma%1snLp8<mE$qOM+}PL5Hrw9f_+0T=YIHksl3s8$zB8Mg~F$Pr7Djr0KzUZMG+E-
z26*ADX@qbM2(Ns1sZSTx$M~n?lxd!Th6@XT9rRksp&cI)C4AJ=Aj1ngZ|x}#+^j!7
zZ<foM$uK%5Z+*H4nQ=_wYyZkXSB$%;W>_|~v%4${h*A;DjX$Bt?1AJy@zM~CfFMk5
zS#|v4v5|EdSACMKPIo>}24><qvWf|9RXP+H(Zh{Sl(Q&PG+coIn@_M_@CrgkKg91w
zvb?$k`7{4KBo<Gb{aD83DXdepF%y<NZ2g-~daK?|#gmS*D>i(jCD}RnacC{m`nl*>
zm$6hE%3w3(qkO!oH>10olFh!m|K=ASX=9tA-w&d>6yA3o2R`vJ0QC&j=Ak>X7>eL%
zYi7SO*6C2|g0J^}VHV5|Txzb+n<jggKQCLb>G&@gBDdq|#cA5G_`&(e;CMEa<h@FV
z>SYHotS7BE1)69?bM4I)Znee*6a~}2ef$`sIsbeTUV5GGG*MIjxwnLZ^lgh1JgS`g
zH>P(!ST|T?q*7P68)%-`>~igL>Gw^yVU>M9-icKAeiTRy$2n6o-do*Zg4btIEX?T3
zf4L<o^tE1h^c6MWUH<6ihCq|0M7JyjIPW&78P!W0&uk%qbCK;Sah8Yez6*#xEvz>t
zOOT^b4h^BlxRVgc<IbJDkY>Zn3%osOtudHd!c3m!KQy#61x|J`QQy@wa6f7g=@I}%
zwQ;5@=;#HA(}llcHyu<m7@<`;%WQNb^PaOhFO&U;H;q!~st__4k8htVy|;#Wt$qsC
zA7yd*f^FxsKDHFG1sU!9+m@=*C!}yOK{1)Huc=*mY2Idsi9|FFvJono-bhiy=~=PX
z{r|4yU;AnxfNdd(=S|2tvS$Al?u$|&iLi#tgDx|1p&3I2Pveg#QSx~u9c_K!migjh
z>}c0`y(Z0Fb^kJPRy&r~WE(R}Ss8%wB=y*gN9*QB7`=#X+`h`>+!wD#@+E%MFzQQX
zyf0Tf(6VQE2|1`$?5Xzp@^F@?M$Lk9CIi^TC(Ok^fpe(i)9vJEiVjT7&cfw{v~?qL
zTz<d#Hyo#pybpgxI6qNnP<|CoC!j%1AeYfNgQ?bP$BBRErzsIhl2jq9RS+EZu2bOr
zVaiTP*eaL(qNOL%P^N}mkg51Z@3C1gAm}%n#mYB<BdZy$?Fx+gz1&zikq_IIEb$}R
zyUMF79=J&oIyH89I*&g7eY)*d{Je45019D+wX>;$4W6HTl5VqiwTZtA&gmMr>@A5a
zXN$LVAqx*>Vf!axVjreO%&F^)y;3`i($bK5tGV9lM3%1}>FLqG_h~x7{z1M)^AaF-
zK%}w|pXG;qI88!zxMaR9anrqxnY^(xt77z9DNso2@oZ^9FEv$7Wx26+<?N=Q8>f|O
zSXhAf^3{Q4|JY}kEON<8Cy2;+E<!sQce&tOq#rz}HQ7y0g)#IfUeJncepX-Q7Pg=T
zY94Cyb6#tpm?3eC4hN%78Jwk~v@>a{{>Y;(7+j6E4sR*AXa1Ris!9B9F&l0}K7sCA
z8?Z~ThXHPg_xpJu{*H`E>>`Y6uiOyf`>0ozqh6Q)Mu)8Oz5VG==Fwn=N=AXEyVf$l
zw!^G>2q!YkHEq8WwWuf+=j75241P0jj0|A9sNcpwI3K_AE{|ORHYADvr>(2?zLL-W
zEb}rBk?2OX8}5&fb-^v(^m>~->LCB(9UwI2r|NDo&ny0`JV{84TNyfAmD%(MDqaF`
zozYS^2kH$Q?KXD}qj;dU0U<kxGs~a$wWW!fHD{>4il5#^op&a7!Q8Rgzf*4G2r4bC
z!q8MhrpTP)GK%brYMIoz1+~{qZr5m6C>u{xThj??bFezhSF4}D15IO#a5Oq(hIXm_
zfCl(|YG%xm+qL%GywqQ<(d~KF{EBAg&MCSHc*k{+oL|_?FIfu(GLppr{gbAGD@;(G
zBS8dVD3X8-WU-o+WF{g1zg;OxIa%1B@)=Rapj&xzP@EhYWGd*VoEZ849!)|(U_j77
z{I^m3=U@lH$&<s$)`7bzQ2$?akbyiJBp%3KUX1*I>wO3ag8u~;2mO|(hoem%ze+>?
z510&up+E*10%BLNfMfxsDoFkpdvv7#fnfaSJrB^W0wJ6fw)%f(BLevYq^f8OWyk^A
z<{$vgC~{Ez?|vBq0_%V9|HT)`2ZH3s!9;@iuL}eO<bN0$<gcun{NJQ4l*pilB|xD{
LvT)YY|K<Ka$;`CU

diff --git a/dta/lang/en/assignsubmission_dta.php b/dta/lang/en/assignsubmission_dta.php
index 67addc7..e7c7fde 100644
--- a/dta/lang/en/assignsubmission_dta.php
+++ b/dta/lang/en/assignsubmission_dta.php
@@ -33,11 +33,11 @@ $string["submission_settings_label_help"] = "single text file with  DTA test URI
 $string["enabled_help"] = "If enabled, you will have to upload a textfile containing a valid DTA URI pointing to the repository with your test logic and defining a docker image on dockerhub used as testrunner. Your students will have to either upload their code in a zip archive resembling the expected repository structure or as well by providing a textifle with a valid DTA URI pointing to the repository with their submission logic";
 
 // Content.
-$string["tests_successful"] = " tests successful";
-$string["failures"] = " failures";
-$string["compilation_errors"] = " compilation error(s)";
-$string["unknown_state"] = " test(s) with unknown state";
-$string["sucess_competencies"] = "Successfully tested competency profile";
+$string["tests_successful"] = " successful";
+$string["failures"] = " failure";
+$string["compilation_errors"] = " compilation error";
+$string["unknown_state"] = " with unknown state";
+$string["success_competencies"] = "Successfully tested competency profile";
 $string["summary"] = "Summary";
 $string["total_items"] = "Total items";
 $string["success_rate"] = "Success rate";
@@ -70,7 +70,7 @@ $string["comp_proc_sign"] = "Procedure Signature";
 $string["comp_library"] = "Library Usage";
 $string["comp_ext_api"] = "External API Usage";
 $string["comp_simple"] = "Simplicity";
-$stirng["comp_abstraction"] = "Abstraction";
+$string["comp_abstraction"] = "Abstraction";
 
 // Competencies for index calculation.
 $string["comp1"] = $string["comp_statement"];
diff --git a/dta/models/DtaResult.php b/dta/models/DtaResult.php
index f56b228..b666f51 100644
--- a/dta/models/DtaResult.php
+++ b/dta/models/DtaResult.php
@@ -18,6 +18,9 @@ defined('MOODLE_INTERNAL') || die();
 
 class DtaResult {
 
+    // Broadly used in logic, parametrized for easier change.
+    const COMPONENT_NAME = "assignsubmission_dta";
+
     public $packagename;
     public $classname;
     public $name;
@@ -45,13 +48,13 @@ class DtaResult {
      */
     public static function getstatename(int $state): string {
         if ($state == 1) {
-            return "success";
+            return get_string("tests_successful", self::COMPONENT_NAME);
         } else if ($state == 2) {
-            return "failed";
+            return get_string("failures", self::COMPONENT_NAME);
         } else if ($state == 3) {
-            return "compilation error";
+            return get_string("compilation_errors", self::COMPONENT_NAME);
         } else {
-            return "unknown";
+            return get_string("unknown_state", self::COMPONENT_NAME);
         }
     }
 }
diff --git a/dta/utils/view.php b/dta/utils/view.php
index 4b756a3..2d0b469 100644
--- a/dta/utils/view.php
+++ b/dta/utils/view.php
@@ -198,7 +198,8 @@ class ViewSubmissionUtils {
 
         // Add empty div for spacing between summary and compentency table.
         $html .= html_writer::empty_tag("div", ["class" => "dtaSpacer"]);
-
+        
+        $body = "";
         $tmp = "";
         $tmp .= html_writer::tag("th", get_string("competencies", self::COMPONENT_NAME), ["class" => "dtaTableHeader"]);
         $tmp .= html_writer::empty_tag("th", ["class" => "dtaTableHeader"]);
-- 
GitLab