From dc025e8e2330d43d64b67fa87c5cedf33b117ac8 Mon Sep 17 00:00:00 2001
From: 72ridwan <rachmat.ridwan72@gmail.com>
Date: Mon, 25 Sep 2017 09:09:12 +0700
Subject: [PATCH] Trying to add Whitenoise

---
 .gitlab-ci.yml.swp         | Bin 4096 -> 12288 bytes
 praktikum/.settings.py.swp | Bin 0 -> 16384 bytes
 praktikum/.settings.py.un~ | Bin 7183 -> 11538 bytes
 praktikum/.urls.py.swp     | Bin 0 -> 12288 bytes
 praktikum/.urls.py.un~     | Bin 19259 -> 27075 bytes
 praktikum/settings.py      |   5 ++++-
 praktikum/settings.py~     |   5 ++++-
 praktikum/urls.py          |   3 +--
 praktikum/urls.py~         |   7 +++++--
 9 files changed, 14 insertions(+), 6 deletions(-)
 create mode 100644 praktikum/.settings.py.swp
 create mode 100644 praktikum/.urls.py.swp

diff --git a/.gitlab-ci.yml.swp b/.gitlab-ci.yml.swp
index 3d53481e0efd43923c7d98ddb6517ed74e6f3a96..0d968991ac42de41be9c07f986ca441f88c1c692 100644
GIT binary patch
literal 12288
zcmYc?2=nw+u+TGLU|?VnU|^^&IT8tC_INTdgche3f!Ktwi)*lVh<|`?s7a_{kefG7
z<t|qGE{P?H3T}x-nJM}KsYThPIhlzWiFx{t*@-EsxtYcK0RiFqK8Z=XAX+ayvm_@m
zNjEuDuQE3Wr>Ub7qaiRF0>p&?AA_-xp@FiJqJpqcC~;awRgH$gXb6mkz-S1JhQMeD
zjE2By2#kinXb23O5GW~NWcbg(z`(@7z#zxKz`zK_!^VT79vKaR(GVC7fzc2c4S~@R
z7!85Z5Eu=C(GVC7fzc2c4S~@RU`R}1U})fBVBq0}%>RSN0DkZ@FudnyV0gmM!0?!#
zf#D`U1H(~%28QkY3=GTo85kP)85pAY85pej85lJ985rdF85myhF)*CxV_-PP$G~ui
zkAYzW9|OYzJ_d$<J_d$LJ_ZI8J_ZIYJ_d&WybKImco`Tfco`VHco`V1c^Megcp>(4
zgWND0C!--S8UmvsFd71*Aut*OqaiRF0;3@?8UmvsK!*@eP*6}PEy}S{Q1NgL^7jsn
zcMJ%K_wWx6VF1bGCFZ7DDHIgtr<5j_Waj5FC@7@nm1P#?=jEp6l~{q*=qhBS7UgG`
zDijo36{QxJBo>t@=;|gG6xbpe>F4O{ilMqVIWZ?yp*%Io)=(igGrcIWB-Pdsq8HgY
zNP1HWaujrR3ySi~GE-8EY@rrowGC`erfzm>C6YTly<H=r&Pc5&$S*2Ufcx4r-rF@2
zQ)zK>QDy<$r{(FXB?`KQ{<;boB_##LR{HwMIhneN#l@*5#d;9e=q2ap>SyK^mn7!o
z=$0mx=9QG{6=x{aC=_QvZB9?kRe&l`NGZr+P*6xpP0KGzjYrs3T#}fcYNe2pT9A`p
z$)KQ+nG5C@l_phM8R?lYxPT=faR4<nIlnBmC^0=%p(qvXG2L7YiPAg;UER#Q<ebu!
zR9p3&#H4sFeJyo`+{C=Z^i;iqN`;ct;t~c01%x}wGg9-c6!P=pi%XM}Q;UnCMix|-
zWaQ@|X@tfePU*z#REUzy{5-fJnFa7*&@ECZN-ZqSEJ_9WsaUV10^|-{!2)$AG*BRp
ju`<>(V+hU5ED1?1F0o=@P*BiC1fMR%XW&pRwqgJP2MHxZ

delta 6
NcmZojXi!)n000P<0x<vp

diff --git a/praktikum/.settings.py.swp b/praktikum/.settings.py.swp
new file mode 100644
index 0000000000000000000000000000000000000000..ff6a6b094dc15116dc33a0ce771c56f5ee55b13d
GIT binary patch
literal 16384
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

literal 0
HcmV?d00001

diff --git a/praktikum/.settings.py.un~ b/praktikum/.settings.py.un~
index c6948296f0c87a2742e2034ec510b3e6d4cad07c..8b7c33425b51620ba2a7afea1cbc88cf9f12c483 100644
GIT binary patch
delta 1221
zcmeCTm=t9kmYF+0G|wgfDFajanWt~mRF@{OH@?oAQ7qPdCWCk1<c5!KHi8nDjI;0D
zXJBAxV_;w~pZr<Gz%(s0C$(5zlYxPum4Si5h=GBDk%56hk^urhGz>FDo=6p90m%w)
zEY_4@6xlpiqM4CVaI&J5fusNf1A{071A`z$AA<-31A_qr0|VdYjS?A*zA1;n8W|YA
zN-!`m=tFI4hT6vG>*?a+;~MT5<f>q+5N+BRe}RDkY=jupI1mLg-jIQTfdg!0B&v}h
zyUZ9E7+Ro4awtFn*g}vtkk>%63{c}i#)*T>g<_CZAaxMq>r;+lb8!a)0|OJtTc|E(
zU|>*GRtV0_Ey&4C%S=sCC@x7X$xK!N1+GGIYEfBcUb-IGB_MZ#Tmmu(6qK4!XDXm+
zH^S5pbvMYJpg@E=n*rnpkckZ7V5v_ziR^A<>p<>S1zCq?6{bxfqrt8Pg@-W%0|U&p
zu&@K!2}%|qg&+)a4@eyY!{$vA>5TO$r@@X8f<!mWly+#~nL!+pQBqP+Y^ASXo>-Kc
zkzZPzs#j21l98XMmtT~wUr>~vm6}|lU!IX!lA4#FS)2+=G!XMZzBOTBU;vp13PYHy
zK&}9}h5?iqK@5-+TR~|J95nK&f?!t(Lrejs1yD8sVUQ`{?4S;cv0`;iXjp>`5(1e7
zO^%?{ZO*{JU<)>|KG6|uAT(8jlAi?w0|O{kgTmSt<W2RIti-(Ze7)Svl$4xQkXQAR
zb25{&vl5fDL5U*5ttc@!)xV%5Ge57`7p_QMhk=2C6>I?1DIlwbp-ur&LJSOS3?S=R
z!EOmnbVhayNWv1D9U$HXIU6Pd@-7R=aH!cZFM`YkVURr_6Ij4TCnUOojTV3y1d@Om
h1Q9_u+7M*4dO1AikUbv`67>VcC&IIvJ*18^0svpB<Ffz&

delta 129
zcmbOf)o-C6mYF+0G|wgfDFc(Yz`yeF$nxu~tE2t}mUdq5xPJENrmubyE3Y2A<-b$x
zE&~HY^W+5*VtNb=4B89~44e!M42%p63<3-g0HR@-A@W4b2^Nqn|Hc`b5{wL+4@opL
UGV)LEm5`sDDkZo%M0+1204HrF5dZ)H

diff --git a/praktikum/.urls.py.swp b/praktikum/.urls.py.swp
new file mode 100644
index 0000000000000000000000000000000000000000..73b82226a46b26fed7be399500c6c71f0daed9b9
GIT binary patch
literal 12288
zcmYc?2=nw+u+TGLU|?VnU|{&1av~DMykX415L%pC1Y#4yF0R4eA^rinp(de*L2lkS
zmAhE!yCjw*D!3&UWv1u{q!wkD=42*jB<ATmW+$ek=4KY_2Ly!c`y?jmg6M*x#O#vH
z?9yEQ(xRMVy@E=d29HXNhQMeD5D@~r48}%=2Fgl`3c^C6M5rHCG8zJ-Aut*OqaiRF
z0;3@?8UmvsFd71*AuyamprnA2;XeZd0}}%SgAxM+10xg<CqIt*Wi$jvLtr!nMnhmU
z1V%$(Gz3ONU^E0qLtr!nMnhmU1V(xYB&IMhuyQdlEaZaB|AWQ=p7Ap<JmqI#n9k3@
z5XH~H5WvsC;K<LwAjr?aaGH;SVJ9C0Ln9vpgE=1qgDf8d!&zPihBjUXh9+JHh6r8;
z26J8p1{PihhL=1H4Ci<l7?$%eF!b;+Fck7IFu3wCFu3qAFqrT#F!1p(FkI(mU|7J-
zz!1*Oz@Wg*!0?ibfnhP!Jqx%P7;L#17;Ly0818a1FdXD$U=RVhbEHSwsQ*VpU^E0q
zLtr!nMnhmU1V(lUC}=V$XcVc(6_+HIWG3rt*azroX{xB}D5$4o;gd_uOV8IU%S<gV
z)`Mu(D^4vcOI6oVs8&zOPcF?(%`1s7%Fi!Rw^ArhEh)*&OE1<74si_ebdC@5_YbL6
z&}3kUWl&I1P$(_R!Q}#qZHYy(0_3lt)RfGk)Z~(|%+zwd#Nv36A2dpfa%|Oe5|eaI
z^wo6~3Q~)56Z2B@N^I3jib_+}H8pjR9ST>MnU|bXnv$xKlb955qLY`Hn_66un4AhV
z37a-!knzacjM23jW7B4&o0yW4pNFp5C>|_~ZUj^{R)a8%z|f3Mn<2V3Lv(G1=-Luf
zax=jW1~c@EGfPtSK<jWdbr?#EatablN>YpRiWO`Xq8S*{it=+6K!IooNl^-!xdr(}
zB?_5&DXA3-iNz2`d`@DLAp=wjq}l{*AV?m}LzXf|kupY>f(9Cj0;m{@GE@b~Qido}
zh7jkcWFe*1^whl6qReEyq{QM>m}ijF9g3FZ{JfH)%p{mPaCo6BNP}1j^?Yejj*bE}
z6)`9&DS;EGk)DEMN{T|FLTHeWLP<U-SHVKr3ZBQ3a`MxW<5C?Y05)4)Qxj~Ap`L;#
zB=k!%Qel>8Xey+Y<|UV8=I2={fMW~l-Q@f{JWlfj=a0<1bcMvc{F02+B9PlaTEI3D
z<zP^b^~ldnh38aF9R*NEvsKT?&rMZ_yBX~DJZKnNDL@<vwlhAlpa3;lfy`rY&PgmT
z)&)gSiUOzzC??HKU@dweH;~|-+)9vRppJyv>IMy0DA%<jF}ENmwb%;moQ#r^f?_Lu
z{gnLVVm(NZ7Zl}Zr6!l?CFkerr{?J!>KPj9m*f{@CKv02RD;*L>obI8q$(sJ<+B8Z
zoXp}9g`)h@lGI{QEEI#12*eW#ZuvzDx%ow)*iOqY%1s1CvqC{mDk$+5r>0slfYO*x
VVv-?9qk?mOURq{)X%Sc%0|1=~NCf}@

literal 0
HcmV?d00001

diff --git a/praktikum/.urls.py.un~ b/praktikum/.urls.py.un~
index c44571f1bbbd9a775eb351a5a129ca968829ed01..bf4199124318d2a6c925a9c65ec803b487076177 100644
GIT binary patch
delta 2549
zcmdlzjq&hh#>BA9-1(t-F8NOxn6h*k10SB3`ujC1=J=^VcPVb6C(jfP^k)aFq`gYs
z9eRU-fkBA@0#qOr10w?igC&#=qG6aJ@<hsK7LY98#w9x}8Fe?uT0Lcy)MQ{_&|_d=
z(1L2wWnf@XW?*1o++1ko$rzsm6^7XY;+BC35RN>NxCd+^1H)GdB&UGnKo&8^nl{E?
zU|?VX8LAHwg<_C}svtJll6sOXf%y}p9b^f_YOrY_ArOYz3bMrj#D`*#3qa1)2J!#@
z|NkExRtyZA8?3At2|D5+*rz-Y>%<ut7^D~&7}P-_#lXOzomP~etB{kJ6mO_kmYG^!
ztdN;okY7}ykeQc~TA`3w3}M9QBqkX`T?cZFA;={V%*Ft6s?_FK7Ei`{Nd^W6euy{&
zhz(^jAcy<~uzR2(5AqhsJsJ!Q3``)+Q0t3ROG+~H(u+X`fTIXxnlu9g14tn_^q{T*
zS#AVU1;QK*3=ANrNp7AXiN!TAmw{XZW=Eb#yoAj)pwPkP8mPS>Ym7m5LNUk<AUA@|
zg~ZY3d6L$cK>}95zyJ;sFgx-@;$^TScu}KB4H_h*L=ng_;NXIVtC~49qWRGR7U~U<
zvrRy{pcv#OMFs{2m(7VRu8dZo)ENVn0<pm%4|P149eE=09oX^E_*8)ALbb^U?9CYU
zCnk!@Ky3n<Yzj3BM1gEo+8n6m$yg8aDa;lS8*DO~E$@+S0l5&A*Fo_FQp}>Dpr8Qu
zHz>QqWEh|}gKRPbSqa4;SAa}#0rCI;|Gznd#g5SmWHBK}d_r~v$g3dh)G@pYvH%qB
zAoD>OWH||5{eo-@$e}O~fxH?I@~TFWdR%cyVo7GQzJ`5(o|dMHx{iW+N>*ZCdOjo@
z>p`UTic^cqQq^@7s?}5SlS^~$Qu9jUi}LeJ)U6a?SxhfD#4*IvIX=kWKcrSu2O4M~
zH(P)l55*w=s6a9~DAYl@10;i7sDZK-NQ@!!L{crXA3*L0OE54nus|8orA0Xfi6tee
zMR~;v+O`TXwuZX84g&*2i~>$SrV#QZVLyU$mVzeKry!q!>KdrS7(l*;`V{0ll6(qE
z4={5;8X03jJaEcH4g^p{!cr&5I*=k51~~;3>8=b6n~Sa78SP+|3{()T4iwbMAXemw
z6iA}vgA^XHL<zDD<N(*nKdkk@`LG@otVy8MQ(BaRGjJ&nTWF|)s%LP01+7K3KxH#1
zcpxRq#0QFsktY)8ASV-$2SM%zVUXKhU~ZRC1ZQxl$)E}!<QI_lK^SC<GPod__&~89
z-B6HWplAePNDzS>0pfu$GXn#IJTy#TDUh_(h!$Xx$>>>*#MB7#4aiq84Du<+rHtSL
f8S2Bu$iW8kA*gHy6=0x*MdLVT0TmL9t!?-L+w{KS

delta 121
zcmX?nnQ`|tM*XnN-1(t-F8NOxn7YsWZc((We<js4>Gg_FvGYtA#f(@M%Y=WQmsg-1
z`fVoz1B3G9jn?jZ3=9lP3=9l53=9m63=9mK3=jaKVVEKE_)-fNkSzDc#2uE544b8_
Mo-%Ge74?%30Im5Vv;Y7A

diff --git a/praktikum/settings.py b/praktikum/settings.py
index 7f3986d..55415f6 100644
--- a/praktikum/settings.py
+++ b/praktikum/settings.py
@@ -46,6 +46,9 @@ INSTALLED_APPS = [
 ]
 
 MIDDLEWARE = [
+    # Simplified static file serving.
+    # https://warehouse.python.org/project/whitenoise/
+    'whitenoise.middleware.WhiteNoiseMiddleware',
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
@@ -127,5 +130,5 @@ PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
 
 # Static files (CSS, JavaScript, Images)
 # https://docs.djangoproject.com/en/1.9/howto/static-files/
-STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
+STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
 STATIC_URL = '/static/'
diff --git a/praktikum/settings.py~ b/praktikum/settings.py~
index 22e30b7..edf07e2 100644
--- a/praktikum/settings.py~
+++ b/praktikum/settings.py~
@@ -40,12 +40,15 @@ INSTALLED_APPS = [
     'django.contrib.staticfiles',
     'lab_1',
     'lab_2',
-    'lab-2-addon',
+    'lab_2_addon',
     'lab_3',
     'lab_4',
 ]
 
 MIDDLEWARE = [
+    # Simplified static file serving.
+    # https://warehouse.python.org/project/whitenoise/
+    'whitenoise.middleware.WhiteNoiseMiddleware',
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
diff --git a/praktikum/urls.py b/praktikum/urls.py
index 357ffbc..ddb36c2 100644
--- a/praktikum/urls.py
+++ b/praktikum/urls.py
@@ -23,7 +23,6 @@ import lab_3.urls as lab_3
 import lab_4.urls as lab_4
 from lab_1.views import index as index_lab1
 
-
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^lab-1/', include(lab_1,namespace='lab-1')),
@@ -31,5 +30,5 @@ urlpatterns = [
     url(r'^lab-2-addon/', include(lab_2_addon,namespace='lab-2-addon')),
     url(r'^lab-3/', include(lab_3,namespace='lab-3')),
     url(r'^lab-4/', include(lab_4,namespace='lab-4')),
-    url(r'^$', RedirectView.as_view(url='lab-4/', permanent='true'))
+    url(r'^$', RedirectView.as_view(url='lab-4/', permanent='true')),
 ]
diff --git a/praktikum/urls.py~ b/praktikum/urls.py~
index 5673f69..314a169 100644
--- a/praktikum/urls.py~
+++ b/praktikum/urls.py~
@@ -23,7 +23,6 @@ import lab_3.urls as lab_3
 import lab_4.urls as lab_4
 from lab_1.views import index as index_lab1
 
-
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^lab-1/', include(lab_1,namespace='lab-1')),
@@ -31,5 +30,9 @@ urlpatterns = [
     url(r'^lab-2-addon/', include(lab_2_addon,namespace='lab-2-addon')),
     url(r'^lab-3/', include(lab_3,namespace='lab-3')),
     url(r'^lab-4/', include(lab_4,namespace='lab-4')),
-    url(r'^$', RedirectView.as_view(url='lab-4', permanent='true'))
+    url(r'^$', RedirectView.as_view(url='lab-4/', permanent='true'))
 ]
+
+urlpatterns += patterns('',
+ (r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
+ )
-- 
GitLab