219 lines
12 KiB
HTML
219 lines
12 KiB
HTML
|
{function sel_prepod}
|
|||
|
<select class="form-select {$class}" name="prepod_id[{$did}]" id="prepod_id_{$did}" data-did="{$did}" data-selprepid="{$pid}" data-k1k2="{$k1}_{$k2}" data-bs-toggle="tooltip" data-bs-placement="bottom"
|
|||
|
{if $class=="prepod_selall"} title="Используйте для ГРУППОВОГО назначения преподавателя на ОТОБРАЖАЕМЫЕ внизу дисциплины!"
|
|||
|
{else} title="Назначить преподавателя на дисциплину"{/if}
|
|||
|
>
|
|||
|
<option value="0">Нет преподавателя</option>
|
|||
|
<option value="-1">Преподаватель не на кафедре</option>
|
|||
|
{foreach from=$PREPODS item=prep}
|
|||
|
<option value="{$prep.id}"{if $prep.id==$pid} SELECTED{/if}>{$prep.fio}{if $prep.status<0} УДАЛЕН{/if}</option>
|
|||
|
{/foreach}
|
|||
|
</select>
|
|||
|
<div id="prepod_id_{$did}_seldop_{$k1}_{$k2}"></div>
|
|||
|
{/function}
|
|||
|
|
|||
|
{if count($DISCIPS)}
|
|||
|
{*<pre>{print_r($prepods_all_all)}</pre>*}
|
|||
|
<div class="prepods_all_div" style="display: none;">
|
|||
|
<select class="form-select prepod_sel_all" name="prepod_id_all[%did%]" id="prepod_id_all_%did%" data-did="%did%" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Назначить преподавателя не из своей кафедры на дисциплину">
|
|||
|
<option value="0" >Выберите преподавателя</option>
|
|||
|
{foreach from=$prepods_all_all item=prep}
|
|||
|
{if $prep.fio!=''}<option value="{$prep.id}"{if $prep.id==$pid} SELECTED{/if}>{$prep.fio}</option>{/if}
|
|||
|
{/foreach}
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
<h3 class="text-center">Перечень дисциплин и практик, закрепленных за кафедрой {$kaf.name} (код {$kaf.kod}) в соответствии с учебными планами образовательных программ</h3>
|
|||
|
<table class="table">
|
|||
|
<thead>
|
|||
|
<tr>
|
|||
|
<th class="col-1">индекс дисциплины/практики</th>
|
|||
|
<th class="col-2">название дисциплины/практики</th>
|
|||
|
<th class="col-1">форма обучения</th>
|
|||
|
<th class="col-2">
|
|||
|
Преподаватель, ответственный за разработку рабочей программы
|
|||
|
{*sel_prepod PREPODS=$PREPODS did=$disc.id pid=$disc.prepod_id class="prepod_selall"*}
|
|||
|
</th>
|
|||
|
<th class="col-1"><input type="text" class="form-control filter" placeholder="фильтр" value=""></th>
|
|||
|
</tr>
|
|||
|
</thead>
|
|||
|
<tbody id="fbody">
|
|||
|
{foreach from=$DISCIPS item=discOOP key=nameOOP name=foreach1}
|
|||
|
<tr class="tr_header" data-id="{$smarty.foreach.foreach1.iteration}">
|
|||
|
<td colspan="5"><strong>{$nameOOP}</strong></td>
|
|||
|
</tr>
|
|||
|
{foreach from=$discOOP item=disc name=foreach2}
|
|||
|
<tr class="trtd trtd_{$smarty.foreach.foreach1.iteration}">
|
|||
|
<td class="filter_index1">{$disc.index1}</td>
|
|||
|
<td class="filter_name">
|
|||
|
<span data-bs-toggle="tooltip" data-bs-placement="top" title="ООП: {$disc.shifr} {$disc.naprav} {$disc.god_nach_podgot} {$disc.kvalif} {$disc.srok_poluch_obr}" style="font-weight:bold;">{$disc.name}</span>
|
|||
|
{if isset($disc.prepod_other)&&count($disc.prepod_other)}<br>
|
|||
|
{*
|
|||
|
$disc.prepod_other.id_uchebplans=36965
|
|||
|
$disc.prepod_other.prepod_id=2378
|
|||
|
$disc.prepod_other.up_oth=Array([id]=18348 [id_file]=127 [index1]=Б1.О.34 [name]=Физическая культура и спорт)
|
|||
|
$disc.prepod_other.up_oth_user=Array([rsid]=1266 [id_prepod]=1266 [fio]=Галюнко Татьяна Эйгеновна )
|
|||
|
$disc.prepod_other.up_file_oth=Array([id]=127 [id_file]=127 [god_nach_podgot]=2022 )
|
|||
|
*}
|
|||
|
{*print_r($disc.prepod_other)*}
|
|||
|
{if isset($disc.prepod_other.up_oth_user)&&isset($disc.prepod_other.up_oth_user.fio)}
|
|||
|
<span class="badge bg-light text-dark" data-bs-toggle="tooltip" data-bs-placement="top" title="Информация кто разрабатывал дисциплину в других годах">{$disc.prepod_other.up_file_oth.god_nach_podgot}: {$disc.prepod_other.up_oth_user.fio}</span>
|
|||
|
{if $disc.prepod_id != $disc.prepod_other.up_oth_user.id_prepod}<a href="#" class="btn btn-sm btn-warning copy_rpd" data-saveiddiscip="{$disc.prepod_other.up_oth_user.rsid}" data-newdiscip="{$disc.prepod_other.id_uchebplans}" data-prepodid="{$disc.prepod_other.prepod_id}" style="padding: 0px 4px;" data-bs-toggle="tooltip" data-bs-placement="top" title="Скопировать РПД от другого преподавателя, назначенному">копировать</a>{/if}
|
|||
|
{/if}
|
|||
|
{/if}
|
|||
|
{if isset($disc.prepod_other.err)}<span class="" data-bs-toggle="tooltip" data-bs-placement="top" title="Не смогли определить дисциплину в прошлом году, подробнее см. в тексте!">{$disc.prepod_other.err}</span>{/if}
|
|||
|
</td>
|
|||
|
<td class="filter_fo">{$disc.fo}</td>
|
|||
|
<td class="filter_prepod">
|
|||
|
{if $disc.prepod_status==0}
|
|||
|
<span>на согласовании в УМУ от {date('d.m.Y',$disc.prepod_data_c)}</span>
|
|||
|
{else}
|
|||
|
{sel_prepod PREPODS=$PREPODS did=$disc.id pid=$disc.prepod_id class="prepod_sel" k1=$smarty.foreach.foreach1.iteration k2=$smarty.foreach.foreach2.iteration}
|
|||
|
{if $disc.prepod_id!=0}
|
|||
|
<input type="TEXT" class="form-control" id="prepodDescr_{$disc.id}_{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" value="" placeholder="Причина смены">
|
|||
|
{/if}
|
|||
|
{/if}
|
|||
|
{*<pre style="display: none;">{print_r($disc)}</pre>*}
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a href="#" class="btn btn-sm btn-warning save_prepod" id="btnSavePrepod_{$disc.id}_{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" data-id="{$disc.id}" data-k1k2="{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" data-bs-toggle="tooltip" data-bs-placement="top" title="Сохранить преподавателя" style="display: none;"><i class="bi bi-save"></i></a>
|
|||
|
<a href="/rabprog/shahtplans/one/{$disc.id_file}/" class="btn btn-sm btn-success" data-bs-toggle="tooltip" data-bs-placement="top" title="Просмотр плана"><i class="bi bi-eye"></i></a>
|
|||
|
{if isset($disc.prepod_descrip)}{$disc.prepod_descrip}{/if}
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
{/foreach}
|
|||
|
{/foreach}
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
{literal}
|
|||
|
<style>
|
|||
|
.tr_header{cursor: pointer;}
|
|||
|
.tr_header:hover{ background-color: #9eeaf9;}
|
|||
|
.trtd{display: none;}
|
|||
|
</style>
|
|||
|
<script>$(document).ready(function(){
|
|||
|
//копируем РПД стаурю на нового
|
|||
|
$(".copy_rpd").click(function(){
|
|||
|
let saveiddiscip = $(this).data('saveiddiscip');
|
|||
|
let newdiscip = $(this).data('newdiscip');
|
|||
|
let prepodid = $(this).data('prepodid');
|
|||
|
$.ajax({
|
|||
|
url: '/rabprog/disciplins/', cache: false, datatype: 'json', method: 'post',
|
|||
|
data: 'ajdes=CopyRPD&saveiddiscip=' + saveiddiscip + '&newdiscip=' + newdiscip + '&prepodid=' + prepodid,
|
|||
|
success: function (data) {
|
|||
|
window.ToastShow1("Копирование дисциплины от другого преподавателя", data.msg, data.err);
|
|||
|
}
|
|||
|
});
|
|||
|
return false;
|
|||
|
});
|
|||
|
//сворачиваем разворачиваем ООП
|
|||
|
$(".tr_header").click(function(){
|
|||
|
let id=$(this).data("id");
|
|||
|
$(".trtd_"+id).toggle();
|
|||
|
});
|
|||
|
//Сохраняем преподавателя
|
|||
|
$(".save_prepod").click(function(){
|
|||
|
$(this).hide();
|
|||
|
let smena = '';
|
|||
|
let doaj = true;
|
|||
|
let id_disc = $(this).data("id");
|
|||
|
let id_prep_dop = $("#prepod_id_all_"+id_disc+" option:selected").val();
|
|||
|
let id_prepod = 0;
|
|||
|
let k1k2 = $(this).data("k1k2");
|
|||
|
if(typeof id_prep_dop !== 'undefined') {
|
|||
|
id_prepod = id_prep_dop;
|
|||
|
}else {
|
|||
|
id_prepod = $("#prepod_id_" + id_disc + " option:selected").val();
|
|||
|
}
|
|||
|
let th = $(this);
|
|||
|
|
|||
|
if ($("#prepodDescr_"+id_disc+"_"+k1k2).length) {
|
|||
|
smena = $("#prepodDescr_"+id_disc+"_"+k1k2).val();
|
|||
|
if (smena.length<=3){
|
|||
|
window.ToastShow1("Укажите причину смены!","Причина смены не может быть пустой",1);
|
|||
|
doaj = false;
|
|||
|
}
|
|||
|
}
|
|||
|
if(doaj==true) {
|
|||
|
$.ajax({
|
|||
|
url: '/rabprog/disciplins/', cache: false, datatype: 'json', method: 'post',
|
|||
|
data: 'ajdes=SavePrepod&id_disc=' + id_disc + '&id_prepod=' + id_prepod + '&smena=' + smena,
|
|||
|
success: function (data) {
|
|||
|
th.hide();
|
|||
|
window.ToastShow1("Сохранение преподавателя", data.msg, data.err);
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
return false;
|
|||
|
});
|
|||
|
$(".prepod_sel").change(function(){
|
|||
|
let did = $(this).data("did");
|
|||
|
let k1k2 = $(this).data("k1k2");
|
|||
|
//let sel = $("#prepod_id_"+did+" option:selected").val();
|
|||
|
let sel = $("option:selected", this).val();
|
|||
|
if(sel==-1){
|
|||
|
let sel = $(".prepods_all_div").html();
|
|||
|
sel = sel.replace(/%did%/g, did);
|
|||
|
$("#prepod_id_"+did+"_seldop_"+k1k2).html(sel);
|
|||
|
}else {
|
|||
|
$("#btnSavePrepod_" + did+"_"+k1k2).show();
|
|||
|
}
|
|||
|
});
|
|||
|
$(document).on("change", ".prepod_sel_all", function(){
|
|||
|
let did = $(this).data("did");
|
|||
|
$("#btnSavePrepod_" + did).show();
|
|||
|
});
|
|||
|
$(".prepod_sel").each(function(i,e){
|
|||
|
selprepid = $(this).data('selprepid');
|
|||
|
did = $(this).data('did');
|
|||
|
selected_option = $('#prepod_id_'+did+' option:selected').val();
|
|||
|
fio = $('.prepod_sel_all option[value='+selprepid+']').text();
|
|||
|
if(selprepid!=selected_option){
|
|||
|
$('#prepod_id_'+did+' option[value=0]').text(fio);
|
|||
|
//console.log('#prepod_id_'+did+' option[value='+selprepid+']');
|
|||
|
}
|
|||
|
//console.log(selprepid+"="+selected_option);
|
|||
|
})
|
|||
|
//назначаем всем, видимым дисциплинам, преподов
|
|||
|
$(".prepod_selall").change(function(){
|
|||
|
let id = $(".prepod_selall :selected").val();
|
|||
|
let fio = $(".prepod_selall :selected").text();
|
|||
|
let did = 0;
|
|||
|
$(".prepod_sel").each(function( index ) {
|
|||
|
if ($(this).is(":visible")){
|
|||
|
$("option[value="+id+"]",this).attr('selected','selected');
|
|||
|
did = $(this).data("did");
|
|||
|
$("#btnSavePrepod_"+did).show();
|
|||
|
}
|
|||
|
});
|
|||
|
//$(".prepod_sel option[value="+id+"]").attr('selected','selected');
|
|||
|
});
|
|||
|
//фильтр таблицы
|
|||
|
$(".filter").keyup(function () {
|
|||
|
var data = this.value.split(" ");
|
|||
|
var jo = $("#fbody").find("tr");
|
|||
|
if (this.value == "") {
|
|||
|
jo.show();
|
|||
|
return;
|
|||
|
}
|
|||
|
jo.hide();
|
|||
|
//Recusively filter the jquery object to get results.
|
|||
|
jo.filter(function (i, v) {
|
|||
|
var $t = $(this);
|
|||
|
for (var d = 0; d < data.length; ++d) {
|
|||
|
if ($t.is(":contains('" + data[d] + "')")) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}).show();
|
|||
|
}).focus(function () {
|
|||
|
this.value = "";
|
|||
|
$(this).css({"color": "black"});
|
|||
|
$(this).unbind('focus');
|
|||
|
}).css({"color": "#C0C0C0"});
|
|||
|
//http://jsfiddle.net/ukW2C/3/ фильтр для всей таблицы
|
|||
|
})</script>{/literal}
|
|||
|
{else}
|
|||
|
<h2>Нет загруженных планов, для кафедры {$kaf.name}</h2>
|
|||
|
{/if}
|
|||
|
{*<pre>{print_r($DISCIPS)}</pre>*}
|