diff --git a/DB_IaT/Debug64/.cmake/api/v1/reply/index-2024-11-05T07-16-53-0003.json b/DB_IaT/Debug64/.cmake/api/v1/reply/index-2024-11-13T06-52-10-0276.json similarity index 100% rename from DB_IaT/Debug64/.cmake/api/v1/reply/index-2024-11-05T07-16-53-0003.json rename to DB_IaT/Debug64/.cmake/api/v1/reply/index-2024-11-13T06-52-10-0276.json diff --git a/DB_IaT/Debug64/.ninja_deps b/DB_IaT/Debug64/.ninja_deps index 6818c57..9544226 100644 Binary files a/DB_IaT/Debug64/.ninja_deps and b/DB_IaT/Debug64/.ninja_deps differ diff --git a/DB_IaT/Debug64/.ninja_log b/DB_IaT/Debug64/.ninja_log index b50fb95..9f827a6 100644 --- a/DB_IaT/Debug64/.ninja_log +++ b/DB_IaT/Debug64/.ninja_log @@ -1,78 +1,121 @@ # ninja log v5 -939 1049 7525981713172857 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c -1076 3519 7525981737859367 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 -57 1294 7526001966157653 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173 -17 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 -17 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 -17 56 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 -939 1049 7525981713172857 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c -17 56 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 -1053 3234 7525981734783034 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 3bdbb777b1ca4f9f -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 -17 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 1061 3402 7525981736671953 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 544a146272360182 -17 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 -1294 1665 7526001969842689 libInstructorsAndTrainees.dll d721655f2d9255b7 -17 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 -13 253 7524942129142836 build.ninja 76aa11f472515be0 -1073 3685 7525981739493337 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881 -1064 2292 7525981725238885 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 7aaac6302b47a301 -1079 3311 7525981735671562 CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj 50eb3e676aec3cc5 -1294 1665 7526001969842689 libInstructorsAndTrainees.dll.a d721655f2d9255b7 -17 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 -1101 1321 7525981715851341 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 54d07c59b3f7a2cf -1012 3479 7520793522676004 CMakeFiles/InstructorsAndTrainees.dir/instructorsAndTrainees.cpp.obj ff3fcdc370580ca2 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 -17 56 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 -17 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 -1093 3696 7525981739656070 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1 -17 56 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 -1049 3541 7525981738084357 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 -1070 3598 7525981738646009 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b -13 41 0 CMakeFiles/clean.additional 7155004b3956b606 -17 56 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 -1067 3354 7525981736197679 CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj b3eab31811ef0e17 -17 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 -1058 3194 7525981734239997 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj 4bd8bab8b1110ba7 -1083 3690 7525981739594632 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8 -1098 3612 7525981738797694 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +939 1049 7525981713172857 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +1053 3234 7525981734783034 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 3bdbb777b1ca4f9f +17 402 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +402 1698 7531838035821493 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f +61 1098 7531240543218859 CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj 50eb3e676aec3cc5 +17 402 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +102 1804 7531837214477402 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1 1086 3403 7525981736691900 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj e02fcfe10480c54f 41 51 0 clean 9c4b4372737ab8da -17 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +13 253 7531839302069843 build.ninja 76aa11f472515be0 +89 1836 7531837214806736 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881 +1064 2292 7525981725238885 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 7aaac6302b47a301 +405 1768 7531838036529893 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +56 1112 7531242705228988 CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj b3eab31811ef0e17 +17 402 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +1012 3479 7520793522676004 CMakeFiles/InstructorsAndTrainees.dir/instructorsAndTrainees.cpp.obj ff3fcdc370580ca2 +1101 1321 7525981715851341 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 54d07c59b3f7a2cf +1112 1469 7531242708771354 libInstructorsAndTrainees.dll.a d721655f2d9255b7 +17 402 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +1112 1469 7531242708771354 libInstructorsAndTrainees.dll d721655f2d9255b7 +17 402 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +105 1888 7531837215325145 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +92 1870 7531837215145617 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +81 1983 7531837216272616 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173 +17 402 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +17 402 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +1058 3194 7525981734239997 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj 4bd8bab8b1110ba7 1090 3335 7525981736006531 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj f1f85077e88e8c7 -1051 3803 7525981740695693 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100 -19 57 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 -19 57 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 -19 57 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 -57 1303 7526014018240729 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173 -1303 1677 7526014021949564 libInstructorsAndTrainees.dll d721655f2d9255b7 -1303 1677 7526014021949564 libInstructorsAndTrainees.dll.a d721655f2d9255b7 +17 402 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +13 41 0 CMakeFiles/clean.additional 7155004b3956b606 +86 1871 7531837215155595 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b +98 2027 7531837216691491 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8 +939 1049 7525981713172857 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c +17 353 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +17 353 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +17 353 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +382 1964 7531839339498391 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e +378 2067 7531839340529769 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1 +369 2099 7531839340850124 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b +354 2126 7531839341109418 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f +359 2160 7531839341449390 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173 +366 2161 7531839341449390 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881 +375 2210 7531839341950869 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8 +356 2212 7531839341970816 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100 +363 2272 7531839342578795 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b +17 54 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +17 54 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 +17 54 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 +61 1646 7531839533616695 CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj b3eab31811ef0e17 +73 1706 7531839534240696 CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj 50eb3e676aec3cc5 +79 1722 7531839534380323 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1 +64 1741 7531839534601666 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b +69 1807 7531839535259884 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b +54 1819 7531839535390685 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f +83 1852 7531839535709841 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e +76 1855 7531839535739769 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8 +59 1861 7531839535800849 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173 +67 1866 7531839535859449 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881 +56 1976 7531839536960691 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100 +1976 2385 7531839541029361 libInstructorsAndTrainees.dll d721655f2d9255b7 +1976 2385 7531839541029361 libInstructorsAndTrainees.dll.a d721655f2d9255b7 diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj index 7f19299..65e7c24 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj index 596b096..085c6f6 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/databaseinstructors.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj index 1f341be..6e1e133 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj index 1388639..950563c 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj index 9ccb48f..fd17e3d 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj index 920a463..5921d00 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj index c20cac6..fe372dd 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj index 6d2d594..62a40ad 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/databasetrainees.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj index 1928e44..a8ff4da 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj index 06a6707..e99c112 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj index 553b7a2..6de635c 100644 Binary files a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj and b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj differ diff --git a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen.dir/ParseCache.txt b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen.dir/ParseCache.txt index 1dc59ee..b74ac54 100644 --- a/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen.dir/ParseCache.txt +++ b/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen.dir/ParseCache.txt @@ -1,12 +1,17 @@ # Generated by CMake. Changes will be overwritten. +D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h + mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp + uic:ui_dialogeditinstructor.h D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.cpp uic:ui_dialogedittrainee.h D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.h mmc:Q_OBJECT -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.h +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.h +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h mmc:Q_OBJECT + uic:ui_dialogeditgroup.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.h mmc:Q_OBJECT D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.cpp @@ -15,47 +20,42 @@ D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp uic:ui_instructorsandtraineeswidget.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.h mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.h + mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h + mmc:Q_OBJECT D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsAndTrainees_global.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h mmc:Q_OBJECT -D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h - mmc:Q_OBJECT -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h - mmc:Q_OBJECT -D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp - uic:ui_viewerinstructors.h -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp - uic:ui_viewertrainees.h -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h - mmc:Q_OBJECT - uic:ui_dialogeditgroup.h -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp - uic:ui_editortrainees.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.h mmc:Q_OBJECT uic:ui_dialogeditinstructor.h +D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp + uic:ui_editortrainees.h +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp +D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.h mmc:Q_OBJECT uic:ui_dialogauthorizationinstructor.h -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.h -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.h - mmc:Q_OBJECT -D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.h - mmc:Q_OBJECT D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.h mmc:Q_OBJECT D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.h + mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp + uic:ui_viewertrainees.h +D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h + mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h + mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp + uic:ui_viewerinstructors.h +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp uic:ui_taskswidget.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp uic:ui_editorinstructors.h D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp -D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp - uic:ui_dialogeditinstructor.h -D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h - mmc:Q_OBJECT +D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp diff --git a/DB_IaT/Debug64/libInstructorsAndTrainees.dll b/DB_IaT/Debug64/libInstructorsAndTrainees.dll index 0e60854..efd31e5 100644 Binary files a/DB_IaT/Debug64/libInstructorsAndTrainees.dll and b/DB_IaT/Debug64/libInstructorsAndTrainees.dll differ diff --git a/DB_IaT/Debug64/libInstructorsAndTrainees.dll.a b/DB_IaT/Debug64/libInstructorsAndTrainees.dll.a index 7126b7d..2d867e1 100644 Binary files a/DB_IaT/Debug64/libInstructorsAndTrainees.dll.a and b/DB_IaT/Debug64/libInstructorsAndTrainees.dll.a differ diff --git a/DB_IaT/InstructorsAndTrainees/CMakeLists.txt.user b/DB_IaT/InstructorsAndTrainees/CMakeLists.txt.user index 20ad725..0290d35 100644 --- a/DB_IaT/InstructorsAndTrainees/CMakeLists.txt.user +++ b/DB_IaT/InstructorsAndTrainees/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp b/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp index 5f35934..21d1bec 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp +++ b/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.cpp @@ -6,8 +6,6 @@ DataBaseInstructors::DataBaseInstructors(DataBaseLMS* dbLMS): adminMode(false) { this->dbLMS = dbLMS; - - LoadInstructorsPSQL(); } DataBaseInstructors::~DataBaseInstructors() @@ -15,229 +13,91 @@ DataBaseInstructors::~DataBaseInstructors() } -void DataBaseInstructors::LoadInstructorsPSQL() -{ - listOfInstructors.clear(); - listOfInstructors = dbLMS->selectAllInstructors(); - - QApplication::beep(); -} - bool DataBaseInstructors::AuthorizationInstructor(QString login, QString password) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) + if(! dbLMS->transactionBegin()) + return false; + + if(int id = dbLMS->selectInstructorID(login, password)) { - if(listOfInstructors[i].getArchived()) - continue; - - if(listOfInstructors[i].getLogin() == login && listOfInstructors[i].getPassword() == password) - { - Instructor instructor = listOfInstructors[i]; - instructor.setLoggedIn(true); - - int id = dbLMS->updateInstructor(instructor); - - if(id) - { - LoadInstructorsPSQL(); - return true; - } - else - return false; - } + if(dbLMS->updateInstructorLoggedIn(id, true)) + return dbLMS->transactionEnd(); } + + dbLMS->transactionEnd(); return false; } bool DataBaseInstructors::deAuthorizationInstructor(QString login) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) + if(! dbLMS->transactionBegin()) + return false; + + if(int id = dbLMS->selectInstructorID(login)) { - if(listOfInstructors[i].getArchived()) - continue; - - if(listOfInstructors[i].getLogin() == login) - { - Instructor instructor = listOfInstructors[i]; - instructor.setLoggedIn(false); - - int id = dbLMS->updateInstructor(instructor); - - if(id) - { - LoadInstructorsPSQL(); - return true; - } - else - return false; - } + if(dbLMS->updateInstructorLoggedIn(id, false)) + return dbLMS->transactionEnd(); } + + dbLMS->transactionEnd(); return false; } +QList DataBaseInstructors::getListInstructors() +{ + return dbLMS->selectAllInstructors(); +} + Instructor DataBaseInstructors::getInstructor(int id) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getID() == id) - return listOfInstructors[i]; - } - return Instructor(); + return dbLMS->selectInstructor(id); } -QString DataBaseInstructors::getNameInstructorByLogin(QString login) -{ - for(Instructor instructor : listOfInstructors) - { - if(instructor.getLogin() == login) - return instructor.getName(); - } - return QString(QStringLiteral("")); -} -/* -QString DataBaseInstructors::getAuthorizedInstructorName() -{ - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getLoggedIn()) - return listOfInstructors[i].getName(); - } - return QStringLiteral(""); -}*/ - int DataBaseInstructors::newInstructor() { - Instructor instructor; - instructor.setName(generateDefaultNameInstructor()); - instructor.setLogin(generateDefaultLoginInstructor()); - instructor.setPassword(QStringLiteral("")); - instructor.setIsAdmin(false); - instructor.setArchived(false); - instructor.setLoggedIn(false); - - int id = dbLMS->insertInstructor(instructor); - - if(id) - { - LoadInstructorsPSQL(); - return id; - } - else - return 0; + return dbLMS->insertInstructor(); } int DataBaseInstructors::deleteInstructor(int id) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getID() == id) - { - int id_del = dbLMS->deleteInstructor(id); - - if(id_del) - { - LoadInstructorsPSQL(); - return id_del; - } - else - return 0; - } - } - return 0; + return dbLMS->deleteInstructor(id); } int DataBaseInstructors::editInstructor(Instructor instructor) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) + //Проверка дублирования логина и имени + QList listInstructors = dbLMS->selectAllInstructors(); + for(Instructor exist_instructor : listInstructors) { - if(listOfInstructors[i].getID() == instructor.getID()) - { - if( (!checkExistNameInstructor(instructor.getName()) || instructor.getName() == listOfInstructors[i].getName()) && - (!checkExistLoginInstructor(instructor.getLogin()) || instructor.getLogin() == listOfInstructors[i].getLogin()) ) - { - int id = dbLMS->updateInstructor(instructor); + if(instructor.getLogin() == exist_instructor.getLogin() && instructor.getID() != exist_instructor.getID()) + {//Логин уже существует! + QMessageBox::critical(nullptr, tr("Editing error!"), + tr("An existing instructor login has been entered.\nThe changes will not be accepted.")); + return 0; + } - if(id) - { - LoadInstructorsPSQL(); - return id; - } - else - return 0; - } + if(instructor.getName() == exist_instructor.getName() && instructor.getID() != exist_instructor.getID()) + {//Имя уже существует + QMessageBox::warning(nullptr, tr("Editing warning!"), + tr("An existing instructor name has been entered.")); + //return 0; } } - return 0; + + return dbLMS->updateInstructor(instructor); } bool DataBaseInstructors::isAdmin(int id) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getID() == id) - return listOfInstructors[i].getIsAdmin(); - } - return false; + return dbLMS->selectInstructorIsAdmin(id); } bool DataBaseInstructors::isArchived(int id) { - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getID() == id) - return listOfInstructors[i].getArchived(); - } - return false; + return dbLMS->selectInstructorArchived(id); } -QString DataBaseInstructors::generateDefaultNameInstructor() +bool DataBaseInstructors::existLogin(QString login) { - int numInstructor = 0; - QString name; - do - { - name = QStringLiteral("<") + tr("Instructor") + QStringLiteral(" ") + QString::number(++numInstructor) + QStringLiteral(">"); - }while(checkExistNameInstructor(name)); - return name; -} -bool DataBaseInstructors::checkExistNameInstructor(QString name) -{ - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getName() == name) - return true; - } - return false; -} - -QString DataBaseInstructors::generateDefaultLoginInstructor() -{ - int numInstructor = 0; - QString login; - do - { - login = QStringLiteral(""); - }while(checkExistLoginInstructor(login)); - return login; -} - -bool DataBaseInstructors::checkExistLoginInstructor(QString login) -{ - //Инструкторы - for(int i = 0; i < listOfInstructors.count(); i++) - { - if(listOfInstructors[i].getLogin() == login) - return true; - } - return false; } diff --git a/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h b/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h index 22f48b0..600a0ae 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h +++ b/DB_IaT/InstructorsAndTrainees/instructors/databaseinstructors.h @@ -5,10 +5,8 @@ #include #include "instructorsAndTrainees_global.h" #include "instructor.h" - #include "databaselms.h" - class DataBaseInstructors : QObject { Q_OBJECT @@ -17,19 +15,12 @@ public: DataBaseInstructors(DataBaseLMS* dbLMS); ~DataBaseInstructors(); - void LoadInstructorsPSQL(); - bool AuthorizationInstructor(QString login, QString password); bool deAuthorizationInstructor(QString login); - QList getListInstructors(){ return listOfInstructors; } //Для загрузки - + QList getListInstructors(); Instructor getInstructor(int id); - QString getNameInstructorByLogin(QString login); - - //QString getAuthorizedInstructorName(); - int newInstructor(); int deleteInstructor(int id); int editInstructor(Instructor instructor); @@ -37,19 +28,10 @@ public: bool isAdmin(int id); bool isArchived(int id); + bool existLogin(QString login); private: - QString generateDefaultNameInstructor(); - bool checkExistNameInstructor(QString name); - - QString generateDefaultLoginInstructor(); - bool checkExistLoginInstructor(QString login); - -private: - QList listOfInstructors; - bool adminMode; - DataBaseLMS* dbLMS; }; diff --git a/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp b/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp index c4979ce..26cb0e0 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp +++ b/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp @@ -12,6 +12,9 @@ EditorInstructors::EditorInstructors(DataBaseInstructors* db, bool adminMode, QW preparationTreeWidget(ui->treeWidget); setNotLoggedInVisible(true); loadInstructorsFromDB(); + + if(adminMode) + ui->btnArchive->click(); } EditorInstructors::~EditorInstructors() @@ -21,9 +24,11 @@ EditorInstructors::~EditorInstructors() void EditorInstructors::on_btnNewInstructor_clicked() { - int id = dbInstructors->newInstructor(); - loadInstructorsFromDB(); - setCurrentInstructor(id); + if(int id = dbInstructors->newInstructor()) + { + loadInstructorsFromDB(); + setCurrentInstructor(id); + } } void EditorInstructors::on_btnDeleteInstructor_clicked() @@ -36,7 +41,7 @@ void EditorInstructors::on_btnDeleteInstructor_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(0).toInt(); + int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); if(dbInstructors->isAdmin(id)) {//Это Админ! @@ -46,8 +51,8 @@ void EditorInstructors::on_btnDeleteInstructor_clicked() if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) { - dbInstructors->deleteInstructor(id); - loadInstructorsFromDB(); + if(dbInstructors->deleteInstructor(id)) + loadInstructorsFromDB(); } } } @@ -63,9 +68,11 @@ void EditorInstructors::on_btnToOrFromArchive_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(0).toInt(); + int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); Instructor instructor = dbInstructors->getInstructor(id); + if(instructor.getID() == 0) + return; if(instructor.getArchived()) {//Архивный @@ -103,29 +110,45 @@ void EditorInstructors::on_btnEdit_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(0).toInt(); + int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); DialogEditInstructor dlg(this); - dlg.setInstructor(dbInstructors->getInstructor(id)); - switch( dlg.exec() ) + Instructor instructor = dbInstructors->getInstructor(id); + if(instructor.getID() == 0) + return; + + dlg.setInstructor(instructor); + + while (true) { - case QDialog::Accepted: - { - if(int id_edit = dbInstructors->editInstructor(dlg.getInstructor())) + switch( dlg.exec() ) { - loadInstructorsFromDB(); - setCurrentInstructor(id_edit); + case QDialog::Accepted: + { + Instructor instructor_edit = dlg.getInstructor(); + + if(int id_edit = dbInstructors->editInstructor(instructor_edit)) + {//Отредактировано + loadInstructorsFromDB(); + setCurrentInstructor(id_edit); + return; + } + else + { + dlg.setInstructor(instructor_edit); + continue; + } + + break; + } + case QDialog::Rejected: + return; + break; + default: + return; + break; } - else - QMessageBox::critical(this, tr("Editing error!"), - tr("An existing instructor name or login has been entered.\nThe changes will not be accepted.")); - break; - } - case QDialog::Rejected: - break; - default: - break; } } } @@ -148,7 +171,7 @@ void EditorInstructors::on_treeWidget_currentItemChanged(QTreeWidgetItem *curren if(treeItemParent == nullptr) {//Выбран инструктор - int id = current->text(0).toInt(); + int id = current->text(ColumnsTreeInsructors::clmn_ID).toInt(); if(dbInstructors->isArchived(id)) {//Архивный @@ -189,7 +212,7 @@ void EditorInstructors::setCurrentInstructor(int id) { QTreeWidgetItem * item = treeWidget->topLevelItem(i); if(item != nullptr) - if(item->text(0).toInt() == id) + if(item->text(ColumnsTreeInsructors::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(item); break; diff --git a/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp b/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp index 64125ff..b06fdca 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp +++ b/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp @@ -2,9 +2,9 @@ #include #include "instructorsview.h" -InstructorsView::InstructorsView(DataBaseInstructors* db, TypeView type, bool adminMode, QWidget *parent): +InstructorsView::InstructorsView(DataBaseInstructors* dbInstructors, TypeView type, bool adminMode, QWidget *parent): CommonView(type, adminMode, parent), - dbInstructors(db) + dbInstructors(dbInstructors) { } @@ -22,30 +22,39 @@ void InstructorsView::preparationTreeWidget(QTreeWidget* tree) treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;")); - treeWidget->setColumnWidth(0, 50); - treeWidget->setColumnWidth(1, 250); - treeWidget->setColumnWidth(2, 100); - treeWidget->setColumnWidth(3, 100); - treeWidget->setColumnWidth(4, 100); - treeWidget->setColumnWidth(5, 80); - treeWidget->setColumnWidth(6, 80); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_ID, 50); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Instructor, 250); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Login, 100); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Password, 100); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Administrator, 100); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 80); + treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 80); if(typeView == TypeView::onlyView) {//onlyView - treeWidget->setColumnHidden(2, true); - treeWidget->setColumnHidden(3, true); - treeWidget->setColumnHidden(5, true); + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); + //treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Login, true); + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Password, true); + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true); + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Administrator, true); } else {//control - treeWidget->setColumnHidden(5, true); + if(adminMode) + { + archiveVisible = true; + notLoggedInVisible = true; + } + else + { + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true); + } } } void InstructorsView::loadInstructorsFromDB() { - dbInstructors->LoadInstructorsPSQL(); - if(treeWidget == nullptr) return; @@ -59,43 +68,46 @@ void InstructorsView::loadInstructorsFromDB() { QTreeWidgetItem *ItemInstructor = new QTreeWidgetItem(treeWidget); - ItemInstructor->setText(0, QString::number(instructor.getID())); - ItemInstructor->setText(1, instructor.getName()); - ItemInstructor->setText(2, instructor.getLogin()); - ItemInstructor->setText(3, instructor.getPassword()); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_ID, QString::number(instructor.getID())); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Instructor, instructor.getName()); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Login, instructor.getLogin()); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, instructor.getPassword()); + + //Сокрытие пароля + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******")); if(instructor.getArchived()) {//Архивный - ItemInstructor->setText(5, tr("yes")); - ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/instructorArchive.png"))); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/instructorArchive.png"))); setItemColorArchive(ItemInstructor); } else {//Не Архивный - ItemInstructor->setText(5, tr("no")); - ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/instructor.png"))); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("no")); + ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/instructor.png"))); setItemColorNoArchive(ItemInstructor); } if(instructor.getIsAdmin()) {//Админ - ItemInstructor->setText(4, tr("yes")); - ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/admin.png"))); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/admin.png"))); } else {//Не Админ - ItemInstructor->setText(4, tr("no")); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("no")); } if(instructor.getLoggedIn()) {//Залогинен - ItemInstructor->setText(6, tr("yes")); - ItemInstructor->setIcon(6, QIcon(QStringLiteral(":/icons/circleGreen.png"))); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGreen.png"))); } else {//Не Залогинен - ItemInstructor->setText(6, tr("no")); - ItemInstructor->setIcon(6, QIcon(QStringLiteral(":/icons/circleGray.png"))); + ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("no")); + ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGray.png"))); } //Скрываем архивных (при необходимости) @@ -110,7 +122,7 @@ void InstructorsView::loadInstructorsFromDB() } treeWidget->setSortingEnabled(true); - treeWidget->sortItems(1, Qt::SortOrder::AscendingOrder); + treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder); treeWidget->expandAll(); if(typeView == TypeView::control) @@ -123,7 +135,7 @@ void InstructorsView::loadInstructorsFromDB() void InstructorsView::reSetHeadTreeWidget() { - QStringList listHeaders = {tr("ID"), tr("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged")}; + QStringList listHeaders = {tr("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged"), tr("ID")}; treeWidget->setHeaderLabels(listHeaders); } diff --git a/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h b/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h index 6605ee8..7c75ca1 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h +++ b/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h @@ -12,7 +12,18 @@ class InstructorsView: public CommonView Q_OBJECT public: - InstructorsView(DataBaseInstructors* db, TypeView type, bool adminMode, QWidget *parent = nullptr); + InstructorsView(DataBaseInstructors* dbInstructors, TypeView type, bool adminMode, QWidget *parent = nullptr); + +protected: + enum ColumnsTreeInsructors{ + clmn_Instructor = 0, + clmn_Login, + clmn_Password, + clmn_Administrator, + clmn_Archived, + clmn_Logged, + clmn_ID + }; protected: void preparationTreeWidget(QTreeWidget* tree); diff --git a/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp b/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp index f9acb76..c57ebd3 100644 --- a/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp +++ b/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp @@ -66,7 +66,7 @@ void ViewerInstructors::on_btnEditorInstructors_clicked() QHBoxLayout *layout = new QHBoxLayout(dialog); layout->addWidget(&editorInstructors); dialog->setWindowTitle(tr("Editor of instructors")); - dialog->setMinimumSize(1400, 800); + dialog->setMinimumSize(1600, 800); dialog->exec(); loadInstructorsFromDB(); diff --git a/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index ae0fccd..8835f8c 100644 --- a/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -7,7 +7,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : QWidget(parent), ui(new Ui::InstructorsAndTraineesWidget), adminMode(false), - loginInstructorLoggedIn(QStringLiteral("")) + loginInstructorLoggedInLocal(QStringLiteral("")) { ui->setupUi(this); @@ -25,13 +25,13 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : ui->verticalLayout->addWidget(m_viewerTrainees); ui->verticalLayout->addWidget(m_viewerInstructors); - m_viewerTrainees->setMinimumSize(1400, 700); - m_viewerInstructors->setMinimumSize(1400, 400); + m_viewerTrainees->setMinimumSize(1600, 700); + m_viewerInstructors->setMinimumSize(1600, 400); } InstructorsAndTraineesWidget::~InstructorsAndTraineesWidget() { - deAuthorizationInstructor(loginInstructorLoggedIn); + deAuthorizationInstructor(loginInstructorLoggedInLocal); delete m_viewerInstructors; delete m_viewerTrainees; @@ -57,7 +57,7 @@ bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent) if(dataBaseInstructors->AuthorizationInstructor(login, password)) { - loginInstructorLoggedIn = login; + loginInstructorLoggedInLocal = login; if(login == QStringLiteral("admin")) adminMode = true; @@ -82,9 +82,9 @@ bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent) return false; } -bool InstructorsAndTraineesWidget::authorizationCompleted() +bool InstructorsAndTraineesWidget::authorizationIsCompleted() { - if(loginInstructorLoggedIn == QStringLiteral("")) + if(loginInstructorLoggedInLocal == QStringLiteral("")) return false; else return true; diff --git a/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h b/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h index 76d0e89..a27cae4 100644 --- a/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h +++ b/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h @@ -7,6 +7,7 @@ #include "databaseinstructors.h" #include "viewertrainees.h" #include "viewerinstructors.h" +#include "interfacedatabaselms.h" namespace Ui { class InstructorsAndTraineesWidget; @@ -23,7 +24,7 @@ public: public: //Авторизация инструктора локальная bool authorizationInstructorLocal(QWidget* parent = nullptr); - bool authorizationCompleted(); + bool authorizationIsCompleted(); //Авторизация обучаемого на клиенте bool authorizationTrainee(QString login, QString password, QString classroom_name = QStringLiteral(""), QString computer_name = QStringLiteral("")); @@ -45,7 +46,7 @@ private: ViewerInstructors* m_viewerInstructors; bool adminMode; - QString loginInstructorLoggedIn; + QString loginInstructorLoggedInLocal; }; #endif // INSTRUCTORSANDTRAINEESWIDGET_H diff --git a/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp b/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp index 2327319..8f2b6ee 100644 --- a/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp +++ b/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp @@ -27,12 +27,15 @@ void TasksWidget::slot_LanguageChanged(QString language) void TasksWidget::viewListTasksForTrainee(QString login) { - QStringList listTasks; + /* + QList listTasks; + QStringList strListTasks; listTasks = pDbTrainees->getTasks(login); ui->listWidgetTasks->clear(); ui->listWidgetTasks->addItems(listTasks); + */ } void TasksWidget::changeEvent(QEvent *event) diff --git a/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp b/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp index cc48ef2..8c38015 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp +++ b/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.cpp @@ -2,23 +2,10 @@ #include #include -DataBaseTrainees::DataBaseTrainees(DataBaseLMS* dbLMS) +DataBaseTrainees::DataBaseTrainees(DataBaseLMS* dbLMS): + adminMode(false) { - listOfColorGroup.append(QColor(170, 190, 170)); - listOfColorGroup.append(QColor(180, 180, 220)); - listOfColorGroup.append(QColor(240, 220, 230)); - listOfColorGroup.append(QColor(85, 170, 127)); - listOfColorGroup.append(QColor(170, 115, 120)); - listOfColorGroup.append(QColor(110, 160, 170)); - listOfColorGroup.append(QColor(110, 170, 130)); - listOfColorGroup.append(QColor(170, 170, 120)); - listOfColorGroup.append(QColor(160, 170, 45)); - listOfColorGroup.append(QColor(170, 140, 60)); - listOfColorGroup.append(QColor(200, 200, 200)); - this->dbLMS = dbLMS; - - LoadTraineesGroupsPSQL(); } DataBaseTrainees::~DataBaseTrainees() @@ -26,430 +13,181 @@ DataBaseTrainees::~DataBaseTrainees() } -void DataBaseTrainees::LoadTraineesGroupsPSQL() +void DataBaseTrainees::transactionBegin() { - listOfTrainees.clear(); - listOfGroups.clear(); + dbLMS->transactionBegin(); +} - listOfTrainees = dbLMS->selectAllTrainees(); - listOfGroups = dbLMS->selectAllGroups(); - - QApplication::beep(); +void DataBaseTrainees::transactionEnd() +{ + dbLMS->transactionEnd(); } bool DataBaseTrainees::AuthorizationTrainee(QString login, QString password, QString classroom_name, QString computer_name) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) + if(! dbLMS->transactionBegin()) + return false; + + if(int id = dbLMS->selectTraineeID(login, password)) { - if(listOfTrainees[i].getArchived()) - continue; - - if(listOfTrainees[i].getLogin() == login && listOfTrainees[i].getPassword() == password) - { - Trainee trainee = listOfTrainees[i]; - trainee.setLoggedIn(true); - //trainee.setLearnClass(learnClass); - //trainee.setComputer(computer); - - int id = dbLMS->updateTrainee(trainee); - - if(id) - { - LoadTraineesGroupsPSQL(); - return true; - } - else - return false; - } + if(dbLMS->updateTraineeLoggedIn(id, true)) + return dbLMS->transactionEnd(); } + + dbLMS->transactionEnd(); return false; } bool DataBaseTrainees::deAuthorizationTrainee(QString login) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) + if(! dbLMS->transactionBegin()) + return false; + + if(int id = dbLMS->selectTraineeID(login)) { - if(listOfTrainees[i].getArchived()) - continue; - - if(listOfTrainees[i].getLogin() == login) - { - Trainee trainee = listOfTrainees[i]; - trainee.setLoggedIn(false); - //trainee.setLearnClass(QStringLiteral("")); - //trainee.setComputer(QStringLiteral("")); - - int id = dbLMS->updateTrainee(trainee); - - if(id) - { - LoadTraineesGroupsPSQL(); - return true; - } - else - return false; - } + if(dbLMS->updateTraineeLoggedIn(id, false)) + return dbLMS->transactionEnd(); } + + dbLMS->transactionEnd(); return false; } -/* -void DataBaseTrainees::setTasks(QString login, QStringList tasks) +QList DataBaseTrainees::getTasks(int id) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getLogin() == login) - listOfTrainees[i].setTasks(tasks); - } -}*/ - -QStringList DataBaseTrainees::getTasks(QString login) -{ - QStringList tasksStrList; - - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getLogin() == login) - { - QList tasks = listOfTrainees[i].getTasks(); - for(Task task: tasks) - { - tasksStrList.append(task.getName()); - } - } - } - - return tasksStrList; + return dbLMS->selectTasksOfTrainee(id); } QString DataBaseTrainees::getNameTraineeOnComputer(QString computer_name) { + /* for(Trainee trainee : listOfTrainees) { if(trainee.getComputer().getName() == computer_name) return trainee.getName(); - } + }*/ return QString(QStringLiteral("")); } Trainee DataBaseTrainees::getTraineeOnComputer(QString computer_name) { + /* for(Trainee trainee : listOfTrainees) { if(trainee.getComputer().getName() == computer_name) return trainee; - } + }*/ return Trainee(); } QString DataBaseTrainees::getNameTraineeByLogin(QString login) { + /* for(Trainee trainee : listOfTrainees) { if(trainee.getLogin() == login) return trainee.getName(); - } + }*/ return QString(QStringLiteral("")); } -/* -QColor DataBaseTrainees::getColorGroupByLogin(QString login) -{ - QString nameTrainee = getNameTraineeByLogin(login); - Trainee trainee = getTrainee(nameTrainee); - QString nameGroup = trainee.getGroup(); - Group group = getGroup(nameGroup); - return getColorGroup(group.getColor()); -}*/ QList DataBaseTrainees::getListTraineesInGroup(int id) { QList listTrainees; + /* for(Trainee trainee : listOfTrainees) { if(trainee.getGroup().getID() == id) listTrainees.append(trainee); } + */ return listTrainees; } QList DataBaseTrainees::getListGroups() { - return listOfGroups; + return dbLMS->selectAllGroups(); } -/* -QColor DataBaseTrainees::getColorGroup(Group::ColorGroup numColor) -{ - if(numColor > listOfColorGroup.count() - 1) - return listOfColorGroup.at(Group::ColorGroup::colorAther); - return listOfColorGroup.at(numColor); -}*/ +QList DataBaseTrainees::getListTrainees() +{ + return dbLMS->selectAllTrainees(); +} Trainee DataBaseTrainees::getTrainee(int id) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getID() == id) - return listOfTrainees[i]; - } - return Trainee(); + return dbLMS->selectTrainee(id); } Group DataBaseTrainees::getGroup(int id) { - //Группы - for(int i = 0; i < listOfGroups.count(); i++) - { - if(listOfGroups[i].getID() == id) - return listOfGroups[i]; - } - return Group(); + return dbLMS->selectGroup(id); } int DataBaseTrainees::newGroup() { - Group group; - group.setName(generateDefaultNameGroup()); - - int id = dbLMS->insertGroup(group); - - if(id) - { - LoadTraineesGroupsPSQL(); - return id; - } - else - return 0; + return dbLMS->insertGroup(); } int DataBaseTrainees::deleteGroup(int id) { - //Группы - for(int i = 0; i < listOfGroups.count(); i++) - { - if(listOfGroups[i].getID() == id) - { - int id_del = dbLMS->deleteGroup(id); - - if(id_del) - { - LoadTraineesGroupsPSQL(); - return id_del; - } - else - return 0; - } - } - return 0; + return dbLMS->deleteGroup(id); } int DataBaseTrainees::editGroup(Group group) { - //Группы - for(int i = 0; i < listOfGroups.count(); i++) + //Проверка дублирования имени + QList listGroups = dbLMS->selectAllGroups(); + for(Group exist_group : listGroups) { - if(listOfGroups[i].getID() == group.getID()) - { - if(!checkExistNameGroup(group.getName()) || group.getName() == listOfGroups[i].getName()) - { - int id = dbLMS->updateGroup(group); - - if(id) - { - LoadTraineesGroupsPSQL(); - return id; - } - else - return 0; - } - else - { - QMessageBox::critical(nullptr, tr("Editing error!"), - tr("An existing group name has been entered.\nThe changes will not be accepted.")); - return 0; - } + if(group.getName() == exist_group.getName() && group.getID() != exist_group.getID()) + {//Имя уже существует + QMessageBox::critical(nullptr, tr("Editing error!"), + tr("An existing group name has been entered.")); + return 0; } } - return 0; + + return dbLMS->updateGroup(group); } int DataBaseTrainees::newTrainee(int id_group) { - Trainee trainee; - Group group; - group.setID(id_group); - trainee.setGroup(group); - trainee.setName(generateDefaultNameTrainee()); - trainee.setLogin(generateDefaultLoginTrainee()); - trainee.setPassword(QStringLiteral("")); - trainee.setArchived(false); - trainee.setLoggedIn(false); - - int id = dbLMS->insertTrainee(trainee); - - if(id) - { - LoadTraineesGroupsPSQL(); - return id; - } - else - return 0; + return dbLMS->insertTrainee(id_group); } int DataBaseTrainees::deleteTrainee(int id) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getID() == id) - { - int id_del = dbLMS->deleteTrainee(id); - - if(id_del) - { - LoadTraineesGroupsPSQL(); - return id_del; - } - - return 0; - } - } - return 0; + return dbLMS->deleteTrainee(id); } int DataBaseTrainees::editTrainee(Trainee trainee) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) + //Проверка дублирования логина и имени + QList listTrainees = dbLMS->selectAllTrainees(); + for(Trainee exist_trainee : listTrainees) { - if(listOfTrainees[i].getID() == trainee.getID()) - { - if( (!checkExistNameTrainee(trainee.getName()) || trainee.getName() == listOfTrainees[i].getName()) && - (!checkExistLoginTrainee(trainee.getLogin()) || trainee.getLogin() == listOfTrainees[i].getLogin()) ) - { - int id = dbLMS->updateTrainee(trainee); + if(trainee.getLogin() == exist_trainee.getLogin() && trainee.getID() != exist_trainee.getID()) + {//Логин уже существует! + QMessageBox::critical(nullptr, tr("Editing error!"), + tr("An existing trainee login has been entered.\nThe changes will not be accepted.")); + return 0; + } - if(id) - { - LoadTraineesGroupsPSQL(); - return id; - } - else - return 0; - } - else - { - QMessageBox::critical(nullptr, tr("Editing error!"), - tr("An existing trainee's name or login has been entered.\nThe changes will not be accepted.")); - return 0; - } + if(trainee.getName() == exist_trainee.getName() && trainee.getID() != exist_trainee.getID()) + {//Имя уже существует + QMessageBox::warning(nullptr, tr("Editing warning!"), + tr("An existing trainee name has been entered.")); + //return 0; } } - return 0; + + return dbLMS->updateTrainee(trainee); } bool DataBaseTrainees::isArchived(int id) { - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getID()== id) - return listOfTrainees[i].getArchived(); - } - return false; + return dbLMS->selectTraineeArchived(id); } - -QString DataBaseTrainees::generateDefaultNameGroup() -{ - int numGroup = 0; - QString name; - do - { - name = tr("Group") + QStringLiteral(" ") + QString::number(++numGroup); - }while(checkExistNameGroup(name)); - return name; -} - -QString DataBaseTrainees::generateDefaultNameTrainee() -{ - int numTrainee = 0; - QString name; - do - { - name = QStringLiteral("<") + tr("Trainee") + QStringLiteral(" ") + QString::number(++numTrainee) + QStringLiteral(">"); - }while(checkExistNameTrainee(name)); - return name; -} - -bool DataBaseTrainees::checkExistNameGroup(QString name) -{ - //Группы - for(int i = 0; i < listOfGroups.count(); i++) - { - if(listOfGroups[i].getName() == name) - return true; - } - return false; -} - -bool DataBaseTrainees::checkExistNameTrainee(QString name) -{ - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getName() == name) - return true; - } - return false; -} - -QString DataBaseTrainees::generateDefaultLoginTrainee() -{ - int numTrainee = 0; - QString login; - do - { - login = QStringLiteral(""); - }while(checkExistLoginTrainee(login)); - return login; -} - -bool DataBaseTrainees::checkExistLoginTrainee(QString login) -{ - //Обучаемые - for(int i = 0; i < listOfTrainees.count(); i++) - { - if(listOfTrainees[i].getLogin() == login) - return true; - } - return false; -} -/* -Group::ColorGroup DataBaseTrainees::generateDefaultColorGroup() -{ - for(int i = 0; i < Group::ColorGroup::countColor; i++) - { - Group::ColorGroup color = (Group::ColorGroup)i; - if(!checkExistColorGroup(color)) - return color; - } - return Group::ColorGroup::colorAther; -}*/ -/* -bool DataBaseTrainees::checkExistColorGroup(Group::ColorGroup color) -{ - //Группы - for(int i = 0; i < listOfGroups.count(); i++) - { - if(listOfGroups[i].getColor() == color) - return true; - } - return false; -}*/ diff --git a/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h b/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h index 6d482fc..4a677e7 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h +++ b/DB_IaT/InstructorsAndTrainees/trainees/databasetrainees.h @@ -19,25 +19,28 @@ public: DataBaseTrainees(DataBaseLMS* dbLMS); ~DataBaseTrainees(); - void LoadTraineesGroupsPSQL(); + //void LoadTraineesGroupsPSQL(); + + void transactionBegin(); + void transactionEnd(); bool AuthorizationTrainee(QString login, QString password, QString classroom_name, QString computer_name); bool deAuthorizationTrainee(QString login); //void setTasks(QString login, QStringList tasks); - QStringList getTasks(QString login); + QList getTasks(int id); QString getNameTraineeOnComputer(QString computer_name); Trainee getTraineeOnComputer(QString computer_name); QString getNameTraineeByLogin(QString login); - //QColor getColorGroupByLogin(QString login); QList getListTraineesInGroup(int id); QList getListGroups(); + QList getListTrainees(); - Trainee getTrainee(int id); - Group getGroup(int id); + Trainee getTrainee(int trainee_id); + Group getGroup(int group_id); int newGroup(); int deleteGroup(int id); @@ -50,20 +53,7 @@ public: bool isArchived(int id); private: - QString generateDefaultNameGroup(); - QString generateDefaultNameTrainee(); - bool checkExistNameGroup(QString name); - bool checkExistNameTrainee(QString name); - - QString generateDefaultLoginTrainee(); - bool checkExistLoginTrainee(QString login); - -private: - QList listOfTrainees; - QList listOfGroups; - - QList listOfColorGroup; - + bool adminMode; DataBaseLMS* dbLMS; }; diff --git a/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp b/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp index 739a1b4..be9bc39 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp +++ b/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp @@ -13,6 +13,9 @@ EditorTrainees::EditorTrainees(DataBaseTrainees* db, bool adminMode, QWidget *pa preparationTreeWidget(ui->treeWidget); setNotLoggedInVisible(true); loadTraineesFromDB(); + + if(adminMode) + ui->btnArchive->click(); } EditorTrainees::~EditorTrainees() @@ -22,9 +25,11 @@ EditorTrainees::~EditorTrainees() void EditorTrainees::on_btnNewGroup_clicked() { - int id = dbTrainees->newGroup(); - loadTraineesFromDB(); - setCurrentGroup(id); + if(int id = dbTrainees->newGroup()) + { + loadTraineesFromDB(); + setCurrentGroup(id); + } } void EditorTrainees::on_btnDeleteGroup_clicked() @@ -36,7 +41,7 @@ void EditorTrainees::on_btnDeleteGroup_clicked() QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); if(treeItemParent == nullptr) {//Выбрана группа - int id_group = treeItemCurrent->text(0).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); if(dbTrainees->getListTraineesInGroup(id_group).count() > 0) { @@ -67,7 +72,7 @@ void EditorTrainees::on_btnNewTrainee_clicked() QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); if(treeItemParent == nullptr) {//Выбрана группа. Можно добавить Обучаемого - int id_group = treeItemCurrent->text(0).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); if(int id = dbTrainees->newTrainee(id_group)) { loadTraineesFromDB(); @@ -91,8 +96,8 @@ void EditorTrainees::on_btnDeleteTrainee_clicked() if(treeItemParent != nullptr) {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(0).toInt(); - int id_group = treeItemParent->text(0).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = treeItemParent->text(ColumnsTreeTrainees::clmn_ID).toInt(); if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) { @@ -120,9 +125,11 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked() if(treeItemParent != nullptr) {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(0).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); Trainee trainee = dbTrainees->getTrainee(id_trainee); + if(trainee.getID() == 0) + return; if(trainee.getArchived()) {//Архивный @@ -168,61 +175,89 @@ void EditorTrainees::on_btnEdit_clicked() if(treeItemParent == nullptr) {//Выбрана группа - int id_group = treeItemCurrent->text(0).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); DialogEditGroup dlg(this); - dlg.setGroup(dbTrainees->getGroup(id_group)); - switch( dlg.exec() ) + Group group = dbTrainees->getGroup(id_group); + if(group.getID() == 0) + return; + + dlg.setGroup(group); + + while (true) { - case QDialog::Accepted: - { - if(int id = dbTrainees->editGroup(dlg.getGroup())) - {//Отредактировано - loadTraineesFromDB(); - setCurrentGroup(id); - } - else + switch( dlg.exec() ) { - //Ошибка редактирования - } + case QDialog::Accepted: + { + Group group_edit = dlg.getGroup(); - break; - } - case QDialog::Rejected: - break; - default: - break; + if(int id = dbTrainees->editGroup(group_edit)) + {//Отредактировано + loadTraineesFromDB(); + setCurrentGroup(id); + return; + } + else + { + dlg.setGroup(group_edit); + continue; + } + + break; + } + case QDialog::Rejected: + return; + break; + default: + return; + break; + } } } else {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(0).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); DialogEditTrainee dlg(this); - dlg.setTrainee(dbTrainees->getTrainee(id_trainee)); - switch( dlg.exec() ) + Trainee trainee = dbTrainees->getTrainee(id_trainee); + if(trainee.getID() == 0) + return; + + dlg.setTrainee(trainee); + + while (true) { - case QDialog::Accepted: + switch( dlg.exec() ) { - if(int id = dbTrainees->editTrainee(dlg.getTrainee())) - {//Отредактировано - loadTraineesFromDB(); - setCurrentTrainee(id); - } - else + case QDialog::Accepted: { - //Ошибка редактирования - } + Trainee trainee_edit = dlg.getTrainee(); + if(int id = dbTrainees->editTrainee(trainee_edit)) + {//Отредактировано + loadTraineesFromDB(); + setCurrentTrainee(id); + return; + } + else + { + dlg.setTrainee(trainee_edit); + continue; + } + + break; + } + case QDialog::Rejected: + return; + break; + default: + return; break; } - case QDialog::Rejected: - break; - default: - break; } } } @@ -244,7 +279,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *treeItemParent = current->parent(); if(treeItemParent == nullptr) {//Выбрана группа - int id_group = current->text(0).toInt(); + int id_group = current->text(ColumnsTreeTrainees::clmn_ID).toInt(); if(adminMode) { @@ -276,7 +311,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, } else {//Выбран обучаемый - int id_trainee = current->text(0).toInt(); + int id_trainee = current->text(ColumnsTreeTrainees::clmn_ID).toInt(); ui->btnNewGroup->setEnabled(false); ui->btnDeleteGroup->setEnabled(false); @@ -310,7 +345,7 @@ void EditorTrainees::setCurrentGroup(int id) { QTreeWidgetItem * item = treeWidget->topLevelItem(i); if(item != nullptr) - if(item->text(0).toInt() == id) + if(item->text(ColumnsTreeTrainees::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(item); break; @@ -329,7 +364,7 @@ void EditorTrainees::setCurrentTrainee(int id) { QTreeWidgetItem * itemChild = item->child(j); if(itemChild != nullptr) - if(itemChild->text(0).toInt() == id) + if(itemChild->text(ColumnsTreeTrainees::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(itemChild); break; diff --git a/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp b/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp index a6db1fc..1540993 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp +++ b/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp @@ -1,9 +1,9 @@ #include #include "traineesview.h" -TraineesView::TraineesView(DataBaseTrainees* db, TypeView type, bool adminMode, QWidget *parent): +TraineesView::TraineesView(DataBaseTrainees* dbTrainees, TypeView type, bool adminMode, QWidget *parent): CommonView(type, adminMode, parent), - dbTrainees(db) + dbTrainees(dbTrainees) { } @@ -21,32 +21,52 @@ void TraineesView::preparationTreeWidget(QTreeWidget *tree) treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;")); - treeWidget->setColumnWidth(0, 80); - treeWidget->setColumnWidth(1, 250); - treeWidget->setColumnWidth(2, 100); - treeWidget->setColumnWidth(3, 100); - treeWidget->setColumnWidth(4, 130); - treeWidget->setColumnWidth(5, 130); - treeWidget->setColumnWidth(6, 130); - treeWidget->setColumnWidth(7, 80); - treeWidget->setColumnWidth(8, 80); - treeWidget->setColumnWidth(9, 100); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_ID, 80); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Trainee, 250); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Login, 100); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Password, 100); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Class, 130); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Computer, 130); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_IP_address, 130); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 80); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 80); + treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Tasks, 200); + if(typeView == TypeView::onlyView) {//onlyView - treeWidget->setColumnHidden(2, true); - treeWidget->setColumnHidden(3, true); - treeWidget->setColumnHidden(7, true); + treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true); + //treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Login, true); + treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Password, true); + treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true); + + archiveVisible = false; + notLoggedInVisible = true; } else {//control - treeWidget->setColumnHidden(7, true); + if(adminMode) + { + archiveVisible = true; + notLoggedInVisible = true; + } + else + { + treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true); + } } + } void TraineesView::loadTraineesFromDB() { - dbTrainees->LoadTraineesGroupsPSQL(); + QList listGroups; + QList listTrainees; + dbTrainees->transactionBegin(); + listGroups = dbTrainees->getListGroups(); + listTrainees = dbTrainees->getListTrainees(); + dbTrainees->transactionEnd(); if(treeWidget == nullptr) return; @@ -54,52 +74,56 @@ void TraineesView::loadTraineesFromDB() //Обновление дерева treeWidget->clear(); - for(Group group : dbTrainees->getListGroups()) + for(Group group : listGroups) { //Группа QTreeWidgetItem *ItemGroup = new QTreeWidgetItem(treeWidget); - ItemGroup->setText(0, QString::number(group.getID())); - ItemGroup->setText(1, group.getName()); - ItemGroup->setIcon(1, QIcon(QStringLiteral(":/icons/group.png"))); + ItemGroup->setText(ColumnsTreeTrainees::clmn_ID, QString::number(group.getID())); + ItemGroup->setText(ColumnsTreeTrainees::clmn_Trainee, group.getName()); + ItemGroup->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/group.png"))); setItemColor(ItemGroup, QColor(170, 190, 170)); //Обучаемые - QList listTrainees; - listTrainees = dbTrainees->getListTraineesInGroup(group.getID()); for(Trainee trainee : listTrainees) { + if(trainee.getGroup().getID() != group.getID()) + continue; + QTreeWidgetItem *ItemTrainee = new QTreeWidgetItem(); - ItemTrainee->setText(0, QString::number(trainee.getID())); - ItemTrainee->setText(1, trainee.getName()); - ItemTrainee->setText(2, trainee.getLogin()); - ItemTrainee->setText(3, trainee.getPassword()); - ItemTrainee->setText(4, trainee.getComputer().getClassroom().getName()); - ItemTrainee->setText(5, trainee.getComputer().getName()); - ItemTrainee->setText(6, trainee.getComputer().getIpAddress()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_ID, QString::number(trainee.getID())); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Trainee, trainee.getName()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Login, trainee.getLogin()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, trainee.getPassword()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Class, trainee.getComputer().getClassroom().getName()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Computer, trainee.getComputer().getName()); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_IP_address, trainee.getComputer().getIpAddress()); + + //Сокрытие пароля + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******")); if(trainee.getArchived()) {//Архивный - ItemTrainee->setText(7, tr("yes")); - ItemTrainee->setIcon(1, QIcon(QStringLiteral(":/icons/traineeArchive.png"))); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("yes")); + ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/traineeArchive.png"))); setItemColorArchive(ItemTrainee); } else {//Не Архивный - ItemTrainee->setText(7, tr("no")); - ItemTrainee->setIcon(1, QIcon(QStringLiteral(":/icons/trainee.png"))); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("no")); + ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/trainee.png"))); setItemColorNoArchive(ItemTrainee); } if(trainee.getLoggedIn()) {//Залогинен - ItemTrainee->setText(8, tr("yes")); - ItemTrainee->setIcon(8, QIcon(QStringLiteral(":/icons/circleGreen.png"))); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("yes")); + ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGreen.png"))); } else {//Не Залогинен - ItemTrainee->setText(8, tr("no")); - ItemTrainee->setIcon(8, QIcon(QStringLiteral(":/icons/circleGray.png"))); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("no")); + ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGray.png"))); } QString tasksStr; @@ -107,7 +131,7 @@ void TraineesView::loadTraineesFromDB() { tasksStr += task.getName() + QStringLiteral("; "); } - ItemTrainee->setText(9, tasksStr); + ItemTrainee->setText(ColumnsTreeTrainees::clmn_Tasks, tasksStr); ItemGroup->addChild(ItemTrainee); @@ -124,7 +148,7 @@ void TraineesView::loadTraineesFromDB() } treeWidget->setSortingEnabled(true); - treeWidget->sortItems(1, Qt::SortOrder::AscendingOrder); + treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder); treeWidget->expandAll(); if(typeView == TypeView::control) @@ -137,6 +161,6 @@ void TraineesView::loadTraineesFromDB() void TraineesView::reSetHeadTreeWidget() { - QStringList listHeaders = {tr("ID"), tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("Tasks")}; + QStringList listHeaders = {tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("Tasks"), tr("ID")}; treeWidget->setHeaderLabels(listHeaders); } diff --git a/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h b/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h index 8dd1ff0..52f2086 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h +++ b/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h @@ -12,7 +12,21 @@ class TraineesView: public CommonView Q_OBJECT public: - TraineesView(DataBaseTrainees* db, TypeView type, bool adminMode, QWidget *parent = nullptr); + TraineesView(DataBaseTrainees* dbTrainees, TypeView type, bool adminMode, QWidget *parent = nullptr); + +protected: + enum ColumnsTreeTrainees{ + clmn_Trainee = 0, + clmn_Login, + clmn_Password, + clmn_Class, + clmn_Computer, + clmn_IP_address, + clmn_Archived, + clmn_Logged, + clmn_Tasks, + clmn_ID + }; protected: void preparationTreeWidget(QTreeWidget* tree); diff --git a/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp b/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp index 292c937..a422806 100644 --- a/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp +++ b/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp @@ -34,7 +34,7 @@ void ViewerTrainees::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column { if(item->childCount() == 0) {//Выбран обучаемый - QString login = item->text(2); + QString login = item->text(ColumnsTreeTrainees::clmn_Login); Q_EMIT signal_traineeSelected(login); } } @@ -47,7 +47,7 @@ void ViewerTrainees::slot_tabMessengerChanged(QString login) for (int j = 0; j < countChild; j++) {//Проход по обучаемым - QString loginChild = ui->treeWidget->topLevelItem(i)->child(j)->text(2); + QString loginChild = ui->treeWidget->topLevelItem(i)->child(j)->text(ColumnsTreeTrainees::clmn_Login); if(loginChild == login) { ui->treeWidget->setCurrentItem(ui->treeWidget->topLevelItem(i)->child(j)); @@ -83,7 +83,7 @@ void ViewerTrainees::on_btnEditorTrainees_clicked() QHBoxLayout *layout = new QHBoxLayout(dialog); layout->addWidget(&editorTraineesGroups); dialog->setWindowTitle(tr("Editor of trainees")); - dialog->setMinimumSize(1400, 800); + dialog->setMinimumSize(1600, 800); dialog->exec(); loadTraineesFromDB(); diff --git a/DB_LMS/DataBaseLMS/CMakeLists.txt b/DB_LMS/DataBaseLMS/CMakeLists.txt index 40e5547..c95276b 100644 --- a/DB_LMS/DataBaseLMS/CMakeLists.txt +++ b/DB_LMS/DataBaseLMS/CMakeLists.txt @@ -16,6 +16,8 @@ add_library(DataBaseLMS SHARED DataBaseLMS_global.h databaselms.cpp databaselms.h + interfacedatabaselms.cpp + interfacedatabaselms.h basicentity.cpp basicentity.h user.cpp diff --git a/DB_LMS/DataBaseLMS/CMakeLists.txt.user b/DB_LMS/DataBaseLMS/CMakeLists.txt.user index befa161..586daa3 100644 --- a/DB_LMS/DataBaseLMS/CMakeLists.txt.user +++ b/DB_LMS/DataBaseLMS/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/DB_LMS/DataBaseLMS/databaselms.cpp b/DB_LMS/DataBaseLMS/databaselms.cpp index c9b3b38..db7caab 100644 --- a/DB_LMS/DataBaseLMS/databaselms.cpp +++ b/DB_LMS/DataBaseLMS/databaselms.cpp @@ -5,7 +5,8 @@ #include DataBaseLMS::DataBaseLMS(): - db(nullptr) + db(nullptr), + transactionBegined(false) { createConnection(); } @@ -35,14 +36,40 @@ bool DataBaseLMS::createConnection() void DataBaseLMS::deleteConnection() { + if(transactionBegined) + QSqlDatabase::database().rollback(); + if(db != nullptr) { if(db->isOpen()) db->close(); + delete db; + db = nullptr; } } +bool DataBaseLMS::transactionBegin() +{ + if(transactionBegined) + QSqlDatabase::database().rollback(); + + transactionBegined = true; + + return QSqlDatabase::database().transaction(); +} + +bool DataBaseLMS::transactionEnd() +{ + if(transactionBegined) + { + transactionBegined = false; + + return QSqlDatabase::database().commit(); + } + return false; +} + QList DataBaseLMS::selectAllInstructors() { QList listInstructors; @@ -51,10 +78,11 @@ QList DataBaseLMS::selectAllInstructors() "FROM public.instructors " "ORDER BY instructor_id ASC"); - QSqlQuery query(*db); + QSqlQuery query = QSqlQuery(*db); + if(!query.exec(queryStr)) { - messageWarningErrorQuery(queryStr); + messageWarningErrorQuery(queryStr, &query); } else { @@ -89,10 +117,11 @@ QList DataBaseLMS::selectAllTrainees() "LEFT OUTER JOIN public.classrooms ON classrooms.classroom_id = computers.classroom_computer " "ORDER BY groups.name, trainees.name ASC"); - QSqlQuery query(*db); + QSqlQuery query = QSqlQuery(*db); + if(!query.exec(queryStr)) { - messageWarningErrorQuery(queryStr); + messageWarningErrorQuery(queryStr, &query); } else { @@ -104,7 +133,7 @@ QList DataBaseLMS::selectAllTrainees() trainee.setName(query.value(1).toString()); trainee.setLogin(query.value(2).toString()); trainee.setPassword(query.value(3).toString()); - trainee.setArchived(query.value(4).toBool()); + trainee.setArchived(query.value(4).toBool()); trainee.setLoggedIn(query.value(5).toBool()); Group group = Group(query.value(6).toInt(), query.value(7).toString()); @@ -131,10 +160,11 @@ QList DataBaseLMS::selectAllGroups() "FROM public.groups " "ORDER BY group_id ASC"); - QSqlQuery query(*db); + QSqlQuery query = QSqlQuery(*db); + if(!query.exec(queryStr)) { - messageWarningErrorQuery(queryStr); + messageWarningErrorQuery(queryStr, &query); } else { @@ -151,10 +181,162 @@ QList DataBaseLMS::selectAllGroups() return listGroups; } +Instructor DataBaseLMS::selectInstructor(int id_instructor) +{ + Instructor instructor; + + QString queryStr = QString("SELECT instructor_id, name, login, password, is_admin, archived, logged_in " + "FROM public.instructors " + "WHERE instructors.instructor_id = %1 ").arg( + id_instructor); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if (query.first()) + {//Инструктор + instructor.setID(query.value(0).toInt()); + instructor.setName(query.value(1).toString()); + instructor.setLogin(query.value(2).toString()); + instructor.setPassword(query.value(3).toString()); + instructor.setIsAdmin(query.value(4).toBool()); + instructor.setArchived(query.value(5).toBool()); + instructor.setLoggedIn(query.value(6).toBool()); + } + } + + return instructor; +} + +int DataBaseLMS::selectInstructorID(QString login, QString password) +{ + QString queryStr; + + if(password != QStringLiteral("")) + { + queryStr = QString("SELECT instructors.instructor_id " + "FROM public.instructors " + "WHERE login = '%1' AND password = '%2' ").arg( + login, + password ); + } + else + { + queryStr = QString("SELECT instructors.instructor_id " + "FROM public.instructors " + "WHERE login = '%1' ").arg( + login ); + } + + return queryExecInt(queryStr); +} + +bool DataBaseLMS::selectInstructorIsAdmin(int id_instructor) +{ + QString queryStr = QString("SELECT instructors.is_admin " + "FROM public.instructors " + "WHERE instructor_id = %1 ").arg( + id_instructor ); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if(query.next()) + return query.value(0).toBool(); + } + return false; +} + +bool DataBaseLMS::selectInstructorLoggedIn(int id_instructor) +{ + QString queryStr = QString("SELECT instructors.logged_in " + "FROM public.instructors " + "WHERE instructor_id = %1 ").arg( + id_instructor ); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if(query.next()) + return query.value(0).toBool(); + } + return false; +} + +bool DataBaseLMS::selectInstructorArchived(int id_instructor) +{ + QString queryStr = QString("SELECT instructors.archived " + "FROM public.instructors " + "WHERE instructor_id = %1 ").arg( + id_instructor ); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if(query.next()) + return query.value(0).toBool(); + } + return false; +} + +int DataBaseLMS::updateInstructorLoggedIn(int id_instructor, bool loggedIn) +{ + QString queryStr = QString("UPDATE public.instructors " + "SET logged_in = %1 " + "WHERE instructor_id = %2 " + "RETURNING instructors.instructor_id").arg( + loggedIn ? "true" : "false", + QString::number(id_instructor) ); + + return queryExecInt(queryStr); +} + +int DataBaseLMS::updateInstructorArchived(int id_instructor, bool archived) +{ + QString queryStr = QString("UPDATE public.instructors " + "SET archived = %1 " + "WHERE instructor_id = %2 " + "RETURNING instructors.instructor_id").arg( + archived ? "true" : "false", + QString::number(id_instructor) ); + + return queryExecInt(queryStr); +} + +int DataBaseLMS::insertInstructor() +{ + QString queryStr = QString("INSERT INTO public.instructors " + "DEFAULT VALUES " + "RETURNING instructor_id"); + + return queryExecInt(queryStr); +} + int DataBaseLMS::insertInstructor(Instructor instructor) { QString queryStr = QString("INSERT INTO public.instructors (name, login, password, is_admin, archived, logged_in) " - "VALUES ('%1', '%2', '%3', %4, %5, %6) RETURNING instructor_id").arg( + "VALUES ('%1', '%2', '%3', %4, %5, %6) " + "RETURNING instructor_id").arg( instructor.getName(), instructor.getLogin(), instructor.getPassword(), @@ -162,21 +344,25 @@ int DataBaseLMS::insertInstructor(Instructor instructor) instructor.getArchived() ? "true" : "false", instructor.getLoggedIn() ? "true" : "false"); - return queryExec(queryStr); + return queryExecInt(queryStr); } -int DataBaseLMS::deleteInstructor(int instructor_id) +int DataBaseLMS::deleteInstructor(int id_instructor) { - QString queryStr = QString("DELETE FROM public.instructors WHERE instructor_id = %1 RETURNING instructors.instructor_id").arg(QString::number(instructor_id)); + QString queryStr = QString("DELETE FROM public.instructors " + "WHERE instructor_id = %1 " + "RETURNING instructors.instructor_id").arg( + QString::number(id_instructor)); - return queryExec(queryStr); + return queryExecInt(queryStr); } int DataBaseLMS::updateInstructor(Instructor instructor) { QString queryStr = QString("UPDATE public.instructors " "SET name = '%1', login = '%2', password = '%3', is_admin = %4, archived = %5, logged_in = %6 " - "WHERE instructor_id = %7 RETURNING instructors.instructor_id").arg( + "WHERE instructor_id = %7 " + "RETURNING instructors.instructor_id").arg( instructor.getName(), instructor.getLogin(), instructor.getPassword(), @@ -185,38 +371,226 @@ int DataBaseLMS::updateInstructor(Instructor instructor) instructor.getLoggedIn() ? "true" : "false", QString::number(instructor.getID()) ); - return queryExec(queryStr); + return queryExecInt(queryStr); +} + +Group DataBaseLMS::selectGroup(int id_group) +{ + Group group; + + QString queryStr = QString("SELECT group_id, name " + "FROM public.groups " + "WHERE groups.group_id = %1 ").arg( + id_group); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if (query.first()) + {//Инструктор + group.setID(query.value(0).toInt()); + group.setName(query.value(1).toString()); + } + } + + return group; +} + +int DataBaseLMS::insertGroup() +{ + QString queryStr = QString("INSERT INTO public.groups " + "DEFAULT VALUES " + "RETURNING group_id"); + + return queryExecInt(queryStr); } int DataBaseLMS::insertGroup(Group group) { QString queryStr = QString("INSERT INTO public.groups (name) " - "VALUES ('%1') RETURNING groups.group_id").arg( + "VALUES ('%1') " + "RETURNING groups.group_id").arg( group.getName()); - return queryExec(queryStr); + return queryExecInt(queryStr); } int DataBaseLMS::deleteGroup(int group_id) { - QString queryStr = QString("DELETE FROM public.groups WHERE group_id = %1 RETURNING groups.group_id").arg(QString::number(group_id)); + QString queryStr = QString("DELETE FROM public.groups " + "WHERE group_id = %1 " + "RETURNING groups.group_id").arg( + QString::number(group_id)); - return queryExec(queryStr); + return queryExecInt(queryStr); } int DataBaseLMS::updateGroup(Group group) { - QString queryStr = QString("UPDATE public.groups SET name = '%1' WHERE group_id = %2 RETURNING groups.group_id").arg( + QString queryStr = QString("UPDATE public.groups SET name = '%1' " + "WHERE group_id = %2 " + "RETURNING groups.group_id").arg( group.getName(), QString::number(group.getID()) ); - return queryExec(queryStr); + return queryExecInt(queryStr); +} + +Trainee DataBaseLMS::selectTrainee(int id_trainee) +{ + Trainee trainee; + + QString queryStr = QString("SELECT trainees.trainee_id, trainees.name, trainees.login, trainees.password, trainees.archived, trainees.logged_in, " + "groups.group_id, groups.name, " + "computers.computer_id, computers.name, computers.ip_address, " + "classrooms.classroom_id, classrooms.name " + "FROM public.trainees JOIN public.groups ON groups.group_id = trainees.group_trainee " + "LEFT OUTER JOIN public.computers ON computers.computer_id = trainees.computer_trainee " + "LEFT OUTER JOIN public.classrooms ON classrooms.classroom_id = computers.classroom_computer " + "WHERE trainees.trainee_id = %1 " + "ORDER BY groups.name, trainees.name ASC").arg( + id_trainee); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if (query.first()) + {//Инструктор + trainee.setID(query.value(0).toInt()); + trainee.setName(query.value(1).toString()); + trainee.setLogin(query.value(2).toString()); + trainee.setPassword(query.value(3).toString()); + trainee.setArchived(query.value(4).toBool()); + trainee.setLoggedIn(query.value(5).toBool()); + + Group group = Group(query.value(6).toInt(), query.value(7).toString()); + trainee.setGroup(group); + + Classroom classroom = Classroom(query.value(11).toInt(), query.value(12).toString()); + Computer computer = Computer(query.value(8).toInt(), query.value(9).toString(), query.value(10).toString(), classroom); + trainee.setComputer(computer); + + trainee.setTasks(selectTasksOfTrainee(trainee.getID())); + } + } + + return trainee; +} + +int DataBaseLMS::selectTraineeID(QString login, QString password) +{ + QString queryStr; + + if(password != QStringLiteral("")) + { + queryStr = QString("SELECT trainees.trainee_id " + "FROM public.trainees " + "WHERE login = '%1' AND password = '%2' ").arg( + login, + password ); + } + else + { + queryStr = QString("SELECT trainees.trainee_id " + "FROM public.trainees " + "WHERE login = '%1' ").arg( + login ); + } + + return queryExecInt(queryStr); +} + +bool DataBaseLMS::selectTraineeArchived(int id_trainee) +{ + QString queryStr = QString("SELECT trainees.archived " + "FROM public.trainees " + "WHERE trainee_id = %1 ").arg( + id_trainee ); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if(query.next()) + return query.value(0).toBool(); + } + return false; +} + +bool DataBaseLMS::selectTraineeLoggedIn(int id_trainee) +{ + QString queryStr = QString("SELECT trainees.logged_in " + "FROM public.trainees " + "WHERE trainee_id = %1 ").arg( + id_trainee ); + + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + } + else + { + if(query.next()) + return query.value(0).toBool(); + } + return false; +} + +int DataBaseLMS::updateTraineeLoggedIn(int id_trainee, bool loggedIn) +{ + QString queryStr = QString("UPDATE public.trainees " + "SET logged_in = %1 " + "WHERE trainee_id = %2 " + "RETURNING trainees.trainee_id").arg( + loggedIn ? "true" : "false", + QString::number(id_trainee) ); + + return queryExecInt(queryStr); +} + +int DataBaseLMS::updateTraineeArchived(int id_trainee, bool archived) +{ + QString queryStr = QString("UPDATE public.trainees " + "SET archived = %1 " + "WHERE trainee_id = %2 " + "RETURNING trainees.trainee_id").arg( + archived ? "true" : "false", + QString::number(id_trainee) ); + + return queryExecInt(queryStr); +} + +int DataBaseLMS::insertTrainee(int id_group) +{ + QString queryStr = QString("INSERT INTO public.trainees (name, login, password, archived, logged_in, group_trainee) " + "VALUES (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, %1) " + "RETURNING trainees.trainee_id").arg( + QString::number(id_group)); + + return queryExecInt(queryStr); } int DataBaseLMS::insertTrainee(Trainee trainee) { QString queryStr = QString("INSERT INTO public.trainees (name, login, password, archived, logged_in, group_trainee) " - "VALUES ('%1', '%2', '%3', %4, %5, %6) RETURNING trainees.trainee_id").arg( + "VALUES ('%1', '%2', '%3', %4, %5, %6) " + "RETURNING trainees.trainee_id").arg( trainee.getName(), trainee.getLogin(), trainee.getPassword(), @@ -224,14 +598,17 @@ int DataBaseLMS::insertTrainee(Trainee trainee) trainee.getLoggedIn() ? "true" : "false", QString::number(trainee.getGroup().getID())); - return queryExec(queryStr); + return queryExecInt(queryStr); } int DataBaseLMS::deleteTrainee(int trainee_id) { - QString queryStr = QString("DELETE FROM public.trainees WHERE trainee_id = %1 RETURNING trainees.trainee_id").arg(QString::number(trainee_id)); + QString queryStr = QString("DELETE FROM public.trainees " + "WHERE trainee_id = %1 " + "RETURNING trainees.trainee_id").arg( + QString::number(trainee_id)); - return queryExec(queryStr); + return queryExecInt(queryStr); } int DataBaseLMS::updateTrainee(Trainee trainee) @@ -242,7 +619,8 @@ int DataBaseLMS::updateTrainee(Trainee trainee) "SET name = '%1', login = '%2', password = '%3', archived = %4, logged_in = %5, " "group_trainee = %6, " "computer_trainee = %7 " - "WHERE trainee_id = %8 RETURNING trainees.trainee_id").arg( + "WHERE trainee_id = %8 " + "RETURNING trainees.trainee_id").arg( trainee.getName(), trainee.getLogin(), trainee.getPassword(), @@ -252,7 +630,7 @@ int DataBaseLMS::updateTrainee(Trainee trainee) computer_id, QString::number(trainee.getID()) ); - return queryExec(queryStr); + return queryExecInt(queryStr); } QList DataBaseLMS::selectTasksOfTrainee(int trainee_id) @@ -260,17 +638,18 @@ QList DataBaseLMS::selectTasksOfTrainee(int trainee_id) QList tasks; QString queryStr = QString("SELECT tasks.task_id, tasks.name " - "FROM public.trainees " - "JOIN public.trainees_tasks ON trainees_tasks.trainee_id = trainees.trainee_id " - "JOIN public.tasks ON tasks.task_id = trainees_tasks.task_id " - "WHERE trainees.trainee_id = %1 " - "ORDER BY tasks.name ASC").arg( - trainee_id); + "FROM public.trainees " + "JOIN public.trainees_tasks ON trainees_tasks.trainee_id = trainees.trainee_id " + "JOIN public.tasks ON tasks.task_id = trainees_tasks.task_id " + "WHERE trainees.trainee_id = %1 " + "ORDER BY tasks.name ASC").arg( + trainee_id); + + QSqlQuery query = QSqlQuery(*db); - QSqlQuery query(*db); if(!query.exec(queryStr)) { - messageWarningErrorQuery(queryStr); + messageWarningErrorQuery(queryStr, &query); } else { @@ -286,24 +665,46 @@ QList DataBaseLMS::selectTasksOfTrainee(int trainee_id) return tasks; } -int DataBaseLMS::queryExec(QString queryStr) +int DataBaseLMS::queryExecInt(QString queryStr) { - QSqlQuery query(*db); + QSqlQuery query = QSqlQuery(*db); + if(!query.exec(queryStr)) { - messageWarningErrorQuery(queryStr); + messageWarningErrorQuery(queryStr, &query); return 0; } else { - if(query.next()) + if(query.first()) return query.value(0).toInt(); else return 0; } } - -void DataBaseLMS::messageWarningErrorQuery(QString queryStr) +/* +bool DataBaseLMS::queryExecBool(QString queryStr) { - QMessageBox::warning(nullptr, dbName, "Error query: " + queryStr + "\n" + db->lastError().text()); + QSqlQuery query = QSqlQuery(*db); + + if(!query.exec(queryStr)) + { + messageWarningErrorQuery(queryStr, &query); + return 0; + } + else + { + if(query.first()) + return query.value(0).toBool(); + else + return 0; + } +}*/ + +void DataBaseLMS::messageWarningErrorQuery(QString queryStr, QSqlQuery* query) +{ + QMessageBox::warning(nullptr, dbName, + "Error query:\n" + query->lastError().text() + "\n" + + "String of query:\n" + queryStr + "\n" + + "Executed query:\n" + query->executedQuery()); } diff --git a/DB_LMS/DataBaseLMS/databaselms.h b/DB_LMS/DataBaseLMS/databaselms.h index 02146ce..06ae08a 100644 --- a/DB_LMS/DataBaseLMS/databaselms.h +++ b/DB_LMS/DataBaseLMS/databaselms.h @@ -15,22 +15,51 @@ public: DataBaseLMS(); ~DataBaseLMS(); -public: +protected: + public: + //Подключение bool createConnection(); void deleteConnection(); + //Транзакции + bool transactionBegin(); + bool transactionEnd(); + + //Списки QList selectAllInstructors(); QList selectAllTrainees(); QList selectAllGroups(); + //Инструктор + Instructor selectInstructor(int id_instructor); + int selectInstructorID(QString login, QString password = QStringLiteral("")); + bool selectInstructorIsAdmin(int id_instructor); + bool selectInstructorLoggedIn(int id_instructor); + bool selectInstructorArchived(int id_instructor); + int updateInstructorLoggedIn(int id_instructor, bool loggedIn); + int updateInstructorArchived(int id_instructor, bool archived); + + int insertInstructor(); int insertInstructor(Instructor instructor); - int deleteInstructor(int instructor_id); + int deleteInstructor(int id_instructor); int updateInstructor(Instructor instructor); + //Группа + Group selectGroup(int id_group);// + int insertGroup();// int insertGroup(Group group); int deleteGroup(int group_id); int updateGroup(Group group); + //Обучаемый + Trainee selectTrainee(int id_trainee);// + int selectTraineeID(QString login, QString password = QStringLiteral(""));// + bool selectTraineeArchived(int id_trainee);// + bool selectTraineeLoggedIn(int id_trainee);// + int updateTraineeLoggedIn(int id_trainee, bool loggedIn);// + int updateTraineeArchived(int id_trainee, bool archived);// + + int insertTrainee(int id_group);// int insertTrainee(Trainee trainee); int deleteTrainee(int trainee_id); int updateTrainee(Trainee trainee); @@ -38,11 +67,13 @@ public: QList selectTasksOfTrainee(int trainee_id); private: - int queryExec(QString queryStr); - void messageWarningErrorQuery(QString queryStr); + int queryExecInt(QString queryStr); + //bool queryExecBool(QString queryStr); + void messageWarningErrorQuery(QString queryStr, QSqlQuery* query); private: QSqlDatabase* db; + bool transactionBegined; const QString dbName = "DataBaseLMS"; const QString dbUserName = "postgres"; const QString dbPassword = "12345678"; diff --git a/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp b/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp new file mode 100644 index 0000000..76f976c --- /dev/null +++ b/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp @@ -0,0 +1,6 @@ +#include "interfacedatabaselms.h" + +InterfaceDataBaseLMS::InterfaceDataBaseLMS() +{ + +} diff --git a/DB_LMS/DataBaseLMS/interfacedatabaselms.h b/DB_LMS/DataBaseLMS/interfacedatabaselms.h new file mode 100644 index 0000000..8934b1b --- /dev/null +++ b/DB_LMS/DataBaseLMS/interfacedatabaselms.h @@ -0,0 +1,13 @@ +#ifndef INTERFACEDATABASELMS_H +#define INTERFACEDATABASELMS_H + +#include "DataBaseLMS_global.h" +#include "databaselms.h" + +class DATABASELMS_EXPORT InterfaceDataBaseLMS : public DataBaseLMS +{ +public: + InterfaceDataBaseLMS(); +}; + +#endif // INTERFACEDATABASELMS_H diff --git a/DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-75aa5940d6c94493455f.json b/DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-4c4ecc1a053153a57cf7.json similarity index 94% rename from DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-75aa5940d6c94493455f.json rename to DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-4c4ecc1a053153a57cf7.json index 4e0ed89..f8e6a20 100644 --- a/DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-75aa5940d6c94493455f.json +++ b/DB_LMS/Debug64/.cmake/api/v1/reply/codemodel-v2-4c4ecc1a053153a57cf7.json @@ -41,7 +41,7 @@ { "directoryIndex" : 0, "id" : "DataBaseLMS::@6890427a1f51a3e7e1df", - "jsonFile" : "target-DataBaseLMS-Debug-788469329fca20560302.json", + "jsonFile" : "target-DataBaseLMS-Debug-5eb45d4d55eb23675b98.json", "name" : "DataBaseLMS", "projectIndex" : 0 }, diff --git a/DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-04T16-08-32-0044.json b/DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-13T06-45-57-0759.json similarity index 91% rename from DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-04T16-08-32-0044.json rename to DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-13T06-45-57-0759.json index 6215fc9..8b16914 100644 --- a/DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-04T16-08-32-0044.json +++ b/DB_LMS/Debug64/.cmake/api/v1/reply/index-2024-11-13T06-45-57-0759.json @@ -26,7 +26,7 @@ "objects" : [ { - "jsonFile" : "codemodel-v2-75aa5940d6c94493455f.json", + "jsonFile" : "codemodel-v2-4c4ecc1a053153a57cf7.json", "kind" : "codemodel", "version" : { @@ -77,7 +77,7 @@ }, "codemodel-v2" : { - "jsonFile" : "codemodel-v2-75aa5940d6c94493455f.json", + "jsonFile" : "codemodel-v2-4c4ecc1a053153a57cf7.json", "kind" : "codemodel", "version" : { diff --git a/DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-788469329fca20560302.json b/DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-5eb45d4d55eb23675b98.json similarity index 95% rename from DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-788469329fca20560302.json rename to DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-5eb45d4d55eb23675b98.json index 12cbc41..306b391 100644 --- a/DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-788469329fca20560302.json +++ b/DB_LMS/Debug64/.cmake/api/v1/reply/target-DataBaseLMS-Debug-5eb45d4d55eb23675b98.json @@ -43,13 +43,13 @@ { "command" : 1, "file" : 0, - "line" : 37, + "line" : 39, "parent" : 0 }, { "command" : 1, "file" : 0, - "line" : 38, + "line" : 40, "parent" : 0 }, { @@ -87,7 +87,7 @@ { "command" : 5, "file" : 0, - "line" : 40, + "line" : 42, "parent" : 0 } ] @@ -195,7 +195,8 @@ 12, 14, 16, - 18 + 18, + 20 ] } ], @@ -264,7 +265,8 @@ 12, 14, 16, - 18 + 18, + 20 ] }, { @@ -280,7 +282,8 @@ 13, 15, 17, - 19 + 19, + 21 ] } ], @@ -309,6 +312,17 @@ "path" : "databaselms.h", "sourceGroupIndex" : 1 }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "interfacedatabaselms.cpp", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "path" : "interfacedatabaselms.h", + "sourceGroupIndex" : 1 + }, { "backtrace" : 1, "compileGroupIndex" : 0, diff --git a/DB_LMS/Debug64/.ninja_deps b/DB_LMS/Debug64/.ninja_deps index 28b9527..1929df0 100644 Binary files a/DB_LMS/Debug64/.ninja_deps and b/DB_LMS/Debug64/.ninja_deps differ diff --git a/DB_LMS/Debug64/.ninja_log b/DB_LMS/Debug64/.ninja_log index 7502b4b..374032a 100644 --- a/DB_LMS/Debug64/.ninja_log +++ b/DB_LMS/Debug64/.ninja_log @@ -1,81 +1,43 @@ # ninja log v5 -11 35 0 CMakeFiles/clean.additional 7155004b3956b606 -2059 2218 7525088392927135 libDataBaseLMS.dll 3b716bd5e0562557 -2059 2218 7525088392927135 libDataBaseLMS.dll.a 3b716bd5e0562557 -35 42 0 clean 9c4b4372737ab8da -95 1643 7524982876371819 CMakeFiles/DataBaseLMS.dir/computer.cpp.obj 5930684a0b27a14f -14 49 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -83 1635 7524982876272093 CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj 99b734c728959a94 -88 1636 7524982876292025 CMakeFiles/DataBaseLMS.dir/instructor.cpp.obj fb68571e9d220198 -97 1633 7524982876272093 CMakeFiles/DataBaseLMS.dir/task.cpp.obj b003a0cb68c6b2bb -92 1636 7524982876292025 CMakeFiles/DataBaseLMS.dir/group.cpp.obj 70fefc8893e4cb77 -156 788 7524397271272665 CMakeFiles/DataBaseLMS.dir/DataBaseLMS_autogen/mocs_compilation.cpp.obj d9dc0a262f9d4ccd -50 2059 7525088391343479 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -90 1752 7524982877478794 CMakeFiles/DataBaseLMS.dir/trainee.cpp.obj 4ac35fd8ef58e9f -100 1640 7524982876341892 CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj e9b501dc7cb3286a -14 49 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -14 49 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -85 1635 7524982876282051 CMakeFiles/DataBaseLMS.dir/user.cpp.obj 4ee7a17d2a43f188 -14 49 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +90 131 7525981640473406 CMakeFiles/DataBaseLMS.dir/DataBaseLMS_autogen/mocs_compilation.cpp.obj d9dc0a262f9d4ccd +54 113 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +97 657 7525981645725604 CMakeFiles/DataBaseLMS.dir/user.cpp.obj 4ee7a17d2a43f188 +54 113 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +108 693 7525981646098521 CMakeFiles/DataBaseLMS.dir/computer.cpp.obj 5930684a0b27a14f +105 653 7525981645685710 CMakeFiles/DataBaseLMS.dir/group.cpp.obj 70fefc8893e4cb77 +7 31 0 CMakeFiles/clean.additional 7155004b3956b606 +2048 2211 7531044009955548 libDataBaseLMS.dll 3b716bd5e0562557 +2048 2211 7531044009955548 libDataBaseLMS.dll.a 3b716bd5e0562557 +31 38 0 clean 9c4b4372737ab8da +52 2047 7531044008328505 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 +95 655 7525981645705675 CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj 99b734c728959a94 +54 113 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +100 738 7525981646532033 CMakeFiles/DataBaseLMS.dir/instructor.cpp.obj fb68571e9d220198 +110 683 7525981645966249 CMakeFiles/DataBaseLMS.dir/task.cpp.obj b003a0cb68c6b2bb +54 113 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +113 607 7525981645223557 CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj e9b501dc7cb3286a +102 767 7525981646832047 CMakeFiles/DataBaseLMS.dir/trainee.cpp.obj 4ac35fd8ef58e9f +16 56 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +16 56 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +16 56 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +16 56 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +59 1069 7531836962549807 CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj d76eac97fda56f5b +56 2141 7531836973258075 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 +2141 2512 7531836976956111 libDataBaseLMS.dll 31a19f1f3436f66b +2141 2512 7531836976956111 libDataBaseLMS.dll.a 31a19f1f3436f66b 16 53 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 16 53 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 16 53 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 16 53 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -53 2060 7525091330946435 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -2060 2220 7525091332543436 libDataBaseLMS.dll 3b716bd5e0562557 -2060 2220 7525091332543436 libDataBaseLMS.dll.a 3b716bd5e0562557 -15 51 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 51 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -15 51 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 51 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -51 2037 7525100271403312 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -2037 2197 7525100272988261 libDataBaseLMS.dll 3b716bd5e0562557 -2037 2197 7525100272988261 libDataBaseLMS.dll.a 3b716bd5e0562557 -15 49 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 49 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -15 49 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 49 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -10 42 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -10 42 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -10 42 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -10 42 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -43 1971 7525212838352129 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -1971 2129 7525212839934527 libDataBaseLMS.dll 3b716bd5e0562557 -1971 2129 7525212839934527 libDataBaseLMS.dll.a 3b716bd5e0562557 -15 50 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 50 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -15 50 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -15 50 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -50 1981 7525216791870122 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -1981 2140 7525216793455149 libDataBaseLMS.dll 3b716bd5e0562557 -1981 2140 7525216793455149 libDataBaseLMS.dll.a 3b716bd5e0562557 -14 48 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -14 48 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -14 48 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -14 48 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -25 67 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -25 67 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -25 67 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -25 67 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -24 74 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -24 74 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -24 74 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -24 74 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -7 31 0 CMakeFiles/clean.additional 7155004b3956b606 -31 38 0 clean 9c4b4372737ab8da -11 90 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -11 90 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -11 90 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 -11 90 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 -90 131 7525981640473406 CMakeFiles/DataBaseLMS.dir/DataBaseLMS_autogen/mocs_compilation.cpp.obj d9dc0a262f9d4ccd -113 607 7525981645223557 CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj e9b501dc7cb3286a -105 653 7525981645685710 CMakeFiles/DataBaseLMS.dir/group.cpp.obj 70fefc8893e4cb77 -95 655 7525981645705675 CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj 99b734c728959a94 -97 657 7525981645725604 CMakeFiles/DataBaseLMS.dir/user.cpp.obj 4ee7a17d2a43f188 -110 683 7525981645966249 CMakeFiles/DataBaseLMS.dir/task.cpp.obj b003a0cb68c6b2bb -108 693 7525981646098521 CMakeFiles/DataBaseLMS.dir/computer.cpp.obj 5930684a0b27a14f -100 738 7525981646532033 CMakeFiles/DataBaseLMS.dir/instructor.cpp.obj fb68571e9d220198 -102 767 7525981646832047 CMakeFiles/DataBaseLMS.dir/trainee.cpp.obj 4ac35fd8ef58e9f -93 2171 7525981660831212 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 -2171 2342 7525981662561308 libDataBaseLMS.dll 3b716bd5e0562557 -2171 2342 7525981662561308 libDataBaseLMS.dll.a 3b716bd5e0562557 +56 598 7531839242498807 CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj d76eac97fda56f5b +53 2026 7531839256769605 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 +2026 2210 7531839258594933 libDataBaseLMS.dll 31a19f1f3436f66b +2026 2210 7531839258594933 libDataBaseLMS.dll.a 31a19f1f3436f66b +15 52 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +15 52 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +15 52 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20 +15 52 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20 +55 606 7531839486381107 CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj d76eac97fda56f5b +52 2049 7531839500798537 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 +2049 2220 7531839502500362 libDataBaseLMS.dll 31a19f1f3436f66b +2049 2220 7531839502500362 libDataBaseLMS.dll.a 31a19f1f3436f66b diff --git a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj index c16919b..a15aa38 100644 Binary files a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj and b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj differ diff --git a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj new file mode 100644 index 0000000..58a04bd Binary files /dev/null and b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj differ diff --git a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/AutogenInfo.json b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/AutogenInfo.json index 80e45bc..089d8c4 100644 --- a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/AutogenInfo.json +++ b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/AutogenInfo.json @@ -123,6 +123,12 @@ "EWIEGA46WW/moc_instructor.cpp", null ], + [ + "D:/LMS/DB_LMS/DataBaseLMS/interfacedatabaselms.h", + "MU", + "EWIEGA46WW/moc_interfacedatabaselms.cpp", + null + ], [ "D:/LMS/DB_LMS/DataBaseLMS/task.h", "MU", @@ -210,6 +216,7 @@ [ "D:/LMS/DB_LMS/DataBaseLMS/databaselms.cpp", "MU", null ], [ "D:/LMS/DB_LMS/DataBaseLMS/group.cpp", "MU", null ], [ "D:/LMS/DB_LMS/DataBaseLMS/instructor.cpp", "MU", null ], + [ "D:/LMS/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp", "MU", null ], [ "D:/LMS/DB_LMS/DataBaseLMS/task.cpp", "MU", null ], [ "D:/LMS/DB_LMS/DataBaseLMS/trainee.cpp", "MU", null ], [ "D:/LMS/DB_LMS/DataBaseLMS/user.cpp", "MU", null ] diff --git a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/ParseCache.txt b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/ParseCache.txt index ab5d77e..e75c97d 100644 --- a/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/ParseCache.txt +++ b/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen.dir/ParseCache.txt @@ -1,20 +1,22 @@ # Generated by CMake. Changes will be overwritten. -D:/LMS/DB_LMS/DataBaseLMS/user.cpp -D:/LMS/DB_LMS/DataBaseLMS/trainee.cpp -D:/LMS/DB_LMS/DataBaseLMS/task.cpp -D:/LMS/DB_LMS/DataBaseLMS/group.cpp -D:/LMS/DB_LMS/DataBaseLMS/databaselms.cpp -D:/LMS/DB_LMS/DataBaseLMS/DataBaseLMS_global.h -D:/LMS/DB_LMS/DataBaseLMS/user.h -D:/LMS/DB_LMS/DataBaseLMS/instructor.cpp -D:/LMS/DB_LMS/DataBaseLMS/classroom.h -D:/LMS/DB_LMS/DataBaseLMS/basicentity.h -D:/LMS/DB_LMS/DataBaseLMS/computer.cpp -D:/LMS/DB_LMS/DataBaseLMS/computer.h -D:/LMS/DB_LMS/DataBaseLMS/databaselms.h -D:/LMS/DB_LMS/DataBaseLMS/group.h -D:/LMS/DB_LMS/DataBaseLMS/instructor.h -D:/LMS/DB_LMS/DataBaseLMS/trainee.h -D:/LMS/DB_LMS/DataBaseLMS/basicentity.cpp D:/LMS/DB_LMS/DataBaseLMS/task.h D:/LMS/DB_LMS/DataBaseLMS/classroom.cpp +D:/LMS/DB_LMS/DataBaseLMS/databaselms.h +D:/LMS/DB_LMS/DataBaseLMS/databaselms.cpp +D:/LMS/DB_LMS/DataBaseLMS/DataBaseLMS_global.h +D:/LMS/DB_LMS/DataBaseLMS/group.cpp +D:/LMS/DB_LMS/DataBaseLMS/user.h +D:/LMS/DB_LMS/DataBaseLMS/group.h +D:/LMS/DB_LMS/DataBaseLMS/task.cpp +D:/LMS/DB_LMS/DataBaseLMS/interfacedatabaselms.h +D:/LMS/DB_LMS/DataBaseLMS/instructor.h +D:/LMS/DB_LMS/DataBaseLMS/user.cpp +D:/LMS/DB_LMS/DataBaseLMS/trainee.h +D:/LMS/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp +D:/LMS/DB_LMS/DataBaseLMS/computer.cpp +D:/LMS/DB_LMS/DataBaseLMS/basicentity.h +D:/LMS/DB_LMS/DataBaseLMS/basicentity.cpp +D:/LMS/DB_LMS/DataBaseLMS/trainee.cpp +D:/LMS/DB_LMS/DataBaseLMS/computer.h +D:/LMS/DB_LMS/DataBaseLMS/classroom.h +D:/LMS/DB_LMS/DataBaseLMS/instructor.cpp diff --git a/DB_LMS/Debug64/DataBaseLMS.cbp b/DB_LMS/Debug64/DataBaseLMS.cbp index 1d6207d..1cdf5e7 100644 --- a/DB_LMS/Debug64/DataBaseLMS.cbp +++ b/DB_LMS/Debug64/DataBaseLMS.cbp @@ -159,6 +159,12 @@ + + + + diff --git a/DB_LMS/Debug64/build.ninja b/DB_LMS/Debug64/build.ninja index 13c1643..1027c35 100644 --- a/DB_LMS/Debug64/build.ninja +++ b/DB_LMS/Debug64/build.ninja @@ -65,6 +65,14 @@ build CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj: CXX_COMPILER__DataBaseLMS_ OBJECT_DIR = CMakeFiles\DataBaseLMS.dir OBJECT_FILE_DIR = CMakeFiles\DataBaseLMS.dir +build CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj: CXX_COMPILER__DataBaseLMS_unscanned_Debug D$:/LMS/DB_LMS/DataBaseLMS/interfacedatabaselms.cpp || cmake_object_order_depends_target_DataBaseLMS + DEFINES = -DDATABASELMS_LIBRARY -DDataBaseLMS_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_WIDGETS_LIB + DEP_FILE = CMakeFiles\DataBaseLMS.dir\interfacedatabaselms.cpp.obj.d + FLAGS = -g -std=gnu++11 + INCLUDES = -ID:/LMS/DB_LMS/Debug64 -ID:/LMS/DB_LMS/DataBaseLMS -ID:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/include -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtANGLE -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtCore -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/./mkspecs/win32-g++ -isystem C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql + OBJECT_DIR = CMakeFiles\DataBaseLMS.dir + OBJECT_FILE_DIR = CMakeFiles\DataBaseLMS.dir + build CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj: CXX_COMPILER__DataBaseLMS_unscanned_Debug D$:/LMS/DB_LMS/DataBaseLMS/basicentity.cpp || cmake_object_order_depends_target_DataBaseLMS DEFINES = -DDATABASELMS_LIBRARY -DDataBaseLMS_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_WIDGETS_LIB DEP_FILE = CMakeFiles\DataBaseLMS.dir\basicentity.cpp.obj.d @@ -137,7 +145,7 @@ build CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj: CXX_COMPILER__DataBaseLMS_un ############################################# # Link the shared library libDataBaseLMS.dll -build libDataBaseLMS.dll libDataBaseLMS.dll.a: CXX_SHARED_LIBRARY_LINKER__DataBaseLMS_Debug CMakeFiles/DataBaseLMS.dir/DataBaseLMS_autogen/mocs_compilation.cpp.obj CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj CMakeFiles/DataBaseLMS.dir/user.cpp.obj CMakeFiles/DataBaseLMS.dir/instructor.cpp.obj CMakeFiles/DataBaseLMS.dir/trainee.cpp.obj CMakeFiles/DataBaseLMS.dir/group.cpp.obj CMakeFiles/DataBaseLMS.dir/computer.cpp.obj CMakeFiles/DataBaseLMS.dir/task.cpp.obj CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj | C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Widgets.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Sql.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Gui.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Core.a || DataBaseLMS_autogen +build libDataBaseLMS.dll libDataBaseLMS.dll.a: CXX_SHARED_LIBRARY_LINKER__DataBaseLMS_Debug CMakeFiles/DataBaseLMS.dir/DataBaseLMS_autogen/mocs_compilation.cpp.obj CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj CMakeFiles/DataBaseLMS.dir/interfacedatabaselms.cpp.obj CMakeFiles/DataBaseLMS.dir/basicentity.cpp.obj CMakeFiles/DataBaseLMS.dir/user.cpp.obj CMakeFiles/DataBaseLMS.dir/instructor.cpp.obj CMakeFiles/DataBaseLMS.dir/trainee.cpp.obj CMakeFiles/DataBaseLMS.dir/group.cpp.obj CMakeFiles/DataBaseLMS.dir/computer.cpp.obj CMakeFiles/DataBaseLMS.dir/task.cpp.obj CMakeFiles/DataBaseLMS.dir/classroom.cpp.obj | C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Widgets.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Sql.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Gui.a C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Core.a || DataBaseLMS_autogen LANGUAGE_COMPILE_FLAGS = -g LINK_LIBRARIES = C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Widgets.a C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Sql.a C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Gui.a C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/libQt5Core.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 OBJECT_DIR = CMakeFiles\DataBaseLMS.dir diff --git a/DB_LMS/Debug64/libDataBaseLMS.dll b/DB_LMS/Debug64/libDataBaseLMS.dll index e40c25f..6ffd741 100644 Binary files a/DB_LMS/Debug64/libDataBaseLMS.dll and b/DB_LMS/Debug64/libDataBaseLMS.dll differ diff --git a/DB_LMS/Debug64/libDataBaseLMS.dll.a b/DB_LMS/Debug64/libDataBaseLMS.dll.a index 6b83ecf..8815949 100644 Binary files a/DB_LMS/Debug64/libDataBaseLMS.dll.a and b/DB_LMS/Debug64/libDataBaseLMS.dll.a differ diff --git a/testDB/Debug64/.cmake/api/v1/reply/index-2024-11-05T07-16-53-0597.json b/testDB/Debug64/.cmake/api/v1/reply/index-2024-11-11T08-33-08-0174.json similarity index 100% rename from testDB/Debug64/.cmake/api/v1/reply/index-2024-11-05T07-16-53-0597.json rename to testDB/Debug64/.cmake/api/v1/reply/index-2024-11-11T08-33-08-0174.json diff --git a/testDB/Debug64/.ninja_deps b/testDB/Debug64/.ninja_deps index 51c9c59..1a3a8a9 100644 Binary files a/testDB/Debug64/.ninja_deps and b/testDB/Debug64/.ninja_deps differ diff --git a/testDB/Debug64/.ninja_log b/testDB/Debug64/.ninja_log index aecb261..e73e78c 100644 --- a/testDB/Debug64/.ninja_log +++ b/testDB/Debug64/.ninja_log @@ -1,81 +1,78 @@ # ninja log v5 -10 396 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -477 526 7525774738633531 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp.obj 7ac9b57cd808a15a -10 396 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -473 1597 7525774749339959 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 -475 1610 7525774749469616 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 -10 396 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -8 35 0 CMakeFiles/clean.additional 7155004b3956b606 -396 470 7525774738048804 testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp e72511a2b01b9766 -1611 1743 7525774750773210 testDBpgSQL.exe 481e73a84a688916 -35 42 0 clean 9c4b4372737ab8da -10 396 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -470 1599 7525774749359905 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 -10 396 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -10 396 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -396 470 7525774738048804 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp e72511a2b01b9766 -19 59 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -19 59 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -19 59 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -19 59 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -19 59 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -19 59 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -59 1177 7525805030940500 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 -62 1191 7525805031071769 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 -64 1237 7525805031533450 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 -1237 1375 7525805032905306 testDBpgSQL.exe 481e73a84a688916 -14 46 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -14 46 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -14 46 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -14 46 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -14 46 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -14 46 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -46 1159 7525888685224963 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 -49 1179 7525888685416587 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 -51 1206 7525888685692023 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 -1206 1337 7525888686991561 testDBpgSQL.exe 481e73a84a688916 -11 35 0 CMakeFiles/clean.additional 7155004b3956b606 -36 42 0 clean 9c4b4372737ab8da -11 385 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -11 385 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -11 385 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -11 385 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -11 385 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -11 385 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +51 1173 7531147078279842 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 +12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +12 42 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +54 1200 7531147078543711 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 385 438 7525981909076938 testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp e72511a2b01b9766 +11 35 0 CMakeFiles/clean.additional 7155004b3956b606 +1200 1336 7531147079886299 testDBpgSQL.exe 481e73a84a688916 +36 42 0 clean 9c4b4372737ab8da +48 1192 7531147078472554 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 +12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +12 42 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +12 42 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 385 438 7525981909076938 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp e72511a2b01b9766 +12 42 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 446 495 7525981909669873 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/EWIEGA46WW/qrc_testDBpgSQL.cpp.obj 7ac9b57cd808a15a -438 1559 7525981920308333 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 -441 1568 7525981920388693 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 -443 1600 7525981920671129 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 -1600 1730 7525981922004409 testDBpgSQL.exe 481e73a84a688916 -15 52 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -15 52 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -15 52 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -15 52 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -15 52 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -15 52 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -12 42 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -12 42 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -12 42 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -12 42 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -12 42 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -12 42 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -12 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -11 42 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -11 42 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -11 42 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 -11 42 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 -11 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 -11 42 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 11 41 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 11 41 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 11 41 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 11 41 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +44 1157 7531213263801735 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 +41 1178 7531213263994252 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 +46 1184 7531213264064062 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 +1184 1313 7531213265341724 testDBpgSQL.exe 481e73a84a688916 +15 46 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +15 46 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +15 46 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +15 46 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +15 46 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +15 46 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 41 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 41 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 41 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 43 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 43 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 43 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 43 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +13 43 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +13 43 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +13 43 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +13 43 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +13 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +13 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +12 43 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +12 43 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +12 43 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +12 43 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +12 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +12 43 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 41 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 41 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 41 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +11 41 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +26 69 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +26 69 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +26 69 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +26 69 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +26 69 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +26 69 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +70 1184 7531839606020719 CMakeFiles/testDBpgSQL.dir/testDBpgSQL_autogen/mocs_compilation.cpp.obj 223f91fdbeaff3f0 +72 1217 7531839606323683 CMakeFiles/testDBpgSQL.dir/main.cpp.obj 7c6bf829703494a2 +74 1217 7531839606323683 CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj a213cdc2d21087f1 +1217 1369 7531839607852787 testDBpgSQL.exe 481e73a84a688916 +15 47 0 CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +15 47 0 testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +15 47 0 testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 +15 47 0 D:/LMS/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen d08ec0c05fa072d8 +15 47 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/mocs_compilation.cpp d08ec0c05fa072d8 +15 47 0 D:/LMS/testDB/Debug64/testDBpgSQL_autogen/include/ui_mainwindow.h d08ec0c05fa072d8 diff --git a/testDB/Debug64/CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj b/testDB/Debug64/CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj index f78b1a7..870acdc 100644 Binary files a/testDB/Debug64/CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj and b/testDB/Debug64/CMakeFiles/testDBpgSQL.dir/mainwindow.cpp.obj differ diff --git a/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen.dir/ParseCache.txt b/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen.dir/ParseCache.txt index 0857f61..5894f10 100644 --- a/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen.dir/ParseCache.txt +++ b/testDB/Debug64/CMakeFiles/testDBpgSQL_autogen.dir/ParseCache.txt @@ -1,6 +1,6 @@ # Generated by CMake. Changes will be overwritten. -D:/LMS/testDB/testDBpgSQL/mainwindow.cpp - uic:./ui_mainwindow.h -D:/LMS/testDB/testDBpgSQL/main.cpp D:/LMS/testDB/testDBpgSQL/mainwindow.h mmc:Q_OBJECT +D:/LMS/testDB/testDBpgSQL/main.cpp +D:/LMS/testDB/testDBpgSQL/mainwindow.cpp + uic:./ui_mainwindow.h diff --git a/testDB/Debug64/libDataBaseLMS.dll b/testDB/Debug64/libDataBaseLMS.dll index e40c25f..6ffd741 100644 Binary files a/testDB/Debug64/libDataBaseLMS.dll and b/testDB/Debug64/libDataBaseLMS.dll differ diff --git a/testDB/Debug64/libInstructorsAndTrainees.dll b/testDB/Debug64/libInstructorsAndTrainees.dll index 0e60854..efd31e5 100644 Binary files a/testDB/Debug64/libInstructorsAndTrainees.dll and b/testDB/Debug64/libInstructorsAndTrainees.dll differ diff --git a/testDB/Debug64/testDBpgSQL.exe b/testDB/Debug64/testDBpgSQL.exe index e29fa2c..b598303 100644 Binary files a/testDB/Debug64/testDBpgSQL.exe and b/testDB/Debug64/testDBpgSQL.exe differ diff --git a/testDB/testDBpgSQL/CMakeLists.txt.user b/testDB/testDBpgSQL/CMakeLists.txt.user index 77f129a..1ec22fb 100644 --- a/testDB/testDBpgSQL/CMakeLists.txt.user +++ b/testDB/testDBpgSQL/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/testDB/testDBpgSQL/mainwindow.cpp b/testDB/testDBpgSQL/mainwindow.cpp index 877d9c5..fe19b71 100644 --- a/testDB/testDBpgSQL/mainwindow.cpp +++ b/testDB/testDBpgSQL/mainwindow.cpp @@ -12,7 +12,8 @@ MainWindow::MainWindow(QWidget *parent) ui->setupUi(this); m_instructorsAndTraineesWidget = new InstructorsAndTraineesWidget(this); - if(! m_instructorsAndTraineesWidget->authorizationCompleted()) + + if(! m_instructorsAndTraineesWidget->authorizationIsCompleted()) { delete m_instructorsAndTraineesWidget; delete ui;