From 5bdd448b7ef12d98a4dbdf540155fc72f1bf0baf Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Tue, 7 Jan 2020 23:58:55 +0000 Subject: [PATCH 01/13] add favicons. --- app/static/favicons/android-icon-144x144.png | Bin 0 -> 7486 bytes app/static/favicons/android-icon-192x192.png | Bin 0 -> 8578 bytes app/static/favicons/android-icon-36x36.png | Bin 0 -> 1996 bytes app/static/favicons/android-icon-48x48.png | Bin 0 -> 2378 bytes app/static/favicons/android-icon-72x72.png | Bin 0 -> 3512 bytes app/static/favicons/android-icon-96x96.png | Bin 0 -> 4875 bytes app/static/favicons/apple-icon-114x114.png | Bin 0 -> 5822 bytes app/static/favicons/apple-icon-120x120.png | Bin 0 -> 5972 bytes app/static/favicons/apple-icon-144x144.png | Bin 0 -> 7486 bytes app/static/favicons/apple-icon-152x152.png | Bin 0 -> 7991 bytes app/static/favicons/apple-icon-180x180.png | Bin 0 -> 9600 bytes app/static/favicons/apple-icon-57x57.png | Bin 0 -> 2782 bytes app/static/favicons/apple-icon-60x60.png | Bin 0 -> 2951 bytes app/static/favicons/apple-icon-72x72.png | Bin 0 -> 3512 bytes app/static/favicons/apple-icon-76x76.png | Bin 0 -> 3743 bytes .../favicons/apple-icon-precomposed.png | Bin 0 -> 9152 bytes app/static/favicons/apple-icon.png | Bin 0 -> 9152 bytes app/static/favicons/browserconfig.xml | 2 + app/static/favicons/favicon-16x16.png | Bin 0 -> 1227 bytes app/static/favicons/favicon-32x32.png | Bin 0 -> 1868 bytes app/static/favicons/favicon-96x96.png | Bin 0 -> 4875 bytes app/static/favicons/favicon.ico | Bin 0 -> 1150 bytes app/static/favicons/manifest.json | 41 ++++++++++++++++++ app/static/favicons/ms-icon-144x144.png | Bin 0 -> 7486 bytes app/static/favicons/ms-icon-150x150.png | Bin 0 -> 7970 bytes app/static/favicons/ms-icon-310x310.png | Bin 0 -> 21018 bytes app/static/favicons/ms-icon-70x70.png | Bin 0 -> 3486 bytes app/templates/favicons.html | 18 +++++++- 28 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 app/static/favicons/android-icon-144x144.png create mode 100644 app/static/favicons/android-icon-192x192.png create mode 100644 app/static/favicons/android-icon-36x36.png create mode 100644 app/static/favicons/android-icon-48x48.png create mode 100644 app/static/favicons/android-icon-72x72.png create mode 100644 app/static/favicons/android-icon-96x96.png create mode 100644 app/static/favicons/apple-icon-114x114.png create mode 100644 app/static/favicons/apple-icon-120x120.png create mode 100644 app/static/favicons/apple-icon-144x144.png create mode 100644 app/static/favicons/apple-icon-152x152.png create mode 100644 app/static/favicons/apple-icon-180x180.png create mode 100644 app/static/favicons/apple-icon-57x57.png create mode 100644 app/static/favicons/apple-icon-60x60.png create mode 100644 app/static/favicons/apple-icon-72x72.png create mode 100644 app/static/favicons/apple-icon-76x76.png create mode 100644 app/static/favicons/apple-icon-precomposed.png create mode 100644 app/static/favicons/apple-icon.png create mode 100644 app/static/favicons/browserconfig.xml create mode 100644 app/static/favicons/favicon-16x16.png create mode 100644 app/static/favicons/favicon-32x32.png create mode 100644 app/static/favicons/favicon-96x96.png create mode 100644 app/static/favicons/favicon.ico create mode 100644 app/static/favicons/manifest.json create mode 100644 app/static/favicons/ms-icon-144x144.png create mode 100644 app/static/favicons/ms-icon-150x150.png create mode 100644 app/static/favicons/ms-icon-310x310.png create mode 100644 app/static/favicons/ms-icon-70x70.png diff --git a/app/static/favicons/android-icon-144x144.png b/app/static/favicons/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..54725bf4130958cdb9dacec1af1ec690be9c6a10 GIT binary patch literal 7486 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 HG2#CJX(OF= literal 0 HcmV?d00001 diff --git a/app/static/favicons/android-icon-192x192.png b/app/static/favicons/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5e404f0bcc64773c9eb00eb88d376c15b4960d GIT binary patch literal 8578 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 IM6N<$f{i3lzyJUM literal 0 HcmV?d00001 diff --git a/app/static/favicons/android-icon-36x36.png b/app/static/favicons/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..050dadd27f67806dfe747acf90c854c8f86b4274 GIT binary patch literal 1996 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`ZSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_mbW z0G|+7paNcrOgx=_+1{ET9_f2#*vl zE!f0CRwIe?h@)`PWRX<@*H8#VCJZ2ABH zzxmPETEOJ8y(Gvl7)T=lMiI}ZwWn^KbZ6x7nR@)gKPJOO@Hz@kwtRiuY(dS z6H2zUGp0RgHei~3`NH{&uS_1TW8@PNHf(#%zUWK6VAR{iUcdJz2rx&~)#x(MbeZyV zr`47qy&Ixm-P7K>gP8saU^wdNSl_nRtG8m!$ndfu^l z#K$b3aevbur|XA>zGVizXtY1Fe!*OBMdeo44klv<_R^x&wayb{zQ+RH&6wov?y|#o zzuGq-hqJ&VvY3G(#tnoSMW#3dGZ&MWr;B5V#p%*1KjVcQMGh>F%P#B8Ntyl5OJSy_ zqgGrA$IPj>9A}EExTUFzO`Xsx8#P6CT5E}X$&9kh?}q>5tamr;e)I18^ttD2_RXL9 z{ocMxj?@{Gm!H0V*_*d5b;~}7?KOHqOlP_dDNQ@fBoiGn;^3=Irb67Ow9iDaZd)XiCOhj$Qf&5#Z5FqtZ91^8FK0^FtyNRnLvOQk%b5O& z-CFvUSM2#O-b}N+EDlPiXdgj~m%1jv#OnbIga@O|Te8p+Ek9uFY)%LM(?rw*` z9c_2zlHO*rvQ&E}z5Q+V?QmmrT)b5N(}k6D>mDA`bGVXdc<8{yJU6i)7v(I<=IHnZ ztT3N(@2z#EmsYFa;hCFL1mC#+eR!r!MdkEA8J;=n_Y3Sl6-CTFz}msbCHi$y_rwWW z*Sx1c^xD0Ef8o1_tFw6GyAOVqel%0rqg!Uj%iXG8+b_;tF(h{TbUYK8JcMu7+4t?c%N}eLD7(#pOTqYiCcr!#6LHH8r(oO6z8XvlqVLYGI-`D zrlsjbpDi|3Un&=vs>KYm;1R9ztWR#Q?Sn2DRmzV2hf>Z-BP_w?G3KBtRyHWR&J6Sy{Q{Czs}?=9O4k1pt*6GZ-%azgr(o4cJaAtBlml^o$Y) zLrWumhN4!W8gV3ZplZT1Q%W*GN-nQaL{j3LnVVWtS&+&Ac9niXUb_9JFh4YN zd_#b$7z|C#Elf-d4b07o)VIt8D&a>mCpfbzmBGNtY04tIH$bT{B&pCKPlmM2oK&Fq z^>gz|a`Myl(-O-vlk@Y6^$`)HpJHO1VwPlVY?*ACY-DMXoNAtIo?>B=Vvw9-Zk%Lh btOwMg2XxgTe~DWM4fZy1_u literal 0 HcmV?d00001 diff --git a/app/static/favicons/android-icon-48x48.png b/app/static/favicons/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..3659d5057502b2844afd57d165d4786f1aa4a01a GIT binary patch literal 2378 zcmZ{mc{J4BAIHB*exndgMN!!wS!U*InPG%1gRu-FvL(jM7*k`$GPdwoOH{UG`JqJ` zkJQ+beHTJ0NvO!kV=vM&mF4+*&hMOGzvrCax#x2~=W{==&--)lxqsZ7WKXaV-Fa{) z005$ROEU+^qqYnt1kKI@-xDDxNHexI27rpxU2CKrP`oY3!NLUKK9!k+0$H-9gDn7@ zQwD&T1OWH}Eyc_NKro~-?*#zZ8~~8?&#xyQgAzjC))r>K=GM5`RD2a$5%#xq4FZ5u z=3BOHZ>A~KN2m#JX6)!Y{$woTaslpu(DFq8^@sL)#ShZT-SO9k9q*TD><}~+glC%B zYD>xWYOL(vZCNPmJ7jbmu4IogxAm(A#Wyt12=LC|oJ+p7a~}iO>RqRDg>mT_Gc%%VR%3!_RNgVY3ZD)qWQ`5e3)U9)3i;^CB?FSG^4Xj?OI#Z6?5Ds_woJSBG^#< zJW5h>N;$mCPFJj>yZ!fY9McqYFvb> zWOQ6wz1y831(r_xD7nUeB#lb#_ItORugmR-_UYj(k0&4TnubYt%iDW{A3BqXHzdP2 z+CLnUCwkM#^>1nF_uAdUapv!4-$5-h`$gLdYD4zcWv{>)ijBurdk56`>Le=O|E{jd ze46vQ9pf&BLFyvBhna8owA)`4eg8s-qI#s$z{N2HdpV+S-{=_^1~)j0%NUfZnAohetENpi%Ahb;M5X)QYNGGpF-!B(;=CzBzQ7RiQ{Uj7g%Ts&SIqDK;=VeDM z$|j5Cxr>L@G|nBlay02vmy7P>1MYEUeWd}{$R1pee5F?s-Xg-$Sp)ei%B$-$*Y)j0 z+T`=~AGKlqIguj;7+XPtwx-U<^!T1Ie(UYj!`Nzv%F}@|@dU}83g3vh1=GNzS!Q|* z`r!vf>5}VV)RCVxz8-HiS_f5F7v~TJPO>S#*i*Yru?ZN~AFG=}#i<}gU zs@%j1g7pTlF|3}+)u^j7G+JlX3q~ZIp8u*NK$xr6p}g3hy)uA5*3xQJsIGh{M{W4{iK(n=xq$Gvwjc zBK8ZX-N}0`;zSaSlx$%pMKBj_;NuU+KE-8x1 zkyxRhO5Z7`WKzD}GyTNEWY~_kxbzgO-=edF3P-yl-^dj1@-9-b#ABM3UbWjEOIQ*= zA?CkcX}CGY&`PVm_4-7mI;D-1rc)9jQm`z&;%3!J8vL?-!|1DkYrzKR7Iymh_l?vr z`=_T9*|!EKzCKR((jgT13Gt<_+dLi?0M!7o-^vd23DWt^*yqtZrkbsiICzK&M#F-Zmc_!NKT+y5D zaJX*N0D?P)}O!<~zBcEnBS2}%m;FZE#K9ZUB zB6&%!|M`4#Emh+fJC`_d#eG>{4^!9r`EKBQ^>^P~@-j3!SR^+&!bqWFMrX%!ubO+Z zo`@T7no>3c$*GaM*ax_r5gC)5%$1zRgU=_b#PZp0QLNjO*QpxPsOuz~&peU$&Q*OS%{2Yys^yYv{DI_)(OAe$$4$wqtqBKyT z1`6Y-sfE=6u^?Ivg~Fmx*8OIb|0(ceQRqJ5|Gxm6zBU3Cm~V9mV)?K`Nr6-V??<9h zZAmmb`K&A&fkEhM=*eoLKy3|_js~bHO9aufzHGKX7KscE4MotmXviQM!3w0kxv&HY z0#aLwj=sTu-dL;|iyZ7nWwNnYdk75zz~apYk5S@DCkZM~DJI9gMEFHi*KY z1Alvv3n9CI(K$gsM+HzOCYgnXi%{z1FDWMnJm5oTP@&@^{g`Y9i-zm<4AQvgI%AA6#^s5UR7(6N&$aCmJ4vRCrwahIfy8C$o zK&lY{aQOhRChp=+13&@_06v8Q0KOOiwzA7Qd>zCADazhm1Yl$Hsl0VLU)&?Zb`OdN zfDpG$1F0756xWe6+f8sGCBJx8mKGgySFP`N=KKNU#G9qkJAz6JstZUyIu@c~w_0*C zIZIvAwMtpmLJ>0Nu&0jeEL-a!OF~>I0^~7S5{0rgjHj_@w#4Yu3!6)u9rlKIr3Q3G!kYRg(>!)(*4u zQPAGv0inEk#}YDyF=5ipaGG4RBXosCu%5HjYG9bKCUH@z^m0`(aim4qsfZwO6x1HLR=T5#PxWYNa#e*Cl_{^x0PluW^Hf z_T;OuIY-Fpf@f!-OqkF?q!XPTSE!T1gEp7X<3;-1^u!J&rVs8Aa0<}rT|bx3^0XZW zc{E|{!_VgdU72?0I_smfG$OGladNJ4A3zUy{$FQ3fOH^4ZoO+{a5me&r$yT`Wqr_& zIb2X8BcQ^71R=7eBwrzzo6V~kf*@-LBt)f!4Ek@{QiGt-a#fc5sts%@af@UAdf8w~ z<(@{UEfvc&s777e$TyXMl2S4j%I!WfX_8FR<&LMw$E+=F0m zuZr2v)3YASDGeZ0=v7xLkuo#gG1Up^UefPsN~eNWerbeEht5cMURmWUfu zaPUr)Pu;np@Hjcs!|m?!`(V+KE_7D%m#q1|_n-ARXU(E4)vmTRA)clxw{$$a1fG(x z4eN|`atA*ciM;jfE8#~!3w-G!bfrr>3sSKYzTnNhOiJ0-r(g%vjY)Img#4?o!xrCk zICRg0_ojQFdhzo`?%U(+Z40-wVRyOt#A1EdcrvS}Y4=rFaL$a=i)pXM8bLeg zFouf#LL0=MFv@ zDw1o;No2G?d6N8StMhQs(ET1^KM>j-wiGgGV(vDP3+$3$9`iB2Q-lcfem-A!!n0Nh zbV@z^B6LP@smwX;fov4B4BFoNNVmJjX^R5>n=e zbV*lba~})1D%S9Xp|5n)B6%mD=B?8&KF2i^NVP-%Ph=-LhW zmzoSpWSuK&Yi)e-GY6$sl~wTva$uQAmR_mpSGDSc3okff(=L%xX@*sDqr%VR_b@JL zre}Pmbq{~kmwvX2teEx%Y^_+0tZy)&w^v{CNC z@VYX;mY4klEPYZ_@J@KOiwQypD;Kwl+zQspZXB{NoKN6z$w&|>nhz01HMJ*B-jK{t=i zF;uqgq69rzYZx6F8zCq{1r2xBFQyyaX+Nz}W?I_{Pp%)iXr|HyGbh&=?N?RPoC_t- z_n$I7!M7!k3pDZBdYth0@hTV4(FQn?vQmaKx7YQ|i!+`%&0DV*zIk7+BZ4S(fI_;1 zi_h{l0#Z42SBqv32QT%}G~@hZY}ymhOIXAF^6aRKaP61LMW@VY^*^O_ z3>_Y@xs|fl-S}4|N+iE+!Ph!Y`@PtIE~n3t zl;T!syf#r`E)_Xaazc4b?sZoAiIVbXGsaR~`galp>rcoxET`=SB{CbZI|#KF@sZMS zI|F9#8|XfMFF9MKW0Ccih*>sMCEm2#pyp800TM{G*SJcgd z{4RY4EK_vXPCp+Wl>KPcIg083{T@ZxzVCW!b)S)905}h4`(;4m&)XS#D}~w`295Il zUwoaWKJGH8JqXrnULSAs@F-Q~AMxf>@6WXIZu&hM?+w9Jtn6?=o|nwXDQx$Yg>J3=KtevceK#H>m<*(kdV zU32)+)NjWh2+12g5gD8(__AF?qa@G7q-x3M`kfvs=U$mdLYPQYz4TcKw| zjWoOC@{J(Z94H>l%XIUaF;U+nwi z8{jnqP`>Hf;NeQ8|8xDhIKgeRLVPTPlN26D2X?cRM3cG%F4T{3As6+YK-xqv_)5BUv$==vXF_5uO-Hjg5&%{{O-tX&7r7mSSyfN42A( s?Qm4OE!CEW!_ZJvnyobjYi%jcuoRDPPDWLHlLCO%O4*y%C@P@mIg#=zm8@h>Qpo4Ao8#*Qj~XR3LlbIS6(A zY|sMUT%NicrzglS%PDzZ&&-%xtf!VJYm3}Xr`U>`D=A8YQZ%oU^F{M-y$>;p@sD|U zLT&T=>d{f|gp$rzqyWvQ^O3uyejjeEB$dx^#+T3k{=wdQX-vc=08DGH^ARjp+W$1~uTNN&>qO>=j7{Pn|qrfJnC0so1}Cc9bl5XNC{p&#i|% z7kJ%A6GvCx1K$HFfChkJs&Iwm7D#Q8j}GQ!F%X7>ui{J(c;h(sya+#A*&on`#3~GB zVuD-mdFnwwrf*~gvNdwLfiw z#=`y$6PbFjK6fHN4$;;Vuo^G;<5CBE2qZak`;5Gp&c}GrU|CMH={1)dPq-i!3 z#yCay0ybF-N2b)yfLVC~8_-D>$=0c;teTO2VZ!UdwidHNe^hkzUC5py8QaJiNZWgv zd5SYmcn`F-6g3mG-z7agPG}NyOa;ACs!TO9;twogUx5@s0>C^%B^L46^aNSWy6uV; ziwp8q+&hKkFj9a)@G;Kxyw3@g?t%61_l4x0tNGa^!Ch5D;|7{ACA7d$Kc#T@pS@(^ z;8&^)d!iosVC^-nGEV3n`r4RdsUta!II3ndCBVg%cfIGs< zo<)}1A}~_VIs^%i@s^@eSd$6!Z*Hihar6yR?ke6N;cDjIGb5r#uH3XS2bYlD&Utkl zHGk!9FuKPR=qXy=grKmKA=Z8MgwC$3HINT!ZmB1}ikVv`DNOgOC5ZVy2OelxCdn!q zvvffZLN^RE`wkc8K(I>^!I2#LWF6~;cN_7?E{7=i-5pIuSUs7(e?S6zJ#%TjEpzmM zztQBn4KP0tueO3T(sp&{Qw|O-na;cSiZYd}NK2*Gk(IjPi+rFwNHCt%$!-Js@^$Qf zJv*ofaH>5LbN1&B1_e!(wZn5{G(zt!jZP3ksPE~M^uAjB?!2ME=`!{s6tBGot9Zzn?Q>%&vu4qS8P`SrNcJv_L@=UY4UWs4 zzIVbNqOIG1MLfuZEsWE1&a7KHy0>rgGT6ST?;A-Mzes@R)*C*D?BK497bj`p!#OD_ znoEuwmW*5U+3-K*_8&$J8LotL;5FkY#kh-wyNdn!z8WgH@I^tbRn`rNX5A3lgZ?za zFgv0u*`nZ)W***B&o_!g#q@VkyOjNL>pmw+H}sKP9cx=<$|dJh!3wmNOtPMe{|OkB zQV#aQFKaSlGvGI^M;k<@z#rUteVTAH<=5_d}p5?pEPmf zf?ICf(Vxq}?$EYN**Ae)lur#bwa@XV4eaWvYgj4qj3b;>q{xD9se{W?=t{PZnDctP zD$821=Y;l0t(dEl#k1Mwd~0_a9t({6b`v}W+9XEDrU8S??C5>{(VtdT^C@-@@FVZ} zVGHNv=l2zi#N(V79P!B@o%{`((*vU1`W5e^?IiVjS%Yb=!7mNF; z@bH3ATB1>^b4S9Sq-x@|*7(lDYxGcqNDhI0Ju=@GnznYEBKqk-4*dDCR5>!jzPe}h zhGeJIXzfFuI0U@tQStZ94xXYDJG(L)8bCcP|7m^eF`trcK8BQx^XWQv5qr^Zpby|g zQJhWcEH&X<_uTu3EwN`XZXj!x&MUObSPj`8Phu4^_LA)Di5DhSoU{%gh&DZjwbokL=EIt15Wkm&1 z%1N+h7CDR7H3~Pp^S7qN>O<1Dsi8h0CyEaNGkUd-5u;I%2u!#Q6)_ zWO0?6$UK_6Y3L_DjVyACRFycMM!YZ4Gbt{Z)dt!G0)x86Wf${b(Lf`WIEgm+UVG=E zygSsR^~a&nXxq!UrQa8Ga*`>-cU6Q#=`PdtqOj3*lQM3RiiMo6 zi@y4fstB&nQq_G;P6=f#86Qa$wI-X|-TGke-Oo$8h#$ApLC>qyUE)>GDUICM^_Cl{ zZUor4b`*{bVvlmw;$112YAo?F?xwG5kP@!9vT3HdL7E%X?bMo0C|dp6!9QlVxW_}U z{nC>8?bKb4AC}5QxSqDiP>ock!`o^^TrgrI+*0wFm1(M@`|;1t$gsgh%1-_|L)n;idG?7V6eY5TTJ&@qM07)>Ia?mSJ)L5Xpx|{s2 zQ`9qPe6aG#&WqEmG95(FPgipurkMc` zBVU;Gic*!x%TCKFY%M4Z@yN%k<6lkM#oK-jKeiI9_{UuNt`eeQOuU}Np(1wBToAT8 z*b7M-2187x#9gx7if7=?jw`zddA5&_D6h7eR_eR1$E~$U8$hMAjCAkGKYFwRIoNxw zoK<^i5HRcrNL1rhATLK5YS~ZknFHHT^0vHFvuc==kY?XHO4qA$_wK#Ac8Wfad0chI zpxl-ei8~@8j)=2)uDSf<_j`J8`v;TjuBF21`#7haf#MT6>dBA;v8rs-!QW2SApMbv zZ)uUnxIk2FYm9NUUzxSclu59eI>&*Uio~}np_^vFj+lFtf`gE~Fx!c~)-TTAhbh4( zI0wH(xvW;Hp4E1r=U$G1l8Cg6rnmWuhV|zg?NfPZ;wK)tBd5pHkbcd&7gvEX2kJgw zdv8DGOagxr%zuQIIBG7M=VduF=_};jMTH-k*$rMut3z-F9-;K|#Wi65b3h_{cvzsRJDxh5+4=aE>L}vwwfXVX}SD zFNE{03Q>Q_nablrs%9uJ=t9rm(%njmhwZ8M1@z_geZV6l-%U&+`o45tuCq!*E}fwU zQ%N7-S&Fb#nG!<%GL|7$prXbHd0JAkIstrKEKjP=(O!|Jr_pulCak3R>XB}g%>|tu z;Ve%wcBSLlwi_|5^|&phhOI%pr@T%kOHy4nH+y}CeEY#hl%sLT4(-Ik_`MWofUe7|`tEGW$NUEYvtW~0neIKd<+2e%>WBZO~O+*V~Y2t-g5N(aF zQ9pCCw}}sAGc}oEM6uWn8S#3THk{-|>5Zqa;DZoKd=YN>v~5|2u)ECLsHT$A1X>jRoLmRjUS=Jef9oT$GGQlmDBa#L*Q_gZab35a_ep`ONWs6DNTl7 zevhfEhXk78TDV@~Q-5gqem9bN;}cWo-3eIJ#dg(~)U%^c`nQr{4R$08X<5`QXmGsX zo_vFiz4S54ezrH!ujc_mGEjh)iFBh%OqPY`7*g`G_)!zN%CJ=@dGZ$m&svdGOfsb*xLIhvN zTkJ+H=j2Mrg!rAe+W#ab407V?NKwdRo(j*+>bKl!!(t9Rs@{Lj$72?* z7Whn-h4Si(EV!(tVTcR+8m_^g| zf+RCok6xxG5FV?S{Bwcj&TzP?kqc)l^AM^L)#%sHQd;lebsCPo!ywHC!JXi}D)}MP zxhK$Wti&$4rfXag*V6SfPK^Cb{Io$GxlG39yW!)Z?7zIwn+t-ZFaiUtb5p}K`SwO= z`XX;w$>~{p&NxBmsv#j6-B6T}c44)QM&nQ6EtJITKiqR3Y_sIwh3I|>ic8()3-aL> zLrgKut-D%+DG?8T<<|tJC8|1I5X-Dzb<`-y;YdzV%6`fphi-6hnOR9+-e=VV9oSwU zNHIvrfnDN_Ao(p&Y^pd3>z|vX#FfYq#Wh1sItIdB`R&D z({xYb;K#nM^3?t=u@p;!7EemTWJh>E^O;TQ@ouZZa)3>i-#|mcrbT;mki5==h)hiu z*4sEl%h4j0hY}wx##RWVld`-a#i1*XlQ*M2%9pZwa+ytaL$|M_d$5S}Jv_3bF0PjQ zOhcG^Y4MFqTd?57QPp-qx_U!y9osv$Z5b6*;sfM9UXJ&jpG`b|(B4+S!~RH94&%*F zUVzP2W;G@yPDY(W8SFt_#kYg~Huuhu<=*=Hi#0+&0)c4ra-%s{s7d3X>X(h>=ZBDS zZV_8wt;i?L=Lxwe6Xz&D?69T4OjETyTUrGi6gOQ~Y8 z>L`o`3act*ht-q{jEW-bpwY3hu_{4-X{Ir0m9U6_xl8LzK>+?&5g!;G>Z7A$9OfGx zN;(&%qhrfNBLVEa!>8!~!~CbFj!qycC?GHjz-p`V0TF3TM&w^Q|IIiB`9%f(MaJu; z*_jC9Ux-yuC@CtQOalHhDm3|Az{!V>*8fMx3eThftcDg&T^))u zO-o3XP9umAwSe$m|6 zj;2HZ3WSmNzQ2@wo2KY}46FEGwc%bHx;3^UIBY8U{xnEn+I zPo5Di4-e|1u>m^j<92Cu9vPEAtao^FW3vItDt^r>et>?;K$+1OoS-xspJ~YG|2i*WGhvK%TqGI6B|-F23H3dP~J9-^oF0sxw^EOH+Q~%-TCUY zT&lO+)E0q>#LP8y5psW(yqC1VoE99OoGf?m_Qvj>`2qwEzvNU9WT1y~*}~Ijd?6bE z3=$*Q40wVzZXKRZe>oM(Hkh=9Z=c=<&H~Y{`5<`USd?()69@sgRGy6u-yQ!El;D>W zb6sEBBP{|BmjY%zj6FfwTvKbLIueVUbT;q>w5`tr0gIA=vO6PmZg`z+@DLvA2H61L z1TEqvFD;ozbsQOUiCB=AH{g61eFK?%`k?0&c3!Y;(zs za^!GFIQy{(RdM9DRG;mskp@MgH{UGpRxb7>xNPz;nRPYHml{TnI5_L>wNzla|%GrO*e{hZ`Z%b{?;g7>xOwfgi~vVMS+{$?00Yn z{J;*Kn$ueQMK=-@y(m!@AvdFKlpQ&91v+^BjcU4~#)-MK^J;A6I*743UrSe3``UT-W@ zx)({GMjSna%Cx`ILFJhmhsPO=R0CUw#FO^*UpmpV>Ugmgn-9MQ-_Zv1wpND8mD_;) z$627d94>?8V(SkN7)UaBYs{aG=w!Uj;*D0ZS84o3e;2f=lJxpZ092Q=CllKwQ+f|V zRf1Z#&FWlG;*L{`BlBl4efMTWRE4!b@0qS4puO?2zq}Vq)%X-iEYOJz)9p6GvGm8O zz{CyjXRv8Llx)8?{vBP-On3Vi;2P;FVhdCTF&rZ#=@<`0f=^S!f|!zjoCZLKw1~yxtYT&E z)(b5#14Bg574mlk1S&`6q4HvMrTgJj@2t2)X^s-<{xE_LbX()S_xrwQKjFOR#JAIP zJ;NA`iCpV-%!UJTZfB^jm?PPscHyk$pdaSebh;A#$uC^+2ZL|!aoXf$)9~ld^({1> z3(S=^*6uM*lkR{D>-Hi^!6qZ>{f2=;8Vp2vL5_wXzj62pOG zvHI~d%n`709}k_e883ayKCy|or9=Z9R-QO?EXo#`SB&0*>SpXen#j`wb=K`|8{z}Y zQl7@B&sNU}$~jUjdhIPzL)?c@jSIcc9STVw}^{J7SBuRfk@w3PI5l6Om4vm;Ojm;msE@JJ2cjc=Yb` z%TCLKkL`*EO-mR{i7-xexqEhxs!3;Y`H=e@yFz`B55zMpmt5bo@TY@X3gpRlXo;ar zhCcwgVpJ$6^}BbQ7qiBz-T1d5muqLAv>;6khEDwb1{sVMz^-)l^sf5NSE_kQGc6`^ zm+4-<7Q1pM`jY4(-}Nk{D3*AZ_#`2Hp5YcJamHysDOJw1jW>n;;7E_%LbvI2^i!jx zGx#w5Pjo#3>gsF>tj5H7r{4MApL^tyvPYNVLPk+i%k9F=>%gah;^FrwAi&=13^g0F zN|lzi|&)%+NdEOUAK|&;PTiT z$wbKdYFTq={V-(x}WXe6}2{As{oKS|!FUn7hvOlvUMB?a3Lc>G?;?hP4gnuxHV0hlrlD zK18%~{tcszjotM!^Vmb*mJV5D)!aw9vSDZZ4~;Y3F8zN@9xL>Rx+zThupJa}hk3HD zZpu9$>OPd&;)&wLx#Xuz1h~-l-}Ivp@X(LCOPBN2^uYQ+VP9Ly`|$t zHI;Jq4ZPDQ@6YLdYiw6>&BmJ?yT~fWad>T_yB!hCm(1B5R$*t6(bD%?uI5`{w#&j# zpT5>D688*Wkua`o*d1sv9b={JgptHZJstnMqY-ov<~mr6AZiV?4A6C9$17(GpwVd*^NlNFI)~{vA=^fw-PVHFyhk!!xA6p zMG=3-`vf(tlGL62)#^g~QmbfJ&=pIoa0x0uxuo7UspJWu1@Esc&t5JcEiD^f_UKa~ z&l#Dmf4nv{a(HsHC@nTDA)2&kR6eq#Vath|Kg+-Cl%85Y6djUaO-KV2`ZFI()=k$S zW1T)P32bhZ@vQS_M)VaW=0rUO#r=~l!dd9sE$ArL&y9)W%Z#jPeVsep zUzz2ZJ08-PI@A>@EMSG3hkMEi%PWXMn^RM!nd^C1)Ue;hNPCt;+`E@1W;QQrPrP~Q z8W_U2g!^QQUH}EKQ*JR+5Z9l91%H~E`EWxuFDBgwBxiqqVbBov887AKNXM-4zr)Is zm#v;xp8FJVM`q?6qz%s`&K38yy`)!CPwQ$EZjoOT>#2zop1B(Gx%16Z&cRN3S}_R^ z?&v@wdIb4C>pCZeFp~7raFy*nFyEXPFQOupMvJF>L(H;>1lVPYeIj8E4eeU|$nlVa zDQV18oTXk=BPCd303Qi_;#y(ExZaB$J@;xvx-b=@FuE2nHLSSQ$BelNt^+1`nPxLG z-{60eqx7vYft&XS#fUn#oEop^cH&#wiuPbxk1VZN z)*r~;LpIPqx_O5s?oVA>q=bPZV~NeKebK7aq`%yebZ=X{TS}8Wv|zCNK~aEO3emIJ zR6t}M!C#muYf@t=ROG$vMY1vf&O<$AP=jo9LH_urHp);0afng+F7p@)rLl!*)$;I0pJKd5apSiTgvmCfN62bpL6wG`7i=^}A@ z?E5C0S1(Zx*&mDZV`zsX5&K5Nc3j^Aa>tQVwLOf)ypM8#vHt3?$JLgH?`c;ImL6kI zH^=Q#p5c)ce_)!fUa~*HeX-v?5m}Q)<)`qf>Q<-dnW{0zXPG#_MZvHpo5`>fr(5f` zzbRzMMw*o<*f0Y{V)lq)Y9vzAy*ED)Y#>L;_p`Jvjcf=iG(mrw=UJ%`rL0ZQg*~#VzDo8v$4db z27hgeVUqsweZuMn)G(SZNH=Qe_(;C!xB2wRh14grq3TqI1m;-TlnergfE!n5i$iYR zRf+y~BO_U9O#TgG6B9I)_>lDzUb>PY0m068mJGb?TW(Nc;-au4T&gd{*6HxxVH2`j z+b3Rleq%iDmS{@+a!lv6peV~Npp!k1PX-lX@#BCJy(dX|PZIIJW%UkZH1ugL+~=jU zFGmaTvl-IFVztut#&gf{Z4>_7lc*g}{VjSS<;qI_bZ2M(CwA`a?^yBd(Ql=z1(C(; z!G=i*$Vf_S->^SUD4OEu-=Mm^-2f~WU6A?LS3iEA{*P;Za&?#EogP7kUdH42#E6fH z9+3Gj(Zc6v788-$ep$KspFz9aD@u9hv1!PxUWvt;(I3RgYB)yNsZriA!Sjfb>`TGOi;i+N)#(#SVX z8_*av@b&XWAG+w8G5IQj=AWU@Mqv+E|FP6OLsWaTmQ?qp5aEe=!S6t*{#fWeIcNEb zFO(Q8hR|WG1_wN{Oam<^Q4OB7=M`bG@P4j|#WQx*oKdMS@^_ZZ zjqx(a4b?p!9$y$^M?7VV*%omV36efh@(gheUx&;zj7JJ!LQFfA3oq?oe zI}DF;1R%IU{?Ru1=Wy-IGG1K7cl#WS`667Q0hTsvof;OkZ^oiqAm=J<3ksbq_Pbxx zQFlpwHqm*fBA5jy4bME)6k!)kiw#Rp>pSMv!7~wI`^Zpkuj)b3{--|x@+`~CuXZ{01^@h%Z8?Iy)LVnxoT6`-H z)WbQ;Oa4yZKD7<^`>=0=*%{gP1w0fomeVa7Cq9~DA zWx*)3^^t*aoH6=E!|Lf56*nXC{#Kh>qNw(Ytj$_Cap^>fbf`vvfpB?7 z`&&Qd=DR6)%cttS#5Go;Ztq9-)<+rzY0aXaklL$(Z-&#WLH2f^+ zz$|ZBp0*m0be}Gru;gA||9m6-)HI%!0~Cb4XIEf_?5C)`y+|ilUBa*?Tq}D^eHu>H zB-=UUy7@B9rc+@##e8T&t&KrBu%f7qKGJvaGIeE6`&0M+1H6aTwo!}QY(zWfcx&F(A>SJUrvrd*!* ziQr^#Y3;Z8H)ME_&dw#wstVhhs3*hRZv?5VCc?bm+lig~E?H%P$h)|e%Ffz7W$0a# z8wwQqHv7s5VpGb&&+4LsSy9d%DN-WIgow0ja@%3if*f;qR!`rFEn9Gqn%9?`4lSDT z=oYJU7G-E@6sJ2Ww%nL4C^)_xKSzN%zI!FNsiJjHM(6-OQcCzm>St(;JdL-Ln!g&$ z%2_Rs$xY$B*$Lc6kb@e?5*0PzU|?c6Fm%B;coQyv?YM@Rb|PY|B0=|?>A5_ewawh# z+!^&9RxJp*2FXb$ncgfA&fX~SO{t`|?d3}okov)e%x6uwKBO~xO|#H~ur{Opm_eW- z>&U=h4)l;|!QIUabcBB*8DCGoJ+yt$K{t1D)5c{!bU;48sc7A;eJl{}j9EbR)Bfv% zGlU#?jRnj|%mRiZ%p9dYgXACpOS(C^olK{vV)`XL8*l|;kk%inHQd+1+wjCcrk>R{ z@6RxC) zQjt?sl|w1PZBc4)-|%ppmV!cLWTd>`Uz#Q~T0S_`hkSRN77#f5HzL|MBG5xi%QzSt z5$F{ZuBBx|L&E@6&1tv7|6=|-rBtgg}|WjfM6d5Z}*#i*x;Zrh5x@X3Z5#; zo@yS-%9>bBtdgb%)=M3$?x~^TsfhJdSN2d-mZy2h)9Tx1=AreI0pOyEwQ-}NTf%<< D<&9>8 literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-120x120.png b/app/static/favicons/apple-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..976e9401f6c0a38b174e0b506b5ad7457bd40754 GIT binary patch literal 5972 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-144x144.png b/app/static/favicons/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..54725bf4130958cdb9dacec1af1ec690be9c6a10 GIT binary patch literal 7486 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 HG2#CJX(OF= literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-152x152.png b/app/static/favicons/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..510242f4894949881ecbbde6f0dd2b0c983b3942 GIT binary patch literal 7991 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-180x180.png b/app/static/favicons/apple-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..9362cf014a7a49bdab8205eee1956684c4b35c42 GIT binary patch literal 9600 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-57x57.png b/app/static/favicons/apple-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..a39b6d6f2e2d752bef8d4c021772397bd93bcbf6 GIT binary patch literal 2782 zcmZ{m2{hF28pnTb*^)Gpr5NiFVupz^ljToi8%uUsiE;f2YdEU*)^q1ak*-0C<)rwizJE9}7@jtSx|wUimrxKnZK(;s5|q z>Hu�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 JXtt%L{~J7FVCMh; literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon-precomposed.png b/app/static/favicons/apple-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..92a0867e4ea5f596004bf44ff6ca3f7fefd06a3a GIT binary patch literal 9152 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/apple-icon.png b/app/static/favicons/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..92a0867e4ea5f596004bf44ff6ca3f7fefd06a3a GIT binary patch literal 9152 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/browserconfig.xml b/app/static/favicons/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/app/static/favicons/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/app/static/favicons/favicon-16x16.png b/app/static/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..576cfac991cdedcc346ca7dd6cda724a1d27dfea GIT binary patch literal 1227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5)W;g& z6XFU~z$cl(E0F;tse`C!6t$d$*PQ?V{|n!Ew-Fc+p(R0npb%!Zm~`o_K>hQl^Z#Bx z_h%kctBhxR%c{?HOy;li__h4~d{mpCO#Hp?z(2G1Cx3kV{&Sk;hYMDYwo3hPI;Y!N z&+yWDa4{?G{sfho%L)ZqCbM2ih`A|SWe+r%G0EHAC5(&rWhaosS>O>_%)k)i2EvRY zQ=Ea3%5c%s#W6(UvTgtEu%-Y3hvypC1#BbkeQ;@0SsHm~%NiF??YHwx|NqyPO*vRM zqkZqSH8Xh`mgsa$((zstpvDlO)K%3`Z4#=es^I0i{+f|9Z>vM>RQ`UcvtrBdUOcO3 z@b-q)%el9<-7P;?aNvNe&3=hKjinheeHU9-XP@VQ1@kF(}>Er0XqGj|?~_5%Kim;uUa|m?Dqe7&35+ai{I^U z9&ho&~vIKt`Q|Ei6yC4$wjF^iowXh$UxV? zP}jgb#K_pn)X>V%OxwV~%D}+;j7tiNhTQy=%(P0}8muP%xdGJR2C|_zKdq!Zu_%?n zGdD3k)i*IcGdWwqOwU};Lf2Bk$iUD<*T7WQ&`2TB&`cqtq@=(~U%$M(TrU%(8i;|a z_413-@3g%I8pt34GBG5hG&jl0$|XO!G&eP`#L6lFsI-{DaQXk;`eCdx65q_+)RM}AR0goC^b7LR?Kg$_ zp_$_w0#wCdXlia@Vq$1uZdRneWhPJwKax4YnN_I_22M^>7TLW4N`)awg$8*tq-Ex$ z0==)Fn^%&PpRS*lSeBWbpI5Aph#3786XO)KBx7UCWXohDON-=G^JMcB3zHOs

