Advertisement
Mochinov

Untitled

Feb 26th, 2021
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 20.41 KB | None | 0 0
  1. {% extends 'base_template.html' %}
  2. {% load static %}
  3. {% block title %} Регистрация пользователя {% endblock %}
  4. {%load chek_writer_extras %}
  5. {% block content %}
  6. <div id="modal_edit" class="modal">
  7.  
  8.     <form class="modal-content animate" method="POST" id="change_data_form">
  9.         {% csrf_token %}
  10.         <div class="container">
  11.             <label for="psw"><b>Причина отмены вызова:</b></label>
  12.             <textarea cols="30" rows="10" name="reason_for_renouncement" class="input_add_note"></textarea>
  13.             <button class="fluid ui button"
  14.                onclick="document.getElementById('modal_edit').style.display='block'">Отменить вызов</button>
  15.         </div>
  16.  
  17.         <div class="container" style="background-color:#f1f1f1">
  18.             <button type="button" onclick="document.getElementById('modal_edit').style.display='none'"
  19.                class="fluid ui button">Отмена</button>
  20.         </div>
  21.     </form>
  22. </div>
  23.  
  24.  
  25.  
  26. <div id="maincontent" class="ui main container-fluid">
  27.     <div class="ui stackable grid">
  28.         <div class="ui main container">
  29.             <div class="twenty wide column">
  30.                 <div class="ui grid">
  31.  
  32.                     <div class="left floated six wide column" style="text-align: left;">
  33.                         <!-- <div class="ui grid"> -->
  34.                             <div class="nine wide column">
  35.                             <h3>Список пациентов</h3>
  36.                                 <form method="GET" action="{% url 'DateSearchFilter' %}">
  37.                                      <label for="">Дата: </label><br>
  38.                                     <label for=""> <b>C</b></label>
  39.                                     <input type="date" name="date_to" id="search" value="{{date_to}}">
  40.                                     <label for=""> <b>По</b> </label>
  41.                                     <input type="date" name="date" id="search" value="{{date_now}}"><br><br>
  42.                                     <label for="">Время:</label><br>
  43.                                     <label for=""> <b>C</b></label>
  44.                                     <input type="time" name='time_from'>
  45.                                     <label for=""> <b>По</b> </label>
  46.                                     <input type="time" name='time_to'><br><br>
  47.                                     <label for="">Мед. учреждение</label><br>
  48.                                     <select name="select_polyclinic" id='select_id_p' style="width: 330px;">
  49.                                         <option value="">-----</option>
  50.                                         {% for i in option_data %}
  51.                                         <option value="{{i.id}}">{{i}}</option>
  52.                                         {% endfor %}
  53.                                     </select><br><br>
  54.                                     <div id="selection">
  55.                                         <label for="">Лечащий врач</label><br>
  56.                                         <select name="select_a_doctor" id='select_a_doctor'>
  57.                                             <option value="">-----</option>
  58.                                         </select><br><br>
  59.                                     </div>
  60.  
  61.                                     <button type="submit">
  62.                                         Найти запись
  63.                                     </button>
  64.                                     <br><br>
  65.                                     <p>Примените фильтр чтобы скачать данные в exel</p>
  66.                                     <div class=" six wide column" style="text-align: left;">
  67.                                         <div class="main-title">
  68.                                            
  69.                                             <form action="{% url 'set_auto_update' %}" method="POST">
  70.                                                 {% csrf_token %}
  71.                                                 <label onclick="document.getElementById('update').click();">
  72.                                                     <input type="checkbox" id="auto_update" name="chek_update"
  73.                                                         {% if autoupdate %}checked{%  endif%} /> Авто
  74.                                                     обновление списка
  75.                                                 </label>
  76.                                                 <button type="submit" id="update" style="display: none;">UPDATE</button>
  77.                                             </form><br>
  78.                                         </div>
  79.                                     </div>
  80.                                 </form>
  81.                             </div>
  82.                         <!-- </div> -->
  83.                     </div>
  84.                     <div class="right floated ten wide column">
  85.                         <form method="GET" action="" id="search_box">
  86.                             <input type="search" name="search_street" id="search_street" required placeholder="Улица">
  87.                             <input type="search" name="search_house" id="search_house" placeholder="Дом">
  88.                             <select name="search_branch" id="search_branch" required>
  89.                                 {% for i in branch %}
  90.                                 <option value="{{i.0}}" {% if i.0 == branch_name %} selected="select" {% endif %}>{{i.0}}
  91.                                 </option>
  92.                                 {% endfor %}
  93.                             </select>
  94.                             <button onclick="Search_address();" type="button">
  95.                                 Найти
  96.                             </button>
  97.                         </form>
  98.                     </div>
  99.                     <style>
  100.                         th,
  101.                         td {
  102.                             padding: 0px;
  103.                         }
  104.                     </style>
  105.                 </div>
  106.             </div>
  107.         </div>
  108.     </div>
  109.     <div class="ui container-fluid" style="padding: 35px;">
  110.         <table class="ui  very compact unstackable selectable olive table" id="myTable_two">
  111.             <thead style="font-size: 11px;">
  112.                 <tr>
  113.                     <th></th>
  114.                     <th width="120">Ф.И.О.</th>
  115.                     <th width="90">Дата рождения</th>
  116.                     <th>id addres</th>
  117.                     <th width="90">Aдрес проживания</th>
  118.                     <th width="90">Контактный номер телефона</th>
  119.                     <th onclick="sortTable(0)">Поликлиника</th>
  120.                     <th id='dateCol' style='cursor:pointer;'>Время записи</th>
  121.                     <th>Жалобы</th>
  122.                     <th style="width: 100px;">Тип вызова</th>
  123.                     <th>Доктор</th>
  124.                     <th>Оператор</th>
  125.                     <th style="text-align: center;" width="40">Вызов передан</th>
  126.                     <th width="40">Вызов отработан</th>
  127.                     <th></th>
  128.                 </tr>
  129.             </thead>
  130.  
  131.             <tbody style="font-size: 11px;    ">
  132.                 {% if persons %}
  133.                 {% for count, person in persons %}
  134.                 <tr
  135.                    style="padding: 0px; {% if person.address_fk %}{% else %}background: rgb(255 2 2 / 8%)!important;{% endif %}">
  136.                     <td>{{count}}</td>
  137.                     <td>{{person.fio}}</td>
  138.                     <td>{{person.date_of_birth}}</td>
  139.                     <td>{{person.address_fk}}</td>
  140.                     <td>
  141.                         {{person.address}} кв.{{person.flat}}, <br>этаж: {{person.floor}}, п.
  142.                         {{person.entrance}}<br>код домофона:{{person.intercom_code}}
  143.                     </td>
  144.                     <td>{{person.phone}}</td>
  145.                     <td>{{person.polyclinic}}</td>
  146.                     <td>{{person.recording_time|date:"Y-m-d G:i"}}</td>
  147.                     <td>{{person.reason_for_calling}}</td>
  148.                     <td>
  149.                         {% if person.call_cancellation %}
  150.                         <a href="">
  151.                             <label for="renouncement_{{person.id}}"
  152.                                onclick="cancell_call('renouncement_{{person.id}}','{{person.id}}');">
  153.                                 Отказ</label>
  154.                         </a>
  155.                         {% else %}
  156.                         <input type="radio" class="radio_button" disabled name="c" id="c0" checked="checked" />
  157.                         <label for="c0" {% if person.type_call %}style="background: #2ecc71;" {% else %}
  158.                            style="background: #ea0626b5" {% endif %}></label><br>
  159.                         {% for i in type_call %}
  160.                         <label>
  161.                             <input {% if person.type_call.id == i.id %} checked {% endif %}
  162.                                id="person_{{person.id}}_{{i.id}}" name="type_call" type="checkbox"
  163.                                name="group{{person.id}}[]" value="{{i.id}}"
  164.                                onclick="cheked_box(' person_{{person.id}}_{{i.id}}','{{person.id}}')">
  165.                             {{i}}
  166.                         </label> <br>
  167.  
  168.                         {% endfor %}
  169.                         <input type="checkbox" name="group{{person.id}}[]" id="renouncement_{{person.id}}"
  170.                            onclick="cancell_call('renouncement_{{person.id}}','{{person.id}}');">
  171.                         <label for="renouncement_{{person.id}}"
  172.                            onclick="cancell_call('renouncement_{{person.id}}','{{person.id}}');">
  173.                             Отказ</label>
  174.                         {% endif %}
  175.  
  176.                     </td>
  177.                     <td>{% if person.doctor %}{{person.doctor.fio}}{% endif %}</td>
  178.                     <td>{% if person.operator %}{{person.operator}}{% else %} ----- {% endif %}</td>
  179.                     <td style="text-align: center;">
  180.                         {% if person.сall_transferred %}
  181.                         <a href="{% url 'cheked_write' person.id %}"><img src="{% static 'img/check.svg' %}" alt=""
  182.                                style="width: 35% !important"></a>
  183.                         {% else %}
  184.                         <a href="{% url 'cheked_write' person.id %}"><img src="{% static 'img/ban.svg' %}" alt=""
  185.                                style="width: 35% !important"></a>
  186.                         {% endif %}
  187.                     </td>
  188.                     <td style="text-align: center;">
  189.                         {% if person.close_call %}
  190.                         <img src="{% static 'img/check.svg' %}" alt="" style="width: 33% !important">
  191.                         {% else %}
  192.                         <img src="{% static 'img/ban.svg' %}" alt="" style="width: 33% !important">
  193.                         {% endif %}
  194.                     </td>
  195.                     <td><a href="{% url 'Patient_registration_update' person.pk %}"><img
  196.                                src="{% static 'img/set.png' %}" alt="" style="width: 18px;"></a></td>
  197.                     <!-- <td><a href="{% url 'Patient_registration_delete' person.pk %}" >Удалить</a></td> -->
  198.                 </tr>
  199.                 {% endfor %}
  200.  
  201.                 {% else %}
  202.                 <tr>
  203.                     <td colspan="12" style="text-align: center;"> Нет данных !</td>
  204.                 </tr>
  205.                 {% endif %}
  206.  
  207.             </tbody>
  208.         </table>
  209.         {% if persons %}
  210.         <button><a href="{% url 'download_all' %}">Скачать весь список</a></button>
  211.         <!-- {% include "registration/paginator.html"%} -->
  212.         {% endif %}
  213.     </div>
  214.  
  215. </div>
  216.  
  217. <div id="address_modal" class="modal" style="padding-top: 0 !important; overflow: hidden;">
  218.     <div class="table" style="background-color:rgb(255, 255, 255); display: flex; flex-direction: column; justify-content: center; align-items: center; margin: 4% auto 1% auto;width:80%">
  219.         <div class="container" style="overflow-y: scroll;height: 450px;width: 100%;">
  220.             <table class="ui small very compact unstackable selectable orange table" id="addr_table">
  221.                 <thead>
  222.                     <tr>
  223.                         <th onclick="sortTable(4)">Мед. Учреждание</th>
  224.                         <th onclick="sortTable(4)">Дом</th>
  225.                         <th onclick="sortTable(4)">Улица</th>
  226.                         <th>Подразделение</th>
  227.                         <th onclick="sortTable(4)">Участок</th>
  228.                         <th onclick="sortTable(2)">Email</th>
  229.                         <th onclick="sortTable(1)">Контактные Данные</th>
  230.                         <th>Записать пациента</th>
  231.                     </tr>
  232.                 </thead>
  233.                 <tbody id="address" style="overflow-y: scroll;height: 400px;">
  234.                 </tbody>
  235.             </table>
  236.             <div id="text_not_found" style="text-align: center;"></div>
  237.         </div>
  238.         <button type="button" onclick=" CloseTable()"
  239.                class=" fluid ui button" style="width: 50%; margin: 2%;">Закрыть
  240.         </button>
  241.     </div>
  242. </div>
  243.  
  244.  
  245. <script src="{% static 'js/sort_table.js' %}"></script>
  246. <script src="{% static 'js/date_sort.js' %}"></script>
  247. <script src="{% static 'js/filter.js' %}"></script>
  248. <script>
  249.     function CloseTable(){
  250.         document.getElementById('address_modal').style.display='none'
  251.         $('#address tr').remove()
  252.     }
  253.     function addRow(list){
  254.         var tbody = document.getElementById('addr_table').getElementsByTagName("TBODY")[0];
  255.         var row = document.createElement("TR")
  256.         els_list = [list.polyclinic, list.building, list.street, list.branch ,list.zone, list.email, list.contact, list.recording]
  257.         for (let i = 0; i < els_list.length; i++) {
  258.            var td = document.createElement("TD")
  259.            if(i === els_list.length-1){
  260.                td.innerHTML = els_list[i]
  261.            }
  262.            else{
  263.                td.appendChild(document.createTextNode(els_list[i]))
  264.            }
  265.            row.appendChild(td);
  266.            tbody.appendChild(row);
  267.        }
  268.    }  
  269.    function Search_address(){
  270.        document.getElementById('address_modal').style.display='block';
  271.        // if ($('#search_street').val() & $('#search_branch').val()){
  272.            $.ajax({
  273.                url: "/get_list_locations/?street=" + $('#search_street').val() + "&num=" + $('#search_house').val() + "&bra=" + $('#search_branch').val(),
  274.                dataType: 'json',
  275.                async: true,
  276.                success: function (response) {
  277.                    var list = [];
  278.                    for (i in response) {
  279.                        list.push({
  280.                            'polyclinic': response[i].polyclinic,
  281.                            'building': response[i].building,
  282.                            'street': response[i].street,
  283.                            'branch': response[i].branch,
  284.                            'zone': response[i].zone,
  285.                            'email': response[i].email,
  286.                            'contact': response[i].contact,
  287.                            'recording': response[i].recording,
  288.                        })
  289.                    }
  290.                    list.forEach(element => {
  291.                         addRow(element)
  292.                     });
  293.                 }  
  294.             });
  295.         // } else {
  296.         //     let tr_not_found = document.getElementById('text_not_found');
  297.         //     tr_not_found.innerHTML = "Нет такой записи !";
  298.         //     console.log(tr_not_found);
  299.         // }
  300.     }
  301. </script>
  302. <script src="{% static 'js/sort_table.js' %}"></script>
  303. <script>
  304.     $(document).ready(function () {
  305.         $('#dateCol').click(function () {
  306.             sortTable_Date(6);
  307.         });
  308.     });
  309. </script>
  310. {% if autoupdate %}
  311. <script>
  312.     setTimeout(function () {
  313.         window.location.reload(1);
  314.     }, 20000);
  315. </script>
  316. {% endif %}
  317. <script>
  318.     function GetJson(id) {
  319.         $.ajax({
  320.             url: "/filter/" + String(id) + "/",
  321.             dataType: 'json',
  322.             success: function (response) {
  323.                 var data = data;
  324.                 var list = []
  325.                 var data_mess = '';
  326.                 for (i in response) {
  327.                     list[i] = [{ 'id': response[i].id, 'fio': response[i].fio, 'zone': response[i].zone }]
  328.                 }
  329.                 var opts = '<option value="">-----</option>';
  330.                 for (i in list) {
  331.                     for (t of list[i]) {
  332.                         opts += '<option value="' + t.id + '">' + t.fio + '</option>';
  333.                     }
  334.                 }
  335.                 document.getElementById('select_a_doctor').innerHTML = opts;
  336.             }
  337.         });
  338.     }
  339.  
  340.     var languagesSelect = filter.select_polyclinic;
  341.     function changeOption() {
  342.  
  343.         var selection = document.getElementById("select_a_doctor");
  344.         var selectedOption = languagesSelect.options[languagesSelect.selectedIndex];
  345.         GetJson(selectedOption.value)
  346.     }
  347.     languagesSelect.addEventListener("change", changeOption);
  348.  
  349.  
  350.     function cancell_call(id_button, id_pacient) {
  351.         var buttonValue = document.getElementById(id_button)
  352.         if (buttonValue.checked) {
  353.         }
  354.         else {
  355.  
  356.             document.getElementById('modal_edit').style.display = 'block'
  357.             let url_update = '/cancell-call/' + id_pacient + '/';
  358.             $('#modal_edit').css('display', 'block');
  359.             $('#change_data_form').attr('action', url_update);
  360.         }
  361.  
  362.         $(document).mouseup(function (e) { // событие клика по веб-документу
  363.             var div = $("#change_data"); // тут указываем ID элемента
  364.             if (!div.is(e.target) // если клик был не по нашему блоку
  365.                 && div.has(e.target).length === 0) { // и не по его дочерним элементам
  366.                div.css('display', 'none');// скрываем его
  367.                 buttonValue.checked = false;
  368.             }
  369.         });
  370.  
  371.     }
  372.     function cheked_box(id_box, id_pacient) {
  373.         var buttonValue = document.getElementById(id_box);
  374.         if (buttonValue.checked) {
  375.             url = '/set-type-call/' + id_pacient + '/' + buttonValue.value + '/';
  376.             window.location.href = url
  377.         } else {
  378.             url = '/set-type-call/' + id_pacient + '/0/';
  379.             window.location.href = url
  380.         }
  381.     }
  382. </script>
  383. <script>
  384.     $('input[type="checkbox"]').on('change', function () {
  385.         let str = $(this).parents('td');
  386.         if (input.checked) {
  387.             $('input[name="' + this.name + '"]').prop('checked', false);
  388.         }
  389.         else {
  390.             $('input[name="' + this.name + '"]').not(this).prop('checked', false);
  391.         }
  392.         // $('input[name="' + this.name + '"]').not(this).prop('checked', false);
  393.     });
  394. </script>
  395.  
  396. <style>
  397.     .modal {
  398.         display: none;
  399.         position: fixed;
  400.         z-index: 999999;
  401.         left: 0;
  402.         top: 0;
  403.         width: 100%;
  404.         height: 100%;
  405.         overflow: auto;
  406.         background-color: rgb(0, 0, 0);
  407.         background-color: rgba(0, 0, 0, 0.4);
  408.         padding-top: 60px;
  409.     }
  410.  
  411.     .modal-content {
  412.         background-color: #fefefe;
  413.         margin: 5% auto 15% auto;
  414.         border: 1px solid #888;
  415.         width: 50%;
  416.     }
  417.  
  418.     .container {
  419.         padding: 16px;
  420.     }
  421.  
  422.     span.psw {
  423.         float: right;
  424.         padding-top: 16px;
  425.     }
  426.  
  427.     .close {
  428.         position: absolute;
  429.         right: 25px;
  430.         top: 0;
  431.         color: #000;
  432.         font-size: 35px;
  433.         font-weight: bold;
  434.     }
  435.  
  436.     .close:hover,
  437.     .close:focus {
  438.         color: red;
  439.         cursor: pointer;
  440.     }
  441.  
  442.     .animate {
  443.         -webkit-animation: animatezoom 0.6s;
  444.         animation: animatezoom 0.6s
  445.     }
  446.  
  447.     span.psw {
  448.         float: right;
  449.         padding-top: 16px;
  450.     }
  451.  
  452.  
  453.     .input_add_note {
  454.         width: 100%;
  455.         padding: 12px 20px;
  456.         margin: 8px 0;
  457.         display: inline-block;
  458.         border: 1px solid #ccc;
  459.         box-sizing: border-box;
  460.     }
  461.  
  462.  
  463.  
  464.  
  465.     .radio_button+label {
  466.         display: inline-block;
  467.         position: relative;
  468.         margin: 0 4px;
  469.         border: 2px solid #fff;
  470.         width: 1.8em;
  471.         height: 1.8em;
  472.         border-radius: 50%;
  473.         box-shadow: 0 1px 3px rgba(0, 0, 0, 0.33);
  474.         color: transparent;
  475.         cursor: pointer;
  476.  
  477.         margin-left: 25px;
  478.     }
  479.  
  480.  
  481.     .radio_button+label:before {
  482.         position: absolute;
  483.         top: 0;
  484.         right: 0;
  485.         bottom: 0;
  486.         left: 0;
  487.         opacity: 0;
  488.         background: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/2017/check-icn.svg") 50%/50% no-repeat;
  489.         transition: all .3s ease;
  490.         content: '';
  491.     }
  492.  
  493.     .radio_button:checked+label:before {
  494.         opacity: 1;
  495.     }
  496.  
  497.     .radio_button {
  498.         position: absolute;
  499.         right: 100vw;
  500.     }
  501. </style>
  502. {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement