Skip to content
Snippets Groups Projects
Commit 5633f621 authored by Anton Bagliy's avatar Anton Bagliy
Browse files

FEAT: evening and part-time groups in group filters, db patch to work with...

FEAT: evening and part-time groups in group filters, db patch to work with FormID in study_groups #50
parent 23aef93d
Branches
No related merge requests found
......@@ -4,10 +4,15 @@ ALTER TABLE public.study_groups ALTER COLUMN formid SET NOT NULL;
ALTER TABLE public.study_groups ALTER COLUMN formid SET DEFAULT 1;
ALTER TABLE public.study_groups DROP CONSTRAINT study_groups_facultyid_gradeid_groupnum_key;
ALTER TABLE ONLY study_groups
ALTER TABLE ONLY public.study_groups
ADD CONSTRAINT study_groups_facultyid_gradeid_groupnum_formid_key UNIQUE (facultyid, gradeid, groupnum, formid);
ALTER TABLE ONLY study_groups
INSERT INTO public.study_form(id, formname) VALUES
(1, 'очная'),
(2, 'очно-заочная'),
(3, 'заочная');
ALTER TABLE ONLY public.study_groups
ADD CONSTRAINT study_groups_ibfk_4 FOREIGN KEY (formid) REFERENCES study_form(id);
DROP FUNCTION IF EXISTS public.creategroup(pgradeid integer, pgroupnum integer, pspecname character varying, pfacultyid integer, pyear integer);
......@@ -134,4 +139,28 @@ CREATE OR REPLACE VIEW public.view_groups
JOIN study_groups ON groups_years.groupid = study_groups.id
JOIN specializations ON groups_years.specializationid = specializations.id
JOIN grades ON study_groups.gradeid = grades.id
JOIN faculties ON faculties.id = specializations.facultyid;
\ No newline at end of file
JOIN faculties ON faculties.id = specializations.facultyid;
DROP FUNCTION IF EXISTS public.getgroups(pgradeid integer, pfacultyid integer, psemesterid integer);
CREATE OR REPLACE FUNCTION public.getgroups(pgradeid integer, pfacultyid integer, psemesterid integer)
RETURNS TABLE("ID" integer, "GroupNum" integer, "SpecID" integer, "SpecName" character varying, "SpecAbbr" character varying, "FormID" character varying)
LANGUAGE sql
AS $function$
--select * from public.getgroups(
-- :pgradeid, -- put the pgradeid parameter value instead of 'pgradeid' (int4)
-- :pfacultyid, -- put the pfacultyid parameter value instead of 'pfacultyid' (int4)
-- :psemesterid -- put the psemesterid parameter value instead of 'psemesterid' (int4)
--);
SELECT view_groups.GroupID AS "ID",
view_groups.GroupNum as "GroupNum",
view_groups.SpecID as "SpecID",
view_groups.SpecName as "SpecName",
view_groups.SpecAbbr as "SpecAbbr",
(SELECT study_form.FormName from study_form WHERE study_form.id = view_groups.FormID)
FROM view_groups
INNER JOIN semesters ON semesters.ID = pSemesterID
WHERE view_groups.GradeID = pGradeID AND
view_groups.FacultyID = pFacultyID AND
view_groups.Year = semesters.Year
ORDER BY view_groups.GroupNum ASC;
$function$
\ No newline at end of file
......@@ -1295,9 +1295,3 @@ INSERT INTO lesson_types(id, lesson_type) values
(2, 'лабораторная'),
(3, 'семинар'),
(4, 'практикум');
INSERT INTO public.study_form(id, formname) VALUES
(1, 'очная'),
(2, 'очно-заочная'),
(3, 'заочная');
......@@ -85,6 +85,13 @@ class OptionLoader {
*/
let getGroupOption = (data) => {
let str = `группа ${data.GroupNum}`;
if (data.FormID === 'заочная') {
str = str+' ЗО';
}
if (data.FormID === 'очно-заочная') {
str = str+' ВО';
}
if (data.SpecName) {
str += " - ";
str += data.SpecName;
......
......@@ -147,11 +147,11 @@ class Controller_Api_V0_Student extends Controller_Handler_Api {
break;
case 'Очно-заочная':
$recordBookData->form = 3;
$recordBookData->form = 2;
break;
case 'Заочная':
$recordBookData->form = 2;
$recordBookData->form = 3;
break;
default:
......
......@@ -43,10 +43,10 @@ class Controller_Teacher_Index extends Controller_Environment_Teacher
if ($dis_group['FormID'] === 'очно-заочная') {
$groupDesc = $groupDesc.' ВО';
}
if ($dis_group['FormID'] === 'зачная') {
if ($dis_group['FormID'] === 'заочная') {
$groupDesc = $groupDesc.' ЗО';
}
$groups[$dis->ID][] = $dis_group['GroupNum'] . ' гр';
$groups[$dis->ID][] = $dis_group['GroupNum'] . $groupDesc;
}
}
......
......@@ -104,6 +104,14 @@ class Model_Discipline extends Model_Container
/** Get groups with separately attached students. */
public function getAllGroups() {
// http://gitlab.mmcs.sfedu.ru/it-lab/grade/issues/50
// для получения списка групп для всех дисциплин на странице преподавателя
// нужно сделать несколько запросов к GetGroupsForDisciplineAll
// за одно подключение к базе данных
// но тогда функция возвращает один и тот же ответ
// поэтому каждый раз подключаемся заново
$db = Kohana_Database::instance();
$db->disconnect();
$sql = 'SELECT * FROM GetGroupsForDisciplineAll(:id)';
return DB::query(Database::SELECT, $sql)->param(':id', $this->ID)->execute();
}
......
......@@ -102,6 +102,14 @@
{% endif %}
{{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option>
{% endfor %}
</select>
......
......@@ -67,6 +67,14 @@
{% endif %}
{{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option>
{% endfor %}
</select>
......
......@@ -59,6 +59,13 @@
{% endif %}
{{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option>
{% endfor %}
</select>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment