From 0d08366267ef084c8120bcb3ed4a7acaab5c0bb2 Mon Sep 17 00:00:00 2001
From: 72ridwan <rachmat.ridwan72@gmail.com>
Date: Mon, 25 Sep 2017 18:41:48 +0700
Subject: [PATCH] Modifying views and admin files)

---
 db.sqlite3                                    | Bin 139264 -> 139264 bytes
 lab_3/.tests.py.un~                           | Bin 0 -> 7932 bytes
 lab_3/.views.py.un~                           | Bin 0 -> 1147 bytes
 lab_3/tests.py~                               |  63 ++++++++++++++++++
 lab_3/views.py                                |   1 -
 lab_3/views.py~                               |  51 ++++++++++++++
 .gitlab-ci.yml.swp => lab_4/.admin.py.swp     | Bin 12288 -> 12288 bytes
 lab_4/.admin.py.un~                           | Bin 0 -> 974 bytes
 praktikum/.urls.py.swp => lab_4/.views.py.swp | Bin 12288 -> 12288 bytes
 lab_4/.views.py.un~                           | Bin 27571 -> 45237 bytes
 lab_4/admin.py                                |   2 +
 lab_4/admin.py~                               |   5 ++
 lab_4/views.py                                |   8 ++-
 lab_4/views.py~                               |   9 ++-
 praktikum/.settings.py.swp                    | Bin 16384 -> 0 bytes
 templates/.description_lab2addon.html.swp     | Bin 12288 -> 0 bytes
 16 files changed, 135 insertions(+), 4 deletions(-)
 create mode 100644 lab_3/.tests.py.un~
 create mode 100644 lab_3/.views.py.un~
 create mode 100644 lab_3/tests.py~
 create mode 100644 lab_3/views.py~
 rename .gitlab-ci.yml.swp => lab_4/.admin.py.swp (90%)
 create mode 100644 lab_4/.admin.py.un~
 rename praktikum/.urls.py.swp => lab_4/.views.py.swp (80%)
 create mode 100644 lab_4/admin.py~
 delete mode 100644 praktikum/.settings.py.swp
 delete mode 100644 templates/.description_lab2addon.html.swp