w` dBr{_@pbkBt``&Vj01Foe22WQ%mvv4FO#r~(hGPH# literal 0 HcmV?d00001 diff --git a/app/static/favicons/favicon-32x32.png b/app/static/favicons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..200b8805a15abbe55cf07637fd693bde8a65896a GIT binary patch literal 1868 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 BDSiL| literal 0 HcmV?d00001 diff --git a/app/static/favicons/manifest.json b/app/static/favicons/manifest.json new file mode 100644 index 0000000..013d4a6 --- /dev/null +++ b/app/static/favicons/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/app/static/favicons/ms-icon-144x144.png b/app/static/favicons/ms-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..54725bf4130958cdb9dacec1af1ec690be9c6a10 GIT binary patch literal 7486 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 HG2#CJX(OF= literal 0 HcmV?d00001 diff --git a/app/static/favicons/ms-icon-150x150.png b/app/static/favicons/ms-icon-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9448ecef286e22803908d2afe8152e2a4557f0 GIT binary patch literal 7970 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�VnUW%7;)AxkwKbu~R{^)mb|P_v3i-)0vt;umdG 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 literal 0 HcmV?d00001 diff --git a/app/static/favicons/ms-icon-70x70.png b/app/static/favicons/ms-icon-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..597377d0df463e58ee2bbc8289a13391846e9515 GIT binary patch literal 3486 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 + + + + + + + + + + + + + + + + + From bb05c5e151e5c3abf71026691ede402d32a5f41d Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 00:10:12 +0000 Subject: [PATCH 02/13] create robot.txt file. --- app/static/robots.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 app/static/robots.txt diff --git a/app/static/robots.txt b/app/static/robots.txt new file mode 100644 index 0000000..105d246 --- /dev/null +++ b/app/static/robots.txt @@ -0,0 +1,5 @@ +# www.robotstxt.org/ + +# Disallow The Wayback Machine +User-agent: ia_archiver +Disallow:/ From 400c0f0310dd6e69a489d25934cd9d2b0bb57c4f Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 00:25:16 +0000 Subject: [PATCH 03/13] add route for robots.txt. --- app/app.py | 5 +++++ app/{static => templates}/robots.txt | 0 2 files changed, 5 insertions(+) rename app/{static => templates}/robots.txt (100%) diff --git a/app/app.py b/app/app.py index 2d3e6f6..74dc000 100644 --- a/app/app.py +++ b/app/app.py @@ -12,5 +12,10 @@ app.add_api("swagger.yml") def home (): return render_template("home.html") +@app.route("/robots.txt") +@app.route("/robots") +def robots(): + return render_template("robots.txt") + if __name__ == "__main__": app.run(host="0.0.0.0", debug=True) diff --git a/app/static/robots.txt b/app/templates/robots.txt similarity index 100% rename from app/static/robots.txt rename to app/templates/robots.txt From 628ea5a9a2099966eec3fbabefcff6779a73e233 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 02:28:56 +0000 Subject: [PATCH 04/13] add styling and content to home page. --- app/static/images/logo.png | Bin 0 -> 30532 bytes app/static/styles/main.css | 37 +++++++++++++++++++++++++++++++++- app/templates/home.html | 40 ++++++++++++++++++++++++++++++++++++- 3 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 app/static/images/logo.png diff --git a/app/static/images/logo.png b/app/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1c4a35c4bf449a327d534d04ea307b2d10037e GIT binary patch literal 30532 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

-aoY7ycXq7-jpN%SG5 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 to Ritherdon Project +

+
+ +
+ logo +

Return to Ritherdon Project

+
+ +
+ +
+ +

About the Project

+ +

+ "Return to Ritherdon" is a two year residency at Ritherdon & Co Ltd, a manufacturer of metal enclosures based in Darwen, Lancashire U.K. +

+ +

About the Artist: Nicola Ellis

+ +

Nicola is interested in the properties, value, function and circulation of materials. She has a current focus on metals and the companies that work with them, her work draws on the visual and spoken language of industry operations, fabrication and profiling processes. The parameters for her sculpture, installation, drawings and videos include relationships between people, businesses and technology. +

+ +

About the Gallery: Castlefield Gallery

+ +

+ Established by artists in 1984, Castlefield Gallery is the first public contemporary visual art gallery to have opened in Manchester. The arrival of Castlefield Gallery in the city was a significant catalyst of what became a period of rapid cultural growth, and the increase of the presence of visual artists in the city and city region. As a registered charity, our mission drives our work to focus on artistic and career development for artists, as well as deepening audiences’ relationship to contemporary art. Over the last three decades we have become an integral part of the North of England’s cultural fabric and a vital support to artists across the North West and further afield. +

+ +

Links

+ + +
+ +
{% endblock content %} From 1ded49cfcfccb39e275bcf48e6366bd3b2c618d8 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 03:20:48 +0000 Subject: [PATCH 05/13] add artwork status bar to home page. --- app/static/images/error.png | Bin 0 -> 1411 bytes app/static/images/logo.png | Bin 30532 -> 5212 bytes app/static/images/off.png | Bin 0 -> 1282 bytes app/static/images/on.png | Bin 0 -> 1423 bytes app/static/styles/main.css | 28 ++++++++++++++++++++++++++++ app/templates/home.html | 36 ++++++++++++++++++++++++++++++++++-- 6 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 app/static/images/error.png create mode 100644 app/static/images/off.png create mode 100644 app/static/images/on.png diff --git a/app/static/images/error.png b/app/static/images/error.png new file mode 100644 index 0000000000000000000000000000000000000000..feb9751cb44c8258f2221fa463acbf334f0e3c34 GIT binary patch literal 1411 zcmV-}1$_F6P)z>+HAzH4RA>d|n`>+oRTRh1xzjDLQhWq3MEpRIww4wH^+7dMP!prk z7_FiojT%211^uL-{HB#e<0F3XlQBwtVK4-VF;%gEQlqs`Bq71K6;rMD!S2rSf2Qnq zceXn_+g;k7nVW29@4e@qdw+9o@0>gLEYo>Pa(v5DS~PV%k=;VfbtJNZm@YwgE0C{6 zK7sEO_>AFm8g-{oHjKI>l&Ct&n|l94dD#<}Q=@#paW!%Bej>gLdauE!dXD<_W*j4- zPBPrdjs3sPQBO{@vH%101~Rf6+HZlCtejp-E3nc0Bg}vfZXEccG*vJ~DGH>&aR-V0 z4AiuiqNj+q$1vr0!{UdFXp<#6Ctw+>TSLjJJ+S7^EN%0ZVctve_%6Qk#LvZcSv0Wp zHQWb_zJ`u!i|wq;@_*rmKg3Og9~7h4H?aJ$ei2Ppzkq*&M~dm-{LAtyG_vwh-rl7P zUBToF7_hZ~-4EDp1vM^+fE=PKyPfNY^%3Wp3IfYF>sL~&`XFF8dum$v%5N!_xS8ut z{OL6mPhc!g%PC>$qhOPllFF%*O-*b;O2N-VRT4K8wf)}`j z1C}3!SJvS6!*i!J+j~L)tG0o`tP1}0;6r3%A$l_ye6&i}Bp-Ahe2AF8I zK9-h82zZ48FNqLvEfy`ViV$!@7p;FH1I#?3Q~K}70E>*l!c?}i*UG#{tl8k-C(A3f|!Fx6W%x7tI>}$gyuoj)osty1Dfy=dlD< z(L=LvCyfX~(&sQjsbX*8udfqyM?PqOn3ISJc~^(+03!(O53JT72aUt`ct!T{=9437 zV5ea+nR5=~TVbUO8cCn1OiyVHn45?6Oi5Slu%*K|TS_m=X<&y^%u^ww6+{T8PaTvk z3z(bwx?tfF01Pgq|^lVas?1`-CUm#>=v>Rw4rC7dRphy9I-n=LcZj zU)|%*0agKS8tBAh>Q%RJVDd~aBEDn)Y~!63*b%IrdJNZ3XKPf^WkLt2f8gi(2c}3HE0_zQs!TO6SVGac#^zbXP>|42E=#1NNnfd%v`ka)b zz_5lx9L#K3QQw6=!J2bpAy^%AL0}a^tkb_Vvg&r&`(@2nRKfy<-$mT!jM2xy3QlRa z4um${iO{CkQGSuTZl3cv(>4#nSt@F4>&wEKAb7UzqeP+^*48cM!X)N509#)ytPZwl z3uh7{OtBTdY6o8C&(j&RbP=1U=lw?>nb7+E9Jv0B=MKP^J9Hury$4{?XJOH9?XQ$n zl7-zJ%XiJI$ciHpmv>_BsMTX`8K3z{$YHCBS5KDg^|Si=)LYt=_Uc5sFI_@4HCK~m zZN;nL4OmInLH;s)YA_4*#8MCObd#b-J-<8e$88zHwFf`p>*mW(PNBT)>3_QJbsd$S Rh|~Z8002ovPDHLkV1n3Gv4a2r literal 0 HcmV?d00001 diff --git a/app/static/images/logo.png b/app/static/images/logo.png index 9c1c4a35c4bf449a327d534d04ea307b2d10037e..e7ce327f76303401cc1259d00a22625bcccebf88 100644 GIT binary patch literal 5212 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

-aoY7ycXq7-jpN%SG5 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 literal 0 HcmV?d00001 diff --git a/app/static/images/on.png b/app/static/images/on.png new file mode 100644 index 0000000000000000000000000000000000000000..f04ba179d8d5387b114ddee645786650d6ca38f8 GIT binary patch literal 1423 zcmV;A1#tR_P)z>+K}keGRA>d|TT5&kRTMolwo_8lGy%0mmCB-v1U3}4<&zeYwoW2a z6sXeJZdo89Kr9guSi!10C`cea>Vg%Y;0c&kK?!x7$Uu{{luC#dSyd|HPazOW+;rmM z+-dCCQ*UTI^&#SKwDIx zg}wM?m2y&=6$NnT5cUz|0Hr^`nvIWiA~yf~9jqeR|S0qz>aR>OhUD9D#6tc34=y8XEcFMiBdXWoF_LpY)sI6*}+ z@syMPr14LTdGTpJM&t~*X9Vl?IlRu_(o^{;SaV(jZ|j@!ba=lx>t|J$6X2fr(YR2D zVKTR8l~^8z;QTuDPd;oeaTzVh3b;qZrfb0Gl(I9Ur1DpOtLx|rKY~9pnWAQ@+xVaf`5=>`> z0m{Xk{eJ+N!uxg6Ke?lF&gZQ{waFgUCaOQo_;LxU5T<$JNeMWt0oVHP)Z-;r%av%C%6Yk^`}5a2nL zYg5r;uT{`-msCZ;OcfYf91{&(RJq-%8NeLPGb$tZ-xR0&Dqji#Ppj+eF-cPyLb5$A z%qcjp4)@|e&eUgZ4;Pr4_HtPgp!^f40l?Z4R(|$yVvrfRDr8q$bO9d=IMc(yKK#b_ z({@EmTqj4p_+9XsfaQfVSV|m5%56c><%kM#E>ovw-hYaJrC+Y8>bEnz*L8mkLEOV; zfr1xf6*hSqyz3c{ItZpDz#$L9yo2?TO~8WRqCW^7NnUc30GmLgW{k-WN5;!e6)#ww zmjZa~D1PF0^GPdXwdHy4eeCpM{A{&51+XyiZiFn-?^v0uCC?M!8w`REuVn9vfQ8Z3 zfM>YnoLH$*g_n&q8F)6GjY-Rrm1!yNB%rG$P<}y;@QOo*+w>U$O9!|ExLMH={s-9EE+;^55G4Qr002ovPDHLkV1lCIuI>N; literal 0 HcmV?d00001 diff --git a/app/static/styles/main.css b/app/static/styles/main.css index 865104a..8e43d12 100644 --- a/app/static/styles/main.css +++ b/app/static/styles/main.css @@ -32,6 +32,34 @@ main div .header h1 { font-size: 20px; } +main div .status-bar { + display: flex; + margin: 5px; + flex-wrap: wrap; + justify-content: space-evenly; + padding: 20px; + border-top: 2px solid #424242; + border-bottom: 2px solid #424242; +} + +.meter { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +main div .status-bar .meter img { + width: 30px; + height: 30px; +} + +.meter p { + padding: 0px; + margin: 0px; +} + + main div h2 { font-size: 16px; } diff --git a/app/templates/home.html b/app/templates/home.html index 6f08669..48a458b 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -7,9 +7,41 @@ logo

Return to Ritherdon Project

- -
+ +

Artwork Status

+
+ +
+ logo +

Factory 1

+
+ +
+ logo +

Factory 2

+
+ +
+ logo +

Factory 3

+
+ +
+ logo +

Gallery 1

+
+ +
+ logo +

Gallery 2

+
+ +
+ logo +

Gallery 3

+
+

About the Project

From c4590b906c454c726cba723b63dcb106649c1d37 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 03:30:47 +0000 Subject: [PATCH 06/13] add website info. section to home. --- app/templates/home.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/templates/home.html b/app/templates/home.html index 48a458b..c0a70e4 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -59,8 +59,14 @@

Established by artists in 1984, Castlefield Gallery is the first public contemporary visual art gallery to have opened in Manchester. The arrival of Castlefield Gallery in the city was a significant catalyst of what became a period of rapid cultural growth, and the increase of the presence of visual artists in the city and city region. As a registered charity, our mission drives our work to focus on artistic and career development for artists, as well as deepening audiences’ relationship to contemporary art. Over the last three decades we have become an integral part of the North of England’s cultural fabric and a vital support to artists across the North West and further afield. -

- +

+ +

About this Website

+ +

+ This website is part of an, unnamed, artwork which is part of the "Return to Ritherdon" project. +

+

Links

  • Nicola's Personal Website
  • From 312bcd70a6e87170aed56b5e60ca18191fb1c21f Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 19:04:38 +0000 Subject: [PATCH 07/13] remove in-mem readings and refactor related items. --- app/api.py | 25 +++---------------------- app/services/get_services.py | 4 +--- app/swagger.yml | 36 +----------------------------------- 3 files changed, 5 insertions(+), 60 deletions(-) diff --git a/app/api.py b/app/api.py index ab261ab..a7a53a8 100644 --- a/app/api.py +++ b/app/api.py @@ -9,30 +9,11 @@ in the files in the /services/ folder. These functions are acting as very light controllers essentially. ''' -# The each value represents a light meter. -READINGS = [0, 0, 0] - def post_a_reading(light_meter, the_reading): - if light_meter == 1: - READINGS[0] = the_reading.get("reading") - elif light_meter == 2: - READINGS[1] = the_reading.get("reading") - elif light_meter == 3: - READINGS[2] = the_reading.get("reading") - return post_services.add_latest_reading(light_meter,the_reading) - + return post_services.add_latest_reading(light_meter,the_reading) + def get_latest(light_meter): - # YOU ARE UP TO HERE. NEED TO REFACTOR BACK INTO DATABASE FUNCTION - # BELOW THIS FUNCTION. YAML FILE NEEDS CLEANING UP TOO. - if light_meter == 1: - return READINGS[0] - elif light_meter == 2: - return READINGS[1] - elif light_meter == 3: - return READINGS[2] - -def get_latest_reading(light_meter): - return get_services.get_in_mem_reading(light_meter) + return get_services.get_latest_reading(light_meter) def get_all_readings(light_meter): return get_services.get_all_readings_from_table(light_meter) diff --git a/app/services/get_services.py b/app/services/get_services.py index 86c678d..1b154b9 100644 --- a/app/services/get_services.py +++ b/app/services/get_services.py @@ -12,9 +12,7 @@ at Ritherdon, you will need to head to the /post_services.py/ file. It should be in the same directory at this: /services/. ''' -def get_in_mem_reading(meter): - # Need to refactor in use an in-mem database. - # Currently grabbing from database. +def get_latest_reading(meter): if meter == 1: return get_m1_latest() elif meter == 2: diff --git a/app/swagger.yml b/app/swagger.yml index fff8ef7..804f29b 100644 --- a/app/swagger.yml +++ b/app/swagger.yml @@ -74,7 +74,7 @@ paths: /readings/latest/{light_meter}: get: - operationId: api.get_latest_reading + operationId: api.get_latest tags: - Request Readings summary: >- @@ -200,37 +200,3 @@ paths: schema: type: object additionalProperties: True - -# This is the in-mem. database URL. - /readings/late/{light_meter}: - get: - operationId: api.get_latest - tags: - - Request Readings - summary: >- - Returns latest from in-mem database. - description: >- - latest in-mem db reading - parameters: - - name: light_meter - in: path - description: >- - This is the Id. of the light meter which you are retrieving - the readings for. The Id. consists of a number between 1-3 - at the time of writing. - type: integer - required: True - responses: - 200: - description: >- - In-mem db latest value - schema: - type: object - properties: - reading: - type: integer - example: 34 - description: >- - This is the actual reading taken from the specified - light meter, at the time specified in this response - body (I.E. JSON object). From 641fe8f6046c50d312394c281ab3fcc9e8f59a14 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 21:08:07 +0000 Subject: [PATCH 08/13] add device status-update logging. --- app/api.py | 5 +- app/build_database.py | 35 ++++++++++++- app/models/devices.py | 82 +++++++++++++++++++++++++++++++ app/readings.db | Bin 16384 -> 40960 bytes app/readings.db-journal | Bin 0 -> 4616 bytes app/services/get_services.py | 4 ++ app/services/post_services.py | 90 +++++++++++++++++++++++++++++++--- app/swagger.yml | 59 ++++++++++++++++++++-- 8 files changed, 261 insertions(+), 14 deletions(-) create mode 100644 app/models/devices.py create mode 100644 app/readings.db-journal diff --git a/app/api.py b/app/api.py index a7a53a8..ceb9ba1 100644 --- a/app/api.py +++ b/app/api.py @@ -10,7 +10,10 @@ These functions are acting as very light controllers essentially. ''' def post_a_reading(light_meter, the_reading): - return post_services.add_latest_reading(light_meter,the_reading) + return post_services.add_latest_reading(light_meter, the_reading) + +def post_a_status_change(device, the_status_change): + return post_services.log_status_change(device, the_status_change) def get_latest(light_meter): return get_services.get_latest_reading(light_meter) diff --git a/app/build_database.py b/app/build_database.py index 059a07d..c88772e 100644 --- a/app/build_database.py +++ b/app/build_database.py @@ -2,6 +2,7 @@ import os from datetime import datetime from config import db from models.meters import Meter1, Meter2, Meter3 +from models.devices import Device1, Device2, Device3, Device4, Device5, Device6 def get_timestamp(): return datetime.now().strftime(("%Y-%m-%d %H:%M:%S")) @@ -10,6 +11,12 @@ def get_timestamp(): READINGS1 =[ {"time":datetime.now(), "reading": 0} ] READINGS2 =[ {"time":datetime.now(), "reading": 0} ] READINGS3 =[ {"time":datetime.now(), "reading": 0} ] +DEVICE1 = [ {"time":datetime.now(), "status": "off"} ] +DEVICE2 = [ {"time":datetime.now(), "status": "off"} ] +DEVICE3 = [ {"time":datetime.now(), "status": "off"} ] +DEVICE4 = [ {"time":datetime.now(), "status": "off"} ] +DEVICE5 = [ {"time":datetime.now(), "status": "off"} ] +DEVICE6 = [ {"time":datetime.now(), "status": "off"} ] # Deletes the database if it already exists if os.path.exists("readings.db"): @@ -28,9 +35,35 @@ for info in READINGS2: r = Meter2(time=info.get("time"), reading=info.get("reading")) db.session.add(r) -# Iterates over the READINGS3 structure and populates the datebase +# Iterates over the READINGS3 structure and populates the datebase. for info in READINGS3: r = Meter3(time=info.get("time"), reading=info.get("reading")) db.session.add(r) + +# These are the light-meters in Ritherdon. +for info in DEVICE1: + r = Device1(time=info.get("time"), status=info.get("status")) + db.session.add(r) + +for info in DEVICE2: + r = Device2(time=info.get("time"), status=info.get("status")) + db.session.add(r) + +for info in DEVICE3: + r = Device3(time=info.get("time"), status=info.get("status")) + db.session.add(r) + +# These are the relays in the gallery. +for info in DEVICE4: + r = Device4(time=info.get("time"), status=info.get("status")) + db.session.add(r) + +for info in DEVICE5: + r = Device5(time=info.get("time"), status=info.get("status")) + db.session.add(r) + +for info in DEVICE6: + r = Device6(time=info.get("time"), status=info.get("status")) + db.session.add(r) db.session.commit() diff --git a/app/models/devices.py b/app/models/devices.py new file mode 100644 index 0000000..25c2c35 --- /dev/null +++ b/app/models/devices.py @@ -0,0 +1,82 @@ +from datetime import datetime +from config import db, ma + +''' +Note on Duplication Levels +====================================================================== +While the code in this file seems very duplicated, it is just the +result of using SQL-Alchemy (ORM) and the repetitive nature of the +project as a whole. At the time of writing, the expected amount of +devices is six. They must keep their info. separate from each other. +This means a table in the database for each device. This is the main +cause for the repetitive/duplicated code. Because this project has +fixed requirements, the hard-coded nature is a trade-off because of +this. If the project increases the amount of devices it uses, this +will probably need to be refactored. +''' + +class Device1(db.Model): + __tablename__ = "device1" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device1Schema(ma.ModelSchema): + class Meta: + model = Device1 + sqla_session = db.session + +class Device2(db.Model): + __tablename__ = "device2" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device2Schema(ma.ModelSchema): + class Meta: + model = Device2 + sqla_session = db.session + +class Device3(db.Model): + __tablename__ = "device3" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device3Schema(ma.ModelSchema): + class Meta: + model = Device1 + sqla_session = db.session + +class Device4(db.Model): + __tablename__ = "device4" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device4Schema(ma.ModelSchema): + class Meta: + model = Device1 + sqla_session = db.session + +class Device5(db.Model): + __tablename__ = "device5" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device5Schema(ma.ModelSchema): + class Meta: + model = Device1 + sqla_session = db.session + +class Device6(db.Model): + __tablename__ = "device6" + id = db.Column(db.Integer, primary_key=True) + time = db.Column(db.DateTime, default=datetime.utcnow) + status = db.Column(db.String) + +class Device6Schema(ma.ModelSchema): + class Meta: + model = Device1 + sqla_session = db.session diff --git a/app/readings.db b/app/readings.db index 4cb822be5e6b16b6b29108111feb506e5badf0d1..b555a9763b8c07e41230206af32bddca510c7402 100644 GIT binary patch literal 40960 zcmeI&-D=uk9LMoQZGEZMjUALy7*Eeyn35M`)uXvCY%=RMX9qoWGY(<4V6&Zx$Zlfy zvTG^qO2!^d1xK=4A+?izAB>5QG5?>Rkb^(TySMe8>xk~fpx<_dsXS0rRe36eq9|#( zq~tOiNx2c5eUNK)Zu@VWX(g{!GVhd}JFzDdmu}nraw*ZfJQJ_%GjY)C z9HtIO34Z{~t7Rnv0$8C3i2DN+ya0tnK!8H%0XF>sOfP^L4+vm}9$>>C!0-YXn*jlg z&;!K$0dy~bz7Y^W4?Dmx8sFL7om~Ze$8`p#_a6JByf?Q@^?}pw^v*xcu9x6zU>Nb0 zH>RbGsK5MD`nM~u`pWCm@_NKyekuD~m7nzHYWAlhUkn5gKmY**5I_I{1Q0*~0R#|O zQ-Q~7OsOUe&Cqh1p3_P~FIOz9qLuPmu~;gV>HpXC#1b0;1Q0*~0R#|0009ILKmdU` zft&mPvO)hphs7oW2q1s}0tg_000IagfB*t(DzKpcHz)mnH2Yo2US)sC6$1eT5I_I{ z1Q0*~0R#|0009J6D6k)u&+R`lG`*bDwVYlS`cXwIRIH=CHXRq;u87E89^SCa`TpeL ze|eDLhyTl_JcxJy|4R1%EBtemLI42-5I_I{1Q0*~0R#|00DvSV^3+8D0R#|0009ILKmY**5I|sc0t@LoI{{L^+ C?V!^D delta 121 zcmZoTz|_#dI6+#Fg@J(qgkgYrqK>gJ3xl446)#YTnXj3FzmcDbuX(eefFR%IX1*Lj hK~n`IV=H50D^n9a3j-rd1Cvbx@A)xA&9RDF008h~7ZCse diff --git a/app/readings.db-journal b/app/readings.db-journal new file mode 100644 index 0000000000000000000000000000000000000000..290d5f9ed7c2d6179d082918513d1188f9659c7f GIT binary patch literal 4616 zcmeI$F%E+;3VA&~o30c+(-- Posts a reading from one of the project's light meters and store it in the database. @@ -54,7 +54,7 @@ paths: time: type: string format: date-time - example: 2019-10-19 17:04:57.880010 + example: 2019-10-19 17:04:57 description: >- The date and time the reading was taken. Make sure you use the UTC time format. This is because the @@ -72,11 +72,60 @@ paths: description: >- The reading was successfully added to the database. + /status/update/{device}: + post: + operationId: api.post_a_status_change + tags: + - Log Device Status Change + summary: >- + Logs a change in the status of the specified device. + description: >- + This is mostly to check if the devices included in this project + are turned on, off or an error has occured and they are + unreachable/crashed. + parameters: + - name: device + in: path + description: >- + The Id. of the device with the change in status. 1, 2 and 3 + refer to the light-meters in Ritherdon and 4, 5 and 6 + refer to the relays in the gallery. The pairing of each + meter and relay is as follows: 1->4, 2->5 and 3->6. + type: integer + required: True + - name: the_status_change + in: body + description: >- + The status change and the time the change occurred. + required: True + schema: + type: object + properties: + time: + type: string + format: date-time + example: 2019-10-19 17:04:57 + description: >- + The date and time the change in status occurred. Make + sure to use the U.T.C. time format. This is because + the A.P.I. has made a design decision to standardise + on it. + status: + type: string + example: "on" + description: >- + The current status of the device you would like to log. + The two status types are "on" and "off". + responses: + 201: + description: >- + The status update was successfully added to the database. + /readings/latest/{light_meter}: get: operationId: api.get_latest tags: - - Request Readings + - Request Light-Meter Readings summary: >- Returns the latest reading from the specified light meter. description: >- @@ -129,7 +178,7 @@ paths: get: operationId: api.get_all_readings tags: - - Request Readings + - Request Light-Meter Readings summary: >- Returns every reading taken by the specified light meter. description: >- @@ -180,7 +229,7 @@ paths: get: operationId: api.get_all_readings_for_every_meter tags: - - Request Readings + - Request Light-Meter Readings summary: >- Returns every reading taken by every light meter in the project. From 65464fae5438d016eccfca4700fd8904c70f219e Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 21:59:35 +0000 Subject: [PATCH 09/13] implement get device status latest A.P.I. call. --- app/api.py | 3 + app/readings.db | Bin 40960 -> 40960 bytes app/readings.db-journal | Bin 4616 -> 0 bytes app/services/get_services.py | 57 ++++++++++++- app/swagger.yml | 155 ++++++++++++++++++++++++----------- 5 files changed, 161 insertions(+), 54 deletions(-) delete mode 100644 app/readings.db-journal diff --git a/app/api.py b/app/api.py index ceb9ba1..34b1f08 100644 --- a/app/api.py +++ b/app/api.py @@ -23,3 +23,6 @@ def get_all_readings(light_meter): def get_all_readings_for_every_meter(): return get_services.get_all_readings_from_database() + +def get_latest_device_status(device): + return get_services.get_latest_status(device) diff --git a/app/readings.db b/app/readings.db index b555a9763b8c07e41230206af32bddca510c7402..4b7ad3219c65b18a97ce1b0aa3b7ca9dd01fdde1 100644 GIT binary patch delta 19 bcmZoTz|?SnX@WE(??f4AM&6AH3+4j=L5c>9 delta 19 bcmZoTz|?SnX@WE(&qNt#MxKoc3+4j=L3;*@ diff --git a/app/readings.db-journal b/app/readings.db-journal deleted file mode 100644 index 290d5f9ed7c2d6179d082918513d1188f9659c7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcmeI$F%E+;3VA&~o30c+(-- The reading was successfully added to the database. - /status/update/{device}: - post: - operationId: api.post_a_status_change - tags: - - Log Device Status Change - summary: >- - Logs a change in the status of the specified device. - description: >- - This is mostly to check if the devices included in this project - are turned on, off or an error has occured and they are - unreachable/crashed. - parameters: - - name: device - in: path - description: >- - The Id. of the device with the change in status. 1, 2 and 3 - refer to the light-meters in Ritherdon and 4, 5 and 6 - refer to the relays in the gallery. The pairing of each - meter and relay is as follows: 1->4, 2->5 and 3->6. - type: integer - required: True - - name: the_status_change - in: body - description: >- - The status change and the time the change occurred. - required: True - schema: - type: object - properties: - time: - type: string - format: date-time - example: 2019-10-19 17:04:57 - description: >- - The date and time the change in status occurred. Make - sure to use the U.T.C. time format. This is because - the A.P.I. has made a design decision to standardise - on it. - status: - type: string - example: "on" - description: >- - The current status of the device you would like to log. - The two status types are "on" and "off". - responses: - 201: - description: >- - The status update was successfully added to the database. - /readings/latest/{light_meter}: get: operationId: api.get_latest @@ -146,7 +99,7 @@ paths: 200: description: >- If the server can successfully retrieve the latest reading - for the specified light meter, you should receive a JASON + for the specified light meter, you should receive a JSON object like the one below. It should include the Id. of the light meter it was taken with, the time the reading was taken and the reading itself. @@ -249,3 +202,105 @@ paths: schema: type: object additionalProperties: True + +# Device A.P.I. Calls +# ==================================================================== + /status/update/{device}: + post: + operationId: api.post_a_status_change + tags: + - Log Device Status Change + summary: >- + Logs a change in the status of the specified device. + description: >- + This is mostly to check if the devices included in this project + are turned on, off or an error has occured and they are + unreachable/crashed. + parameters: + - name: device + in: path + description: >- + The Id. of the device with the change in status. 1, 2 and 3 + refer to the light-meters in Ritherdon and 4, 5 and 6 + refer to the relays in the gallery. The pairing of each + meter and relay is as follows: 1->4, 2->5 and 3->6. + type: integer + required: True + - name: the_status_change + in: body + description: >- + The status change and the time the change occurred. + required: True + schema: + type: object + properties: + time: + type: string + format: date-time + example: 2019-10-19 17:04:57 + description: >- + The date and time the change in status occurred. Make + sure to use the U.T.C. time format. This is because + the A.P.I. has made a design decision to standardise + on it. + status: + type: string + example: "on" + description: >- + The current status of the device you would like to log. + The two status types are "on" and "off". + responses: + 201: + description: >- + The status update was successfully added to the database. + + /status/latest/{device}: + get: + operationId: api.get_latest_device_status + tags: + - Request Device Status + summary: >- + Returns the current status of the specified device. + description: >- + Use this U.R.L. to retrieve the current status of the device + you specified (in the U.R.L.). At the time of writing, the + project has six devices in total which are split equally + between Ritherdon and the gallery. Devices 1 to 3 (light-meters) + refer to the devices in Ritherdon and 4 to 6 (relays) are in + the gallery. Each light-meter and relay should pair up in the + following ways: 1->4, 2->5 and 3->6. + parameters: + - name: device + in: path + description: >- + This is the Id. of the device which you are retrieving the + current status for. The Id. should consist of a number + between 1 and 6, at the time of writing. + type: integer + required: True + responses: + 200: + description: >- + If the server can successfully retrieve the current status + for the specified device, you should receive a JSON object + like the one below. It should include the Id. of the + device, the current status and the time it was logged. + schema: + type: object + properties: + id: + type: integer + example: 2 + description: >- + The is the Id. of the device. + time: + type: string + example: 2019-10-19 17:04:57 + description: >- + The time the status change was logged in the + database. The A.P.I. has standardised on the + U.T.C. format. + status: + type: string + example: balshsdkjk + description: The current status of the device. From fc3fe18b0e66d458a6c057f3bc34a61fe3afb10d Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 22:30:25 +0000 Subject: [PATCH 10/13] implement get all status changes (per device) A.P.I. call. --- app/api.py | 6 +++ app/services/get_services.py | 77 +++++++++++++++++++++++++++++++++--- app/swagger.yml | 54 ++++++++++++++++++++++++- 3 files changed, 129 insertions(+), 8 deletions(-) diff --git a/app/api.py b/app/api.py index 34b1f08..e7b6f14 100644 --- a/app/api.py +++ b/app/api.py @@ -26,3 +26,9 @@ def get_all_readings_for_every_meter(): def get_latest_device_status(device): return get_services.get_latest_status(device) + +def get_all_status_log(device): + return get_services.get_all_status_logs_from_table(device) + +def get_all_status_logs_for_every_device(): + return get_services.get_all_status_changes_from_database() diff --git a/app/services/get_services.py b/app/services/get_services.py index 0e73cbf..98b3643 100644 --- a/app/services/get_services.py +++ b/app/services/get_services.py @@ -41,19 +41,37 @@ def get_all_readings_from_database(): def get_latest_status(device): if device == 1: - return get_d1_latest(); + return get_d1_latest() elif device == 2: - return get_d2_latest(); + return get_d2_latest() elif device == 3: - return get_d3_latest(); + return get_d3_latest() elif device == 4: - return get_d4_latest(); + return get_d4_latest() elif device == 5: - return get_d5_latest(); + return get_d5_latest() elif device == 6: - return get_d6_latest(); + return get_d6_latest() return make_response(bad_device_id_message, 400) +def get_all_status_logs_from_table(device): + if device == 1: + return get_all_status_logs_for_d1() + elif device == 2: + return get_all_status_logs_for_d2() + elif device == 3: + return get_all_status_logs_for_d3() + elif device == 4: + return get_all_status_logs_for_d4() + elif device == 5: + return get_all_status_logs_for_d5() + elif device == 6: + return get_all_status_logs_for_d6() + return make_response(bad_device_id_message, 400) + +def get_all_status_changes_from_database(): + return get_all_status_logs() + ''' The Nitty-Gritty Functions ====================================================================== @@ -133,3 +151,50 @@ def get_d6_latest(): status = Device6.query.order_by(Device6.id.desc()).first() device_schema = Device6Schema() return device_schema.dump(status) + +def get_all_status_logs_for_d1(): + status_logs = Device1.query.order_by(Device1.id.desc()).all() + schema = Device1Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_logs_for_d2(): + status_logs = Device2.query.order_by(Device2.id.desc()).all() + schema = Device2Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_logs_for_d3(): + status_logs = Device3.query.order_by(Device3.id.desc()).all() + schema = Device3Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_logs_for_d4(): + status_logs = Device4.query.order_by(Device4.id.desc()).all() + schema = Device4Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_logs_for_d5(): + status_logs = Device5.query.order_by(Device5.id.desc()).all() + schema = Device5Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_logs_for_d6(): + status_logs = Device6.query.order_by(Device6.id.desc()).all() + schema = Device6Schema(many=True) + data = schema.dump(status_logs) + return data + +def get_all_status_changes_from_database(): + d1 = get_all_status_logs_for_d1() + d2 = get_all_status_logs_for_d2() + d3 = get_all_status_logs_for_d3() + d4 = get_all_status_logs_for_d4() + d5 = get_all_status_logs_for_d5() + d6 = get_all_status_logs_for_d6() + logs = {"device 1": d1, "device 2": d2, "device 3": d3, + "device 4": d4, "device 5": d5, "device 6": d6} + return logs diff --git a/app/swagger.yml b/app/swagger.yml index d7afbeb..245e556 100644 --- a/app/swagger.yml +++ b/app/swagger.yml @@ -135,7 +135,7 @@ paths: summary: >- Returns every reading taken by the specified light meter. description: >- - Use this U.R.L. to retrieve the all the reading from the + Use this U.R.L. to retrieve all the reading from the light meter you specified (in the U.R.L.). At the time of writing, the project has only three light meters and are labelled 1-3. @@ -302,5 +302,55 @@ paths: U.T.C. format. status: type: string - example: balshsdkjk + example: on description: The current status of the device. + + /status/all/{device}: + get: + operationId: api.get_all_status_log + tags: + - Request Device Status + summary: >- + Returns every status changed logged by the specified device. + description: >- + Use this U.R.L. to retrieve every change in the specified + devices state. At the time of writing, the project has six + devices and are labelled 1 to 6. Devices (light-meters) 1 to 3 + are located in the Ritherdon factory and 4 to 6 (relays) in the + gallery. The light-meters and relays are paired like so, 1->4, + 2->5 and 3->6. + parameters: + - name: device + in: path + description: >- + The Id. of the device you are retrieving the status change + log for. The Id. should be a number between 1 and 6. + type: integer + required: True + responses: + 200: + description: >- + If the server can successfully retrieve all the status logs + for the specified device, you should receive an array of + JSON objects like the one in the example below. It should + include the database Id. of the logged status change, the + time the status change was logged and the status itself. + schema: + type: object + properties: + id: + type: integer + example: 3 + description: >- + This is the database Id. of the logged status change. + time: + type: string + example: 2019-10-19 17:23:23 + description: >- + The time and date the status change was logged. The + A.P.I. has standardised on the U.T.C. format. + status: + type: string + example: off + description: >- + The status of the device after the change occurred. From 6394009f40cb4bf3e603b9d02e46245d15730237 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 22:39:15 +0000 Subject: [PATCH 11/13] implement get all status changes (all devices) A.P.I. call. --- app/readings.db | Bin 40960 -> 40960 bytes app/swagger.yml | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app/readings.db b/app/readings.db index 4b7ad3219c65b18a97ce1b0aa3b7ca9dd01fdde1..23ac2a8716c40d37eef376a4c1873bfc64d76b28 100644 GIT binary patch delta 59 zcmV-B0L1@*zyg540+1U44v`!~0S>WXq(2M<4|V_#-4DADm=AWd5fEk%0w4sFy-y(p R0|Wp;6O+MD8?(7jM^Fd#5l8?4 delta 51 zcmV-30L=e@zyg540+1U44Urr}0S&QWq(2G+510TC-4DADn6nWOiVp@M0|Wp;6O+MD J8?(7jM^KHA4?q9_ diff --git a/app/swagger.yml b/app/swagger.yml index 245e556..77dba95 100644 --- a/app/swagger.yml +++ b/app/swagger.yml @@ -354,3 +354,28 @@ paths: example: off description: >- The status of the device after the change occurred. + + /status/all: + get: + operationId: api.get_all_status_logs_for_every_device + tags: + - Request Device Status + summary: >- + Returns every logged status change of every device in the + project. + description: >- + Use this U.R.L. to retrieve every logged status change of every + device used in this project. There is no example of the data + returned because I can't seem to replicate it as a YAML schema + which is understood by Swagger. Because of this. the return + type is registered as a free-form object. To see what the data + looks like when it is returned, I recommend you use the "Try it + out!" button to see a working example. + responses: + 200: + description: >- + All the logged status changes of every device were + successfully retrieved from the database and delivered. + schema: + type: object + additionalProperties: True From 1008d3e2e445634c285bc50252e75db9630efea2 Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 23:51:16 +0000 Subject: [PATCH 12/13] implement home page status report feature. --- app/app.py | 5 ++++- app/models/devices.py | 8 ++++---- app/readings.db | Bin 40960 -> 40960 bytes app/services/get_services.py | 14 ++++++++++++++ app/templates/home.html | 13 +++++++------ 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/app/app.py b/app/app.py index 74dc000..2d39258 100644 --- a/app/app.py +++ b/app/app.py @@ -1,6 +1,7 @@ from flask import Flask, render_template import connexion import config +from services import get_services # The application instance. app = config.connex_app @@ -10,7 +11,9 @@ app.add_api("swagger.yml") @app.route("/") def home (): - return render_template("home.html") + data = get_services.get_latest_status_for_all_devices() + print(data) + return render_template("home.html", data=data) @app.route("/robots.txt") @app.route("/robots") diff --git a/app/models/devices.py b/app/models/devices.py index 25c2c35..4b30f1a 100644 --- a/app/models/devices.py +++ b/app/models/devices.py @@ -45,7 +45,7 @@ class Device3(db.Model): class Device3Schema(ma.ModelSchema): class Meta: - model = Device1 + model = Device3 sqla_session = db.session class Device4(db.Model): @@ -56,7 +56,7 @@ class Device4(db.Model): class Device4Schema(ma.ModelSchema): class Meta: - model = Device1 + model = Device4 sqla_session = db.session class Device5(db.Model): @@ -67,7 +67,7 @@ class Device5(db.Model): class Device5Schema(ma.ModelSchema): class Meta: - model = Device1 + model = Device5 sqla_session = db.session class Device6(db.Model): @@ -78,5 +78,5 @@ class Device6(db.Model): class Device6Schema(ma.ModelSchema): class Meta: - model = Device1 + model = Device6 sqla_session = db.session diff --git a/app/readings.db b/app/readings.db index 23ac2a8716c40d37eef376a4c1873bfc64d76b28..3c42e9242dce31415bc63c0fe1f0bf102191b304 100644 GIT binary patch delta 391 zcmZoTz|?SnX@WGP%tRSyMwyKXOYB8B_}((`-{s%UKZC!FKZM_iUx4rJW+6Y%XU08Bn8v n26pjtDKeuQ$b@8q2Ar;o)fKP?RaXAxz9 delta 143 zcmZoTz|?SnX@WE(-$WT_M!t;+OYC`A_{$jh@AB{FpTS?YSx_L2pGkpb@?L+%$us@4 f*% +
    @@ -13,32 +14,32 @@
    - logo + logo

    Factory 1

    - logo + logo

    Factory 2

    - logo + logo

    Factory 3

    - logo + logo

    Gallery 1

    - logo + logo

    Gallery 2

    - logo + logo

    Gallery 3

    From f32e4aec4a079bba4f53e8492a3e45412473cf9c Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 8 Jan 2020 23:52:50 +0000 Subject: [PATCH 13/13] update A.P.I. version to 1.0.0 - Alpha. --- app/swagger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/swagger.yml b/app/swagger.yml index 77dba95..efa76b4 100644 --- a/app/swagger.yml +++ b/app/swagger.yml @@ -2,7 +2,7 @@ swagger: "2.0" info: description: >- The 'Return to Ritherdon' project, by Nicola Ellis, is a two year art residency at Ritherdon & Co Ltd, a manufacturer of metal enclosures based in Darwen, Lancashire U.K. This website is part of the many outcomes produced throughout the duration of project. - version: "0.1.0 - Alpha" + version: "1.0.0 - Alpha" title: Return to Ritherdon Project A.P.I. consumes: - application/json