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; ...@@ -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 ALTER COLUMN formid SET DEFAULT 1;
ALTER TABLE public.study_groups DROP CONSTRAINT study_groups_facultyid_gradeid_groupnum_key; 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); 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); 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); 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 ...@@ -134,4 +139,28 @@ CREATE OR REPLACE VIEW public.view_groups
JOIN study_groups ON groups_years.groupid = study_groups.id JOIN study_groups ON groups_years.groupid = study_groups.id
JOIN specializations ON groups_years.specializationid = specializations.id JOIN specializations ON groups_years.specializationid = specializations.id
JOIN grades ON study_groups.gradeid = grades.id JOIN grades ON study_groups.gradeid = grades.id
JOIN faculties ON faculties.id = specializations.facultyid; JOIN faculties ON faculties.id = specializations.facultyid;
\ No newline at end of file
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 ...@@ -1295,9 +1295,3 @@ INSERT INTO lesson_types(id, lesson_type) values
(2, 'лабораторная'), (2, 'лабораторная'),
(3, 'семинар'), (3, 'семинар'),
(4, 'практикум'); (4, 'практикум');
INSERT INTO public.study_form(id, formname) VALUES
(1, 'очная'),
(2, 'очно-заочная'),
(3, 'заочная');
...@@ -85,6 +85,13 @@ class OptionLoader { ...@@ -85,6 +85,13 @@ class OptionLoader {
*/ */
let getGroupOption = (data) => { let getGroupOption = (data) => {
let str = `группа ${data.GroupNum}`; let str = `группа ${data.GroupNum}`;
if (data.FormID === 'заочная') {
str = str+' ЗО';
}
if (data.FormID === 'очно-заочная') {
str = str+' ВО';
}
if (data.SpecName) { if (data.SpecName) {
str += " - "; str += " - ";
str += data.SpecName; str += data.SpecName;
......
...@@ -147,11 +147,11 @@ class Controller_Api_V0_Student extends Controller_Handler_Api { ...@@ -147,11 +147,11 @@ class Controller_Api_V0_Student extends Controller_Handler_Api {
break; break;
case 'Очно-заочная': case 'Очно-заочная':
$recordBookData->form = 3; $recordBookData->form = 2;
break; break;
case 'Заочная': case 'Заочная':
$recordBookData->form = 2; $recordBookData->form = 3;
break; break;
default: default:
......
...@@ -43,10 +43,10 @@ class Controller_Teacher_Index extends Controller_Environment_Teacher ...@@ -43,10 +43,10 @@ class Controller_Teacher_Index extends Controller_Environment_Teacher
if ($dis_group['FormID'] === 'очно-заочная') { if ($dis_group['FormID'] === 'очно-заочная') {
$groupDesc = $groupDesc.' ВО'; $groupDesc = $groupDesc.' ВО';
} }
if ($dis_group['FormID'] === 'зачная') { if ($dis_group['FormID'] === 'заочная') {
$groupDesc = $groupDesc.' ЗО'; $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 ...@@ -104,6 +104,14 @@ class Model_Discipline extends Model_Container
/** Get groups with separately attached students. */ /** Get groups with separately attached students. */
public function getAllGroups() { 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)'; $sql = 'SELECT * FROM GetGroupsForDisciplineAll(:id)';
return DB::query(Database::SELECT, $sql)->param(':id', $this->ID)->execute(); return DB::query(Database::SELECT, $sql)->param(':id', $this->ID)->execute();
} }
......
...@@ -102,6 +102,14 @@ ...@@ -102,6 +102,14 @@
{% endif %} {% endif %}
{{ Group.GroupNum }} группа {{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option> </option>
{% endfor %} {% endfor %}
</select> </select>
......
...@@ -67,6 +67,14 @@ ...@@ -67,6 +67,14 @@
{% endif %} {% endif %}
{{ Group.GroupNum }} группа {{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option> </option>
{% endfor %} {% endfor %}
</select> </select>
......
...@@ -59,6 +59,13 @@ ...@@ -59,6 +59,13 @@
{% endif %} {% endif %}
{{ Group.GroupNum }} группа {{ Group.GroupNum }} группа
{% if Group.FormID == 'очно-заочная' %}
ВО
{% endif %}
{% if Group.FormID == 'заочная' %}
ЗО
{% endif %}
</option> </option>
{% endfor %} {% endfor %}
</select> </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