From bfc9314d8d27728c7379198134ea844d1649c376 Mon Sep 17 00:00:00 2001
From: Ahmad Wigo Prasetya <ahmad.wigo98@gmail.com>
Date: Mon, 6 Nov 2017 05:44:39 +0700
Subject: [PATCH] Edit pada lab_6

---
 lab_5/tests.py                                |   2 +-
 lab_6/static/css/lab_6.css                    |  30 ++-
 lab_6/static/js/lab_6.js                      |  19 ++
 lab_6/templates/lab_6/lab_6.html              | 109 ++++++++-
 lab_6/templates/lab_6/layout/base.html        |   2 +-
 lab_6/tests.py                                |  14 +-
 praktikum/static/css/lab_5.43657e178476.css   | 227 ++++++++++++++++++
 .../static/css/lab_5.43657e178476.css.gz      | Bin 0 -> 1584 bytes
 praktikum/static/css/lab_5.css                |  98 ++++----
 praktikum/static/css/lab_5.css.gz             | Bin 1400 -> 1584 bytes
 praktikum/static/css/lab_6.8eefcf879324.css   | 120 +++++++++
 .../static/css/lab_6.8eefcf879324.css.gz      | Bin 0 -> 674 bytes
 praktikum/static/css/lab_6.9e8c3419e81e.css   | 122 ++++++++++
 .../static/css/lab_6.9e8c3419e81e.css.gz      | Bin 0 -> 686 bytes
 praktikum/static/css/lab_6.css                | 122 ++++++++++
 praktikum/static/css/lab_6.css.gz             | Bin 0 -> 686 bytes
 praktikum/static/js/lab_6.929076990bcb.js     |  19 ++
 praktikum/static/js/lab_6.929076990bcb.js.gz  | Bin 0 -> 234 bytes
 praktikum/static/js/lab_6.9a75b205ae42.js     |  19 ++
 praktikum/static/js/lab_6.9a75b205ae42.js.gz  | Bin 0 -> 249 bytes
 praktikum/static/js/lab_6.js                  |  19 ++
 praktikum/static/js/lab_6.js.gz               | Bin 0 -> 234 bytes
 praktikum/static/staticfiles.json             |   2 +-
 23 files changed, 872 insertions(+), 52 deletions(-)
 create mode 100644 praktikum/static/css/lab_5.43657e178476.css
 create mode 100644 praktikum/static/css/lab_5.43657e178476.css.gz
 create mode 100644 praktikum/static/css/lab_6.8eefcf879324.css
 create mode 100644 praktikum/static/css/lab_6.8eefcf879324.css.gz
 create mode 100644 praktikum/static/css/lab_6.9e8c3419e81e.css
 create mode 100644 praktikum/static/css/lab_6.9e8c3419e81e.css.gz
 create mode 100644 praktikum/static/css/lab_6.css
 create mode 100644 praktikum/static/css/lab_6.css.gz
 create mode 100644 praktikum/static/js/lab_6.929076990bcb.js
 create mode 100644 praktikum/static/js/lab_6.929076990bcb.js.gz
 create mode 100644 praktikum/static/js/lab_6.9a75b205ae42.js
 create mode 100644 praktikum/static/js/lab_6.9a75b205ae42.js.gz
 create mode 100644 praktikum/static/js/lab_6.js
 create mode 100644 praktikum/static/js/lab_6.js.gz

diff --git a/lab_5/tests.py b/lab_5/tests.py
index 17205b0..b1e2115 100644
--- a/lab_5/tests.py
+++ b/lab_5/tests.py
@@ -1,7 +1,7 @@
 from django.test import TestCase
 from django.test import Client
 from django.urls import resolve
-from .views import index, add_todo
+from .views import index, add_todo, delete_todo
 from .models import Todo
 from .forms import Todo_Form
 from selenium import webdriver
diff --git a/lab_6/static/css/lab_6.css b/lab_6/static/css/lab_6.css
index bb887ae..727e3f1 100644
--- a/lab_6/static/css/lab_6.css
+++ b/lab_6/static/css/lab_6.css
@@ -8,7 +8,7 @@ body{
   background: #95a5a6;
 }
 .chat-box{
-  position: absolute;
+  position: fixed;
   right: 20px;
   bottom: 0px;
   background: white;
@@ -34,6 +34,8 @@ body{
 }
 .chat-body{
   height: 355px;
+  display: block;
+  padding-left: 5px;
   width: inherit;
   overflow: auto;
   margin-bottom: 45px;
@@ -59,7 +61,7 @@ body{
   background: #2ecc71;
 }
 .msg-receive{
-  background: #3498db;
+  background: red;
 }
 .msg-send, .msg-receive{
   width: 200px;
@@ -94,3 +96,27 @@ body{
 .msg-receive:hover, .msg-send:hover{
   opacity: .9;
 }
+.calculator {
+  margin-top: 15%;
+  margin-bottom: 15%
+}
+
+.calculator .model {
+  background: #4e4e4e;
+}
+.calculator .calcs {
+  font-size: 56px;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  height: auto;
+  border-radius: 0;
+  cursor: text;
+}
+
+.calculator #title {
+  color: #f9f9f9;
+}
+
+.calculator .btn {
+  border-radius: 0;
+}
diff --git a/lab_6/static/js/lab_6.js b/lab_6/static/js/lab_6.js
index e69de29..e2e5543 100644
--- a/lab_6/static/js/lab_6.js
+++ b/lab_6/static/js/lab_6.js
@@ -0,0 +1,19 @@
+// Calculator
+var print = document.getElementById('print');
+var erase = false;
+
+function go(x) {
+  if (x == 'ac') {
+    print.value = null;
+  } else if (x == 'eval') {
+      print.value = Math.round(eval(print.value) * 10000) / 10000;
+      erase = true;
+  } else {
+    print.value += x;
+  }
+};
+
+function eval(fn) {
+  return new Function('return ' + fn)();
+}
+// END
diff --git a/lab_6/templates/lab_6/lab_6.html b/lab_6/templates/lab_6/lab_6.html
index 22410fa..f313fed 100644
--- a/lab_6/templates/lab_6/lab_6.html
+++ b/lab_6/templates/lab_6/lab_6.html
@@ -7,16 +7,117 @@
       <div class="chat-box">
          <div class="chat-head">
             <h2>Chat</h2>
-            <img src="https://maxcdn.icons8.com/windows10/PNG/16/Arrows/angle_down-16.png" title="Expand Arrow" width="16">
+            <img id="arrowIcon" onclick="hideChat()" src="https://maxcdn.icons8.com/windows10/PNG/16/Arrows/angle_down-16.png" title="Expand Arrow" width="16">
          </div>
-         <div class="chat-body">
-            <div class="msg-insert">
+         <div id="chat-body" class="chat-body">
+            <div id="submittedMsg" class="msg-insert">
             </div>
             <div class="chat-text">
-               <textarea placeholder="Press Enter"></textarea>
+               <textarea id="msgToSubmit" placeholder="Press Enter" onkeypress="sumbitMsg(event)"></textarea> 
             </div>
          </div>
       </div>
    </div>
 </section>
+
+<section class="calculator">
+    <div class="container">
+        <div class="model col-lg-5">
+            <div class="container-fluid">
+                <div class="row" id="title">
+                    <h1 class="text-center">
+                        CALCULATOR
+                    </h1>
+                </div>
+                <div class="row" id="calcs-section">
+                    <div class="row">
+                        <input id="print" type="text" readonly="readonly" class="form-control text-right calcs" id="usr">
+                    </div>
+                </div>
+                <!-- Adapted from Tom Howard -->
+                <div class="row" id="calc-buttons">
+                    <div class="row">
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('ac');">AC</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('log');">log</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('sin');">sin</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('tan');">tan</button>
+                    </div>
+                    <div class="row">
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(7);">7</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(8);">8</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(9);">9</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(' * ');">*</button>
+                    </div>
+                    <div class="row">
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(4);">4</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(5);">5</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(6);">6</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(' - ');">-</button>
+                    </div>
+                    <div class="row">
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(1);">1</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(2);">2</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(3);">3</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(' + ');">+</button>
+                    </div>
+                    <div class="row">
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(0);">0</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('.');">.</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go('eval');">=</button>
+                        <button class="btn btn-lg btn-default col-xs-3" onClick="go(' / ');">/</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<script type="text/javascript">
+  var print = document.getElementById('print');
+  var erase = false;
+
+  function go(x) {
+    if (x == 'ac') {
+      print.value = null;
+      erase = false;
+    } else if (x == 'eval') {
+        print.value = Math.round(eval(print.value) * 10000) / 10000;
+        erase = true;
+    } else {
+      print.value += x;
+    }
+  };
+
+  function eval(fn) {
+    return new Function('return ' + fn)();
+  }
+
+  var message = document.getElementById('msgToSubmit');
+  var submit = document.getElementById('submittedMsg');
+
+  function sumbitMsg(e) {
+    var keyPressed = event.keyCode || event.which;
+    //if ENTER is pressed
+    if(keyPressed==13) {
+      if(message.innerHTML != null || message.innerHTML != " ") {
+       window.localStorage.setItem("message", message.value);
+       submit.innerHTML += window.localStorage.getItem("message") + "<br>";
+       message.value = null;
+      }
+    }
+  }
+
+  var chatBox = document.getElementById('chat-body');
+  function hideChat() {
+    if(chatBox.style.display === "block") {
+      chatBox.style.display = "none";
+      document.getElementById('arrowIcon').style.transform = "rotateZ(180deg)";
+    } else {
+      chatBox.style.display = "block"
+      document.getElementById('arrowIcon').style.transform = "rotateZ(0deg)";
+    }
+  }
+
+</script>
+
 {% endblock %}
diff --git a/lab_6/templates/lab_6/layout/base.html b/lab_6/templates/lab_6/layout/base.html
index d3b8181..47f219d 100644
--- a/lab_6/templates/lab_6/layout/base.html
+++ b/lab_6/templates/lab_6/layout/base.html
@@ -32,7 +32,7 @@
         {% endblock %}
     </footer>
     <!-- Jquery n Bootstrap Script -->
+    <script src="{% static 'js/lab_6.js' %}"></script>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
     <script type="application/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-    <script src="{% static 'js/lab_6.js' %}"></script>
 </body>
diff --git a/lab_6/tests.py b/lab_6/tests.py
index 7ce503c..fbad767 100644
--- a/lab_6/tests.py
+++ b/lab_6/tests.py
@@ -1,3 +1,15 @@
 from django.test import TestCase
+from django.test import Client
+from django.urls import resolve
+from django.http import HttpRequest
+from .views import index
 
-# Create your tests here.
+class Lab6UnitTest(TestCase):
+        
+        def test_lab_6_url_is_exist(self):
+                response = Client().get('/lab-6/')
+                self.assertEqual(response.status_code, 200)
+
+        def test_lab_6_using_index_func(self):
+        	found = resolve('/lab-6/')
+        	self.assertEqual(found.func, index)
diff --git a/praktikum/static/css/lab_5.43657e178476.css b/praktikum/static/css/lab_5.43657e178476.css
new file mode 100644
index 0000000..07eaaca
--- /dev/null
+++ b/praktikum/static/css/lab_5.43657e178476.css
@@ -0,0 +1,227 @@
+body{
+  margin-top: 70px;
+  font-family: 'Josefin Sans';
+}
+
+/* Custom navbar style */
+.navbar-static-top {
+  margin-bottom: 19px;
+  position: fixed; /* Set the navbar to fixed position */
+  top: 0; /* Position the navbar at the top of the page */
+  width: 100%; /* Full width */
+}
+
+.navbar-default .navbar-nav>li>a {
+    cursor: pointer;
+}
+
+/* Textarea not resizeable */
+textarea {
+    resize:none
+}
+section{
+  min-height: 600px;
+}
+/* animasi pada title */
+.main-title{
+  -webkit-animation: colorchange 1s infinite;
+  -webkit-animation-direction: alternate;
+  text-align: center;
+}
+
+/* animasi colorchange */
+@-webkit-keyframes colorchange {
+    0% {
+        -webkit-text-stroke: 5px #0fb8ad;
+    letter-spacing: 0;
+    }
+  50% {
+    -webkit-text-stroke: 7.5px  #1fc8db;
+  }
+    100% {
+        -webkit-text-stroke: 10px  #2cb5e8;
+    letter-spacing: 18px;
+    }
+}
+/* styling wrapper form */
+#input-list{
+  background: linear-gradient(to bottom right, #606062, #393939);
+}
+/* styling form */
+#input-list form{
+  width: 400px;
+  margin: 50px auto;
+  text-align: center;
+  position: relative;
+  z-index: 1;
+  background: white;
+  border: 0 none;
+  border-radius: 3px;
+  box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.4);
+  padding: 20px 30px;
+  box-sizing: border-box;
+  position: relative;
+}
+/* styling judul form, apakah arti dari tanda '>' ? */
+#input-list form > h2{
+  font-size: 1.3em;
+  text-transform: uppercase;
+  color: #2C3E50;
+  margin-bottom: 10px;
+}
+/* styling form input dan textarea, apakah arti dari tanda ',' ? */
+#input-list form > .todo-form-input, #input-list form > .todo-form-textarea{
+  padding: 15px;
+    border: 1px solid #ccc;
+    border-radius: 3px;
+    margin-bottom: 10px;
+    width: 100%;
+    box-sizing: border-box;
+    color: #2C3E50;
+    font-size: 13px;
+}
+
+/* styling footer */
+footer p{
+  text-align: center;
+  padding-top: 10px;
+}
+
+#my-list{
+  background: linear-gradient(141deg, #0fb8ad 0%, #1fc8db 51%, #2cb5e8 75%);
+}
+#my-list .my-list-title{
+  font-size: 40px;
+  margin-bottom: 1em;
+  color: white;
+  text-shadow: 3px 3px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
+  text-align: center;
+}
+
+.to-do-list{
+  text-align: center;
+  background: #fff;
+  position: relative;
+  z-index: 15;
+  margin-bottom: 60px;
+  -webkit-box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);
+  -moz-box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);
+  -o-box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);
+  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);
+  transition: 0.5s all;
+  -webkit-transition: 0.5s all;
+  -moz-transition: 0.5s all;
+  -o-transition: 0.5s all;
+}
+.to-do-list:after{
+    content:"";
+    display:block;
+    height:25px; /* Which is the padding of div.container */
+    background: #fff;
+}
+.flex{
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+  align-items: flex-start;
+  align-content: flex-start;
+  margin-right: -15px;
+  margin-left: -15px;
+}
+
+/* Small screens */
+@media only screen and (max-width: 768px) {
+    #input-list form{
+    /* On small screens, we are no longer using row direction but column */
+    width: 400px;
+  }
+   .flex{
+    flex-direction: column;
+  }
+
+  .flex-item{
+    width: 100vw;
+  }
+}
+
+@media only screen and (max-width: 480px) {
+  #input-list form {
+    /* On small screens, we are no longer using row direction but column */
+    width: 90vw;
+  }
+
+  .flex{
+    flex-direction: column;
+  }
+
+  .flex-item{
+    width: 100vw;
+  }
+}
+
+.flex-item{
+  padding: 0 15px;
+  flex-grow: 0;
+  flex-shrink: 0;
+  flex-basis: 25%;
+}
+
+.to-do-list .to-do-list-title {
+  font-size: 20px;
+  font-weight: 700;
+  padding: 10px 10px 0;
+}
+.to-do-list .to-do-list-date-added {
+  font-size: 12px;
+  padding: 0 10px;
+}
+.to-do-list .to-do-list-description {
+  padding: 10px 25px;
+  z-index: 15;
+  background: #fff;
+  height: 125px;
+  text-align: justify;
+  overflow: auto;
+}
+.to-do-list .to-do-list-delete {
+  background: #e45;
+  color: #fff;
+  padding: 10px;
+  font-size: 16px;
+  width: 100%;
+  height: 50px;
+  bottom: 1px;
+  position: absolute;
+  cursor: pointer;
+  z-index: -1;
+  -webkit-border-radius: 0 0px 2px 2px;
+  -moz-border-radius: 0 0px 2px 2px;
+  -o-border-radius: 0 0px 2px 2px;
+  border-radius: 0 0px 2px 2px;
+  -webkit-transition: all 0.3s ease;
+  -moz-transition: all 0.3s ease;
+  -o-transition: all 0.3s ease;
+  transition: all 0.3s ease;
+}
+.flex :hover .to-do-list .to-do-list-delete {
+  bottom: -50px;
+}
+
+.flex :hover .to-do-list ,
+.flex :focus .to-do-list {
+  transform: translateY(-5px);
+  box-shadow: 0 10px 80px -15px black;
+}
+
+.to-do-list-delete:hover,
+.to-do-list-delete:focus {
+  animation: pulsate 3s ease-out infinite;
+  
+}
+
+@-webkit-keyframes pulsate {
+    0%   { box-shadow: 0 0 0 #ee4455; }
+    50%  { box-shadow: 0 5px 20px 10px #ee4455; }
+    100% { box-shadow: 0 0 0 #ee4455 }
+}
\ No newline at end of file
diff --git a/praktikum/static/css/lab_5.43657e178476.css.gz b/praktikum/static/css/lab_5.43657e178476.css.gz
new file mode 100644
index 0000000000000000000000000000000000000000..777e5a0fd551614f422f8a750afe9faaf28a2a13
GIT binary patch
literal 1584
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
GzyJXJF7jId

literal 0
HcmV?d00001

diff --git a/praktikum/static/css/lab_5.css b/praktikum/static/css/lab_5.css
index 9602455..07eaaca 100644
--- a/praktikum/static/css/lab_5.css
+++ b/praktikum/static/css/lab_5.css
@@ -1,11 +1,16 @@
 body{
   margin-top: 70px;
+  font-family: 'Josefin Sans';
 }
 
 /* Custom navbar style */
 .navbar-static-top {
   margin-bottom: 19px;
+  position: fixed; /* Set the navbar to fixed position */
+  top: 0; /* Position the navbar at the top of the page */
+  width: 100%; /* Full width */
 }
+
 .navbar-default .navbar-nav>li>a {
     cursor: pointer;
 }
@@ -75,53 +80,13 @@ section{
     color: #2C3E50;
     font-size: 13px;
 }
+
 /* styling footer */
 footer p{
   text-align: center;
   padding-top: 10px;
 }
 
-/* styling responsive max-width menandakan bahwa rule css ini hanya akan bekerja untuk layar dengan maksimal 768px, jika lebih dari 768px maka rule ini diabaikan */
-@media only screen and (max-width: 768px) {
-  #input-list form {
-      width: 290px;
-  }
-}
-
-#input-list{
-  background: linear-gradient(to bottom right, #606062, #393939);
-}
-#input-list form{
-  width: 400px;
-  margin: 50px auto;
-  text-align: center;
-  position: relative;
-  z-index: 1;
-  background: white;
-  border: 0 none;
-  border-radius: 3px;
-  box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.4);
-  padding: 20px 30px;
-  box-sizing: border-box;
-  position: relative;
-}
-#input-list form > h2{
-  font-size: 1.3em;
-  text-transform: uppercase;
-  color: #2C3E50;
-  margin-bottom: 10px;
-}
-#input-list form > .todo-form-input, #input-list form > .todo-form-textarea{
-  padding: 15px;
-    border: 1px solid #ccc;
-    border-radius: 3px;
-    margin-bottom: 10px;
-    width: 100%;
-    box-sizing: border-box;
-    color: #2C3E50;
-    font-size: 13px;
-}
-
 #my-list{
   background: linear-gradient(141deg, #0fb8ad 0%, #1fc8db 51%, #2cb5e8 75%);
 }
@@ -164,6 +129,37 @@ footer p{
   margin-right: -15px;
   margin-left: -15px;
 }
+
+/* Small screens */
+@media only screen and (max-width: 768px) {
+    #input-list form{
+    /* On small screens, we are no longer using row direction but column */
+    width: 400px;
+  }
+   .flex{
+    flex-direction: column;
+  }
+
+  .flex-item{
+    width: 100vw;
+  }
+}
+
+@media only screen and (max-width: 480px) {
+  #input-list form {
+    /* On small screens, we are no longer using row direction but column */
+    width: 90vw;
+  }
+
+  .flex{
+    flex-direction: column;
+  }
+
+  .flex-item{
+    width: 100vw;
+  }
+}
+
 .flex-item{
   padding: 0 15px;
   flex-grow: 0;
@@ -208,6 +204,24 @@ footer p{
   -o-transition: all 0.3s ease;
   transition: all 0.3s ease;
 }
-.to-do-list .to-do-list-delete {
+.flex :hover .to-do-list .to-do-list-delete {
   bottom: -50px;
+}
+
+.flex :hover .to-do-list ,
+.flex :focus .to-do-list {
+  transform: translateY(-5px);
+  box-shadow: 0 10px 80px -15px black;
+}
+
+.to-do-list-delete:hover,
+.to-do-list-delete:focus {
+  animation: pulsate 3s ease-out infinite;
+  
+}
+
+@-webkit-keyframes pulsate {
+    0%   { box-shadow: 0 0 0 #ee4455; }
+    50%  { box-shadow: 0 5px 20px 10px #ee4455; }
+    100% { box-shadow: 0 0 0 #ee4455 }
 }
\ No newline at end of file
diff --git a/praktikum/static/css/lab_5.css.gz b/praktikum/static/css/lab_5.css.gz
index 34638855f8cc3e4b2a468c252478e90f425bcd2b..777e5a0fd551614f422f8a750afe9faaf28a2a13 100644
GIT binary patch
literal 1584
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
GzyJXJF7jId

literal 1400
zcmb2|=3oE;rvGmva{V7$2>k0iQZJz!^|pIf-ld>~;7;qz(*Frdf4@=jOP+OO;@b;i
zN9y-~jGn!PcZ2%ecc+<JQ*7paue4DUKKkzGC#D68MMo=^xXwP5dna%DbaDOZ;?u?N
z?>p4*mwAyvy<c+Tf-mcqefWC&>Cr2JN=rM_cHZQw4V-ylhi>bW>Iq_IB3o2q*DCIL
zJpcEsyTaRL72YoqGHMMoShw=c%ukc^OeaoZ5SLO3ebYJV%<RR7XH9=JEm+TDE0f4s
zQ{g)^JHCZZS*tboknf&yaZ`bFQi~+EEKyi6lW(8d5trk8q8Tr?rDZQuKAm@D*@W(>
z6MK|uTonTkRGhT9Tv9pBR%=Gdw<Qi)C6k2DXWi-WI2-1sV*ANH;`;T}Grx^BA}+^j
zdOBZiIO?wQPh#Gg@Eb{@TDnJPE!&W>y+CyOO<B!peOs4F<#vR47aa@NJTmWJ(mx$O
zrSo08=SnpeOr7#GcH+&s`hB*Y_Y-}EZr|N(6MbQ~VD%*H*|zzUycewujA`jr$@Ny9
z;$&v#7v8gdZeP~2Em!AGtl2wh(PLMx9nDFG>r^x)j{V&%_P|SGiRKi}n7c=Q*dA{G
zS^oKNYUP^ubL70YoHAQ;A(ZR-zI#rK6E5`5UUE5U4+Fz&N5gRaN!KEr``5+HQ#!`I
z>!^iJzwE7$g@23`xx08pn_srcX&Rj?(`wymt|@%mBXo&?^kG@&q)*cyxUVz%WI3<l
z|IE1h!mx>pHe}9_lz&zj&r`igJ5G4gvA+^+9~Wxxx^*m<X^Cof5aYyIj*cqKz7}QA
zmjCwuaQtS#VcQU6>GweevXMLuDOStRD(;FBTE|n&HCJ=O91U^N+a{V}clv+EcUM&M
zo&A+ycw+Zf=G-R&6Eg1nI;nllf2)Q|N}ST}j<4Uef-iitInnMpC%=0_?PNFAtgr*2
z^PV>!ooprX`SzM0R%Wt$#EoXX+iWQNEUnIL5fk_QwiEW-&aXFZFTO1sfAYf*E~Sq)
z8LZ(E1ut%!ZHjYn-g)wb)aGduvz#5uI)3al`f--wVzK*ywU<n%^0Qd2+iiL!rQJQz
z@h8`GsZC)Vr%mtNQxNlg(72ZKP{=W@>BZh=F>$*l#u!WzOk;`uk*6W#@S%!bYx<NT
zmtRbF@89~&ouJQW=>ICQfAPG^Z?-9~j~;)xpJCs9h3}^ozVC0mnm^~|L!P$9H}|d=
zpY(dkg4LcgItyB6wPdo1bygN0=Dee4*S77$ro>nBRmsWc=e$mAmSK8O{Qj=xmF=^8
zYHptMReYrGb~<Uz)e|gt|8Y$bZmP9>X0d0#VNH^vO9bcd1-&K(_S3>sBloReE&iOT
zP?$-??Qr7lTl0F?{yd&LTPNneTW`fL@!dz(zyJA^ciYO^fJZN#9;z;ov#>swFh?q0
zG&x(pS!UUiBU4&`i-oB!Gx+=AV7c$XkZ$*wSyz?ft7q-kJL|KbS#EWGxX$_p%?qNu
z1q_Rh?ClR$7I^Rdk74`V>L~GJ3pOo_&UU%L(UxR7tNov@XV=-rJhtCg`o2&5)?gkI
z_HNOGj^sntE3cH@y_VV1du7GMtsCd=Q(L-Q%dL9L=P$FS*%o~`ktKB~rG~-lbmPVw
zExV@#M|vK+&K%TcZo8#?+mDK6oD09dVPNYMOcRqjamno8uIks(e;Xcr+!y12DrLda
z1KL?FyE6(GY0az*t!@9_etv~R*I~YF-@1oCuPlq~xM3JDhjnJbT>o#ke+fL*K62@(
z^3>GaNAHhM4EH_qdl~;*2i?7KJbVvruYHY;kZXT=>~dfKwuC>A45EKrUSKPy;n9|!
z{rr5(<^NN@ED}|9|6pm+Sop!vux!3v%)X<l_nuWopOBp5Ji}?vEbRq}2P_+R8S6aa
bZMz<Je|Gu&?i1<HpUN|z_6ju>W?%pS*vGj9

diff --git a/praktikum/static/css/lab_6.8eefcf879324.css b/praktikum/static/css/lab_6.8eefcf879324.css
new file mode 100644
index 0000000..9946640
--- /dev/null
+++ b/praktikum/static/css/lab_6.8eefcf879324.css
@@ -0,0 +1,120 @@
+*{
+  padding: 0px;
+  margin: 0px;
+  font-family: 'Fira Code';
+}
+body{
+  height: 100%;
+  background: #95a5a6;
+}
+.chat-box{
+  position: absolute;
+  right: 20px;
+  bottom: 0px;
+  background: white;
+  width: 300px;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head{
+  width: inherit;
+  height: 100%;
+  background: #2c3e50;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head h2{
+  color: white;
+  padding: 8px;
+  display: inline-block;
+}
+.chat-head img{
+  cursor: pointer;
+  float: right;
+  width: 25px;
+  margin: 10px;
+}
+.chat-body{
+  height: 355px;
+  width: inherit;
+  overflow: auto;
+  margin-bottom: 45px;
+}
+.chat-text{
+  position: fixed;
+  bottom: 0px;
+  height: 45px;
+  width: inherit;
+}
+.chat-text textarea{
+  width: inherit;
+  height: inherit;
+  box-sizing: border-box;
+  border: 1px solid #bdc3c7;
+  padding: 10px;
+  resize: none;
+}
+.chat-text textarea:active, .chat-text textarea:focus, .chat-text textarea:hover{
+  border-color: royalblue;
+}
+.msg-send{
+  background: #2ecc71;
+}
+.msg-receive{
+  background: #3498db;
+}
+.msg-send, .msg-receive{
+  width: 200px;
+  height: 35px;
+  padding: 5px 5px 5px 10px;
+  margin: 10px auto;
+  border-radius: 3px;
+  line-height: 30px;
+  position: relative;
+  color: white;
+}
+.msg-receive:before{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent #3498db transparent transparent;
+  left: -29px;
+  top: 7px;
+}
+.msg-send:after{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent transparent transparent #2ecc71;
+  right: -29px;
+  top: 2.5px;
+}
+.msg-receive:hover, .msg-send:hover{
+  opacity: .9;
+}
+.calculator {
+  margin-top: 15%;
+  margin-bottom: 15%
+}
+
+.calculator .model {
+  background: #4e4e4e;
+}
+.calculator .calcs {
+  font-size: 56px;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  height: auto;
+  border-radius: 0;
+  cursor: text;
+}
+
+.calculator #title {
+  color: #f9f9f9;
+}
+
+.calculator .btn {
+  border-radius: 0;
+}
diff --git a/praktikum/static/css/lab_6.8eefcf879324.css.gz b/praktikum/static/css/lab_6.8eefcf879324.css.gz
new file mode 100644
index 0000000000000000000000000000000000000000..54a6ceef83ba7e9f5ed72b4cbf543144fa22d3c3
GIT binary patch
literal 674
zcmb2|=3oE;rvFDnZ)ZI=5UADvBG0mrWm@S6)jX-^g^B;2rybk4LPs((Z!+)i_u8k!
zbmE;B>US3gq@103+S2$}VRfC;iepoZ3eN>Z#QWWKYrQ(N^JBeYD<4;kVcppa-^_z0
z{!S9v_U!Tf=gVU*tv;&RIM;jbLJgkyHL-mse@C7SyTFs%r|I`GJAae1>NQ6_{k`=!
z4bCnp?D*{VDXe*Gm~GUXMJJYC+a$I4(?xr4vxr)wRi}AWA7(7mSmBU(>Xw>wX6?rO
z8~f{QR1>N`8_dvfG_3t)wS9)lgtq$y?Wb;3sZ8>Iy1elDlU$GHP0ODBxaE3uW`n}>
zNqh7kM3lb!7<ILzVQY$0^Q*`wLbG{tBL4;*ecAIZL+nM<1C>%W?WvRG7xb+5Kb*FD
zDZ7jX)AyGm@rPZ{w*+k9z7TpXmgjf7qEA8K_h!)t>pQ-F?=fg@`@8Y0{1208xxLHW
z+WZ%Xx?NOTuA<nknLUv^ypgeqhg0)GVveNRtl9(qTfVKGuq5}I{nXgC`SV_}NorOe
zwRyhwbA;*h1&kNFtF>Yjo(NPP7ZEU6sN=8p`?2)d^aiyxJ0}W<TBz$3w%qN0Qnk2x
zae-^g;-<9NsXXnu>UU%<Is)CeEZ%8VN4?w_c`TBzHN>D~ai&zF!uII+q|ZIm{;7R_
ztvB^b=F=@pytH*@-P)kJW%b9D^U>cWofB=?KNfyin>u&l;l1-^3?=oxDD?iHa%S;Y
zjh(++=BEn3zvOAxr?C2)W1-pcz<-;LwPYI0l)GO~nKAj=1bxw6mC7fqIxbD$x-n(j
z+P7D#!e`FzTb%0rW?}WTcW-vR<b8AWCV#`1QmuONQ#s{4X~)hl4ttR=YyN)s#e%4l
mNsDJbYxuJ}Em&rE`r9vh*O~6hSr{+>&$!t<Xp%Vx0|NjLK2Jsf

literal 0
HcmV?d00001

diff --git a/praktikum/static/css/lab_6.9e8c3419e81e.css b/praktikum/static/css/lab_6.9e8c3419e81e.css
new file mode 100644
index 0000000..727e3f1
--- /dev/null
+++ b/praktikum/static/css/lab_6.9e8c3419e81e.css
@@ -0,0 +1,122 @@
+*{
+  padding: 0px;
+  margin: 0px;
+  font-family: 'Fira Code';
+}
+body{
+  height: 100%;
+  background: #95a5a6;
+}
+.chat-box{
+  position: fixed;
+  right: 20px;
+  bottom: 0px;
+  background: white;
+  width: 300px;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head{
+  width: inherit;
+  height: 100%;
+  background: #2c3e50;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head h2{
+  color: white;
+  padding: 8px;
+  display: inline-block;
+}
+.chat-head img{
+  cursor: pointer;
+  float: right;
+  width: 25px;
+  margin: 10px;
+}
+.chat-body{
+  height: 355px;
+  display: block;
+  padding-left: 5px;
+  width: inherit;
+  overflow: auto;
+  margin-bottom: 45px;
+}
+.chat-text{
+  position: fixed;
+  bottom: 0px;
+  height: 45px;
+  width: inherit;
+}
+.chat-text textarea{
+  width: inherit;
+  height: inherit;
+  box-sizing: border-box;
+  border: 1px solid #bdc3c7;
+  padding: 10px;
+  resize: none;
+}
+.chat-text textarea:active, .chat-text textarea:focus, .chat-text textarea:hover{
+  border-color: royalblue;
+}
+.msg-send{
+  background: #2ecc71;
+}
+.msg-receive{
+  background: red;
+}
+.msg-send, .msg-receive{
+  width: 200px;
+  height: 35px;
+  padding: 5px 5px 5px 10px;
+  margin: 10px auto;
+  border-radius: 3px;
+  line-height: 30px;
+  position: relative;
+  color: white;
+}
+.msg-receive:before{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent #3498db transparent transparent;
+  left: -29px;
+  top: 7px;
+}
+.msg-send:after{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent transparent transparent #2ecc71;
+  right: -29px;
+  top: 2.5px;
+}
+.msg-receive:hover, .msg-send:hover{
+  opacity: .9;
+}
+.calculator {
+  margin-top: 15%;
+  margin-bottom: 15%
+}
+
+.calculator .model {
+  background: #4e4e4e;
+}
+.calculator .calcs {
+  font-size: 56px;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  height: auto;
+  border-radius: 0;
+  cursor: text;
+}
+
+.calculator #title {
+  color: #f9f9f9;
+}
+
+.calculator .btn {
+  border-radius: 0;
+}
diff --git a/praktikum/static/css/lab_6.9e8c3419e81e.css.gz b/praktikum/static/css/lab_6.9e8c3419e81e.css.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ffb4f6c0230030b84a5e2f259764c1f4e22c0531
GIT binary patch
literal 686
zcmb2|=3oE;rvFDnbGsKC2>jc(;lE<Qv_pkr(XY$0?d9(L?>HH8_?S!5o!s?z>i0|Z
z9y1sFc3N>-$(b`Y#^;Ss_8<Q&?4-JEN@sS{p-*L*Jgi~iYHj~#iddZ}IQYZX@%DY6
z#4p}KH)i$M&z~RU`QFTr@6D{&EN>5gIQnbpj6LyF*Rc9tcqa2$V*fTh>q*J7OFmtD
zHeK|x&#V^7-Hcn;t>P^$5C~eiRfo-^?#1~znH#S8yOqvcpdoWdgjH0-Co)!5Lofdu
z@9pdClbM(C>$3@4YAn-_7cWx~Jo3=|(!xIp#zH5Temebvv-0(+1#7e{_nEJ-5EfVx
zGwFMzMOe)3imj_=H7reWYR=MpA~c&TC;D%g>?6+Szd0{R?hcgk545zf{nX&REcfs9
zsnbsJ2e4gEZz@>3v|XXVNB*&)0I&I8t?4UmWNtjxY6*<F@+X1yhc@dEGv)gWlInE=
zWj`K!^74SmWr29la~ijnOmTT)vaJ0511*C_1xF{Yh@;aI7Tsk3<Klha$n#a!&)|Ds
zemy+7`SR>Z<!6H9cK5iJ@@fgZ73mS>Ynk)yo*63(&y<^fsV_e?OL_#eFW*z(753!B
zE9oa}D=NP~Yzkuk>f@&W%ItRGOW_>?%`GAYcS^o)GU%9`HCe=H<pSwQ<H$oTck*g0
zeYIyjKfLmy^WC$R`jc<Gd}6fRQ(I@%B?C>9TQ0{xOZ&Q;<=+j<ao4w)v-?ieG)}9p
zo1b)e7A&)l{Ifji+O_68zp@j8&L)cYzba&jTw30>*_7|nbX7H<*_*S<%b43NSMvT0
zTG(Fx=LXB~AE_@rjM83Pf4e98Oz%mCotb;ayh^Lx>!R4Jw{ANuzrXM4`vpF0m}hX>
zXD_}G=ld=wqp$U}lc@Ar6ZR+Z9<$%vvGLwrzEbSP#z|-1{9`|UVt;BR2Ll5DL55AU

