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

v.2.7.18

parents 7e438ce1 dbaf14e9
Branches
No related merge requests found
DROP VIEW public.view_global_final_report;
DROP VIEW public.view_disciplines;
DROP TABLE global_disciplines;
CREATE TABLE global_disciplines
(
id integer DEFAULT nextval('seq_global_disciplines'::regclass) NOT NULL,
name character varying(100) NOT NULL,
disciplineid integer NOT NULL,
externalid character varying(100) NOT NULL,
semesterid integer NOT NULL
);
ALTER TABLE ONLY global_disciplines
ADD CONSTRAINT global_extid_key UNIQUE (name);
ALTER TABLE ONLY global_disciplines
ADD CONSTRAINT global_disciplines_ibfk_1 FOREIGN KEY (disciplineid) REFERENCES disciplines (id);
-- ищет межфакультетские дисциплины по ext id, семестру
DROP FUNCTION IF EXISTS public.discipline_find_global(psemesterid integer, pexternalid character varying);
CREATE OR REPLACE FUNCTION public.discipline_find_global(psemesterid integer, pexternalid character varying)
RETURNS SETOF integer
LANGUAGE sql
AS $function$
SELECT disciplines.ID
FROM disciplines
JOIN global_disciplines ON global_disciplines.disciplineid = disciplines.id
WHERE disciplines.SemesterID = pSemesterID AND
--disciplines.SubjectID = pSubjectID AND
--disciplines.ExamType = pExamType AND
--disciplines.FacultyID = pfacultyid AND
-- NOT EXISTS (SELECT disciplines_study_plans.id from disciplines_study_plans WHERE disciplines_study_plans.DisciplineID = disciplines.ID) AND
disciplines.isglobal = TRUE AND
global_disciplines.externalid = pexternalid
LIMIT 1;
$function$;
DROP FUNCTION IF EXISTS public.discipline_bindglobal(pdisciplineid integer, psemester integer, pdisciplinename character varying, pglobalid character varying);
CREATE OR REPLACE FUNCTION public.discipline_bindglobal(pdisciplineid integer, psemester integer, pdisciplinename character varying, pglobalid character varying)
RETURNS integer
LANGUAGE plpgsql
AS $function$
declare vID int;
begin
INSERT INTO global_disciplines (disciplineid, semesterid, name, externalid) VALUES(pdisciplineid, psemester, pdisciplinename, pglobalid) returning id into vID;
UPDATE disciplines SET isglobal=TRUE WHERE disciplines.id = pdisciplineid;
RETURN vID;
END;
$function$;
CREATE OR REPLACE VIEW public.view_global_final_report
AS SELECT DISTINCT semesters.year AS semesteryear,
semesters.num AS semesternum,
study_plans.externalid AS planexternalid,
subjects.externalid AS subjectexternalid,
record_books.externalid AS recordbookexternalid,
gd.examtype,
( SELECT sum(rating_table.rate) AS sum
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = gd.id AND modules.type = 'regular'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
GROUP BY modules.disciplineid, rating_table.recordbookid) AS semesterrate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN '-2'::integer
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = gd.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
LIMIT 1) AS examrate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN 0
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = gd.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
OFFSET 1
LIMIT 1) AS exam2rate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN 0
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = gd.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
OFFSET 2
LIMIT 1) AS exam3rate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = gd.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
ORDER BY submodules.ordernum
LIMIT 1) AS extrarate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = gd.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
ORDER BY submodules.ordernum
OFFSET 1
LIMIT 1) AS extra2rate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = gd.id AND modules.type = 'bonus'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
LIMIT 1) AS bonusrate
FROM global_disciplines
JOIN semesters on global_disciplines.semesterid = semesters.id
JOIN disciplines gd on gd.id = global_disciplines.disciplineid
JOIN disciplines_students on gd.id = disciplines_students.disciplineid and disciplines_students.type = 'attach'::attach_detach
JOIN subjects on subjects.id = gd.subjectid
JOIN disciplines ld on ld.subjectid = gd.subjectid and ld.semesterid = gd.semesterid and ld.isglobal = TRUE and ld.isinactive = true
JOIN disciplines_study_plans on disciplines_study_plans.disciplineid = ld.id
JOIN study_plans ON study_plans.id = disciplines_study_plans.studyplanid
JOIN view_disciplines_recordbooks ON view_disciplines_recordbooks.disciplineid = ld.id AND 'attach'::attach_detach = COALESCE(view_disciplines_recordbooks.type, 'attach'::attach_detach)
JOIN record_books ON record_books.id = view_disciplines_recordbooks.recordbookid and record_books.id = disciplines_students.recordbookid
JOIN record_books_plans ON record_books.id = record_books_plans.recordbookid AND record_books_plans.studyplanid = study_plans.id;
CREATE OR REPLACE VIEW public.view_disciplines
AS SELECT disciplines.id AS disciplineid,
disciplines.authorid,
disciplines.examtype,
disciplines.lecturecount,
disciplines.practicecount,
disciplines.labcount,
disciplines.semesterid,
disciplines.islocked,
disciplines.milestone,
disciplines.subtype,
disciplines.compounddiscid,
disciplines.maxrate,
disciplines.currate,
disciplines.isinactive,
disciplines.isglobal,
grades.id AS gradeid,
grades.num AS gradenum,
grades.degree,
subjects.id AS subjectid,
subjects.name AS subjectname,
subjects.abbr AS subjectabbr,
faculties.id AS facultyid,
faculties.name AS facultyname,
faculties.abbr AS facultyabbr,
compound_disciplines.name AS compounddiscname,
global_disciplines.name AS globalname
FROM disciplines
JOIN subjects ON subjects.id = disciplines.subjectid
JOIN faculties ON faculties.id = disciplines.facultyid
LEFT JOIN grades ON grades.id = disciplines.gradeid
LEFT JOIN compound_disciplines ON compound_disciplines.id = disciplines.compounddiscid
LEFT JOIN global_disciplines ON global_disciplines.disciplineid = disciplines.id;
#!/bin/python
from optparse import OptionParser
from difflib import SequenceMatcher
parser = OptionParser()
parser.add_option("-d", "--db", dest="db_json",
help="db table export json no id")
#parser.add_option("-s", "--source", dest="export_json",
# help="export json no id")
parser.add_option("-i", "--id", dest="export_json_id",
help="export json with id")
parser.add_option("-o", "--out", dest="out_file",
help="output file")
(options, args) = parser.parse_args()
import json
with open(options.db_json, encoding='utf-8') as db_dump:
#with open(options.export_json, encoding='utf-8') as no_id_export:
with open(options.export_json_id, encoding='utf-8') as id_export:
db_data = json.load(db_dump)
#export_noid = json.load(no_id_export)
export_id = json.load(id_export)
for db_row in db_data["global_disciplines"]:
name = db_row["name"]
last_equal = -1
row_number = 0
for export_row in export_id["groups"]:
if export_row["name"] == name:
#if SequenceMatcher(None, export_row["name"], name) > 0.94
last_equal = row_number
row_number = row_number + 1
if row_number >= 0:
db_row["externalid"] = export_id["groups"][last_equal]["globalExternalID"]
db_row["name"] = export_id["groups"][last_equal]["name"]
with open(options.out_file, 'w', encoding='utf-8') as output:
row_number = 2
for row in db_data["global_disciplines"]:
output.write("INSERT INTO public.global_disciplines\n")
output.write("(id, \"name\", disciplineid, semesterid, externalid)\n")
output.write("VALUES({}, '{}', {}, {}, '{}');\n".format(row_number, row["name"], row["disciplineid"], row["semesterid"], row["externalid"]))
row_number = row_number + 1
{
"global_disciplines": [
{
"id" : 2,
"name" : "Испанский-A0, ААиИ, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 25965,
"semesterid" : 11
},
{
"id" : 3,
"name" : "Английский-A1, ИТА, корпус Д, Некрасовский, 8.00 – 10.25",
"disciplineid" : 25966,
"semesterid" : 11
},
{
"id" : 4,
"name" : "Английский-A2, ИТА, корпус Д, Некрасовский, 8.00 – 10.25",
"disciplineid" : 25967,
"semesterid" : 11
},
{
"id" : 5,
"name" : "Английский-B1, ИТА, корпус Д, Некрасовский, 8.00 – 10.25",
"disciplineid" : 25968,
"semesterid" : 11
},
{
"id" : 6,
"name" : "Английский-A0, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25969,
"semesterid" : 11
},
{
"id" : 7,
"name" : "Английский-A1, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25970,
"semesterid" : 11
},
{
"id" : 8,
"name" : "Английский-A2, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25971,
"semesterid" : 11
},
{
"id" : 9,
"name" : "Английский-B2, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25972,
"semesterid" : 11
},
{
"id" : 10,
"name" : "Английский-A1, ИТА, корпус Д, Некрасовский, 13.45 – 16.10",
"disciplineid" : 25973,
"semesterid" : 11
},
{
"id" : 11,
"name" : "Английский-B1, ИТА, корпус Д, Некрасовский, 13.45 – 16.10",
"disciplineid" : 25974,
"semesterid" : 11
},
{
"id" : 12,
"name" : "Русский-A1, ИТА, корпус Д, Некрасовский, 8.00 – 10.25",
"disciplineid" : 25975,
"semesterid" : 11
},
{
"id" : 13,
"name" : "Русский-A1, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25976,
"semesterid" : 11
},
{
"id" : 14,
"name" : "Английский-B1, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25977,
"semesterid" : 11
},
{
"id" : 15,
"name" : "Английский-C1, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25978,
"semesterid" : 11
},
{
"id" : 16,
"name" : "Французский-A1, ИТА, корпус Д, Некрасовский, 10.40 – 13.05",
"disciplineid" : 25979,
"semesterid" : 11
},
{
"id" : 17,
"name" : "Английский-A2, ИТА, корпус Д, Некрасовский, 13.45 – 16.10",
"disciplineid" : 25980,
"semesterid" : 11
},
{
"id" : 18,
"name" : "Немецкий-A1, ИТА, корпус Д, Некрасовский, 13.45 – 16.10",
"disciplineid" : 25981,
"semesterid" : 11
},
{
"id" : 19,
"name" : "Английский-A1, ИТА, корпус Д, Некрасовский, 16.30 – 18.55",
"disciplineid" : 25982,
"semesterid" : 11
},
{
"id" : 20,
"name" : "Английский-A2, ИТА, корпус Д, Некрасовский, 16.30 – 18.55",
"disciplineid" : 25983,
"semesterid" : 11
},
{
"id" : 21,
"name" : "Английский-B1, ААиИ, Буденовский, 8.00 – 10.25",
"disciplineid" : 25984,
"semesterid" : 11
},
{
"id" : 22,
"name" : "Английский-B1, ААиИ, Буденовский, 10.40 – 13.05",
"disciplineid" : 25985,
"semesterid" : 11
},
{
"id" : 23,
"name" : "Английский-A1, ААиИ, Буденовский, 13.45 – 16.10",
"disciplineid" : 25986,
"semesterid" : 11
},
{
"id" : 24,
"name" : "Английский-A2, ААиИ, Буденовский, 8.00 – 10.25",
"disciplineid" : 25987,
"semesterid" : 11
},
{
"id" : 25,
"name" : "Английский-A1, ААиИ, Буденовский, 10.40 – 13.05",
"disciplineid" : 25988,
"semesterid" : 11
},
{
"id" : 26,
"name" : "Английский-A2, ААиИ, Буденовский, 10.40 – 13.05",
"disciplineid" : 25989,
"semesterid" : 11
},
{
"id" : 27,
"name" : "Английский-A2, Экономфак, Горького, 8.00 – 10.25",
"disciplineid" : 25990,
"semesterid" : 11
},
{
"id" : 28,
"name" : "Английский-B1, Экономфак, Горького, 10.40 – 13.05",
"disciplineid" : 25991,
"semesterid" : 11
},
{
"id" : 29,
"name" : "Английский-A1, Экономфак, Горького, 8.00 – 10.25",
"disciplineid" : 25992,
"semesterid" : 11
},
{
"id" : 30,
"name" : "Английский-A2, Экономфак, Горького, 10.40 – 13.05",
"disciplineid" : 25993,
"semesterid" : 11
},
{
"id" : 31,
"name" : "Английский-A0, Экономфак, Горького, 8.00 – 10.25",
"disciplineid" : 25994,
"semesterid" : 11
},
{
"id" : 32,
"name" : "Английский-A1, Экономфак, Горького, 10.40 – 13.05",
"disciplineid" : 25995,
"semesterid" : 11
},
{
"id" : 33,
"name" : "Английский-A1, ИИиМО, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 25996,
"semesterid" : 11
},
{
"id" : 34,
"name" : "Английский-A2, ИИиМО, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 25997,
"semesterid" : 11
},
{
"id" : 35,
"name" : "Английский-B2, ИИиМО, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 25998,
"semesterid" : 11
},
{
"id" : 36,
"name" : "Английский-A2, ИИиМО, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 25999,
"semesterid" : 11
},
{
"id" : 37,
"name" : "Английский-A1, ИИиМО, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26000,
"semesterid" : 11
},
{
"id" : 38,
"name" : "Английский-B1, ИИиМО, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26001,
"semesterid" : 11
},
{
"id" : 39,
"name" : "Английский-A2, ИСИР, Пушкинская, 8.00 – 10.25",
"disciplineid" : 26002,
"semesterid" : 11
},
{
"id" : 40,
"name" : "Английский-A2, ИСИР, Пушкинская, 10.40 – 13.05",
"disciplineid" : 26003,
"semesterid" : 11
},
{
"id" : 41,
"name" : "Английский-A1, ИСИР, Пушкинская, 8.00 – 10.25",
"disciplineid" : 26004,
"semesterid" : 11
},
{
"id" : 42,
"name" : "Английский-B1, ИСИР, Пушкинская, 10.40 – 13.05",
"disciplineid" : 26005,
"semesterid" : 11
},
{
"id" : 43,
"name" : "Английский-B1, Юрфак, Горького, 13.45 – 16.10",
"disciplineid" : 26006,
"semesterid" : 11
},
{
"id" : 44,
"name" : "Английский-A2, Юрфак, Горького, 13.45 – 16.10",
"disciplineid" : 26007,
"semesterid" : 11
},
{
"id" : 45,
"name" : "Английский-A1, Юрфак, Горького, 13.45 – 16.10",
"disciplineid" : 26008,
"semesterid" : 11
},
{
"id" : 46,
"name" : "Английский-A2, Факультет управления, Стачки, 8.00 – 10.25",
"disciplineid" : 26009,
"semesterid" : 11
},
{
"id" : 47,
"name" : "Английский-B1, Факультет управления, Стачки, 10.40 – 13.05",
"disciplineid" : 26010,
"semesterid" : 11
},
{
"id" : 48,
"name" : "Английский-A1, ИФиСПН, Днепровский, 8.00 – 10.25",
"disciplineid" : 26011,
"semesterid" : 11
},
{
"id" : 49,
"name" : "Английский-A2, ИФиСПН, Днепровский, 10.40 – 13.05",
"disciplineid" : 26012,
"semesterid" : 11
},
{
"id" : 50,
"name" : "Английский-B1, ИФиСПН, Днепровский, 10.40 – 13.05",
"disciplineid" : 26013,
"semesterid" : 11
},
{
"id" : 51,
"name" : "Английский-A0, АПП, Днепровский, 8.00 – 10.25",
"disciplineid" : 26014,
"semesterid" : 11
},
{
"id" : 52,
"name" : "Английский-A1, АПП, Днепровский, 10.40 – 13.05",
"disciplineid" : 26015,
"semesterid" : 11
},
{
"id" : 53,
"name" : "Английский-A1, АПП, Днепровский, 8.00 – 10.25",
"disciplineid" : 26016,
"semesterid" : 11
},
{
"id" : 54,
"name" : "Английский-A2, АПП, Днепровский, 10.40 – 13.05",
"disciplineid" : 26017,
"semesterid" : 11
},
{
"id" : 55,
"name" : "Английский-A2, АПП, Днепровский, 8.00 – 10.25",
"disciplineid" : 26018,
"semesterid" : 11
},
{
"id" : 56,
"name" : "Английский-A1, АПП, Днепровский, 13.45 – 16.10",
"disciplineid" : 26019,
"semesterid" : 11
},
{
"id" : 57,
"name" : "Английский-A2, АПП, Днепровский, 16.30 – 18.55",
"disciplineid" : 26020,
"semesterid" : 11
},
{
"id" : 58,
"name" : "Английский-A2, АПП, Днепровский, 13.45 – 16.10",
"disciplineid" : 26021,
"semesterid" : 11
},
{
"id" : 59,
"name" : "Английский-B1, АПП, Днепровский, 13.45 – 16.10",
"disciplineid" : 26022,
"semesterid" : 11
},
{
"id" : 60,
"name" : "Английский-A1, Физфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26023,
"semesterid" : 11
},
{
"id" : 61,
"name" : "Английский-A1, Физфак, Зорге, 10.40 – 13.05",
"disciplineid" : 26024,
"semesterid" : 11
},
{
"id" : 62,
"name" : "Английский-A1, Физфак, Зорге, 13.45 – 16.10",
"disciplineid" : 26025,
"semesterid" : 11
},
{
"id" : 63,
"name" : "Английский-A2, Физфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26026,
"semesterid" : 11
},
{
"id" : 64,
"name" : "Английский-A2, Физфак, Зорге, 10.40 – 13.05",
"disciplineid" : 26027,
"semesterid" : 11
},
{
"id" : 65,
"name" : "Английский-B1, Физфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26028,
"semesterid" : 11
},
{
"id" : 66,
"name" : "Английский-A1, Мехмат, Мильчакова, 8.00 – 10.25",
"disciplineid" : 26029,
"semesterid" : 11
},
{
"id" : 67,
"name" : "Английский-A1, Мехмат, Мильчакова, 10.40 – 13.05",
"disciplineid" : 26030,
"semesterid" : 11
},
{
"id" : 68,
"name" : "Английский-A1, Мехмат, Мильчакова, 13.45 – 16.10",
"disciplineid" : 26031,
"semesterid" : 11
},
{
"id" : 69,
"name" : "Английский-A2, Мехмат, Мильчакова, 8.00 – 10.25",
"disciplineid" : 26032,
"semesterid" : 11
},
{
"id" : 70,
"name" : "Английский-A2, Мехмат, Мильчакова, 10.40 – 13.05",
"disciplineid" : 26033,
"semesterid" : 11
},
{
"id" : 71,
"name" : "Английский-A2, Мехмат, Мильчакова, 13.45 – 16.10",
"disciplineid" : 26034,
"semesterid" : 11
},
{
"id" : 72,
"name" : "Английский-B1, Мехмат, Мильчакова, 8.00 – 10.25",
"disciplineid" : 26035,
"semesterid" : 11
},
{
"id" : 73,
"name" : "Английский-B1, Мехмат, Мильчакова, 10.40 – 13.05",
"disciplineid" : 26036,
"semesterid" : 11
},
{
"id" : 74,
"name" : "Английский-B1, Мехмат, Мильчакова, 13.45 – 16.10",
"disciplineid" : 26037,
"semesterid" : 11
},
{
"id" : 75,
"name" : "Английский-B2, Мехмат, Мильчакова, 10.40 – 13.05",
"disciplineid" : 26038,
"semesterid" : 11
},
{
"id" : 76,
"name" : "Английский-C1, Мехмат, Мильчакова, 8.00 – 10.25",
"disciplineid" : 26039,
"semesterid" : 11
},
{
"id" : 77,
"name" : "Английский-A1, Химфак, Зорге, 10.40 – 13.05",
"disciplineid" : 26040,
"semesterid" : 11
},
{
"id" : 78,
"name" : "Английский-A2, Химфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26041,
"semesterid" : 11
},
{
"id" : 79,
"name" : "Английский-B1, Химфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26042,
"semesterid" : 11
},
{
"id" : 80,
"name" : "Английский-B1, Химфак, Зорге, 10.40 – 13.05",
"disciplineid" : 26043,
"semesterid" : 11
},
{
"id" : 81,
"name" : "Английский-A1, ИНоЗ, Зорге, 8.00 – 10.25",
"disciplineid" : 26044,
"semesterid" : 11
},
{
"id" : 82,
"name" : "Английский-A1, ИНоЗ, Зорге, 10.40 – 13.05",
"disciplineid" : 26045,
"semesterid" : 11
},
{
"id" : 83,
"name" : "Английский-A1, ИНоЗ, Зорге, 13.45 – 16.10",
"disciplineid" : 26046,
"semesterid" : 11
},
{
"id" : 84,
"name" : "Английский-A2, ИНоЗ, Зорге, 13.45 – 16.10",
"disciplineid" : 26047,
"semesterid" : 11
},
{
"id" : 85,
"name" : "Английский-A2, ИНоЗ, Зорге, 10.40 – 13.05",
"disciplineid" : 26048,
"semesterid" : 11
},
{
"id" : 86,
"name" : "Английский-A1, АБиБ, 8.00 – 10.25",
"disciplineid" : 26049,
"semesterid" : 11
},
{
"id" : 87,
"name" : "Английский-A2, АБиБ, 8.00 – 10.25",
"disciplineid" : 26050,
"semesterid" : 11
},
{
"id" : 88,
"name" : "Английский-A2, АБиБ, 10.40 – 13.05",
"disciplineid" : 26051,
"semesterid" : 11
},
{
"id" : 89,
"name" : "Английский-B1, АБиБ, 8.00 – 10.25",
"disciplineid" : 26052,
"semesterid" : 11
},
{
"id" : 90,
"name" : "Английский-A1, ААиИ, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 26053,
"semesterid" : 11
},
{
"id" : 91,
"name" : "Английский-A1, ААиИ, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26054,
"semesterid" : 11
},
{
"id" : 92,
"name" : "Английский-A2, ААиИ, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 26055,
"semesterid" : 11
},
{
"id" : 93,
"name" : "Английский-A2, ААиИ, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26056,
"semesterid" : 11
},
{
"id" : 94,
"name" : "Английский-B1, ААиИ, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 26057,
"semesterid" : 11
},
{
"id" : 95,
"name" : "Английский-B2, ААиИ, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26058,
"semesterid" : 11
},
{
"id" : 96,
"name" : "Английский-C1, ИФЖиМК, Пушкинская, 13.45 – 16.10",
"disciplineid" : 26059,
"semesterid" : 11
},
{
"id" : 97,
"name" : "Английский-B1, ИФЖиМК, Пушкинская, 13.45 – 16.10",
"disciplineid" : 26060,
"semesterid" : 11
},
{
"id" : 98,
"name" : "Английский-A2, ИФЖиМК, Пушкинская, 13.45 – 16.10",
"disciplineid" : 26061,
"semesterid" : 11
},
{
"id" : 99,
"name" : "Английский-B2, ИФЖиМК, Пушкинская, 10.40 – 13.05",
"disciplineid" : 26062,
"semesterid" : 11
},
{
"id" : 100,
"name" : "Английский-B1, ИФЖиМК, Пушкинская, 8.00 – 10.25",
"disciplineid" : 26063,
"semesterid" : 11
},
{
"id" : 101,
"name" : "Английский-B1, ИФЖиМК, Пушкинская, 10.40 – 13.05",
"disciplineid" : 26064,
"semesterid" : 11
},
{
"id" : 102,
"name" : "Немецкий-A1, ИИиМО, Б. Садовая, 10.40 – 13.05",
"disciplineid" : 26065,
"semesterid" : 11
},
{
"id" : 103,
"name" : "Немецкий-A1, ИИиМО, Б. Садовая, 13.45 – 16.10",
"disciplineid" : 26066,
"semesterid" : 11
},
{
"id" : 104,
"name" : "Немецкий-A1, Экономфак, Горького, 13.45 – 16.10",
"disciplineid" : 26067,
"semesterid" : 11
},
{
"id" : 105,
"name" : "Немецкий-B1, ИИиМО, Б. Садовая, 16.30 – 18.55",
"disciplineid" : 26068,
"semesterid" : 11
},
{
"id" : 106,
"name" : "Немецкий-A0, Физфак, Зорге, 8.00 – 10.25",
"disciplineid" : 26069,
"semesterid" : 11
},
{
"id" : 107,
"name" : "Немецкий-A0, Физфак, Зорге, 10.40 – 13.05",
"disciplineid" : 26070,
"semesterid" : 11
},
{
"id" : 108,
"name" : "Немецкий-A0, Физфак, Зорге, 13.45 – 16.10",
"disciplineid" : 26071,
"semesterid" : 11
},
{
"id" : 109,
"name" : "Немецкий-A1, Физфак, Зорге, 16.30 – 18.55",
"disciplineid" : 26072,
"semesterid" : 11
},
{
"id" : 110,
"name" : "Немецкий-A1, ИФиСПН, Днепровский, 8.00 – 10.25",
"disciplineid" : 26073,
"semesterid" : 11
},
{
"id" : 111,
"name" : "Немецкий-A1, АПП, Днепровский, 8.00 – 10.25",
"disciplineid" : 26074,
"semesterid" : 11
},
{
"id" : 112,
"name" : "Французский-A2, ИФЖиМК, Пушкинская, 10.40 – 13.05",
"disciplineid" : 26075,
"semesterid" : 11
},
{
"id" : 113,
"name" : "Французский-A2, АПП, Днепровский, 13.45 – 16.10",
"disciplineid" : 26076,
"semesterid" : 11
},
{
"id" : 114,
"name" : "Французский-A2, Факультет управления, Стачки, 10.40 – 13.05",
"disciplineid" : 26077,
"semesterid" : 11
},
{
"id" : 115,
"name" : "Немецкий-A0, ИИиМО, Б. Садовая, 8.00 – 10.25",
"disciplineid" : 26078,
"semesterid" : 11
},
{
"id" : 116,
"name" : "Французский-A0, ИФЖиМК, Пушкинская, 8.00 – 10.25",
"disciplineid" : 26079,
"semesterid" : 11
},
{
"id" : 117,
"name" : "Французский-A0, Факультет управления, Стачки, 8.00 – 10.25",
"disciplineid" : 26080,
"semesterid" : 11
}
]}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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