diff --git a/db.sqlite3 b/db.sqlite3
index 5ec8fe9416ad8e864f38617452a3b97395eed046..d29d421672eb9c01fd0f454ec5e2e33dbb540e70 100644
GIT binary patch
delta 1461
zcmZoTz|nAkV}dke$wV1v#*&Q*?)qZl!mP~NjESWs8Sw?FMY);9#hLkeu9NrbJ2A>_
zGN|NN6X$0U7iY{#Oo}&7$xJM&6cb^Qm1ZnX1uHCu(xQ{++sn9$@Un=Cg3T%|PAwAV
zV-Xbx^U{m*OACaASwt1VT!cM>LM-C4jEO0^nRz++>8W`oMU?`Z95VSW#90``r9pO@
z<faxEC#I+JiLo$<i-SZUt`HVwVUU%E+75Gtw8-Rz{xU|wEDWNeARmET!7IeVASw>x
zL0loo!XT;$;v%_1VDo!_W4?Ovl+>KmlGJ#pm98QzjGBz%$r*`x>2N_8K^8`3M)Aay
z6qqt+Ar?keMlq;fa1c2`grGXXLXP|_jPi_PAbnuI1K4m;s4lQS>htsLA)-)?VA1?M
zJFu0aAgxdlTL~6MLq-v(=H&dmlGMDClFEWq8;Ar{KazyCC<~)DqX@_hBvC7{$-+=`
z>OsL}2@!&t01~m_V_}qK6b5Mpam~Sg6N2gihp8Dv2&xAxWD54K5J(f4Zz9gZsLv<}
z)rAOpV~99dYho%=3N!+TgdoTOgla>uF9e{bz*39>L=<dBYCKF-AM7XrkO43uy-f)v
z_4VSetjvsz;x1s)8AOUXfk{U&=>Q@{?ZKoSn6w3vA~s;s8cbS&NMTDbX#pn9L8Oow
zm^1~GCLmJK7)%<0Nkb4Rz-s`e^ueUwq6CFS1p;uisen;nJ7WN2N)5X!D+8mZq4@Ni
zGmMJtE>O-C5XYI7fl*moeEOa<jMD5*tPG5*x?<Dsone&qbcArAApuTj&WU*n5WWJK
zFXO<<z$mYdNQfW>i76=%Sv7mGMWWMP&N3>p+d(-wXBibWZNau8r$U%cXrk1&VP#-6
zv=*7Z?JT1fyET;a9K^9=Wnk1c6`3w^j!~uF5^NAG(Sec_$RJ3ZDuB2O77!H>XUBtt
zKq??yunH-2Rt82{Rd|{NNrU_VQmSMI4g{103X+Ffkj?`ti<C?uil!ew$0)060uB;H
zVg)G&83#_eI>xLFjQZw+(>c#Gs<RtGIp!daAvk;lr>CB0RAe^*`%z$e?|DWQc6}&k
z2Z*BwvP)lJ`{VPBiU!OK0t{2xnG~6LlQtU)eCOV-$iw8w$Rs5<U67ASoH?;LWqTbj
PQyUXV-F9{Xrl0%(wnv2{

delta 1451
zcmZoTz|nAkV}dke%0wAw#*~c-?)qZ<!mP~NjESWs8Sw?FMY);9#hLkex|8?nJ2A>`
zGN|NN<L74)7iY{#Oo}&7$xJM&<P%|$m1ZnX1uHCu(!7)B+snA}@Un=Cg3T%|PA%f*
zV-Xbx^U{m*OAEM!Swt1VT!cNGLM-C4jEO0^nRz++>8W`oMU@<z95VSW_*odlr9pO@
z<faxEC#I+J@v$(7i-SZUt`O#BVUU%E+75GtG|%LP{xU|~EDWNeARmET!OO+MASw>x
zfn6cQ$-*G22;w4KA;_`$y}vPEJ%37SPHIVNJk&~E5f(;GM*ifC#JqI4ppGC5qcS6Z
zVoC~3nYIuMqbegGR4+J)v>-xIonRqNeilY~Mm~@}Fkb^~I4@Ke*dO)zdFl{Rs7A18
zex4fGN?wpwsEDcr3!@<;4^(q<eqKpxUP(!1L8=Nw0;(TLLRplBQJawmWCoI`64+#J
zs5$kZ;8KJLK}`UODDbf`$})0;w1T+uV83xe^?<`v4k85A0~V46dzTBO3Cx!fXJOQ5
z<b>)%1idsw9IQ1l6)6QufkT25WB@|7B-j@mP*Y$jMgk%VHX}72CMphg6bHxvn2^|}
zgp&GteqB~(Mn--eFsTh9`Lw{KCYaO!k-X|)QVmS1f=C_}FsTeCl|Ur7BA8SFlky;v
zOAbuRf=L+=$tevcrNE>lh~(gv08`>%QfyIz!lD8JINDUeD6pL|fH9?pU6+-CQPYrr
zdd?X}MRpx1X9|d;&C0;2tj#}t&lyH(b}d#0Mpa$D>G#es%6e)-IM9#)r!(ioJOv0}
z0nC@tU}a#GS4Sj7kb=aN6o{;vI@luK=`Lp(71`CGoSd_aikhlmTai;COeZu^>Z`Ca
zFdAC(Oy72vQHxy}%6SgrD6ujyYMb&*mpI3$Qm+U$2$twTNeW~TBu*7TTm=P)3W&4g
zK|&xE5H47Slsqc~qpT`CO@gFBegG*|k^=_<N&*GRLoG<>0hL8cvJgenkDp_dRh0n;
z2_mtAl!J@|r(7LrRt83WbI$3U=NZ-6rJx*h5JwUmKAh82&oe5rOMv~zF}?RZqYAq?
zl(PfG5d+z!&$0dSc}7J8W&z&1sq9ROn+*kia&K4UVRB@g9>BvSv%QX&sf~%5kEdlj
Jy8zQqegKh(df5N~

diff --git a/lab_3/.tests.py.un~ b/lab_3/.tests.py.un~
new file mode 100644
index 0000000000000000000000000000000000000000..dea0d87e837ef1a44da84e1dff033f3883451e0f
GIT binary patch
literal 7932
zcmWH`%$*;a=aT=Ff$8O8oo5F>);Ii#sCAoN+4Sq>5~io$D(fP5TgJ6bOp(9Fz`$V5
zz`#(d00l*<#Rd6!#i<Im3dN~8X?n>ynW=dtdIkB#B^v7bIf+TS#`=jVDe;NPC7ETJ
zC6)T>ItnR?C5g7x>M4mOsp?h=>V}4fhPq%BVrXb(XsE8Epbk^6u3)90o|KxGSfr?4
ztI5E?V8Fn@;LpIoz{tSBz>h?O*bE>Lc_N>W1tiPL5PtzAz`(%31f@X~NJ^W5fgvBn
z`Tzg_f3Q&?&M2lq2*9I*f#ItJ0|SE=0|SE&G!cQKB_EoO6zGwVAW29RW@T_?aY<^f
zj$VFgiC%$eBRIK$k_R(VIDp&;axVu+Y&5xmLV*Gd3Q19@eh?cRstgPaWef}qV0Pq*
zd{J=jg(eqJPSs^#V6cH^bq-kEL8A*4JuFZIK@=$J;0BLI7br+5z@U&MF1i>Yxf?yY
zv|!OyP?VWhqT!O6SX8N(pOlrFTvDu;n3JQSsh6BznpdKssR@lxPz16fIT;kWAZPG_
z#6}|&6bckzP)M3W^@HLHoafN;pE17tXNnr3N?xJ9K8_wr3fc-p#4RW;*`T(AC{R4>
zK{GeQXxxH=gaS-V+}a?=EvQ`8hXy|=+u6Y47Tl0aEG|whDse3=P0Y~%=h4i(^!UV_
zocP4D#LS$;q?}ZEn@&f;0Ms-CxgEWH21PMDNCJvM(GP0EffL?nltV*>T#Do<2L-($
z0|SE{$VPB`43q$1BB0820NP^|l_{VE1x`#LA2Bd6fD#+XmpLH*XaWO;0tJ|u1m=cZ
zrofVuJ+!?xF#SYmTLP38IFWo0N++PS4sOznrVXT!A%{s!+VBIX4JJtA5R@&A7#J8}
zX~POu-#{9N(6)qvlVeaQkqrt^gmNLd9TeH12$lwkjYcpi6ez&NL~sN+f}x!?^a!@Z
z6Tv#fG#Ekg$&KU#P+Wst1sX^gZ7?DQ3|UN2ND}G{M1kX%8IplPJqA#t5te~Xu*R<v
zQBezuN**L<gQ6Lfen4Y;qfv_#Fk~@_iP}nV)Izf^E$eL~14DD-#&@ChHYhFdBKaGX
zPC#iR5F|EQtb;;<0!&QWsG)D#FwiwLBsBI9O&g%J03Hj1h5#s?fYL@Nh(DS(K%qbZ
zCMIpv(LHS#5t%kXX#qYD#K6D+N++PS5djL3(X;^y1qv`RX`_B1(uN7%IYVf<0ZI$V
zo(H89P}+zF367=>P$*D<L7gs3sD4nWf;wg(F7muiBRFlaK$?=YZ*Lgr8XAQdnphc{
M;GR!5ZG6580LeOYfB*mh

literal 0
HcmV?d00001

diff --git a/lab_3/.views.py.un~ b/lab_3/.views.py.un~
new file mode 100644
index 0000000000000000000000000000000000000000..394e192410ade69ee7e5a043c684fc4a016e8426
GIT binary patch
literal 1147
zcmWH`%$*;a=aT=Ff$4gPN!G>I=8p=wi;OGpyS>!p^1pO$x{l?vO`)@&rCEhDFfbT_
zumTcD%*!vyNG)>7OfHF5PfslgPb_vT%FhkRFD_A!Rj9F5a7)Z7PGw+VP-1`pMg|53
zCI}NugV-R<5P71=lm#Tq$Pj-4Ndc6}0Fr_k!tnq9|NmeSnCvJ`S_ptb5)_#rT_84y
z2H`Rg0m6|dij2Y0!NBlUf`NfSk%56hnSp`9n1KNt@J2|9K!LbaVA=?dSWrZQY=B`<
z?8BWf8nLioA(IA$B%z2k0Y@w&Bw`hynG+PTps4Uhj@XpMl2ip-1rSw|nVYItTvAj3
zVrUel7M7+Km*@rf2ZuzfgXGm?b<|ZObyah9RZ~J#J*-rH)iptWz?ym(OdFrC0sydc
BV=({#

literal 0
HcmV?d00001

diff --git a/lab_3/tests.py~ b/lab_3/tests.py~
new file mode 100644
index 0000000..b8cbd47
--- /dev/null
+++ b/lab_3/tests.py~
@@ -0,0 +1,63 @@
+from django.test import TestCase, Client
+from django.urls import resolve
+from .views import index, add_activity
+from .models import Diary
+from django.utils import timezone
+
+class Lab3Test(TestCase):
+    def test_lab_3_url_is_exist(self):
+        response = Client().get('/lab-3/')
+        self.assertEqual(response.status_code,200)
+
+    def test_lab_3_using_to_do_list_template(self):
+        response = Client().get('/lab-3/')
+        self.assertTemplateUsed(response, 'to_do_list.html')
+
+    def test_lab_3_using_index_func(self):
+        found = resolve('/lab-3/')
+        self.assertEqual(found.func, index)
+
+    def test_model_can_create_new_activity(self):
+        # Membuat aktiviti baru
+        new_activity = Diary.objects.create(date=timezone.now(),activity='Aku mau latihan ngoding deh')
+                
+
+        # Menerima (retrieve) segala aktiviti yang pernah ada
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity,1)
+
+    def test_input_tanggal_wrong (self):
+        response = self.client.post('/lab-3/add_activity/', data={'date': '111111-11-11T11:11', 'activity' : 'Maen Dota Kayaknya Enak'})
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity, 0)
+
+        response = Client().get('/lab-3/')
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity, 0)
+
+    def test_input_aktifiti_wrong (self):
+        response = self.client.post('/lab-3/add_activity/', data={'date': '1111-11-11T11:11', 'activity' : 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Lorem ipsum!'})
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity, 0)
+
+        response = self.client.post('/lab-3/add_activity/', data={'date': '1111-11-11T11:11', 'activity' : ''})
+        print("JUMLAH", Diary.objects.all().count())
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity, 0)
+
+        response = self.client.post('/lab-3/add_activity/', data={'date': '2017-10-12T14:14', 'activity' : 'benar!'})
+        print("JUMLAH BARU", Diary.objects.all().count())
+
+    def test_can_save_a_POST_request(self):
+        response = self.client.post('/lab-3/add_activity/', data={'date': '2017-10-12T14:14', 'activity' : 'Maen Dota Kayaknya Enak'})
+        counting_all_available_activity = Diary.objects.all().count()
+        self.assertEqual(counting_all_available_activity, 1)
+
+        self.assertEqual(response.status_code, 302)
+        self.assertEqual(response['location'], '/lab-3/')
+
+        new_response = self.client.get('/lab-3/')
+        html_response = new_response.content.decode('utf8')
+        self.assertIn('Maen Dota Kayaknya Enak', html_response)
+    
+    
diff --git a/lab_3/views.py b/lab_3/views.py
index 6ef39e7..ef7738a 100644
--- a/lab_3/views.py
+++ b/lab_3/views.py
@@ -31,7 +31,6 @@ def add_activity(request):
 
         try:
             date = datetime.strptime(request.POST['date'],'%Y-%m-%dT%H:%M')
-            anotherDict['getWasFromPost'] |= False
 
             if not anotherDict['getWasFromPost']:
                 anotherDict['errorDateBox'] = ''
diff --git a/lab_3/views.py~ b/lab_3/views.py~
new file mode 100644
index 0000000..6ef39e7
--- /dev/null
+++ b/lab_3/views.py~
@@ -0,0 +1,51 @@
+from django.shortcuts import render, redirect
+from .models import Diary
+from datetime import datetime
+import pytz
+import json
+# Create your views here.
+diary_dict = {}
+anotherDict = {'errorDateBox':'', 'errorActivity':'', 'getWasFromPost': False}
+
+def index(request):
+    if (anotherDict['getWasFromPost']):
+         anotherDict['getWasFromPost'] = False
+    else:
+         anotherDict['errorDateBox'] = ''
+         anotherDict['errorActivity'] = ''
+    diary_dict = Diary.objects.all().values()
+    return render(request, 'to_do_list.html', {'diary_dict' : convert_queryset_into_json(diary_dict),
+        'errorDateBox': anotherDict['errorDateBox'],
+        'errorActivity': anotherDict['errorActivity']})
+
+def add_activity(request):
+    if request.method == 'POST':
+
+        if (len(request.POST['activity']) == 0):
+            anotherDict['getWasFromPost'] = True
+            anotherDict['errorActivity'] = 'Format kegiatan tidak boleh kosong'
+
+        elif (len(request.POST['activity']) > 60):
+            anotherDict['getWasFromPost'] = True
+            anotherDict['errorActivity'] = 'Format kegiatan tidak boleh melebihi 60 karakter'
+
+        try:
+            date = datetime.strptime(request.POST['date'],'%Y-%m-%dT%H:%M')
+            anotherDict['getWasFromPost'] |= False
+
+            if not anotherDict['getWasFromPost']:
+                anotherDict['errorDateBox'] = ''
+                Diary.objects.create(date=date.replace(tzinfo=pytz.UTC),activity=request.POST['activity'])
+
+        except ValueError:
+            anotherDict['getWasFromPost'] = True
+            anotherDict['errorDateBox'] = 'Format tanggal tidak tepat'
+
+        return redirect('/lab-3/')
+
+def convert_queryset_into_json(queryset):
+    ret_val = []
+    for data in queryset:
+        ret_val.append(data)
+    return ret_val
+
diff --git a/.gitlab-ci.yml.swp b/lab_4/.admin.py.swp
similarity index 90%
rename from .gitlab-ci.yml.swp
rename to lab_4/.admin.py.swp
index 0d968991ac42de41be9c07f986ca441f88c1c692..348029d9da7b3b48e2d910c0ab30547d958b6125 100644
GIT binary patch
delta 236
zcmZojXh={<G6?hZRj|-AU|?Wi5MW>se0?Gk#FSBDU<fTvEt<GdWui+sUru6Dyor8d
zN^WMJUP0w%Miy7*&F`4yco<nX^9p?DS4!Y#VCdk77{SWGz;K_Rf#EPe1H&PH28N|z
zxy_0KN&FQM6N)oSQuT^b(=&@pQj0WvQ;Ule(^EAWlof)YVhWY{r9}$4`6;P6#R?gz
wMX7oW3~5FAxe9tvvCQ0p{Gt*Cs8)zvN>*ZCdcIzAeqKpYW|9I_3D`yk0H7yEasU7T

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

diff --git a/lab_4/.admin.py.un~ b/lab_4/.admin.py.un~
new file mode 100644
index 0000000000000000000000000000000000000000..e151d6312ce1b831ac7e2c49e89d71809f206c38
GIT binary patch
literal 974
zcmWH`%$*;a=aT=FfoXfnMiXIy+I>ed@~%&u@`K^q*O!}IZr3bgi(FQl9e95=0|Nsq
z11ex-U|?W^3V~=CW{5oTnw1428-D>w0hGxAl453HV2}X`{Qv*|KUf6B8O5ZB04OA-
zq1r%faHujcFqAPcFerh<BTu~g296E}hOZJxaR!nDMTLyALQraYW^qYskwRsDX^}#1
zeoAUiu|h^_QL3J4BRC2{>OksY7#`Okfzc=gg#rZ_6m0~e@HGoK3Yj2L2#O9C1_lNY
M2C*4T8=tQN02*{SSpWb4

literal 0
HcmV?d00001

diff --git a/praktikum/.urls.py.swp b/lab_4/.views.py.swp
similarity index 80%
rename from praktikum/.urls.py.swp
rename to lab_4/.views.py.swp
index 73b82226a46b26fed7be399500c6c71f0daed9b9..406ed9c6b36df57051c03c8aecb006e33e84ecd7 100644
GIT binary patch
literal 12288
zcmYc?2=nw+u+TGLU|?VnU|@)PeIgRX{Nu>L5L%pC1Y#4yF0R4eA^rinp(de*L2lkS
zmAhE!yCjw*D!3&UWv1u{q!wkD=42*jB<ATmW+$ek=4KY_2Ly!c`y?jmg6N#Yq<9nk
zvdq--V!eV&oTiRSjE2By2oM(nd<@1$h6c(?iVDI)p~Pt!RW%v{qaiRF0;3@?8Umvs
zFd71*Aut*OqaiSCLZGC8k>NiB0|OHS1A`s|0|O%z4;v4TdSo;NMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhmU1V%$(Gz3ONfFUu3fng6j149P~Wd0vC25^U;fnhyA149!(149x&
z1A`ks1A{9+1A{g{1H&sm28IoM3=D;Q3=9f<3=B_r85pMWGBAYmGBEt-VPN>j!@%&0
zhk;=?4+Fzo9tMU;9tH+e9tH+Z9tMVc+zbqNxfvJ^aWgPX;bvfn<7Qy^&&9wnmy3ZR
zor{4%mWzSm87Bk7c}@m~6`TwVm7EL=>6{D<7Mu(W=9~-+(wqzo-#Hi<u5vIiZ0BHL
z=;mNx=;B~t=;VO9e>6TvLtr!nMnhmU1V%$(Gz5lP2q-8hC={iZlosVF6s6{+q!wuu
zr52W^7MJKKWR&FQDCj5@r4|?D=M|@FGJw>A1#K17A?pN75|eUL^+00kU|E>jX!YFG
z;^M^gRP|T|TLmZ^tOCkbuvPGdsL;z#%1TWxDb`EO$<fecNJ&kDsgDPn4s(yD6$97+
zkRzZD_9!VS2!gsUC^aRsC^fl6LtQ^7F-g}%UmfD!)STi}E07)#MmGSPkI_90(g*UO
zf-Tg~Y57ID@kOb{r8y-?J_jj-`c1Dmu`E>sVm(M06GIi+VhJvUHmD**NNMCH=B6U)
z0ddu1bre!_6Eky=#KC;^SREwaLShg#R-o~$7vLWpf+T}Q7t}xnTLn}-F!9VZ91@DQ
z3Q9@}peRsKa?H!mtIW+WEmp!}1H>yB7C?nD%!i8OF+MX5mTvTNQ%f@PQxt4%71Tjq
zRaZ#NOHlwtqF!ckd|6^nW{QTUrWM#xAW=kk$Ghbh<-&~t=~c)tQt->qOGQnl1^LA#
zFlDe*3QeKJBruFb5D#(&IO9OG2-qQD2O`uaCgqow#OFdX7>ol}qa5Pz;;-PDTac5Q
zo0?amqmWsgnUk2Ikdm60o|va#rjQL<4qTa-m#&Zt%JIe7MVSS~nc0bXppZ!fn*mAi
zuv`w#>qu!G;fmz^ypq(s60l=)67y0r^U~uB64O)Tp%UQioSB!BT7e!wuuP%kl$xAa
zTAZqon3tKGSdy8ar;wXiQj%I!tf-(7nOdx);Hi+9tB{tMlara3u8^6hkdt4Qs!*O;
zlA+-0tWcDho>8KZmtU@_6bp7a+}z;A%0z{%()2`y;?z8dXLFNE6H64*6LXUiixiAq
z6jH!m&dg0L&QwC=7LW-_!HKyAiJ1z;iHRi&nRy^aC6YmT>4_k>D&!=VBo-+orRF4N
zgKa1+&dgRw%go8eG!Et%kVb{#((FWq?EKt<{Nl{wOod#qzWk!>)Z&t&M0CAQsY$6t
zi3N$^5K2|ZP0dY8%_}L*R>(>$$y7+mEP}XBN1-^iAhoC@Q^7AYIU_SGzZC4hU`Ky+
z1HHi>N=*Sdxga$!B{Kya`6-zSp?R5QsYS(^C5gofo_Q(xd8x&jAosx1mx8TAv=TUA
zgA$W7auZ7wf-+Oe6Z3Qwk}?yE6BSZ23lj6v(=&4*tId^k7+^_7!B(MKJ+ZVTBfm)9
zN<j%#yHc$JTB22`%r7kh<#GmP1?QsF#FA97hyr+Bx<W>3QK}vTLt0UOu7X}}eoAUi
zu|j5UL4HvQtWtr>fie=h6eKf&^`>Mc=B4NBWt5Z@!1QCQQXqzbGJ%mE!~syta<HX%
UWRr_C@{3B6OH1HxfRqOe01PXwY5)KL

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}@

diff --git a/lab_4/.views.py.un~ b/lab_4/.views.py.un~
index f8cc34d2cef95a69bc12f9734afe80699a459d9e..3dd0a587b9d28162b9372de117b837dcb5eb011b 100644
GIT binary patch
delta 5471
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
M)|9jPbL0U*02L&49{>OV

delta 121
zcmdn`kZJREM*XnN-1(t-F8NOxm^4hD^oVUy6x#V>wPsV~{@#fp=adZ(Z2B+g<hI^!
zKc^@I1B1roo9?Q53=9lx3=qJ?z`$SyVS;H88-y7mj~@?bVPs%n;M>@>Ae@n5vv$OF
L#?61`?Gyw6Uq~W?

diff --git a/lab_4/admin.py b/lab_4/admin.py
index 8c38f3f..26f44be 100644
--- a/lab_4/admin.py
+++ b/lab_4/admin.py
@@ -1,3 +1,5 @@
 from django.contrib import admin
+from .models import Message
 
 # Register your models here.
+admin.site.register(Message)
diff --git a/lab_4/admin.py~ b/lab_4/admin.py~
new file mode 100644
index 0000000..26f44be
--- /dev/null
+++ b/lab_4/admin.py~
@@ -0,0 +1,5 @@
+from django.contrib import admin
+from .models import Message
+
+# Register your models here.
+admin.site.register(Message)
diff --git a/lab_4/views.py b/lab_4/views.py
index 21ea2b5..20ee403 100644
--- a/lab_4/views.py
+++ b/lab_4/views.py
@@ -6,7 +6,13 @@ from .models import Message
 
 # Create your views here.
 response = {'author': "Rachmat Ridwan"} #TODO Implement yourname
-about_me = ["Saya Rachmat Ridwan, panggil saja Farid", "Rid", "wan", "gan", "teng", "nya"]
+about_me = ["Saya Rachmat Ridwan, biasa dipanggil Farid",
+            "Kini sedang pendidikan di Universitas Indonesia",
+            "Beberapa anime membentuk jati diri saya, seperti Nichijou dan SAO",
+            "Saya juga amat suka komposisi musik orkestra",
+            "Sampai saat ini saya senang mengamati latar belakang musik film",
+            "Saya juga senang membuat gambar 3D dan animasi",
+            "Because animation matters! (Yes, I am falling in love with EC right now)"]
 
 def index(request):
     response['content'] = landing_page_content
diff --git a/lab_4/views.py~ b/lab_4/views.py~
index 39799d6..d8d1c35 100644
--- a/lab_4/views.py~
+++ b/lab_4/views.py~
@@ -3,11 +3,16 @@ from lab_2.views import landing_page_content
 from django.http import HttpResponseRedirect
 from .forms import Message_Form
 from .models import Message
-import datetime
 
 # Create your views here.
 response = {'author': "Rachmat Ridwan"} #TODO Implement yourname
-about_me = ["Saya Rachmat Ridwan, panggil saja Farid", "Rid", "wan", "gan", "teng", "nya"]
+about_me = ["Saya Rachmat Ridwan, biasa dipanggil Farid",
+            "Kini sedang pendidikan di Universitas Indonesia",
+            "Beberapa anime membentuk jati diri saya, seperti Nichijou dan SAO",
+            "Saya juga amat suka komposisi musik orkestra",
+            "Sampai saat ini saya senang mengamati latar belakang musik film",
+            "Saya juga senang membuat gambar 3D dan animasi",
+            "Because animation matters! (Yes, I'm falling in love with EC right now)"]
 
 def index(request):
     response['content'] = landing_page_content
diff --git a/praktikum/.settings.py.swp b/praktikum/.settings.py.swp
deleted file mode 100644
index ff6a6b094dc15116dc33a0ce771c56f5ee55b13d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16384
zcmYc?2=nw+u+TGLU|?VnU|<kRJrN0Fb~rLHgche3f!Ktwi)*lVh<|`?s7a_{kefG7
z<t|qGE{P?H3T}x-nJM}KsYThPIhlzWiFx{t*@-EsxtYcK0RiFqK8Z=XAiAI^F}ox)
zyEIq7IJKlCGcUbZub>jA;iD3xAut*O1VVt9!Pv;qKv_vqL0Bl1fZ9>%(GVC7fzc2c
z4S~@R7!85Z5Eu=C(GVC7f#DVcB?U|j{}~t<m>3ustQZ&=7@?S%fq}sXNo=_Jd(=Op
zAut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?l0qOcg@J*MgMopG6Egn~8Uy&l
z&%kh%pMl{DKLf)weg=lA{0t0v{0t0c{0t1H{0t0?{0t0d_!t;Y@G&qP=VM^l%g4a5
zo{xcH1|I`M03QPbCm#dDRbB>$E4&O0Q+XK}e0Uicym=WIICvQtj`1)s9OYqPXy##H
zDC1#ZDCJ>bi05Hoh~r^kh~;5maN%KKaOPoPFyLWe5aD59_{q({aE+URVLLYi!whZ)
zhB9sjhD>e-h8S)J22XAV1{-b$27PV@23>9j1|4n&23c+fhVNVq3<tOv82Y#v7$UhC
z7-YE^7~XI)Fzn`JV5s3_U~u4s_?HpnXHEu&I8FwJ2u=nDAx;K{+Z+rG2RRrR)^IQ|
zbZ{^*_;4^V@NqCOoM&fX=wN4HsAOkg$YW<<NM~nYNM&bWNMUDSFkxq4FlJ|9Fk)w5
zP-kagc*e%S@RW^#;W`@w!!b4nhG}dJ3<+!u3{h+h3=wP$3}S2y4D4(S43}9M7%s6g
zFkED1VA##dz>v+#z>vktz~IZuz~Iix!0?)df#C@Y1H(NQ28JFM28LD^28MbT1_m7#
z1_o6Y1_pT+28Pqj3=Bt@85j;RGcX)vW?(qL%)qdcnSr60nSr5*nSmjSnSmjanSsHb
znSsHLnSsHKnSsHSnSnu-nSnutnSnu!nSnu+nSnusnStRJ69dCdCI*HLObiSqObiS*
zObiSvObiUcA&w!Q&heo^J_@!9>iWeci6xoI`sy(8Ab<Z51zUyuV!eXIk_^49{LDO!
zfFOS_SLcv;kerT!Iz&raW=?9cx+a6NLPkkRL9vy-eoB6Fv0h46VqSWFK~a8IYI2EQ
za(=FUYM#EKo~3?9etAhg)H+?TW_<=_g<!Dt3Shp1hI4SRj)GTWSz>T<QD#Ajj)G@y
zVtQ(^CIbVq6Of#jl3A3On478rb8cc%G052(@$n!N<Ks0o85kHsgI(i8q7-ZuLW)XL
zAzU9r13wf2PeTiYK!~TWYkZWypDQSYLPMO@85n#V{oF$x-Cg6I{awJqsd>7k#p(=1
zdf(7cza+mPGr3ql)6gOh<Z;iulGLKS#FEVXyu_T$DlmhAfgzSbK|w*GRtHRhnCgCx
zzOL$43hI!6)l1ILD=ErM(n~BY$<QlEEG{n3FG`6oOU%hk0h^)cSDKqzl$jg=l?sE%
z<QJ(!%&Z2ROo;`~`MJ6Id9*X%H#09Yw=~x$H7~s+gZj<~t%Gtb0fk{{NosIrZe~tm
zQD#XcrbUjSAs+Doj={m<{y{GBVU9kYE{-AoLBR^P3ehCQdr@i{e94o(GAP<~VbP`w
zjkf%vVg_XeScob>MKkmB7#P5@<>DCP=;Rpe8XT>jlA4xSnp2`4t6-~;k`<qlSdy5O
zSezPPT9gAy8fls78k!85X$k>B{w|@;A)fwzRt(CXX$qmmnR)379;rq7*`*4ud1aYJ
z`FW|ic_lguB^jxC3ZccR3ZT_oAhQ&LAq%t=^7Eh?7;3@JfRM<E5|-`2r3A=@@h+Z0
zItuD3NqWVFIhiG?#_F1oWCzye>gVq1hn$#GlJt@ile1IvQi|akAnM^BwNj{Nfcsy;
zR-u~gpofJOD6C<AWnf?k4|eyAcMJ&d@pN_sg%>E#!xyXRl^3UH>LnHw<YXp;vzI!S
zEQ*wwK;Ddn_yEL&Vf4(Kn_659D%e0#R+3s#5?@f1pPX7;oL^L|2a|*5SC|nX8r>LB
zV!~zwNF0y$lGNOSoWzn;Y+8#_3rkarOUTrnlA2VSj;2=~RAQm}QQb-*8l0lQp7IX>
z1$(eMD5gOIAgt~f5CBR`AW=}MjT)q|aLCO}Ny$kqPb^B+OU?mlgJ7)EnaSB%iOJcS
zdFgr)ZbgZ?ss06^vbWe5ZU)rdFx?<$g9=($eCQ$B<_n2Gf_gy_fvnH56qMUaplJ!G
zb|jmUi;L3qoQsRn!ZK6KiP8Wro%JAvG)@gL&lRT@7iZ?@6(c(`7$SyKFOutuQ<F<U
zg{NLHl!2+KJR`FtH7`H2I2GBBaFD1UNEAZ{qCEkM*o^$r;#9qY%94!yJiYv)bbV;c
zLLXtSJ~$~UD+Fie7UX26Wu~SmKw2o^R)s=wYEc;|)){;~U0i%z!ySV_^>;KZAFJmi
zCdHe;;vU2?M&=mBC#Iz2=b;E8a|~e|wCWk+0#GBQ7>5d2y22q1iy0i!pa@LOD=Dcg
zNX2CVDDmOYotToF3G$PtUvP+{kB_Shr~rglY>tTHP9Y^VEi*3@lv5ZO7#w|k{KH*c
z;ywI>L%^!lwbWx77+hSPLfv7lDP@IVSLe_m&yYxkaK|7&Pd|4n1yBH%C=`|EDU@fH
zWGH}335Al<qP)};P$iR@r%+IopHi9(vPO}CA=uS9$TcM1+cgqY7MGV=XqOqMXIN+(
zrj(eK6>1xrW~XJVY3gQ}8z|<RX{%+YYAYM&J7kxbW$Id5R8|zKgW8oCj>t|;EdW(^
z3dO0(MX4nU*{PKZrNyZ!3Mke?WfeiSOmJ!{QEgj8LulhRCAA<YzcM#9uS7pNBQ-fY
zC$qQ&)Yc0u%}mbLEiOqcDp5#DElbVGF90c0fUSg9&{ZhSD=y6}NleN~RY=P(LJALX
z(-&HmLmIxRklI@>J+(wb9ac4h+Vkp~3W~N0e))N+46wQwq65?<)<bV9qw_JF&Y-rv
zQ)y;SiUP=hVuj4S;>?s(a2P^!p+Zh(Hb@||*b24B0JC35K~GOllOZ#=ARpv+)CLPo
zxHvyKJGBJH%P(eNP*PH2Af{JgXsD0Uykc<6F9N$Stu!Y`0TlcS`Dut?PRvUI$z~RT
znpmZ&#X1Vbsi_Ra+5~OD!y-)|Y*}u8QK~{_URr)pF1URFO3x)3nZ@9;2Wq~1YF=tl
zVo7R>LQ*BH9j^<{f}nz`s013A>I$XcMw$z_2c=-BXK1KrqQ}4h<-_a+r;n7P#I%z5
zoWvwhN&)w@z+ndJ|A(?OFwEqD^#4I~{{Q$H82<7zFx=&5V7SB2z;KSAf#C!{149!(
z1A{j|1A`$y1A`1d1H%tK28KO+3=DOA3=H;s3=BVb85myjGBDiZWnj3@ix>k~!pp$0
zn3sWJ5ibM7bY2FAFkS|RP+kTGcU}etGhPM;HeLpX3p@-Ar+63`PVg`=wDB-7ltae>
zoOl=*9C;WRw0Rg9ZgVp*+~Q_n*b5yGh~{Qs2;pX6@Z)A+_`}7(@Rf^!;XM}v!yGOK
zhN)Z(4E<aT4Axu>3?^I*3`SfG42E0`3<g{b43b<7439Y(7#?vlFr4CKU^vOiz_6W@
zfnggb1H&>-28N}a3=C5_85pK;GBC7pGBC7qGBC7oGB9{?GB9{@GB7A`GB7;hU|`tD
z0S&j2G+;F9*U=Cd4S~@R7!85Z5TH>A1cL#U2AxO8n-Se(e8cUd<IS*!Hh7Q=G>!x6
z4r3iKA02OoOc9KZH-iS&L8FkcPBmzZV|2VZA2kbsN1jlJtU*}|I?@CgfrXH;k<=kQ
z-mLE883Y=Ij>a|D0rOq4x+c=dzq*s7v$w0C3)0LTOd(>*13G31>EMSzN9AF|dDRRd
ouD$_2jv=m~WEjoB0GfRT4f8nr`?-Mz#t@SfrA0ZQsmNFc0AEH>l>h($

diff --git a/templates/.description_lab2addon.html.swp b/templates/.description_lab2addon.html.swp
deleted file mode 100644
index 6b5447703bc460b2dcd6521a77e3ab431a68dcbd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12288
zcmYc?2=nw+u+TGLU|?VnU|>*=JrN0FifAw}gche3f!Ktwi)*lVh<|`?s7a_{kefG7
z<t|qGE{P?H3T}x-nJM}KsYThPIhlzWiFx{t*@-EsxtYcK0RiFqK8Z=XAi5+qw;(66
zB(+#SCAB!YD6^m>Ge0jrCo#z=F(oBGPcNe+HwUL(qY|SbFd72rA;8OEY-DJltfZ(Q
zEEI|^Im#amfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c<{?m0z{v2Qfq{XEfq_AUfq{V$
ziif$kN4+;10;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70QDg+W!7#L)E7#JFP
zAoKsAF@R_M3=Eg}85nl+GcXkMGcY*vGcYLgGcbtpGcereV_;ar$G|X;kAb0=kAb0u
zkAb0@kAdMGF9X9lUIvD6UIvE$JPZu~co-NaK+VkqnLVOHb=0$?Aut*OqaiRF0;3@?
z8UmvsFd71*Aut*O3=9m_stT!jDM>l`$=M33wG1}NshA>pC8<SrHkrBU3dKdqwo28i
z3dJRfC7H<zN;!#1@ka6B)xY|FnaLTMS^1@USq14z3aYhA3W+%-wo1O03Yocy>8VNz
z8L64+86~z##^$C<3gww8B^kC#rUnK|`gS(@$*EvV7#KJe6ciNl^As}j%N0uU6;krc
z^K$YNQxx*k(sDBMQWeTFQ&RJb6*BV_Y?AD3((?046q56E@{1H~6_nD8Qd9Gk?0h`^
zTy6A0Qg$}_Np?2+8OC-Hb8Qk8GKx~uY?U%fN(zdt^z}<Jb5lXa>Vb*eRQ-bd;u8J%
zl$3JaDsz+M$Vk78!knsr2t#w9lB|gINYB!ekWe2lPj}0F%e;JjLqk&oV<Q726GJlt
zQv)*-GZPafyOPq9{G!an92@;an6*hoc3!2$B??8UAb;jmDtId7CZ?n+Br@1!7%LQ)
zROY1GDwU*Gl;|erWTxj?DS(uv7Ae^&IA^3LXDj5FmMCDjy}Z0!uQI>1q%<j2FF8L~
zKRF{YFE2GmKh)V*w=mP$AUIgp#N0d5ry|@axWc%sT*)rCQXw+GG^8{sRRO9P<VJ<W
zVukY5oE$|4o1`K;5N5E^FG)<wNws4DMFu22q~#ZZ(g#QYgl+UoiXhS;9thi%q$nik
zBo-IjDwQSXl%^`#RaYw{W#;RFc?z|)Hu@zgIJFd)CS|22m%uea`54-4VAfWvDuA4n
zl$j4o3rU&z@hO?fB_Jo-fZeVD4oO=jXh`A<WI~bPk*ScFlcS>$l95@gkXfvdTd9zo
zpIeZVT9OL#U`k?1A|#Dft15ugDkOKLW#*(7gB(<?ssPDf$@zIDsd->Wf&#UoBsDLk
RSV1W%u{agHb{>>#7y!b*TT%c3

-- 
GitLab