From 9647cc6cf207eb6a720b9a3b988edd960d330188 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 30 Oct 2018 10:05:48 +0100 Subject: [PATCH] Add more favicons for browser shortcuts --- .../templates/pretixcontrol/auth/base.html | 12 +++++ .../control/templates/pretixcontrol/base.html | 14 ++++- src/pretix/presale/context.py | 1 + .../presale/templates/pretixpresale/base.html | 12 ++++- src/pretix/presale/urls.py | 3 ++ src/pretix/presale/views/theme.py | 50 ++++++++++++++++++ .../img/icons/android-chrome-192x192.png | Bin 0 -> 2103 bytes .../img/icons/android-chrome-512x512.png | Bin 0 -> 5050 bytes .../pretixbase/img/icons/apple-touch-icon.png | Bin 0 -> 1923 bytes .../pretixbase/img/icons/favicon-16x16.png | Bin 0 -> 489 bytes .../pretixbase/img/icons/favicon-194x194.png | Bin 0 -> 2324 bytes .../pretixbase/img/icons/favicon-32x32.png | Bin 0 -> 652 bytes .../static/pretixbase/img/icons/favicon.ico | Bin 0 -> 15086 bytes .../pretixbase/img/icons/mstile-150x150.png | Bin 0 -> 2293 bytes .../pretixbase/img/icons/mstile-310x310.png | Bin 0 -> 4039 bytes .../img/icons/safari-pinned-tab.svg | 1 + 16 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 src/pretix/presale/views/theme.py create mode 100644 src/pretix/static/pretixbase/img/icons/android-chrome-192x192.png create mode 100644 src/pretix/static/pretixbase/img/icons/android-chrome-512x512.png create mode 100644 src/pretix/static/pretixbase/img/icons/apple-touch-icon.png create mode 100644 src/pretix/static/pretixbase/img/icons/favicon-16x16.png create mode 100644 src/pretix/static/pretixbase/img/icons/favicon-194x194.png create mode 100644 src/pretix/static/pretixbase/img/icons/favicon-32x32.png create mode 100644 src/pretix/static/pretixbase/img/icons/favicon.ico create mode 100644 src/pretix/static/pretixbase/img/icons/mstile-150x150.png create mode 100644 src/pretix/static/pretixbase/img/icons/mstile-310x310.png create mode 100644 src/pretix/static/pretixbase/img/icons/safari-pinned-tab.svg diff --git a/src/pretix/control/templates/pretixcontrol/auth/base.html b/src/pretix/control/templates/pretixcontrol/auth/base.html index 54e15129d7..cb84c2d12b 100644 --- a/src/pretix/control/templates/pretixcontrol/auth/base.html +++ b/src/pretix/control/templates/pretixcontrol/auth/base.html @@ -9,6 +9,18 @@ {% endcompress %} + + + + + + + + + + + +
diff --git a/src/pretix/control/templates/pretixcontrol/base.html b/src/pretix/control/templates/pretixcontrol/base.html index 8f62ecf16c..d8745e8a48 100644 --- a/src/pretix/control/templates/pretixcontrol/base.html +++ b/src/pretix/control/templates/pretixcontrol/base.html @@ -52,8 +52,20 @@ {% endcompress %} {{ html_head|safe }} + - + + + + + + + + + + + + {% block custom_header %}{% endblock %} {{ html_head|safe }} - {% block custom_header %}{% endblock %} + + + + + + + + + + + {% block above %} diff --git a/src/pretix/presale/urls.py b/src/pretix/presale/urls.py index a9156a2e16..5b1e9a26d8 100644 --- a/src/pretix/presale/urls.py +++ b/src/pretix/presale/urls.py @@ -8,6 +8,7 @@ import pretix.presale.views.locale import pretix.presale.views.order import pretix.presale.views.organizer import pretix.presale.views.robots +import pretix.presale.views.theme import pretix.presale.views.user import pretix.presale.views.waiting import pretix.presale.views.widget @@ -111,5 +112,7 @@ organizer_patterns = [ locale_patterns = [ url(r'^locale/set$', pretix.presale.views.locale.LocaleSet.as_view(), name='locale.set'), url(r'^robots.txt$', pretix.presale.views.robots.robots_txt, name='robots.txt'), + url(r'^browserconfig.xml$', pretix.presale.views.theme.browserconfig_xml, name='browserconfig.xml'), + url(r'^site.webmanifest$', pretix.presale.views.theme.webmanifest, name='site.webmanifest'), url(r'^widget/v1\.(?P[a-zA-Z0-9_\-]+)\.js$', pretix.presale.views.widget.widget_js, name='widget.js'), ] diff --git a/src/pretix/presale/views/theme.py b/src/pretix/presale/views/theme.py new file mode 100644 index 0000000000..6d72d1c427 --- /dev/null +++ b/src/pretix/presale/views/theme.py @@ -0,0 +1,50 @@ +from django.http import HttpResponse +from django.templatetags.static import static +from django.views.decorators.cache import cache_page + + +@cache_page(3600) +def browserconfig_xml(request): + return HttpResponse( + """ + + + + + + #3b1c4a + + +""".format( + static('pretixbase/img/icons/mstile-150x150.png'), + static('pretixbase/img/icons/mstile-310x310.png'), + ), content_type='text/xml' + ) + + +@cache_page(3600) +def webmanifest(request): + return HttpResponse( + """{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "%s", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "%s", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#3b1c4a", + "background_color": "#3b1c4a", + "display": "standalone" +}""" % ( + static('pretixbase/img/icons/android-chrome-192x192.png'), + static('pretixbase/img/icons/android-chrome-512x512.png'), + ), content_type='text/json' + ) diff --git a/src/pretix/static/pretixbase/img/icons/android-chrome-192x192.png b/src/pretix/static/pretixbase/img/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ae973eddf889d5f6cf0444db78f39984e805a186 GIT binary patch literal 2103 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 GL;nJ_wAn8J literal 0 HcmV?d00001 diff --git a/src/pretix/static/pretixbase/img/icons/favicon-16x16.png b/src/pretix/static/pretixbase/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..2f91c546bdead698223b575bfe447f7a5b7cf840 GIT binary patch literal 489 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM*t#0G|+7pUgrFaZd|TPjgXsD^WKf!&1Z(A_8QiBbbz>sHc^gJU7EG+zZzWfcA%1g+!DDC6+4`6y>L7=ASA(dWdf4LLrWaErFso)C>R!yExcUt?c}Q zO%!bYJ^yat|GRUhg7n&voeSNit`MqyL1jpJeKQ(Uxfx18X%>DAQ z35MSzv26BQD}7S41(aJ)6P}F{UroId{;Sslr3vzf<$krIj5;ntqD# zUhD`6p(}nHRllXZaschgY3mFQl~<}cX&H%aeP5C^wChCHHO5?Y;gW-aarGFgt{_gQ z+o(##jgTkyq`g@Ge5q4P|43N&#EtsgGkee3%RG0i$QT}fc(%wc-mv!q!uk7O4mSAP z-hMWC>3GhYeDWRH7u11FUq*=3_DIkml4}S6D6Z{?W8Y={E3l5>;Qg#_->_R+v)8`rYQ|INymx7T4W{aaS`V0D( z0-J{_diP~63N+i&S0J721z!7`xA|%pHB+ z@>_F^O&pEQb{==SfmTkY7~j_L&t0D=es5=c!cxwdUQH&*R;tV zxpGt1IH*U%r!#{;gQKbrA0_qPrC-WkOio>HVk$@Iu(wtbAqSD#pP=eeO_!A7Ihg8TFo<){YJc2415kCtc;1 z=QqjtK{mWB#k%+n+Y1&4O($!>q9DEG9|P=6)QI#5lFK+pu`ErF!vLSkLhXx`D9paI z?IljA$PO%#o=7Stvm=o9@te;gK@N*Ve}$*_uvlv94g^`Kz*Ib63K}0R+Xjb@nusHn z5f}HnH7PE{)&ErJ-=3LEKXMS?14g7$Js?yHSH% zlqnWrG;HIvo@H9LY#uZ7&{M;OANI#4Norx^mO zn(-!czSi{IVS6ofXUAU9&1^!pQ2j^s83D_5_Ql#DI?KMVp<3;6qq|!I$`jrCJs)hI zt3V!&98&XAS*+|BtgGdRrD~egRXyLgWBVwd&_L2(v!$t7nXGA6KD9 zI9diwW1pDEv63SNao(kmvpJ2K#r(N|I^Qhbgl~9ZLI!DA&{lhpx=_13fu7RLxtR3s zIA;XCUpC45TpR2Z_R}K!^w%u62vsh(a89-|JHI{$0p5Rs%<8uqnIg^*;_-Er34NU_ zKF@2JeTag6v3sk0+QoGEU`pWe6F32Xx|0ia?Hy=*Xtp}dQXGptBJ3;)`pyvKUY0d% ztr!$mj1$YN0|-iA5Vv9)JzLYqt;?$q%u5e$+O4DZ-e%zLVG{@vu{w3@TZcWE_a=Y6 zyEN*iwdR-gVItZb6x#vIZs}wW?*9Jngvp24Vv)a*@(+fv))=phLSJa^x6u0wH-A#) zCj2eeDc)1%pKLNOk6~OBvQ3)R%b9mQv(3w6zffIhjvf~=LFWT~{m%JdXqSR~Fn&Qa zF94utPAp4;!OmJ*O-GtrY(6;xB3PK77Yu<#*e1%0ATY%12VQ%NU`wc&=Dx1C^)2En6BTZ?^z!tSH1HOZV_U03(5Pg8%>k literal 0 HcmV?d00001 diff --git a/src/pretix/static/pretixbase/img/icons/favicon-32x32.png b/src/pretix/static/pretixbase/img/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..a84fe28a8e9d899ac167b538444c2e1e064a7b66 GIT binary patch literal 652 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL<1^9%x`eYVbh`O7Lcw2~i0+E@htEI3PkYO(3X(t5|0U>cOD`9s_5l<@- zHwzI@b5VDo7GseBu=)@nX((6y!|L4LsulPn+p6>|AuAo1^~ zt#z#PikY6mk2r6Z|Jr~5^M>z_5BQcT-P^)<+sBJFPOfd&YO!-yN@rbFsnTl%8o*iL z5n0T@z;vKGmTE=mr@-ms_(+5 zw;!zzNC`0YxpdBaiPhR*huo%>zE#W?_aEd+DlGl};)p{5>pYeX$_~#P^jPm5m{)m~ z<$&ys*5(t8Cx!JB4%&S1514$M*(N;2s4KJO>LvB7Cep@oB8+z;C&-IPm%eDsI@3RE z=_7`Zr+j79Z?gaXubuvFRo$FJOLfyfF&Ek`lbc>vB?9zXcvVP5Nl;?BLP1e}T4qkF zLP=#oszPQ#NiqXN#hk~VcsL5fG&D~6pFZRHG>Cy&nOiTJTUc4xd$I_#u!2j2$>9`c u<;@`qr*B+2apcSqnIr6{8$1?x=`p+#7cBYYWI7dS1%s!npUXO@geCy<+u=3< literal 0 HcmV?d00001 diff --git a/src/pretix/static/pretixbase/img/icons/favicon.ico b/src/pretix/static/pretixbase/img/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fcae5c671d92a433392ec558be16c41bebb5fd78 GIT binary patch literal 15086 zcmeHOZD<@t7@p)5PY@G7E7`r~EEW8t2BMAG-Izm5&E6%oqCxzj_(#xx!KeiV8?2Q4 zQv^W`h$uou1fe3EZ&EK1t?fki~37ITgH@Okfc?&c=5doy?2Y!mNb^6t*Q z@B2LS&O5WSI~&H@Sc>)ZFvu)BcmrcQ7-QLNaNfz-9O^nD>H1?AF?Ik7H$n#{>=6{I zFa5Tch4?pbyQ}M8ym{h~x1H(r$Bv`DE&j>&+eVMSyNvjKhw@Ldag1Xuw0x|09~Nx) zZ{Kon2kx=;#*PPXqmSPf|9JAC(YYh>_|yDdl#0PRDp~%1#(h&<1D4lfMt!lEx7>qh z|8Ftm0mafFcJ68n{EhG;_$}wI$z7JuICuCNZyb6bMd(&AljZLm0^cWyGjW&mz_*!J&8K0$L--SyqbR?I*;VU}$M4~L ztsPgXxQ5m3zP@jZZ@a%&F{@)l#b5NZJL7i2Zc1fat~20|xSMk4T)^`I6^DBKtM<<0 zD*L=`z+W?GIHoM~8TW|HLB$_>?_y2%%micYq7UTx7qY!Rf9H_stC3^kB;zaj2XnA* zJCBMum=Erh?REJVGVYV2uSSmjjI&F|kK&JhcvZyNxvjTDw#T{F{6lRQeKm4?x7~lG zj33G0_P&yFV6QPJRp$qeSJ>)ZA^S2tH|OsjlQF>OH0NX@Z`pP|?>f^{C)A3u#IM0gwhceD>YdPx8pK**|?fKJoe+19NBVD`^&&XGh2t5NzXTmAcMRiSzAtL8-*nc`(cIR~;|l$= z!?u@0{nv_XiuS^1$ojdF=ND~E!{<6ZzqQXVurYpq)Wgy02X(CV+np45!lm3fdjZA5 zAeIL6r+!};;5VBaE&j>oT`T^{#^3$3w8qG|Unb0B9mjmLb4JU4^W=&*pUdXbXwT;x zvrVn}GueKNFaCJ$r>NZ+d!Toc?o01)O0)RW^9S%AY&`3rFOQD zvDMUSJ6k1rvMl${KHo;?`)9bE2+k!L=%r=@`?4SIcZu2yoFd6?#!e9{@KF5J?Ff&T z!bPbn(hq&7l|{*+RKC-~w_Nfs=6oyWEvF}DpCg2u8j9J53lOrhJTd^8@f*yDuT&bA9ZgY{Pp| z`8(T%i1~ln?;3EqeU!vr;cGSR6Yzb@d$_l^_hPaiwfirH9^z4Xh6!yy#XJgAyarug z@VS~7@TtCFd#`hSaD7_P4aKMa<~H>t?TZUO*Wlw?WiJf(o8cN=+dU_pm&U7{Yf&6D z@Q-u*A=}NX@Z>rZe2w_O$MJ#llz-s^G`MY z{4Q_A-`;mQZ!^h}E^jO5fe!_2>gUk>!?n8OFLeH?j;}e~2R=cYzlA?lo<-pkzcurZ z*8E$=kGl8JwH5F?2^pnVGym4njq-CLUQ2rYS+D=kcg+6p_>|k9ZL*v;$(cpmoA)Nz z{tcIZjHPim;f3E}_<1157@Hnrsrj*VNAbCIcX403due=faA|xZD3gQ5y{N~vd6w>& zX86al(ogck-B<9^rT-_R*AiKj%6kg@ubKSQ?9(EBr=_W@$}3v`pJ>9KzH4aa-Kz=z z_x;Sk9*OG`)&$>3b)|L=*#kGDehOugu49ceNioK;xK~U3>04DE8`7O3Tizd7Z@xj- zxxH`o+4+q3U|>_rAG+L*OZ3mJqCKsj=o;$i`-)n8=yE$QWqa8CT(U3k`JnyoEJ~Tb z%0A$ab=oVVY&4a(`){J}e*>FP{&M^R{RPNBDtKl7V*gj-C+P6lswDA0uBofCujS9< tpf48@-y==nFKev7RJ?gzD1YAnT+$TrLK|ZTl9Z*!5D*oFK){66U=#}>0c78TEJEY>(&AdrfSGs+tT+5!D&N?>^g9knN4?i53j9!L-x;>$k&5Un&=_1i;ZzhV(r)9!f-Z&_(PzI)m%G5HzYElP#R z^0RC#cNDz((!kT_N^7X|i$2xdF4~QA4+aWHj~09*>ON*CZ#jtz3hA5hYDN@_@o@pA zjOaYQt){R?O`&Xc_Qso_Tt^SF9&(*z6?Yn4)pCk}&qyl5G-3TrcO1J@EMkLvgWJgaResYwD zpDGGomS&4}SwNR-$4AcJ=<;jEZNO-puiBrTI$%QRN&)WrFKrJz3-?gr0LD&Ji|i1; zg}y*tTUO$%$`r7s3(!7e(3-inKblT2G5BsKnb8js+bz_|%+tv@WUW$irsG_tyX?-E zrKK$FXCf+s|M*B*I-O*8l!n7*^!1*>Pmd^;W!2BlRmM@bYIsM8y;vjmVJt?PXDc

W@u2d;-B#}dRoWyP36#`}X09n;@N@z~3Q zjav&tSEblD$IOYlGInz_O`I?4#1m>P*KdA_T z*3@8)($&bjR)EuC*D7WHdQ!DBmIFXsI>Q1*NN)xzA2|d)m^*$-8jk5+sC5(pqeI4a zh@whL&l=Kdfk4PegBy zhGhr$83l~1wJZX-w!L*Vv($m$FgmmSP1OoRhmkuzVd7sewJHA{O30TY^0=`mjhuT~ z9?F4A=!+$Ao?-U_HRi6-#yf;}o?{&O3vn|XH?o%-Q@Y8keOi!yGSPm7N8LYU_uC9! zJ^vPNf0C2gruQa4L7ys=LXnq zw+hcA!kHSZGrX_tmeQ&lhFJ;U8d1{O-=y$m#AgBX_#QnwLxFMgTy%> zQU9(thT|gwN)H%B8e-GLezC&1sQ|b*W%OZAEbQ!$BK-HwB^K^M29d58!qFUdRq_ErWO!WqLEr@*7LOQo6EJ=0wy76p?ubc`TEHZTg9m* z9TKZyA=by>kXIrye<-m$%z++CMf6ThMJ&R%2mN+h19fkTk~`n(OoIs3)sR&OAqG*d zJqm1l3R_k)9^bFLv}U{p0d)8aZy^93iV;e@5}HDl3D;((PAVtMd?kYAvsMJf!aIz+ zlcVvK{R!`0n#J_oDA yP$}ju=fUtgUl>o=&u#5$1zLCWQk-wQ8iU>)*hgHnx5)kY92ZAV6vICFr@sJO4TMtw literal 0 HcmV?d00001 diff --git a/src/pretix/static/pretixbase/img/icons/mstile-310x310.png b/src/pretix/static/pretixbase/img/icons/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b15d93ad714d815054bf79c603485d34a40f4f GIT binary patch literal 4039 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 aFa`l;fP$DMT~*wVCXAqFkV4&ScmD<&2+Q&S literal 0 HcmV?d00001 diff --git a/src/pretix/static/pretixbase/img/icons/safari-pinned-tab.svg b/src/pretix/static/pretixbase/img/icons/safari-pinned-tab.svg new file mode 100644 index 0000000000..0ed7a8c20a --- /dev/null +++ b/src/pretix/static/pretixbase/img/icons/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file