literal 0
HcmV?d00001

diff --git a/praktikum/static/css/lab_6.css b/praktikum/static/css/lab_6.css
new file mode 100644
index 0000000..727e3f1
--- /dev/null
+++ b/praktikum/static/css/lab_6.css
@@ -0,0 +1,122 @@
+*{
+  padding: 0px;
+  margin: 0px;
+  font-family: 'Fira Code';
+}
+body{
+  height: 100%;
+  background: #95a5a6;
+}
+.chat-box{
+  position: fixed;
+  right: 20px;
+  bottom: 0px;
+  background: white;
+  width: 300px;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head{
+  width: inherit;
+  height: 100%;
+  background: #2c3e50;
+  border-radius: 5px 5px 0px 0px;
+}
+.chat-head h2{
+  color: white;
+  padding: 8px;
+  display: inline-block;
+}
+.chat-head img{
+  cursor: pointer;
+  float: right;
+  width: 25px;
+  margin: 10px;
+}
+.chat-body{
+  height: 355px;
+  display: block;
+  padding-left: 5px;
+  width: inherit;
+  overflow: auto;
+  margin-bottom: 45px;
+}
+.chat-text{
+  position: fixed;
+  bottom: 0px;
+  height: 45px;
+  width: inherit;
+}
+.chat-text textarea{
+  width: inherit;
+  height: inherit;
+  box-sizing: border-box;
+  border: 1px solid #bdc3c7;
+  padding: 10px;
+  resize: none;
+}
+.chat-text textarea:active, .chat-text textarea:focus, .chat-text textarea:hover{
+  border-color: royalblue;
+}
+.msg-send{
+  background: #2ecc71;
+}
+.msg-receive{
+  background: red;
+}
+.msg-send, .msg-receive{
+  width: 200px;
+  height: 35px;
+  padding: 5px 5px 5px 10px;
+  margin: 10px auto;
+  border-radius: 3px;
+  line-height: 30px;
+  position: relative;
+  color: white;
+}
+.msg-receive:before{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent #3498db transparent transparent;
+  left: -29px;
+  top: 7px;
+}
+.msg-send:after{
+  content: '';
+  width: 0px;
+  height: 0px;
+  position: absolute;
+  border: 15px solid;
+  border-color: transparent transparent transparent #2ecc71;
+  right: -29px;
+  top: 2.5px;
+}
+.msg-receive:hover, .msg-send:hover{
+  opacity: .9;
+}
+.calculator {
+  margin-top: 15%;
+  margin-bottom: 15%
+}
+
+.calculator .model {
+  background: #4e4e4e;
+}
+.calculator .calcs {
+  font-size: 56px;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  height: auto;
+  border-radius: 0;
+  cursor: text;
+}
+
+.calculator #title {
+  color: #f9f9f9;
+}
+
+.calculator .btn {
+  border-radius: 0;
+}
diff --git a/praktikum/static/css/lab_6.css.gz b/praktikum/static/css/lab_6.css.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ffb4f6c0230030b84a5e2f259764c1f4e22c0531
GIT binary patch
literal 686
zcmb2|=3oE;rvFDnbGsKC2>jc(;lE<Qv_pkr(XY$0?d9(L?>HH8_?S!5o!s?z>i0|Z
z9y1sFc3N>-$(b`Y#^;Ss_8<Q&?4-JEN@sS{p-*L*Jgi~iYHj~#iddZ}IQYZX@%DY6
z#4p}KH)i$M&z~RU`QFTr@6D{&EN>5gIQnbpj6LyF*Rc9tcqa2$V*fTh>q*J7OFmtD
zHeK|x&#V^7-Hcn;t>P^$5C~eiRfo-^?#1~znH#S8yOqvcpdoWdgjH0-Co)!5Lofdu
z@9pdClbM(C>$3@4YAn-_7cWx~Jo3=|(!xIp#zH5Temebvv-0(+1#7e{_nEJ-5EfVx
zGwFMzMOe)3imj_=H7reWYR=MpA~c&TC;D%g>?6+Szd0{R?hcgk545zf{nX&REcfs9
zsnbsJ2e4gEZz@>3v|XXVNB*&)0I&I8t?4UmWNtjxY6*<F@+X1yhc@dEGv)gWlInE=
zWj`K!^74SmWr29la~ijnOmTT)vaJ0511*C_1xF{Yh@;aI7Tsk3<Klha$n#a!&)|Ds
zemy+7`SR>Z<!6H9cK5iJ@@fgZ73mS>Ynk)yo*63(&y<^fsV_e?OL_#eFW*z(753!B
zE9oa}D=NP~Yzkuk>f@&W%ItRGOW_>?%`GAYcS^o)GU%9`HCe=H<pSwQ<H$oTck*g0
zeYIyjKfLmy^WC$R`jc<Gd}6fRQ(I@%B?C>9TQ0{xOZ&Q;<=+j<ao4w)v-?ieG)}9p
zo1b)e7A&)l{Ifji+O_68zp@j8&L)cYzba&jTw30>*_7|nbX7H<*_*S<%b43NSMvT0
zTG(Fx=LXB~AE_@rjM83Pf4e98Oz%mCotb;ayh^Lx>!R4Jw{ANuzrXM4`vpF0m}hX>
zXD_}G=ld=wqp$U}lc@Ar6ZR+Z9<$%vvGLwrzEbSP#z|-1{9`|UVt;BR2Ll5DL55AU

literal 0
HcmV?d00001

diff --git a/praktikum/static/js/lab_6.929076990bcb.js b/praktikum/static/js/lab_6.929076990bcb.js
new file mode 100644
index 0000000..e2e5543
--- /dev/null
+++ b/praktikum/static/js/lab_6.929076990bcb.js
@@ -0,0 +1,19 @@
+// Calculator
+var print = document.getElementById('print');
+var erase = false;
+
+function go(x) {
+  if (x == 'ac') {
+    print.value = null;
+  } else if (x == 'eval') {
+      print.value = Math.round(eval(print.value) * 10000) / 10000;
+      erase = true;
+  } else {
+    print.value += x;
+  }
+};
+
+function eval(fn) {
+  return new Function('return ' + fn)();
+}
+// END
diff --git a/praktikum/static/js/lab_6.929076990bcb.js.gz b/praktikum/static/js/lab_6.929076990bcb.js.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ccc44397f9cf75b09cfc6e51defee39407c69c8a
GIT binary patch
literal 234
zcmb2|=3oE;rvJGU4*DH75O8@v?GJzPX6L06=K}Q{CRR1nZ<yrU`DES1?Cp*#{`cKo
zqNGq0b#~v(yITz_Hm&nM=O(|z;$}m?L6J-Mz4Dh1GOulqu3a2tSNE=J?Yf3lvm}=%
z^iTPCaF=qbZ<k`Bxcm7V)wZEOCNW8{zu?T}PPN{eF~j|;`s*Oi2Tx*xrNjfyMOA7j
z+ppWdFI@Wm>j%Q$cQsU9U0cxJ{`-&CjGY;IlH2ztdu*Ba>wMO1vCBOkg+FT_l|DFd
qI<GN_i)Wc}oS4&U*N__u&Aa|YpEG2;y**uXALGy3nO=>I3=9A~Kyfnw

literal 0
HcmV?d00001

diff --git a/praktikum/static/js/lab_6.9a75b205ae42.js b/praktikum/static/js/lab_6.9a75b205ae42.js
new file mode 100644
index 0000000..9b2fe9a
--- /dev/null
+++ b/praktikum/static/js/lab_6.9a75b205ae42.js
@@ -0,0 +1,19 @@
+// Calculator
+var print = document.getElementById('print');
+var erase = false;
+
+var go = function(x) {
+  if (x === 'ac') {
+    /* implemetnasi clear all */
+  } else if (x === 'eval') {
+      print.value = Math.round(evil(print.value) * 10000) / 10000;
+      erase = true;
+  } else {
+    print.value += x;
+  }
+};
+
+function evil(fn) {
+  return new Function('return ' + fn)();
+}
+// END
diff --git a/praktikum/static/js/lab_6.9a75b205ae42.js.gz b/praktikum/static/js/lab_6.9a75b205ae42.js.gz
new file mode 100644
index 0000000000000000000000000000000000000000..d88e652ccf0b63d078bd20720b35530886bcf700
GIT binary patch
literal 249
zcmb2|=3oE;rvJVHr}J7AMDEW1!Jp1<)ww16@UqL9mt24IyQ~iuVpHe1wrpm-e#f#+
zyDaBa%Y}2ynfkIRu&yN4P`iEi<!jE1<aZY+zn-oAvwNY*zCU}u&sob7wsoeTpRdTv
zW+P!&oyFG;9S@ep^-t3mtvk(hf%ylMrs|AWH`tgKwe7n*xpjNir58M|oT)rn6D9Zq
zuGr;WUUTNZUC}eOCPmku0smGPCU3A^9w}Y-V{O3WpPKu)l=$DS+bI4~FQ9tEU7tQN
z^-k5`Q;#;5-CLbxD)VOA*@^t;4qY<8_bqt?Z;FMYP^DGM6+x!y=dW-2!Q3O4D>I3a
GfdK%fadJKY

literal 0
HcmV?d00001

diff --git a/praktikum/static/js/lab_6.js b/praktikum/static/js/lab_6.js
new file mode 100644
index 0000000..e2e5543
--- /dev/null
+++ b/praktikum/static/js/lab_6.js
@@ -0,0 +1,19 @@
+// Calculator
+var print = document.getElementById('print');
+var erase = false;
+
+function go(x) {
+  if (x == 'ac') {
+    print.value = null;
+  } else if (x == 'eval') {
+      print.value = Math.round(eval(print.value) * 10000) / 10000;
+      erase = true;
+  } else {
+    print.value += x;
+  }
+};
+
+function eval(fn) {
+  return new Function('return ' + fn)();
+}
+// END
diff --git a/praktikum/static/js/lab_6.js.gz b/praktikum/static/js/lab_6.js.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ccc44397f9cf75b09cfc6e51defee39407c69c8a
GIT binary patch
literal 234
zcmb2|=3oE;rvJGU4*DH75O8@v?GJzPX6L06=K}Q{CRR1nZ<yrU`DES1?Cp*#{`cKo
zqNGq0b#~v(yITz_Hm&nM=O(|z;$}m?L6J-Mz4Dh1GOulqu3a2tSNE=J?Yf3lvm}=%
z^iTPCaF=qbZ<k`Bxcm7V)wZEOCNW8{zu?T}PPN{eF~j|;`s*Oi2Tx*xrNjfyMOA7j
z+ppWdFI@Wm>j%Q$cQsU9U0cxJ{`-&CjGY;IlH2ztdu*Ba>wMO1vCBOkg+FT_l|DFd
qI<GN_i)Wc}oS4&U*N__u&Aa|YpEG2;y**uXALGy3nO=>I3=9A~Kyfnw

literal 0
HcmV?d00001

diff --git a/praktikum/static/staticfiles.json b/praktikum/static/staticfiles.json
index aecfd82..3c4edc3 100644
--- a/praktikum/static/staticfiles.json
+++ b/praktikum/static/staticfiles.json
@@ -1 +1 @@
-{"paths": {"admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.aacc43d6f308.js", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.33cabfa15c10.js", "admin/js/vendor/jquery/LICENSE-JQUERY.txt": "admin/js/vendor/jquery/LICENSE-JQUERY.a158210a2737.txt", "admin/js/vendor/xregexp/LICENSE-XREGEXP.txt": "admin/js/vendor/xregexp/LICENSE-XREGEXP.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.1865b1cf5085.js", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.c95393b8ca4d.js", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.1536fb6bea1d.js", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.d2bdb1018963.js", "admin/css/base.css": "admin/css/base.6b517d0d5813.css", "admin/css/changelists.css": "admin/css/changelists.f6dc691f8d62.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/fonts.css": "admin/css/fonts.494e4ec545c9.css", "admin/css/forms.css": "admin/css/forms.2003a066ae02.css", "admin/css/login.css": "admin/css/login.a846c0e2ef65.css", "admin/css/rtl.css": "admin/css/rtl.4c867197b256.css", "admin/css/widgets.css": "admin/css/widgets.5e372b41c483.css", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/fonts/README.txt": "admin/fonts/README.2c3d0bcdede2.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.2ad99072841e.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.b446c2399bb6.woff", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.ec39515ae8c6.woff", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/README.txt": "admin/img/README.837277fa1908.txt", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/js/actions.js": "admin/js/actions.32861b6cbdf9.js", "admin/js/actions.min.js": "admin/js/actions.min.f51f04edab28.js", "admin/js/calendar.js": "admin/js/calendar.9ac94d055fbd.js", "admin/js/cancel.js": "admin/js/cancel.1d69cba4b4bf.js", "admin/js/change_form.js": "admin/js/change_form.9e85003a1a38.js", "admin/js/collapse.js": "admin/js/collapse.17d715df2104.js", "admin/js/collapse.min.js": "admin/js/collapse.min.dc930adb2821.js", "admin/js/core.js": "admin/js/core.fd861d43f0f5.js", "admin/js/inlines.js": "admin/js/inlines.eda404ee376d.js", "admin/js/inlines.min.js": "admin/js/inlines.min.d75b9ed03975.js", "admin/js/jquery.init.js": "admin/js/jquery.init.95b62fa19378.js", "admin/js/popup_response.js": "admin/js/popup_response.6ce3197f8fc8.js", "admin/js/prepopulate.js": "admin/js/prepopulate.ff9208865444.js", "admin/js/prepopulate.min.js": "admin/js/prepopulate.min.f4057ebb9b62.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.0d3b53c37074.js", "admin/js/SelectBox.js": "admin/js/SelectBox.b49f008d186b.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.17009b6d4428.js", "admin/js/timeparse.js": "admin/js/timeparse.51258861a46a.js", "admin/js/urlify.js": "admin/js/urlify.411bc3bb651c.js", "css/lab_4.css": "css/lab_4.e24af6b3940a.css", "css/lab_5.css": "css/lab_5.74048ec1cb2c.css"}, "version": "1.0"}
\ No newline at end of file
+{"paths": {"admin/js/vendor/jquery/jquery.js": "admin\\js\\vendor\\jquery\\jquery.aacc43d6f308.js", "admin/js/vendor/jquery/jquery.min.js": "admin\\js\\vendor\\jquery\\jquery.min.33cabfa15c10.js", "admin/js/vendor/jquery/LICENSE-JQUERY.txt": "admin\\js\\vendor\\jquery\\LICENSE-JQUERY.a158210a2737.txt", "admin/js/vendor/xregexp/LICENSE-XREGEXP.txt": "admin\\js\\vendor\\xregexp\\LICENSE-XREGEXP.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.js": "admin\\js\\vendor\\xregexp\\xregexp.1865b1cf5085.js", "admin/js/vendor/xregexp/xregexp.min.js": "admin\\js\\vendor\\xregexp\\xregexp.min.c95393b8ca4d.js", "admin/img/gis/move_vertex_off.svg": "admin\\img\\gis\\move_vertex_off.7a23bf31ef8a.svg", "admin/img/gis/move_vertex_on.svg": "admin\\img\\gis\\move_vertex_on.0047eba25b67.svg", "admin/js/admin/DateTimeShortcuts.js": "admin\\js\\admin\\DateTimeShortcuts.1536fb6bea1d.js", "admin/js/admin/RelatedObjectLookups.js": "admin\\js\\admin\\RelatedObjectLookups.d2bdb1018963.js", "admin/css/base.css": "admin/css/base.6b517d0d5813.css", "admin/css/changelists.css": "admin/css/changelists.f6dc691f8d62.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/fonts.css": "admin/css/fonts.494e4ec545c9.css", "admin/css/forms.css": "admin/css/forms.2003a066ae02.css", "admin/css/login.css": "admin/css/login.a846c0e2ef65.css", "admin/css/rtl.css": "admin/css/rtl.4c867197b256.css", "admin/css/widgets.css": "admin/css/widgets.5e372b41c483.css", "admin/fonts/LICENSE.txt": "admin\\fonts\\LICENSE.d273d63619c9.txt", "admin/fonts/README.txt": "admin\\fonts\\README.2c3d0bcdede2.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin\\fonts\\Roboto-Bold-webfont.2ad99072841e.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin\\fonts\\Roboto-Light-webfont.b446c2399bb6.woff", "admin/fonts/Roboto-Regular-webfont.woff": "admin\\fonts\\Roboto-Regular-webfont.ec39515ae8c6.woff", "admin/img/calendar-icons.svg": "admin\\img\\calendar-icons.39b290681a8b.svg", "admin/img/icon-addlink.svg": "admin\\img\\icon-addlink.d519b3bab011.svg", "admin/img/icon-alert.svg": "admin\\img\\icon-alert.034cc7d8a67f.svg", "admin/img/icon-calendar.svg": "admin\\img\\icon-calendar.ac7aea671bea.svg", "admin/img/icon-changelink.svg": "admin\\img\\icon-changelink.18d2fd706348.svg", "admin/img/icon-clock.svg": "admin\\img\\icon-clock.e1d4dfac3f2b.svg", "admin/img/icon-deletelink.svg": "admin\\img\\icon-deletelink.564ef9dc3854.svg", "admin/img/icon-no.svg": "admin\\img\\icon-no.439e821418cd.svg", "admin/img/icon-unknown-alt.svg": "admin\\img\\icon-unknown-alt.81536e128bb6.svg", "admin/img/icon-unknown.svg": "admin\\img\\icon-unknown.a18cb4398978.svg", "admin/img/icon-yes.svg": "admin\\img\\icon-yes.d2f9f035226a.svg", "admin/img/inline-delete.svg": "admin\\img\\inline-delete.fec1b761f254.svg", "admin/img/LICENSE": "admin\\img\\LICENSE.2c54f4e1ca1c", "admin/img/README.txt": "admin\\img\\README.837277fa1908.txt", "admin/img/search.svg": "admin\\img\\search.7cf54ff789c6.svg", "admin/img/selector-icons.svg": "admin\\img\\selector-icons.b4555096cea2.svg", "admin/img/sorting-icons.svg": "admin\\img\\sorting-icons.3a097b59f104.svg", "admin/img/tooltag-add.svg": "admin\\img\\tooltag-add.e59d620a9742.svg", "admin/img/tooltag-arrowright.svg": "admin\\img\\tooltag-arrowright.bbfb788a849e.svg", "admin/js/actions.js": "admin\\js\\actions.32861b6cbdf9.js", "admin/js/actions.min.js": "admin\\js\\actions.min.f51f04edab28.js", "admin/js/calendar.js": "admin\\js\\calendar.9ac94d055fbd.js", "admin/js/cancel.js": "admin\\js\\cancel.1d69cba4b4bf.js", "admin/js/change_form.js": "admin\\js\\change_form.9e85003a1a38.js", "admin/js/collapse.js": "admin\\js\\collapse.17d715df2104.js", "admin/js/collapse.min.js": "admin\\js\\collapse.min.dc930adb2821.js", "admin/js/core.js": "admin\\js\\core.fd861d43f0f5.js", "admin/js/inlines.js": "admin\\js\\inlines.eda404ee376d.js", "admin/js/inlines.min.js": "admin\\js\\inlines.min.d75b9ed03975.js", "admin/js/jquery.init.js": "admin\\js\\jquery.init.95b62fa19378.js", "admin/js/popup_response.js": "admin\\js\\popup_response.6ce3197f8fc8.js", "admin/js/prepopulate.js": "admin\\js\\prepopulate.ff9208865444.js", "admin/js/prepopulate.min.js": "admin\\js\\prepopulate.min.f4057ebb9b62.js", "admin/js/prepopulate_init.js": "admin\\js\\prepopulate_init.0d3b53c37074.js", "admin/js/SelectBox.js": "admin\\js\\SelectBox.b49f008d186b.js", "admin/js/SelectFilter2.js": "admin\\js\\SelectFilter2.17009b6d4428.js", "admin/js/timeparse.js": "admin\\js\\timeparse.51258861a46a.js", "admin/js/urlify.js": "admin\\js\\urlify.411bc3bb651c.js", "css/lab_4.css": "css/lab_4.e24af6b3940a.css", "css/lab_5.css": "css/lab_5.43657e178476.css", "css/lab_6.css": "css/lab_6.9e8c3419e81e.css", "js/lab_6.js": "js\\lab_6.929076990bcb.js"}, "version": "1.0"}
\ No newline at end of file
-- 
GitLab