From 3f893eb0236b5a8ade50b59eea0580c5f596e2e0 Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 5 May 2020 21:49:00 +0200 Subject: [PATCH] Version19.212 --- swad_action.c | 85 ++++++++-------- swad_action.h | 242 +++++++++++++++++++++++---------------------- swad_agenda.c | 2 +- swad_agenda.h | 2 +- swad_assignment.c | 2 +- swad_assignment.h | 2 +- swad_attendance.c | 2 +- swad_attendance.h | 2 +- swad_banner.c | 2 +- swad_banner.h | 2 +- swad_building.c | 2 +- swad_building.h | 2 +- swad_centre.c | 12 +-- swad_centre.h | 4 +- swad_changelog.h | 6 +- swad_country.c | 2 +- swad_country.h | 2 +- swad_course.c | 12 +-- swad_course.h | 4 +- swad_database.c | 2 +- swad_degree.c | 12 +-- swad_degree.h | 4 +- swad_degree_type.c | 2 +- swad_degree_type.h | 2 +- swad_department.c | 2 +- swad_department.h | 2 +- swad_exam.c | 67 +++---------- swad_exam.h | 91 ++--------------- swad_exam_event.c | 143 +++++++++++++++++---------- swad_exam_event.h | 45 +-------- swad_exam_result.c | 23 ++--- swad_exam_type.h | 147 +++++++++++++++++++++++++++ swad_game.c | 2 +- swad_game.h | 2 +- swad_group.c | 4 +- swad_group.h | 4 +- swad_holiday.c | 2 +- swad_holiday.h | 2 +- swad_institution.c | 12 +-- swad_institution.h | 4 +- swad_link.c | 2 +- swad_link.h | 2 +- swad_mail.c | 2 +- swad_mail.h | 2 +- swad_place.c | 2 +- swad_place.h | 2 +- swad_plugin.c | 2 +- swad_plugin.h | 2 +- swad_program.c | 4 +- swad_program.h | 5 +- swad_project.c | 2 +- swad_project.h | 2 +- swad_room.c | 2 +- swad_room.h | 2 +- swad_survey.c | 2 +- swad_survey.h | 2 +- swad_text_action.c | 126 +++++++++++++++-------- 57 files changed, 606 insertions(+), 520 deletions(-) create mode 100644 swad_exam_type.h diff --git a/swad_action.c b/swad_action.c index ea78946a..9fd63b30 100644 --- a/swad_action.c +++ b/swad_action.c @@ -190,7 +190,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeMai ] = { 855,-1,TabUnk,ActSeeNtf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_SeeMailDomains ,NULL}, [ActEdiMai ] = { 856,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_EditMailDomains ,NULL}, - [ActNewMai ] = { 857,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Mai_RecFormNewMailDomain ,Mai_ContEditAfterChgMai ,NULL}, + [ActNewMai ] = { 857,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Mai_ReceiveFormNewMailDomain ,Mai_ContEditAfterChgMai ,NULL}, [ActRemMai ] = { 860,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Mai_RemoveMailDomain ,Mai_ContEditAfterChgMai ,NULL}, [ActRenMaiSho ] = { 858,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Mai_RenameMailDomainShort ,Mai_ContEditAfterChgMai ,NULL}, [ActRenMaiFul ] = { 859,-1,TabUnk,ActSeeNtf ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Mai_RenameMailDomainFull ,Mai_ContEditAfterChgMai ,NULL}, @@ -208,14 +208,14 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActPrnSysInf ] = {1819,-1,TabUnk,ActSeeSysInf , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,SysCfg_PrintConfiguration ,NULL}, [ActEdiCty ] = { 863,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cty_EditCountries ,NULL}, - [ActNewCty ] = { 864,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_RecFormNewCountry ,Cty_ContEditAfterChgCty ,NULL}, + [ActNewCty ] = { 864,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_ReceiveFormNewCountry ,Cty_ContEditAfterChgCty ,NULL}, [ActRemCty ] = { 893,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_RemoveCountry ,Cty_ContEditAfterChgCty ,NULL}, [ActRenCty ] = { 866,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_RenameCountry ,Cty_ContEditAfterChgCty ,NULL}, [ActChgCtyWWW ] = {1157,-1,TabUnk,ActSeeCty , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Cty_ChangeCtyWWW ,Cty_ContEditAfterChgCty ,NULL}, [ActSeeBan ] = {1137,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3FF,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_SeeBanners ,NULL}, [ActEdiBan ] = {1138,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_EditBanners ,NULL}, - [ActNewBan ] = {1139,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RecFormNewBanner ,Ban_ContEditAfterChgBan ,NULL}, + [ActNewBan ] = {1139,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_ReceiveFormNewBanner ,Ban_ContEditAfterChgBan ,NULL}, [ActRemBan ] = {1140,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RemoveBanner ,Ban_ContEditAfterChgBan ,NULL}, [ActShoBan ] = {1212,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_ShowBanner ,Ban_ContEditAfterChgBan ,NULL}, [ActHidBan ] = {1213,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_HideBanner ,Ban_ContEditAfterChgBan ,NULL}, @@ -226,14 +226,14 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActClkBan ] = {1145,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_DOWNLD_FILE,Ban_ClickOnBanner ,NULL ,NULL}, [ActEdiLnk ] = { 749,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lnk_EditLinks ,NULL}, - [ActNewLnk ] = { 750,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_RecFormNewLink ,Lnk_ContEditAfterChgLnk ,NULL}, + [ActNewLnk ] = { 750,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_ReceiveFormNewLink ,Lnk_ContEditAfterChgLnk ,NULL}, [ActRemLnk ] = { 897,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_RemoveLink ,Lnk_ContEditAfterChgLnk ,NULL}, [ActRenLnkSho ] = { 753,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_RenameLinkShort ,Lnk_ContEditAfterChgLnk ,NULL}, [ActRenLnkFul ] = { 751,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_RenameLinkFull ,Lnk_ContEditAfterChgLnk ,NULL}, [ActChgLnkWWW ] = { 752,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Lnk_ChangeLinkWWW ,Lnk_ContEditAfterChgLnk ,NULL}, [ActEdiPlg ] = { 778,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Plg_EditPlugins ,NULL}, - [ActNewPlg ] = { 779,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Plg_RecFormNewPlg ,Plg_ContEditAfterChgPlg ,NULL}, + [ActNewPlg ] = { 779,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Plg_ReceiveFormNewPlg ,Plg_ContEditAfterChgPlg ,NULL}, [ActRemPlg ] = { 889,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Plg_RemovePlugin ,Plg_ContEditAfterChgPlg ,NULL}, [ActRenPlg ] = { 782,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Plg_RenamePlugin ,Plg_ContEditAfterChgPlg ,NULL}, [ActChgPlgDes ] = { 888,-1,TabUnk,ActLstPlg , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Plg_ChangePlgDescription ,Plg_ContEditAfterChgPlg ,NULL}, @@ -256,8 +256,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgCtyMapAtt ] = {1158,-1,TabUnk,ActSeeCtyInf , 0, 0, 0, 0, 0,0x200, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,CtyCfg_ChangeCtyMapAttr ,NULL}, [ActEdiIns ] = { 697,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ins_EditInstitutions ,NULL}, - [ActReqIns ] = {1210,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_RecFormReqIns ,Ins_ContEditAfterChgIns ,NULL}, - [ActNewIns ] = { 698,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x200, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_RecFormNewIns ,Ins_ContEditAfterChgIns ,NULL}, + [ActReqIns ] = {1210,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_ReceiveFormReqIns ,Ins_ContEditAfterChgIns ,NULL}, + [ActNewIns ] = { 698,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x200, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_ReceiveFormNewIns ,Ins_ContEditAfterChgIns ,NULL}, [ActRemIns ] = { 759,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_RemoveInstitution ,Ins_ContEditAfterChgIns ,NULL}, [ActRenInsSho ] = { 702,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_RenameInsShort ,Ins_ContEditAfterChgIns ,NULL}, [ActRenInsFul ] = { 701,-1,TabUnk,ActSeeIns , 0, 0, 0, 0, 0,0x3C6, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ins_RenameInsFull ,Ins_ContEditAfterChgIns ,NULL}, @@ -283,8 +283,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActRemInsLog ] = {1341,-1,TabUnk,ActSeeInsInf , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_DATA,Act_BRW_1ST_TAB,InsCfg_RemoveLogo ,InsCfg_ShowConfiguration ,NULL}, [ActEdiCtr ] = { 681,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x3C6, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ctr_EditCentres ,NULL}, - [ActReqCtr ] = {1208,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x3C6, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_RecFormReqCtr ,Ctr_ContEditAfterChgCtr ,NULL}, - [ActNewCtr ] = { 685,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_RecFormNewCtr ,Ctr_ContEditAfterChgCtr ,NULL}, + [ActReqCtr ] = {1208,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x3C6, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_ReceiveFormReqCtr ,Ctr_ContEditAfterChgCtr ,NULL}, + [ActNewCtr ] = { 685,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_ReceiveFormNewCtr ,Ctr_ContEditAfterChgCtr ,NULL}, [ActRemCtr ] = { 686,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x3C6, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_RemoveCentre ,Ctr_ContEditAfterChgCtr ,NULL}, [ActChgCtrPlc ] = { 706,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_ChangeCtrPlc ,Ctr_ContEditAfterChgCtr ,NULL}, [ActRenCtrSho ] = { 682,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x3C6, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_RenameCentreShort ,Ctr_ContEditAfterChgCtr ,NULL}, @@ -293,13 +293,13 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgCtrSta ] = {1209,-1,TabUnk,ActSeeCtr , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Ctr_ChangeCtrStatus ,Ctr_ContEditAfterChgCtr ,NULL}, [ActEdiPlc ] = { 704,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Plc_EditPlaces ,NULL}, - [ActNewPlc ] = { 705,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Plc_RecFormNewPlace ,Plc_ContEditAfterChgPlc ,NULL}, + [ActNewPlc ] = { 705,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Plc_ReceiveFormNewPlace ,Plc_ContEditAfterChgPlc ,NULL}, [ActRemPlc ] = { 776,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Plc_RemovePlace ,Plc_ContEditAfterChgPlc ,NULL}, [ActRenPlcSho ] = { 894,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Plc_RenamePlaceShort ,Plc_ContEditAfterChgPlc ,NULL}, [ActRenPlcFul ] = { 895,-1,TabUnk,ActSeePlc , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Plc_RenamePlaceFull ,Plc_ContEditAfterChgPlc ,NULL}, [ActEdiDpt ] = { 677,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Dpt_EditDepartments ,NULL}, - [ActNewDpt ] = { 687,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_RecFormNewDpt ,Dpt_ContEditAfterChgDpt ,NULL}, + [ActNewDpt ] = { 687,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_ReceiveFormNewDpt ,Dpt_ContEditAfterChgDpt ,NULL}, [ActRemDpt ] = { 690,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_RemoveDepartment ,Dpt_ContEditAfterChgDpt ,NULL}, [ActChgDptIns ] = { 721,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_ChangeDepartIns ,Dpt_ContEditAfterChgDpt ,NULL}, [ActRenDptSho ] = { 688,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_RenameDepartShort ,Dpt_ContEditAfterChgDpt ,NULL}, @@ -307,7 +307,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgDptWWW ] = { 691,-1,TabUnk,ActSeeDpt , 0, 0, 0, 0,0x200, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dpt_ChangeDptWWW ,Dpt_ContEditAfterChgDpt ,NULL}, [ActEdiHld ] = { 713,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Hld_EditHolidays ,NULL}, - [ActNewHld ] = { 714,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Hld_RecFormNewHoliday ,Hld_ContEditAfterChgHld ,NULL}, + [ActNewHld ] = { 714,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Hld_ReceiveFormNewHoliday ,Hld_ContEditAfterChgHld ,NULL}, [ActRemHld ] = { 716,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Hld_RemoveHoliday ,Hld_ContEditAfterChgHld ,NULL}, [ActChgHldPlc ] = { 896,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Hld_ChangeHolidayPlace ,Hld_ContEditAfterChgHld ,NULL}, [ActChgHldTyp ] = { 715,-1,TabUnk,ActSeeHld , 0, 0, 0, 0,0x300, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Hld_ChangeHolidayType ,Hld_ContEditAfterChgHld ,NULL}, @@ -341,13 +341,13 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeDegTyp ] = {1013,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DT_SeeDegreeTypesInDegTab ,NULL}, [ActEdiDegTyp ] = { 573,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,DT_EditDegreeTypes ,NULL}, - [ActNewDegTyp ] = { 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_RecFormNewDegreeType ,DT_ContEditAfterChgDegTyp ,NULL}, + [ActNewDegTyp ] = { 537,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_ReceiveFormNewDegreeType ,DT_ContEditAfterChgDegTyp ,NULL}, [ActRemDegTyp ] = { 545,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_RemoveDegreeType ,DT_ContEditAfterChgDegTyp ,NULL}, [ActRenDegTyp ] = { 538,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x200, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,DT_RenameDegreeType ,DT_ContEditAfterChgDegTyp ,NULL}, [ActEdiDeg ] = { 536,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_EditDegrees ,NULL}, - [ActReqDeg ] = {1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_RecFormReqDeg ,Deg_ContEditAfterChgDeg ,NULL}, - [ActNewDeg ] = { 540,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_RecFormNewDeg ,Deg_ContEditAfterChgDeg ,NULL}, + [ActReqDeg ] = {1206,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_ReceiveFormReqDeg ,Deg_ContEditAfterChgDeg ,NULL}, + [ActNewDeg ] = { 540,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_ReceiveFormNewDeg ,Deg_ContEditAfterChgDeg ,NULL}, [ActRemDeg ] = { 542,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_RemoveDegree ,Deg_ContEditAfterChgDeg ,NULL}, [ActRenDegSho ] = { 546,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_RenameDegreeShort ,Deg_ContEditAfterChgDeg ,NULL}, [ActRenDegFul ] = { 547,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_RenameDegreeFull ,Deg_ContEditAfterChgDeg ,NULL}, @@ -356,14 +356,14 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgDegSta ] = {1207,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_ChangeDegStatus ,Deg_ContEditAfterChgDeg ,NULL}, [ActEdiBld ] = {1839,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Bld_EditBuildings ,NULL}, - [ActNewBld ] = {1840,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RecFormNewBuilding ,Bld_ContEditAfterChgBuilding ,NULL}, + [ActNewBld ] = {1840,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_ReceiveFormNewBuilding ,Bld_ContEditAfterChgBuilding ,NULL}, [ActRemBld ] = {1841,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RemoveBuilding ,Bld_ContEditAfterChgBuilding ,NULL}, [ActRenBldSho ] = {1842,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RenameBuildingShort ,Bld_ContEditAfterChgBuilding ,NULL}, [ActRenBldFul ] = {1843,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RenameBuildingFull ,Bld_ContEditAfterChgBuilding ,NULL}, [ActRenBldLoc ] = {1844,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_ChangeBuildingLocation ,Bld_ContEditAfterChgBuilding ,NULL}, [ActEdiRoo ] = {1745,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Roo_EditRooms ,NULL}, - [ActNewRoo ] = {1746,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RecFormNewRoom ,Roo_ContEditAfterChgRoom ,NULL}, + [ActNewRoo ] = {1746,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ReceiveFormNewRoom ,Roo_ContEditAfterChgRoom ,NULL}, [ActRemRoo ] = {1747,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RemoveRoom ,Roo_ContEditAfterChgRoom ,NULL}, [ActChgRooBld ] = {1845,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ChangeBuilding ,Roo_ContEditAfterChgRoom ,NULL}, [ActChgRooFlo ] = {1846,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ChangeFloor ,Roo_ContEditAfterChgRoom ,NULL}, @@ -388,8 +388,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActRemDegLog ] = {1343,-1,TabUnk,ActSeeDegInf , 0, 0,0x3C0, 0, 0, 0, 0,Act_CONT_DATA,Act_BRW_1ST_TAB,Deg_RemoveLogo ,DegCfg_ShowConfiguration ,NULL}, [ActEdiCrs ] = { 555,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Crs_EditCourses ,NULL}, - [ActReqCrs ] = {1053,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_RecFormReqCrs ,Crs_ContEditAfterChgCrs ,NULL}, - [ActNewCrs ] = { 556,-1,TabUnk,ActSeeCrs , 0, 0,0x3C0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_RecFormNewCrs ,Crs_ContEditAfterChgCrs ,NULL}, + [ActReqCrs ] = {1053,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_ReceiveFormReqCrs ,Crs_ContEditAfterChgCrs ,NULL}, + [ActNewCrs ] = { 556,-1,TabUnk,ActSeeCrs , 0, 0,0x3C0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_ReceiveFormNewCrs ,Crs_ContEditAfterChgCrs ,NULL}, [ActRemCrs ] = { 560,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_RemoveCourse ,Crs_ContEditAfterChgCrs ,NULL}, [ActChgInsCrsCod ] = {1025,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_ChangeInsCrsCod ,Crs_ContEditAfterChgCrs ,NULL}, [ActChgCrsYea ] = { 561,-1,TabUnk,ActSeeCrs , 0, 0,0x3C6, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Crs_ChangeCrsYear ,Crs_ContEditAfterChgCrs ,NULL}, @@ -419,8 +419,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewPrgItm ] = {1822,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RequestCreateItem ,NULL}, [ActFrmChgPrgItm ] = {1823,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RequestChangeItem ,NULL}, - [ActNewPrgItm ] = {1825,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RecFormNewItem ,NULL}, - [ActChgPrgItm ] = {1826,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RecFormChgItem ,NULL}, + [ActNewPrgItm ] = {1825,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_ReceiveFormNewItem ,NULL}, + [ActChgPrgItm ] = {1826,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_ReceiveFormChgItem ,NULL}, [ActReqRemPrgItm ] = {1827,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_ReqRemItem ,NULL}, [ActRemPrgItm ] = {1828,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_RemoveItem ,NULL}, [ActHidPrgItm ] = {1829,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prg_HideItem ,NULL}, @@ -567,8 +567,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewAsg ] = { 812,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RequestCreatOrEditAsg ,NULL}, [ActEdiOneAsg ] = { 814,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RequestCreatOrEditAsg ,NULL}, [ActPrnOneAsg ] = {1637,-1,TabUnk,ActSeeAsg ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Asg_PrintOneAssignment ,NULL}, - [ActNewAsg ] = { 803,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RecFormAssignment ,NULL}, - [ActChgAsg ] = { 815,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RecFormAssignment ,NULL}, + [ActNewAsg ] = { 803,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ReceiveFormAssignment ,NULL}, + [ActChgAsg ] = { 815,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ReceiveFormAssignment ,NULL}, [ActReqRemAsg ] = { 813,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ReqRemAssignment ,NULL}, [ActRemAsg ] = { 806,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RemoveAssignment ,NULL}, [ActHidAsg ] = { 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL}, @@ -585,8 +585,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewPrj ] = {1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL}, [ActEdiOnePrj ] = {1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL}, [ActPrnOnePrj ] = {1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL}, - [ActNewPrj ] = {1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL}, - [ActChgPrj ] = {1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL}, + [ActNewPrj ] = {1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL}, + [ActChgPrj ] = {1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL}, [ActReqRemPrj ] = {1680,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqRemProject ,NULL}, [ActRemPrj ] = {1681,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RemoveProject ,NULL}, [ActHidPrj ] = {1682,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_HideProject ,NULL}, @@ -677,12 +677,15 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeExa ] = {1849,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeOneExam ,NULL}, + [ActReqNewExaEvt ] = {1852,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_RequestCreatOrEditEvent ,NULL}, + [ActEdiOneExaEvt ] = {1902,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_RequestCreatOrEditEvent ,NULL}, + [ActNewExaEvt ] = {1853,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_ReceiveFormEvent ,NULL}, + [ActChgExaEvt ] = {1903,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_ReceiveFormEvent ,NULL}, [ActReqRemExaEvt ] = {1850,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_RequestRemoveEvent ,NULL}, [ActRemExaEvt ] = {1851,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_RemoveEvent ,NULL}, [ActHidExaEvt ] = {1900,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_HideEvent ,NULL}, [ActShoExaEvt ] = {1901,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_UnhideEvent ,NULL}, - [ActReqNewExaEvt ] = {1852,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_RequestNewEvent ,NULL}, - [ActNewExaEvt ] = {1853,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_CreateNewEventTch ,NULL}, + [ActResExaEvt ] = {1854,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ResumeEvent ,NULL}, [ActBckExaEvt ] = {1855,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_BackEvent ,NULL}, [ActPlyPauExaEvt ] = {1856,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_PlayPauseEvent ,NULL}, @@ -713,15 +716,15 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewExa ] = {1877,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_RequestCreatOrEditExam ,NULL}, [ActEdiOneExa ] = {1878,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_RequestCreatOrEditExam ,NULL}, - [ActNewExa ] = {1879,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_RecFormExam ,NULL}, - [ActChgExa ] = {1880,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_RecFormExam ,NULL}, + [ActNewExa ] = {1879,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_ReceiveFormExam ,NULL}, + [ActChgExa ] = {1880,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_ReceiveFormExam ,NULL}, [ActReqRemExa ] = {1881,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_AskRemExam ,NULL}, [ActRemExa ] = {1882,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_RemoveExam ,NULL}, [ActHidExa ] = {1883,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_HideExam ,NULL}, [ActShoExa ] = {1884,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_UnhideExam ,NULL}, [ActFrmNewExaSet ] = {1892,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,ExaSet_RequestCreatOrEditSet ,NULL}, - [ActNewExaSet ] = {1898,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSet_RecFormSet ,NULL}, + [ActNewExaSet ] = {1898,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSet_ReceiveFormSet ,NULL}, [ActReqRemExaSet ] = {1893,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSet_RequestRemoveSet ,NULL}, [ActRemExaSet ] = {1894,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSet_RemoveSet ,NULL}, [ActUp_ExaSet ] = {1895,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSet_MoveUpSet ,NULL}, @@ -771,8 +774,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewGam ] = {1652,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestCreatOrEditGame ,NULL}, [ActEdiOneGam ] = {1653,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestCreatOrEditGame ,NULL}, - [ActNewGam ] = {1654,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RecFormGame ,NULL}, - [ActChgGam ] = {1655,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RecFormGame ,NULL}, + [ActNewGam ] = {1654,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ReceiveFormGame ,NULL}, + [ActChgGam ] = {1655,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ReceiveFormGame ,NULL}, [ActReqRemGam ] = {1656,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_AskRemGame ,NULL}, [ActRemGam ] = {1657,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RemoveGame ,NULL}, [ActHidGam ] = {1660,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_HideGame ,NULL}, @@ -789,8 +792,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActAnsSvy ] = { 983,-1,TabUnk,ActSeeAllSvy ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_ReceiveSurveyAnswers ,NULL}, [ActFrmNewSvy ] = { 973,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_RequestCreatOrEditSvy ,NULL}, [ActEdiOneSvy ] = { 974,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_RequestCreatOrEditSvy ,NULL}, - [ActNewSvy ] = { 968,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_RecFormSurvey ,NULL}, - [ActChgSvy ] = { 975,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_RecFormSurvey ,NULL}, + [ActNewSvy ] = { 968,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_ReceiveFormSurvey ,NULL}, + [ActChgSvy ] = { 975,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_ReceiveFormSurvey ,NULL}, [ActReqRemSvy ] = { 976,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_AskRemSurvey ,NULL}, [ActRemSvy ] = { 969,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_RemoveSurvey ,NULL}, [ActReqRstSvy ] = { 984,-1,TabUnk,ActSeeAllSvy ,0x3E0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_AskResetSurvey ,NULL}, @@ -1308,7 +1311,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActReqEdiGrp ] = { 108,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ReqEditGroups ,NULL}, - [ActNewGrpTyp ] = { 174,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RecFormNewGrpTyp ,NULL}, + [ActNewGrpTyp ] = { 174,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ReceiveFormNewGrpTyp ,NULL}, [ActReqRemGrpTyp ] = { 236,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ReqRemGroupType ,NULL}, [ActRemGrpTyp ] = { 237,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RemoveGroupType ,NULL}, [ActRenGrpTyp ] = { 304,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RenameGroupType ,NULL}, @@ -1316,7 +1319,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActChgMulGrpTyp ] = { 302,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ChangeMultiGrpTyp ,NULL}, [ActChgTimGrpTyp ] = {1061,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ChangeOpenTimeGrpTyp ,NULL}, - [ActNewGrp ] = { 122,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RecFormNewGrp ,NULL}, + [ActNewGrp ] = { 122,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ReceiveFormNewGrp ,NULL}, [ActReqRemGrp ] = { 107,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_ReqRemGroup ,NULL}, [ActRemGrp ] = { 175,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_RemoveGroup ,NULL}, [ActOpeGrp ] = { 322,-1,TabUnk,ActReqSelGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Grp_OpenGroup ,NULL}, @@ -1377,8 +1380,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActPrnLstUsrAtt ] = {1075,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Att_PrintUsrsAttendanceCrs ,NULL}, [ActFrmNewAtt ] = {1063,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RequestCreatOrEditAttEvent ,NULL}, [ActEdiOneAtt ] = {1064,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RequestCreatOrEditAttEvent ,NULL}, - [ActNewAtt ] = {1065,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RecFormAttEvent ,NULL}, - [ActChgAtt ] = {1066,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RecFormAttEvent ,NULL}, + [ActNewAtt ] = {1065,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_ReceiveFormAttEvent ,NULL}, + [ActChgAtt ] = {1066,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_ReceiveFormAttEvent ,NULL}, [ActReqRemAtt ] = {1067,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_AskRemAttEvent ,NULL}, [ActRemAtt ] = {1068,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_GetAndRemAttEvent ,NULL}, [ActHidAtt ] = {1069,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_HideAttEvent ,NULL}, @@ -1741,8 +1744,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActFrmNewEvtMyAgd ] = {1603,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_RequestCreatOrEditEvent ,NULL}, [ActEdiOneEvtMyAgd ] = {1604,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_RequestCreatOrEditEvent ,NULL}, - [ActNewEvtMyAgd ] = {1605,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_RecFormEvent ,NULL}, - [ActChgEvtMyAgd ] = {1606,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_RecFormEvent ,NULL}, + [ActNewEvtMyAgd ] = {1605,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_ReceiveFormEvent ,NULL}, + [ActChgEvtMyAgd ] = {1606,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_ReceiveFormEvent ,NULL}, [ActReqRemEvtMyAgd ] = {1607,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_AskRemEvent ,NULL}, [ActRemEvtMyAgd ] = {1608,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_RemoveEvent ,NULL}, [ActHidEvtMyAgd ] = {1612,-1,TabUnk,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_HideEvent ,NULL}, @@ -3714,6 +3717,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActChgNumQstExaSet, // #1899 ActHidExaEvt, // #1900 ActShoExaEvt, // #1901 + ActEdiOneExaEvt, // #1902 + ActChgExaEvt, // #1903 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index 10bca54e..c0f92b0f 100644 --- a/swad_action.h +++ b/swad_action.h @@ -64,7 +64,7 @@ typedef enum typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action -#define Act_MAX_ACTION_COD 1901 +#define Act_MAX_ACTION_COD 1903 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 @@ -644,137 +644,141 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActSeeOneTstResOth (ActChgCrsTT1stDay + 122) #define ActSeeExa (ActChgCrsTT1stDay + 123) -#define ActReqRemExaEvt (ActChgCrsTT1stDay + 124) -#define ActRemExaEvt (ActChgCrsTT1stDay + 125) -#define ActHidExaEvt (ActChgCrsTT1stDay + 126) -#define ActShoExaEvt (ActChgCrsTT1stDay + 127) -#define ActReqNewExaEvt (ActChgCrsTT1stDay + 128) -#define ActNewExaEvt (ActChgCrsTT1stDay + 129) -#define ActResExaEvt (ActChgCrsTT1stDay + 130) -#define ActBckExaEvt (ActChgCrsTT1stDay + 131) -#define ActPlyPauExaEvt (ActChgCrsTT1stDay + 132) -#define ActFwdExaEvt (ActChgCrsTT1stDay + 133) -#define ActChgNumColExaEvt (ActChgCrsTT1stDay + 134) -#define ActChgVisResExaEvtQst (ActChgCrsTT1stDay + 135) -#define ActExaEvtCntDwn (ActChgCrsTT1stDay + 136) -#define ActRefExaEvtTch (ActChgCrsTT1stDay + 137) -#define ActJoiExaEvt (ActChgCrsTT1stDay + 138) -#define ActSeeExaEvtAnsQstStd (ActChgCrsTT1stDay + 139) -#define ActRemExaEvtAnsQstStd (ActChgCrsTT1stDay + 140) -#define ActAnsExaEvtQstStd (ActChgCrsTT1stDay + 141) -#define ActRefExaEvtStd (ActChgCrsTT1stDay + 142) -#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 143) -#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 144) -#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 145) -#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 146) +#define ActReqNewExaEvt (ActChgCrsTT1stDay + 124) +#define ActEdiOneExaEvt (ActChgCrsTT1stDay + 125) +#define ActNewExaEvt (ActChgCrsTT1stDay + 126) +#define ActChgExaEvt (ActChgCrsTT1stDay + 127) +#define ActReqRemExaEvt (ActChgCrsTT1stDay + 128) +#define ActRemExaEvt (ActChgCrsTT1stDay + 129) +#define ActHidExaEvt (ActChgCrsTT1stDay + 130) +#define ActShoExaEvt (ActChgCrsTT1stDay + 131) -#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 147) -#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 148) -#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 149) -#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 150) -#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 151) +#define ActResExaEvt (ActChgCrsTT1stDay + 132) +#define ActBckExaEvt (ActChgCrsTT1stDay + 133) +#define ActPlyPauExaEvt (ActChgCrsTT1stDay + 134) +#define ActFwdExaEvt (ActChgCrsTT1stDay + 135) +#define ActChgNumColExaEvt (ActChgCrsTT1stDay + 136) +#define ActChgVisResExaEvtQst (ActChgCrsTT1stDay + 137) +#define ActExaEvtCntDwn (ActChgCrsTT1stDay + 138) +#define ActRefExaEvtTch (ActChgCrsTT1stDay + 139) +#define ActJoiExaEvt (ActChgCrsTT1stDay + 140) +#define ActSeeExaEvtAnsQstStd (ActChgCrsTT1stDay + 141) +#define ActRemExaEvtAnsQstStd (ActChgCrsTT1stDay + 142) +#define ActAnsExaEvtQstStd (ActChgCrsTT1stDay + 143) +#define ActRefExaEvtStd (ActChgCrsTT1stDay + 144) -#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 152) +#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 145) +#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 146) +#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 147) +#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 148) -#define ActFrmNewExa (ActChgCrsTT1stDay + 153) -#define ActEdiOneExa (ActChgCrsTT1stDay + 154) -#define ActNewExa (ActChgCrsTT1stDay + 155) -#define ActChgExa (ActChgCrsTT1stDay + 156) -#define ActReqRemExa (ActChgCrsTT1stDay + 157) -#define ActRemExa (ActChgCrsTT1stDay + 158) -#define ActHidExa (ActChgCrsTT1stDay + 159) -#define ActShoExa (ActChgCrsTT1stDay + 160) -#define ActFrmNewExaSet (ActChgCrsTT1stDay + 161) -#define ActNewExaSet (ActChgCrsTT1stDay + 162) -#define ActReqRemExaSet (ActChgCrsTT1stDay + 163) -#define ActRemExaSet (ActChgCrsTT1stDay + 164) -#define ActUp_ExaSet (ActChgCrsTT1stDay + 165) -#define ActDwnExaSet (ActChgCrsTT1stDay + 166) -#define ActChgTitExaSet (ActChgCrsTT1stDay + 167) -#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 168) +#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 149) +#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 150) +#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 151) +#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 152) +#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 153) -#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 169) -#define ActLstTstQstForSet (ActChgCrsTT1stDay + 170) -#define ActAddQstToExa (ActChgCrsTT1stDay + 171) -#define ActReqRemSetQst (ActChgCrsTT1stDay + 172) -#define ActRemExaQst (ActChgCrsTT1stDay + 173) +#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 154) -#define ActSeeGam (ActChgCrsTT1stDay + 174) -#define ActReqRemMch (ActChgCrsTT1stDay + 175) -#define ActRemMch (ActChgCrsTT1stDay + 176) -#define ActReqNewMch (ActChgCrsTT1stDay + 177) -#define ActNewMch (ActChgCrsTT1stDay + 178) -#define ActResMch (ActChgCrsTT1stDay + 179) -#define ActBckMch (ActChgCrsTT1stDay + 180) -#define ActPlyPauMch (ActChgCrsTT1stDay + 181) -#define ActFwdMch (ActChgCrsTT1stDay + 182) -#define ActChgNumColMch (ActChgCrsTT1stDay + 183) -#define ActChgVisResMchQst (ActChgCrsTT1stDay + 184) -#define ActMchCntDwn (ActChgCrsTT1stDay + 185) -#define ActRefMchTch (ActChgCrsTT1stDay + 186) +#define ActFrmNewExa (ActChgCrsTT1stDay + 155) +#define ActEdiOneExa (ActChgCrsTT1stDay + 156) +#define ActNewExa (ActChgCrsTT1stDay + 157) +#define ActChgExa (ActChgCrsTT1stDay + 158) +#define ActReqRemExa (ActChgCrsTT1stDay + 159) +#define ActRemExa (ActChgCrsTT1stDay + 160) +#define ActHidExa (ActChgCrsTT1stDay + 161) +#define ActShoExa (ActChgCrsTT1stDay + 162) +#define ActFrmNewExaSet (ActChgCrsTT1stDay + 163) +#define ActNewExaSet (ActChgCrsTT1stDay + 164) +#define ActReqRemExaSet (ActChgCrsTT1stDay + 165) +#define ActRemExaSet (ActChgCrsTT1stDay + 166) +#define ActUp_ExaSet (ActChgCrsTT1stDay + 167) +#define ActDwnExaSet (ActChgCrsTT1stDay + 168) +#define ActChgTitExaSet (ActChgCrsTT1stDay + 169) +#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 170) -#define ActJoiMch (ActChgCrsTT1stDay + 187) -#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 188) -#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 189) -#define ActAnsMchQstStd (ActChgCrsTT1stDay + 190) -#define ActRefMchStd (ActChgCrsTT1stDay + 191) +#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 171) +#define ActLstTstQstForSet (ActChgCrsTT1stDay + 172) +#define ActAddQstToExa (ActChgCrsTT1stDay + 173) +#define ActReqRemSetQst (ActChgCrsTT1stDay + 174) +#define ActRemExaQst (ActChgCrsTT1stDay + 175) -#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 192) -#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 193) -#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 194) -#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 195) +#define ActSeeGam (ActChgCrsTT1stDay + 176) +#define ActReqRemMch (ActChgCrsTT1stDay + 177) +#define ActRemMch (ActChgCrsTT1stDay + 178) +#define ActReqNewMch (ActChgCrsTT1stDay + 179) +#define ActNewMch (ActChgCrsTT1stDay + 180) +#define ActResMch (ActChgCrsTT1stDay + 181) +#define ActBckMch (ActChgCrsTT1stDay + 182) +#define ActPlyPauMch (ActChgCrsTT1stDay + 183) +#define ActFwdMch (ActChgCrsTT1stDay + 184) +#define ActChgNumColMch (ActChgCrsTT1stDay + 185) +#define ActChgVisResMchQst (ActChgCrsTT1stDay + 186) +#define ActMchCntDwn (ActChgCrsTT1stDay + 187) +#define ActRefMchTch (ActChgCrsTT1stDay + 188) -#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 196) -#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 197) -#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 198) -#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 199) -#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 200) +#define ActJoiMch (ActChgCrsTT1stDay + 189) +#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 190) +#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 191) +#define ActAnsMchQstStd (ActChgCrsTT1stDay + 192) +#define ActRefMchStd (ActChgCrsTT1stDay + 193) -#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 201) +#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 194) +#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 195) +#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 196) +#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 197) -#define ActFrmNewGam (ActChgCrsTT1stDay + 202) -#define ActEdiOneGam (ActChgCrsTT1stDay + 203) -#define ActNewGam (ActChgCrsTT1stDay + 204) -#define ActChgGam (ActChgCrsTT1stDay + 205) -#define ActReqRemGam (ActChgCrsTT1stDay + 206) -#define ActRemGam (ActChgCrsTT1stDay + 207) -#define ActHidGam (ActChgCrsTT1stDay + 208) -#define ActShoGam (ActChgCrsTT1stDay + 209) -#define ActAddOneGamQst (ActChgCrsTT1stDay + 210) -#define ActGamLstTstQst (ActChgCrsTT1stDay + 211) -#define ActAddTstQstToGam (ActChgCrsTT1stDay + 212) -#define ActReqRemGamQst (ActChgCrsTT1stDay + 213) -#define ActRemGamQst (ActChgCrsTT1stDay + 214) -#define ActUp_GamQst (ActChgCrsTT1stDay + 215) -#define ActDwnGamQst (ActChgCrsTT1stDay + 216) +#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 198) +#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 199) +#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 200) +#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 201) +#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 202) -#define ActSeeSvy (ActChgCrsTT1stDay + 217) -#define ActAnsSvy (ActChgCrsTT1stDay + 218) -#define ActFrmNewSvy (ActChgCrsTT1stDay + 219) -#define ActEdiOneSvy (ActChgCrsTT1stDay + 220) -#define ActNewSvy (ActChgCrsTT1stDay + 221) -#define ActChgSvy (ActChgCrsTT1stDay + 222) -#define ActReqRemSvy (ActChgCrsTT1stDay + 223) -#define ActRemSvy (ActChgCrsTT1stDay + 224) -#define ActReqRstSvy (ActChgCrsTT1stDay + 225) -#define ActRstSvy (ActChgCrsTT1stDay + 226) -#define ActHidSvy (ActChgCrsTT1stDay + 227) -#define ActShoSvy (ActChgCrsTT1stDay + 228) -#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 229) -#define ActRcvSvyQst (ActChgCrsTT1stDay + 230) -#define ActReqRemSvyQst (ActChgCrsTT1stDay + 231) -#define ActRemSvyQst (ActChgCrsTT1stDay + 232) +#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 203) -#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 233) -#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 234) -#define ActEdiExaAnn (ActChgCrsTT1stDay + 235) -#define ActRcvExaAnn (ActChgCrsTT1stDay + 236) -#define ActPrnExaAnn (ActChgCrsTT1stDay + 237) -#define ActReqRemExaAnn (ActChgCrsTT1stDay + 238) -#define ActRemExaAnn (ActChgCrsTT1stDay + 239) -#define ActHidExaAnn (ActChgCrsTT1stDay + 240) -#define ActShoExaAnn (ActChgCrsTT1stDay + 241) +#define ActFrmNewGam (ActChgCrsTT1stDay + 204) +#define ActEdiOneGam (ActChgCrsTT1stDay + 205) +#define ActNewGam (ActChgCrsTT1stDay + 206) +#define ActChgGam (ActChgCrsTT1stDay + 207) +#define ActReqRemGam (ActChgCrsTT1stDay + 208) +#define ActRemGam (ActChgCrsTT1stDay + 209) +#define ActHidGam (ActChgCrsTT1stDay + 210) +#define ActShoGam (ActChgCrsTT1stDay + 211) +#define ActAddOneGamQst (ActChgCrsTT1stDay + 212) +#define ActGamLstTstQst (ActChgCrsTT1stDay + 213) +#define ActAddTstQstToGam (ActChgCrsTT1stDay + 214) +#define ActReqRemGamQst (ActChgCrsTT1stDay + 215) +#define ActRemGamQst (ActChgCrsTT1stDay + 216) +#define ActUp_GamQst (ActChgCrsTT1stDay + 217) +#define ActDwnGamQst (ActChgCrsTT1stDay + 218) + +#define ActSeeSvy (ActChgCrsTT1stDay + 219) +#define ActAnsSvy (ActChgCrsTT1stDay + 220) +#define ActFrmNewSvy (ActChgCrsTT1stDay + 221) +#define ActEdiOneSvy (ActChgCrsTT1stDay + 222) +#define ActNewSvy (ActChgCrsTT1stDay + 223) +#define ActChgSvy (ActChgCrsTT1stDay + 224) +#define ActReqRemSvy (ActChgCrsTT1stDay + 225) +#define ActRemSvy (ActChgCrsTT1stDay + 226) +#define ActReqRstSvy (ActChgCrsTT1stDay + 227) +#define ActRstSvy (ActChgCrsTT1stDay + 228) +#define ActHidSvy (ActChgCrsTT1stDay + 229) +#define ActShoSvy (ActChgCrsTT1stDay + 230) +#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 231) +#define ActRcvSvyQst (ActChgCrsTT1stDay + 232) +#define ActReqRemSvyQst (ActChgCrsTT1stDay + 233) +#define ActRemSvyQst (ActChgCrsTT1stDay + 234) + +#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 235) +#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 236) +#define ActEdiExaAnn (ActChgCrsTT1stDay + 237) +#define ActRcvExaAnn (ActChgCrsTT1stDay + 238) +#define ActPrnExaAnn (ActChgCrsTT1stDay + 239) +#define ActReqRemExaAnn (ActChgCrsTT1stDay + 240) +#define ActRemExaAnn (ActChgCrsTT1stDay + 241) +#define ActHidExaAnn (ActChgCrsTT1stDay + 242) +#define ActShoExaAnn (ActChgCrsTT1stDay + 243) /*****************************************************************************/ /******************************** Files tab **********************************/ diff --git a/swad_agenda.c b/swad_agenda.c index 34c7e913..58b4848f 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -1701,7 +1701,7 @@ void Agd_RequestCreatOrEditEvent (void) /********************* Receive form to create a new event ********************/ /*****************************************************************************/ -void Agd_RecFormEvent (void) +void Agd_ReceiveFormEvent (void) { extern const char *Txt_You_must_specify_the_title_of_the_event; extern const char *Txt_Created_new_event_X; diff --git a/swad_agenda.h b/swad_agenda.h index 2fd08aa4..e08dbfa6 100644 --- a/swad_agenda.h +++ b/swad_agenda.h @@ -123,7 +123,7 @@ void Agd_UnhideEvent (void); void Agd_MakeEventPrivate (void); void Agd_MakeEventPublic (void); -void Agd_RecFormEvent (void); +void Agd_ReceiveFormEvent (void); void Agd_RemoveUsrEvents (long UsrCod); unsigned Agd_GetNumEventsFromUsr (long UsrCod); diff --git a/swad_assignment.c b/swad_assignment.c index 19d7b2ca..b0286a57 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -1382,7 +1382,7 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod) /****************** Receive form to create a new assignment ******************/ /*****************************************************************************/ -void Asg_RecFormAssignment (void) +void Asg_ReceiveFormAssignment (void) { extern const char *Txt_Already_existed_an_assignment_with_the_title_X; extern const char *Txt_Already_existed_an_assignment_with_the_folder_X; diff --git a/swad_assignment.h b/swad_assignment.h index deed3b40..101287c8 100644 --- a/swad_assignment.h +++ b/swad_assignment.h @@ -95,7 +95,7 @@ void Asg_ReqRemAssignment (void); void Asg_RemoveAssignment (void); void Asg_HideAssignment (void); void Asg_ShowAssignment (void); -void Asg_RecFormAssignment (void); +void Asg_ReceiveFormAssignment (void); bool Asg_CheckIfAsgIsAssociatedToGrp (long AsgCod,long GrpCod); void Asg_RemoveGroup (long GrpCod); void Asg_RemoveGroupsOfType (long GrpTypCod); diff --git a/swad_attendance.c b/swad_attendance.c index 1877c257..e4ba3f23 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -1295,7 +1295,7 @@ static void Att_ShowLstGrpsToEditAttEvent (long AttCod) /*************** Receive form to create a new attendance event ***************/ /*****************************************************************************/ -void Att_RecFormAttEvent (void) +void Att_ReceiveFormAttEvent (void) { extern const char *Txt_Already_existed_an_event_with_the_title_X; extern const char *Txt_You_must_specify_the_title_of_the_event; diff --git a/swad_attendance.h b/swad_attendance.h index c4c679f1..fe08b524 100644 --- a/swad_attendance.h +++ b/swad_attendance.h @@ -97,7 +97,7 @@ void Att_RemoveAttEventFromDB (long AttCod); void Att_HideAttEvent (void); void Att_ShowAttEvent (void); -void Att_RecFormAttEvent (void); +void Att_ReceiveFormAttEvent (void); void Att_CreateAttEvent (struct Att_Event *Event,const char *Description); void Att_UpdateAttEvent (struct Att_Event *Event,const char *Description); bool Att_CheckIfAttEventIsAssociatedToGrps (long AttCod); diff --git a/swad_banner.c b/swad_banner.c index aab1f456..1e6f750b 100644 --- a/swad_banner.c +++ b/swad_banner.c @@ -1012,7 +1012,7 @@ static void Ban_PutHeadBanners (void) /******************* Receive form to create a new banner *********************/ /*****************************************************************************/ -void Ban_RecFormNewBanner (void) +void Ban_ReceiveFormNewBanner (void) { extern const char *Txt_The_banner_X_already_exists; extern const char *Txt_You_must_specify_the_image_of_the_new_banner; diff --git a/swad_banner.h b/swad_banner.h index 8aef618e..9928d8fc 100644 --- a/swad_banner.h +++ b/swad_banner.h @@ -71,7 +71,7 @@ void Ban_RenameBannerFull (void); void Ban_ChangeBannerImg (void); void Ban_ChangeBannerWWW (void); void Ban_ContEditAfterChgBan (void); -void Ban_RecFormNewBanner (void); +void Ban_ReceiveFormNewBanner (void); void Ban_WriteMenuWithBanners (void); void Ban_ClickOnBanner (void); diff --git a/swad_building.c b/swad_building.c index f63c29b3..16c39427 100644 --- a/swad_building.c +++ b/swad_building.c @@ -888,7 +888,7 @@ static void Bld_PutHeadBuildings (void) /***************** Receive form to create a new building *********************/ /*****************************************************************************/ -void Bld_RecFormNewBuilding (void) +void Bld_ReceiveFormNewBuilding (void) { extern const char *Txt_The_building_X_already_exists; extern const char *Txt_Created_new_building_X; diff --git a/swad_building.h b/swad_building.h index 754d0b36..6dd44a19 100644 --- a/swad_building.h +++ b/swad_building.h @@ -99,6 +99,6 @@ void Bld_RenameBuildingFull (void); void Bld_ChangeBuildingLocation (void); void Bld_ContEditAfterChgBuilding (void); -void Bld_RecFormNewBuilding (void); +void Bld_ReceiveFormNewBuilding (void); #endif diff --git a/swad_centre.c b/swad_centre.c index 940f81a3..a7415551 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -95,7 +95,7 @@ static void Ctr_PutParamGoToCtr (void *CtrCod); static void Ctr_PutFormToCreateCentre (const struct Plc_Places *Places); static void Ctr_PutHeadCentresForSeeing (bool OrderSelectable); static void Ctr_PutHeadCentresForEdition (void); -static void Ctr_RecFormRequestOrCreateCtr (unsigned Status); +static void Ctr_ReceiveFormRequestOrCreateCtr (unsigned Status); static void Ctr_CreateCentre (unsigned Status); static unsigned Ctr_GetNumCtrsInCty (long CtyCod); @@ -1812,33 +1812,33 @@ static void Ctr_PutHeadCentresForEdition (void) /****************** Receive form to request a new centre *********************/ /*****************************************************************************/ -void Ctr_RecFormReqCtr (void) +void Ctr_ReceiveFormReqCtr (void) { /***** Centre constructor *****/ Ctr_EditingCentreConstructor (); /***** Receive form to request a new centre *****/ - Ctr_RecFormRequestOrCreateCtr ((unsigned) Ctr_STATUS_BIT_PENDING); + Ctr_ReceiveFormRequestOrCreateCtr ((unsigned) Ctr_STATUS_BIT_PENDING); } /*****************************************************************************/ /******************* Receive form to create a new centre *********************/ /*****************************************************************************/ -void Ctr_RecFormNewCtr (void) +void Ctr_ReceiveFormNewCtr (void) { /***** Centre constructor *****/ Ctr_EditingCentreConstructor (); /***** Receive form to create a new centre *****/ - Ctr_RecFormRequestOrCreateCtr (0); + Ctr_ReceiveFormRequestOrCreateCtr (0); } /*****************************************************************************/ /************* Receive form to request or create a new centre ****************/ /*****************************************************************************/ -static void Ctr_RecFormRequestOrCreateCtr (unsigned Status) +static void Ctr_ReceiveFormRequestOrCreateCtr (unsigned Status) { extern const char *Txt_The_centre_X_already_exists; extern const char *Txt_Created_new_centre_X; diff --git a/swad_centre.h b/swad_centre.h index 235c2da0..d5566ba6 100644 --- a/swad_centre.h +++ b/swad_centre.h @@ -129,8 +129,8 @@ void Ctr_UpdateCtrWWWDB (long CtrCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]); void Ctr_ChangeCtrStatus (void); void Ctr_ContEditAfterChgCtr (void); -void Ctr_RecFormReqCtr (void); -void Ctr_RecFormNewCtr (void); +void Ctr_ReceiveFormReqCtr (void); +void Ctr_ReceiveFormNewCtr (void); unsigned Ctr_GetCachedNumCtrsInSys (void); diff --git a/swad_changelog.h b/swad_changelog.h index 5219ef91..071c70da 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -544,12 +544,12 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.211 (2020-05-05)" +#define Log_PLATFORM_VERSION "SWAD 19.212 (2020-05-05)" #define CSS_FILE "swad19.193.1.css" #define JS_FILE "swad19.193.1.js" /* - - Version 19.211: May 05, 2020 Exam events can be hidden. (301215 lines) + Version 19.212: May 05, 2020 Icon to edit exam event. (301319 lines) + Version 19.211: May 05, 2020 Exam events can be hidden/unhidden. (301215 lines) 1 change necessary in database: ALTER TABLE exa_events ADD COLUMN Hidden ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER ExaCod; diff --git a/swad_country.c b/swad_country.c index a2041d49..8c90d013 100644 --- a/swad_country.c +++ b/swad_country.c @@ -1747,7 +1747,7 @@ static void Cty_PutHeadCountriesForEdition (void) /******************* Receive form to create a new country ********************/ /*****************************************************************************/ -void Cty_RecFormNewCountry (void) +void Cty_ReceiveFormNewCountry (void) { extern const char *Txt_You_must_specify_the_numerical_code_of_the_new_country; extern const char *Txt_The_numerical_code_X_already_exists; diff --git a/swad_country.h b/swad_country.h index 37cfac4b..24365a11 100644 --- a/swad_country.h +++ b/swad_country.h @@ -110,7 +110,7 @@ void Cty_RemoveCountry (void); void Cty_RenameCountry (void); void Cty_ChangeCtyWWW (void); void Cty_ContEditAfterChgCty (void); -void Cty_RecFormNewCountry (void); +void Cty_ReceiveFormNewCountry (void); unsigned Cty_GetCachedNumCtysInSys (void); diff --git a/swad_course.c b/swad_course.c index bdd32dab..2d5eba50 100644 --- a/swad_course.c +++ b/swad_course.c @@ -95,7 +95,7 @@ static Crs_Status_t Crs_GetStatusBitsFromStatusTxt (Crs_StatusTxt_t StatusTxt); static void Crs_PutFormToCreateCourse (void); static void Crs_PutHeadCoursesForSeeing (void); static void Crs_PutHeadCoursesForEdition (void); -static void Crs_RecFormRequestOrCreateCrs (unsigned Status); +static void Crs_ReceiveFormRequestOrCreateCrs (unsigned Status); static void Crs_GetParamsNewCourse (struct Course *Crs); static void Crs_CreateCourse (unsigned Status); @@ -1577,33 +1577,33 @@ static void Crs_PutHeadCoursesForEdition (void) /****************** Receive form to request a new course *********************/ /*****************************************************************************/ -void Crs_RecFormReqCrs (void) +void Crs_ReceiveFormReqCrs (void) { /***** Course constructor *****/ Crs_EditingCourseConstructor (); /***** Receive form to request a new course *****/ - Crs_RecFormRequestOrCreateCrs ((unsigned) Crs_STATUS_BIT_PENDING); + Crs_ReceiveFormRequestOrCreateCrs ((unsigned) Crs_STATUS_BIT_PENDING); } /*****************************************************************************/ /******************* Receive form to create a new course *********************/ /*****************************************************************************/ -void Crs_RecFormNewCrs (void) +void Crs_ReceiveFormNewCrs (void) { /***** Course constructor *****/ Crs_EditingCourseConstructor (); /***** Receive form to create a new course *****/ - Crs_RecFormRequestOrCreateCrs (0); + Crs_ReceiveFormRequestOrCreateCrs (0); } /*****************************************************************************/ /************* Receive form to request or create a new course ****************/ /*****************************************************************************/ -static void Crs_RecFormRequestOrCreateCrs (unsigned Status) +static void Crs_ReceiveFormRequestOrCreateCrs (unsigned Status) { extern const char *Txt_The_course_X_already_exists; extern const char *Txt_Created_new_course_X; diff --git a/swad_course.h b/swad_course.h index 7cd181c3..618661bd 100644 --- a/swad_course.h +++ b/swad_course.h @@ -127,8 +127,8 @@ void Crs_WriteSelectorMyCoursesInBreadcrumb (void); void Crs_EditCourses (void); -void Crs_RecFormReqCrs (void); -void Crs_RecFormNewCrs (void); +void Crs_ReceiveFormReqCrs (void); +void Crs_ReceiveFormNewCrs (void); void Crs_RemoveCourse (void); bool Crs_GetDataOfCourseByCod (struct Course *Crs); diff --git a/swad_database.c b/swad_database.c index b94a722a..a74bdb4b 100644 --- a/swad_database.c +++ b/swad_database.c @@ -1067,7 +1067,7 @@ mysql> DESCRIBE exa_events; "UsrCod INT NOT NULL," "StartTime DATETIME NOT NULL," "EndTime DATETIME NOT NULL," - "Title VARCHAR(2047) NOT NULL," // Gam_MAX_BYTES_TITLE + "Title VARCHAR(2047) NOT NULL," // ExaEvt_MAX_BYTES_TITLE "QstInd INT NOT NULL DEFAULT 0," "QstCod INT NOT NULL DEFAULT -1," "Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start'," diff --git a/swad_degree.c b/swad_degree.c index cfbe0e0d..b8927f05 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -91,7 +91,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg); static void Deg_EditDegreesInternal (void); static void Deg_PutIconsEditingDegrees (__attribute__((unused)) void *Args); -static void Deg_RecFormRequestOrCreateDeg (unsigned Status); +static void Deg_ReceiveFormRequestOrCreateDeg (unsigned Status); static void Deg_PutParamOtherDegCod (long DegCod); static void Deg_GetDataOfDegreeFromRow (struct Degree *Deg,MYSQL_ROW row); @@ -1170,33 +1170,33 @@ void Deg_FreeListDegs (struct ListDegrees *Degs) /****************** Receive form to request a new degree *********************/ /*****************************************************************************/ -void Deg_RecFormReqDeg (void) +void Deg_ReceiveFormReqDeg (void) { /***** Degree constructor *****/ Deg_EditingDegreeConstructor (); /***** Receive form to request a new degree *****/ - Deg_RecFormRequestOrCreateDeg ((unsigned) Deg_STATUS_BIT_PENDING); + Deg_ReceiveFormRequestOrCreateDeg ((unsigned) Deg_STATUS_BIT_PENDING); } /*****************************************************************************/ /******************* Receive form to create a new degree *********************/ /*****************************************************************************/ -void Deg_RecFormNewDeg (void) +void Deg_ReceiveFormNewDeg (void) { /***** Degree constructor *****/ Deg_EditingDegreeConstructor (); /***** Receive form to create a new degree *****/ - Deg_RecFormRequestOrCreateDeg (0); + Deg_ReceiveFormRequestOrCreateDeg (0); } /*****************************************************************************/ /******************* Receive form to create a new degree *********************/ /*****************************************************************************/ -static void Deg_RecFormRequestOrCreateDeg (unsigned Status) +static void Deg_ReceiveFormRequestOrCreateDeg (unsigned Status) { extern const char *Txt_The_degree_X_already_exists; extern const char *Txt_Created_new_degree_X; diff --git a/swad_degree.h b/swad_degree.h index e84f751f..c2639c61 100644 --- a/swad_degree.h +++ b/swad_degree.h @@ -107,8 +107,8 @@ void Deg_GetListAllDegsWithStds (struct ListDegrees *Degs); void Deg_GetListDegsInCurrentCtr (void); void Deg_FreeListDegs (struct ListDegrees *Degs); -void Deg_RecFormReqDeg (void); -void Deg_RecFormNewDeg (void); +void Deg_ReceiveFormReqDeg (void); +void Deg_ReceiveFormNewDeg (void); void Deg_RemoveDegree (void); void Deg_PutParamDegCod (long DegCod); diff --git a/swad_degree_type.c b/swad_degree_type.c index 7527fcdc..76c7c5b3 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -749,7 +749,7 @@ void DT_FreeListDegreeTypes (void) /***************** Receive form to create a new degree type ******************/ /*****************************************************************************/ -void DT_RecFormNewDegreeType (void) +void DT_ReceiveFormNewDegreeType (void) { extern const char *Txt_The_type_of_degree_X_already_exists; extern const char *Txt_Created_new_type_of_degree_X; diff --git a/swad_degree_type.h b/swad_degree_type.h index 7e175853..1dee8cc7 100644 --- a/swad_degree_type.h +++ b/swad_degree_type.h @@ -71,7 +71,7 @@ bool DT_CheckIfICanCreateDegreeTypes (void); void DT_GetListDegreeTypes (Hie_Level_t Scope,DT_Order_t Order); void DT_FreeListDegreeTypes (void); -void DT_RecFormNewDegreeType (void); +void DT_ReceiveFormNewDegreeType (void); void DT_RemoveDegreeType (void); diff --git a/swad_department.c b/swad_department.c index 357b204d..4145fd63 100644 --- a/swad_department.c +++ b/swad_department.c @@ -1018,7 +1018,7 @@ static void Dpt_PutHeadDepartments (void) /***************** Receive form to create a new department *******************/ /*****************************************************************************/ -void Dpt_RecFormNewDpt (void) +void Dpt_ReceiveFormNewDpt (void) { extern const char *Txt_The_department_X_already_exists; extern const char *Txt_Created_new_department_X; diff --git a/swad_department.h b/swad_department.h index b6c46f9e..87dab5e7 100644 --- a/swad_department.h +++ b/swad_department.h @@ -77,7 +77,7 @@ void Dpt_RenameDepartFull (void); void Dpt_ChangeDptWWW (void); void Dpt_ContEditAfterChgDpt (void); -void Dpt_RecFormNewDpt (void); +void Dpt_ReceiveFormNewDpt (void); unsigned Dpt_GetTotalNumberOfDepartments (void); void Dpt_FlushCacheNumDptsInIns (void); unsigned Dpt_GetNumDptsInIns (long InsCod); diff --git a/swad_exam.c b/swad_exam.c index 18eb867c..d56a41ac 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -38,6 +38,7 @@ #include "swad_exam.h" #include "swad_exam_event.h" #include "swad_exam_result.h" +#include "swad_exam_type.h" #include "swad_figure.h" #include "swad_form.h" #include "swad_global.h" @@ -486,12 +487,12 @@ void Exa_SeeOneExam (void) { struct Exa_Exams Exams; struct Exa_Exam Exam; + struct ExaEvt_Event Event; /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); + ExaEvt_ResetEvent (&Event); /***** Get parameters *****/ Exa_GetParams (&Exams); @@ -504,8 +505,8 @@ void Exa_SeeOneExam (void) Exams.ExaCod = Exam.ExaCod; /***** Show exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -514,15 +515,17 @@ void Exa_SeeOneExam (void) void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewMatch) + struct ExaEvt_Event *Event, + bool PutFormEvent) { - Exa_ShowOnlyOneExamBegin (Exams,Exam,PutFormNewMatch); + Exa_ShowOnlyOneExamBegin (Exams,Exam,Event,PutFormEvent); Exa_ShowOnlyOneExamEnd (); } void Exa_ShowOnlyOneExamBegin (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewMatch) + struct ExaEvt_Event *Event, + bool PutFormEvent) { extern const char *Hlp_ASSESSMENT_Exams; extern const char *Txt_Exam; @@ -539,7 +542,7 @@ void Exa_ShowOnlyOneExamBegin (struct Exa_Exams *Exams, true); // Show only this exam /***** List events *****/ - ExaEvt_ListEvents (Exams,Exam,PutFormNewMatch); + ExaEvt_ListEvents (Exams,Exam,Event,PutFormEvent); } void Exa_ShowOnlyOneExamEnd (void) @@ -764,11 +767,11 @@ static void Exa_PutIconsToRemEditOneExam (struct Exa_Exams *Exams, { Exams->ExaCod = Exam->ExaCod; - /***** Put icon to remove exam *****/ + /***** Icon to remove exam *****/ Ico_PutContextualIconToRemove (ActReqRemExa, Exa_PutParams,Exams); - /***** Put icon to unhide/hide exam *****/ + /***** Icon to unhide/hide exam *****/ if (Exam->Hidden) Ico_PutContextualIconToUnhide (ActShoExa,Anchor, Exa_PutParams,Exams); @@ -776,7 +779,7 @@ static void Exa_PutIconsToRemEditOneExam (struct Exa_Exams *Exams, Ico_PutContextualIconToHide (ActHidExa,Anchor, Exa_PutParams,Exams); - /***** Put icon to edit exam *****/ + /***** Icon to edit exam *****/ Ico_PutContextualIconToEdit (ActEdiOneExa,NULL, Exa_PutParams,Exams); } @@ -1276,8 +1279,6 @@ void Exa_AskRemExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); /***** Get parameters *****/ @@ -1318,8 +1319,6 @@ void Exa_RemoveExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); /***** Get exam code *****/ @@ -1400,8 +1399,6 @@ void Exa_HideExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); /***** Get parameters *****/ @@ -1438,8 +1435,6 @@ void Exa_UnhideExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); /***** Get parameters *****/ @@ -1512,8 +1507,6 @@ void Exa_RequestCreatOrEditExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -1639,7 +1632,7 @@ static void ExaSet_PutFormNewSet (struct Exa_Exams *Exams, /**************** Receive form to create a new set of questions **************/ /*****************************************************************************/ -void ExaSet_RecFormSet (void) +void ExaSet_ReceiveFormSet (void) { struct Exa_Exams Exams; struct Exa_Exam Exam; @@ -1652,8 +1645,6 @@ void ExaSet_RecFormSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -1747,8 +1738,6 @@ void ExaSet_ChangeSetTitle (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -1803,8 +1792,6 @@ void ExaSet_ChangeNumQstsToExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -1957,7 +1944,7 @@ static void Exa_PutFormEditionExam (struct Exa_Exams *Exams, /********************** Receive form to create a new exam ********************/ /*****************************************************************************/ -void Exa_RecFormExam (void) +void Exa_ReceiveFormExam (void) { struct Exa_Exams Exams; struct Exa_Exam Exam; @@ -1971,8 +1958,6 @@ void Exa_RecFormExam (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -2254,8 +2239,6 @@ void ExaSet_RequestCreatOrEditSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -2301,8 +2284,6 @@ void ExaSet_ReqSelectQstsToAddToSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -2353,8 +2334,6 @@ void ExaSet_ListQstsToAddToSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3141,8 +3120,6 @@ void ExaSet_AddQstsToSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3253,8 +3230,6 @@ void ExaSet_RequestRemoveSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3302,8 +3277,6 @@ void ExaSet_RemoveSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3374,8 +3347,6 @@ void ExaSet_MoveUpSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3436,8 +3407,6 @@ void ExaSet_MoveDownSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3500,8 +3469,6 @@ void ExaSet_RequestRemoveQstFromSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); @@ -3559,8 +3526,6 @@ void ExaSet_RemoveQstFromSet (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and set *****/ Exa_ResetExam (&Exam); ExaSet_ResetSet (&Set); diff --git a/swad_exam.h b/swad_exam.h index 6bdca1d2..5d0d7915 100644 --- a/swad_exam.h +++ b/swad_exam.h @@ -28,88 +28,15 @@ /********************************* Headers ***********************************/ /*****************************************************************************/ -#include "swad_date.h" -#include "swad_scope.h" +// #include "swad_date.h" +// #include "swad_exam_event.h" +#include "swad_exam_type.h" +// #include "swad_scope.h" /*****************************************************************************/ /************************** Public types and constants ***********************/ /*****************************************************************************/ -#define Exa_MAX_CHARS_TITLE (128 - 1) // 127 -#define Exa_MAX_BYTES_TITLE ((Exa_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 - -#define ExaSet_MAX_CHARS_TITLE (128 - 1) // 127 -#define ExaSet_MAX_BYTES_TITLE ((ExaSet_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 - -#define Exa_NUM_ORDERS 3 -typedef enum - { - Exa_ORDER_BY_START_DATE = 0, - Exa_ORDER_BY_END_DATE = 1, - Exa_ORDER_BY_TITLE = 2, - } Exa_Order_t; -#define Exa_ORDER_DEFAULT Exa_ORDER_BY_START_DATE - -#define Exa_NUM_ANS_TYPES 2 -typedef enum - { - Exa_ANS_UNIQUE_CHOICE = 0, - Exa_ANS_MULTIPLE_CHOICE = 1, - } Exa_AnswerType_t; -#define Exa_ANSWER_TYPE_DEFAULT Exa_ANS_UNIQUE_CHOICE - -struct Exa_ExamSelected - { - long ExaCod; // Exam code - bool Selected; // Is this exam selected when seeing match results? - }; - -/* Exams context */ -struct Exa_Exams - { - bool LstIsRead; // Is the list already read from database... - // ...or it needs to be read? - unsigned Num; // Total number of exams - unsigned NumSelected; // Number of exams selected - struct Exa_ExamSelected *Lst;// List of exams - Exa_Order_t SelectedOrder; - unsigned CurrentPage; - char *ListQuestions; - char *ExaCodsSelected; // String with selected exam codes separated by separator multiple - long ExaCod; // Selected/current exam code - long SetCod; // Selected/current set code - long EvtCod; // Selected/current match code - unsigned SetInd; // Current set index - long QstCod; // Current question code - }; - -struct Exa_Exam - { - long ExaCod; // Exam code - long CrsCod; // Course code - long UsrCod; // Author code - double MaxGrade; // Score range [0...max.score] - // will be converted to - // grade range [0...max.grade] - unsigned Visibility; // Visibility of results - char Title[Exa_MAX_BYTES_TITLE + 1]; - time_t TimeUTC[Dat_NUM_START_END_TIME]; - bool Hidden; // Exam is hidden - unsigned NumSets; // Number of sets in the exam - unsigned NumQsts; // Number of questions in the exam - unsigned NumEvts; // Number of events in the exam - unsigned NumUnfinishedEvts; // Number of unfinished events in the exam - }; - -struct ExaSet_Set - { - long ExaCod; // Exam code - long SetCod; // Set code - unsigned SetInd; // Set index (position in the exam) - unsigned NumQstsToExam; // Number of questions in this set taht will appear in the exam - char Title[ExaSet_MAX_BYTES_TITLE + 1]; // Title of the set - }; - /*****************************************************************************/ /***************************** Public prototypes *****************************/ /*****************************************************************************/ @@ -121,10 +48,12 @@ void Exa_SeeAllExams (void); void Exa_SeeOneExam (void); void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewMatch); + struct ExaEvt_Event *Event, + bool PutFormEvent); void Exa_ShowOnlyOneExamBegin (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewMatch); + struct ExaEvt_Event *Event, + bool PutFormEvent); void Exa_ShowOnlyOneExamEnd (void); void Exa_SetCurrentExaCod (long ExaCod); @@ -150,11 +79,11 @@ void Exa_UnhideExam (void); void Exa_RequestCreatOrEditExam (void); -void ExaSet_RecFormSet (void); +void ExaSet_ReceiveFormSet (void); void ExaSet_ChangeSetTitle (void); void ExaSet_ChangeNumQstsToExam (void); -void Exa_RecFormExam (void); +void Exa_ReceiveFormExam (void); bool Mch_CheckIfMatchIsAssociatedToGrp (long EvtCod,long GrpCod); unsigned ExaSet_GetNumSetsExam (long ExaCod); diff --git a/swad_exam_event.c b/swad_exam_event.c index 9652843d..35274aba 100644 --- a/swad_exam_event.c +++ b/swad_exam_event.c @@ -37,6 +37,7 @@ #include "swad_exam.h" #include "swad_exam_event.h" #include "swad_exam_result.h" +#include "swad_exam_type.h" #include "swad_form.h" #include "swad_global.h" #include "swad_HTML.h" @@ -108,6 +109,7 @@ static void ExaEvt_PutIconToCreateNewEvent (struct Exa_Exams *Exams); static void ExaEvt_ListOneOrMoreEvents (struct Exa_Exams *Exams, const struct Exa_Exam *Exam, + long EvtCodToBeEdited, unsigned NumEvents, MYSQL_RES *mysql_res); static void ExaEvt_ListOneOrMoreEventsHeading (bool ICanEditEvents); @@ -285,14 +287,16 @@ void ExaEvt_ResetEvent (struct ExaEvt_Event *Event) void ExaEvt_ListEvents (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewEvent) + struct ExaEvt_Event *Event, + bool PutFormEvent) { extern const char *Hlp_ASSESSMENT_Exams_events; extern const char *Txt_Events; char *SubQuery; MYSQL_RES *mysql_res; unsigned NumEvents; - struct ExaEvt_Event Event; + long EvtCodToBeEdited; + bool PutFormNewEvent; /***** Get data of events from database *****/ /* Fill subquery for exam */ @@ -355,8 +359,12 @@ void ExaEvt_ListEvents (struct Exa_Exams *Exams, } if (NumEvents) + { /***** Show the table with the events *****/ - ExaEvt_ListOneOrMoreEvents (Exams,Exam,NumEvents,mysql_res); + EvtCodToBeEdited = PutFormEvent && Event->EvtCod > 0 ? Event->EvtCod : + -1L; + ExaEvt_ListOneOrMoreEvents (Exams,Exam,EvtCodToBeEdited,NumEvents,mysql_res); + } /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); @@ -367,18 +375,19 @@ void ExaEvt_ListEvents (struct Exa_Exams *Exams, case Rol_NET: case Rol_TCH: case Rol_SYS_ADM: + PutFormNewEvent = PutFormEvent && Event->EvtCod <= 0; if (PutFormNewEvent) { /* Reset event */ - ExaEvt_ResetEvent (&Event); - Event.ExaCod = Exam->ExaCod; - Event.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC; // Now - Event.TimeUTC[Dat_END_TIME ] = Gbl.StartExecutionTimeUTC + (1 * 60 * 60); // Now + 1 hour - Str_Copy (Event.Title,Exam->Title, - Exa_MAX_BYTES_TITLE); + ExaEvt_ResetEvent (Event); + Event->ExaCod = Exam->ExaCod; + Event->TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC; // Now + Event->TimeUTC[Dat_END_TIME ] = Gbl.StartExecutionTimeUTC + (1 * 60 * 60); // Now + 1 hour + Str_Copy (Event->Title,Exam->Title, + ExaEvt_MAX_BYTES_TITLE); /* Put form to create new event */ - ExaEvt_PutFormNewEvent (&Event); // Form to fill in data and start playing a new exam event + ExaEvt_PutFormNewEvent (Event); // Form to fill in data and start playing a new exam event } else ExaEvt_PutButtonNewEvent (Exams,Exam->ExaCod); // Button to create a new exam event @@ -472,6 +481,7 @@ static void ExaEvt_PutIconToCreateNewEvent (struct Exa_Exams *Exams) static void ExaEvt_ListOneOrMoreEvents (struct Exa_Exams *Exams, const struct Exa_Exam *Exam, + long EvtCodToBeEdited, unsigned NumEvents, MYSQL_RES *mysql_res) { @@ -534,9 +544,19 @@ static void ExaEvt_ListOneOrMoreEvents (struct Exa_Exams *Exams, /* Event result visible? */ ExaEvt_ListOneOrMoreEventsResult (Exams,&Event); - /***** End row for this exam event ****/ + /***** End row for this event ****/ HTM_TR_End (); + /***** For to edit this event ****/ + if (Event.EvtCod == EvtCodToBeEdited) + { + HTM_TR_Begin (NULL); + HTM_TD_Begin ("colspan=\"8\" class=\"CT COLOR%u\"",Gbl.RowEvenOdd); + Ale_ShowAlert (Ale_INFO,"Form to edit this event."); // TODO: Replace by form + HTM_TD_End (); + HTM_TR_End (); + } + /***** Free anchor string *****/ free (Anchor); } @@ -622,18 +642,19 @@ static void ExaEvt_ListOneOrMoreEventsIcons (struct Exa_Exams *Exams, const struct ExaEvt_Event *Event, const char *Anchor) { + /***** Begin cell *****/ HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd); Exams->ExaCod = Event->ExaCod; Exams->EvtCod = Event->EvtCod; - /* Icon to remove the exam event */ + /***** Icon to remove the exam event *****/ Frm_StartForm (ActReqRemExaEvt); ExaEvt_PutParamsEdit (Exams); Ico_PutIconRemove (); Frm_EndForm (); - /* Icon to hide/unhide the exam event */ + /***** Icon to hide/unhide the exam event *****/ if (Event->Hidden) Ico_PutContextualIconToUnhide (ActShoExaEvt,Anchor, ExaEvt_PutParamsEdit,Exams); @@ -641,8 +662,11 @@ static void ExaEvt_ListOneOrMoreEventsIcons (struct Exa_Exams *Exams, Ico_PutContextualIconToHide (ActHidExaEvt,Anchor, ExaEvt_PutParamsEdit,Exams); - /* Icon to edit the exam event */ + /***** Icon to edit the exam event *****/ + Ico_PutContextualIconToEdit (ActEdiOneExaEvt,NULL, + ExaEvt_PutParamsEdit,Exams); + /***** End cell *****/ HTM_TD_End (); } @@ -941,8 +965,6 @@ void ExaEvt_ToggleVisibilResultsEvtUsr (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -964,8 +986,8 @@ void ExaEvt_ToggleVisibilResultsEvtUsr (void) Event.EvtCod); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -990,8 +1012,8 @@ static void ExaEvt_GetEventDataFromRow (MYSQL_RES *mysql_res, row[ 5] UNIX_TIMESTAMP(EndTime) row[ 6] Title */ - /***** Get exam event data *****/ - /* Code of the exam event (row[0]) */ + /***** Get event data *****/ + /* Code of the event (row[0]) */ if ((Event->EvtCod = Str_ConvertStrCodToLongCod (row[0])) <= 0) Lay_ShowErrorAndExit ("Wrong code of exam event."); @@ -999,10 +1021,10 @@ static void ExaEvt_GetEventDataFromRow (MYSQL_RES *mysql_res, if ((Event->ExaCod = Str_ConvertStrCodToLongCod (row[1])) <= 0) Lay_ShowErrorAndExit ("Wrong code of exam."); - /* Get whether the exam is hidden (row[2]) */ + /* Get whether the event is hidden (row[2]) */ Event->Hidden = (row[2][0] == 'Y'); - /* Get exam event teacher (row[3]) */ + /* Get event teacher (row[3]) */ Event->UsrCod = Str_ConvertStrCodToLongCod (row[3]); /* Get start/end times (row[4], row[5] hold start/end UTC times) */ @@ -1011,14 +1033,14 @@ static void ExaEvt_GetEventDataFromRow (MYSQL_RES *mysql_res, StartEndTime++) Event->TimeUTC[StartEndTime] = Dat_GetUNIXTimeFromStr (row[4 + StartEndTime]); - /* Get the title of the exam (row[6]) */ + /* Get the title of the event (row[6]) */ if (row[6]) Str_Copy (Event->Title,row[6], - Exa_MAX_BYTES_TITLE); + ExaEvt_MAX_BYTES_TITLE); else Event->Title[0] = '\0'; - /***** Get current exam event status *****/ + /***** Get current event status *****/ /* row[ 7] QstInd row[ 8] QstCod @@ -1090,8 +1112,6 @@ void ExaEvt_RequestRemoveEvent (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -1108,8 +1128,8 @@ void ExaEvt_RequestRemoveEvent (void) Event.Title); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -1125,8 +1145,6 @@ void ExaEvt_RemoveEvent (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -1145,8 +1163,8 @@ void ExaEvt_RemoveEvent (void) Event.Title); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -1297,8 +1315,6 @@ void ExaEvt_HideEvent (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -1317,8 +1333,8 @@ void ExaEvt_HideEvent (void) Event.EvtCod,Event.ExaCod); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -1333,8 +1349,6 @@ void ExaEvt_UnhideEvent (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -1353,8 +1367,8 @@ void ExaEvt_UnhideEvent (void) Event.EvtCod,Event.ExaCod); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ @@ -1411,6 +1425,8 @@ void ExaEvt_GetAndCheckParameters (struct Exa_Exams *Exams, /***** Get exam data and event from database *****/ Exa_GetDataOfExamByCod (Exam); + if (Exam->CrsCod != Gbl.Hierarchy.Crs.CrsCod) + Lay_WrongExamExit (); Exams->ExaCod = Exam->ExaCod; ExaEvt_GetDataOfEventByCod (Event); @@ -1469,7 +1485,7 @@ static void ExaEvt_PutFormNewEvent (const struct ExaEvt_Event *Event) /* Data */ HTM_TD_Begin ("class=\"LT\""); - HTM_INPUT_TEXT ("Title",Exa_MAX_CHARS_TITLE,Event->Title, + HTM_INPUT_TEXT ("Title",ExaEvt_MAX_CHARS_TITLE,Event->Title, HTM_DONT_SUBMIT_ON_CHANGE, "id=\"Title\" size=\"45\" required=\"required\""); HTM_TD_End (); @@ -1574,40 +1590,59 @@ void ExaEvt_PutButtonNewEvent (struct Exa_Exams *Exams,long ExaCod) } /*****************************************************************************/ -/************* Request the creation of a new event as a teacher **************/ +/******************* Request the creation of a new event *********************/ /*****************************************************************************/ -void ExaEvt_RequestNewEvent (void) +void ExaEvt_RequestCreatOrEditEvent (void) { struct Exa_Exams Exams; struct Exa_Exam Exam; + struct ExaEvt_Event Event; + bool ItsANewEvent; /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); + ExaEvt_ResetEvent (&Event); /***** Get parameters *****/ Exa_GetParams (&Exams); if (Exams.ExaCod <= 0) Lay_WrongExamExit (); Exam.ExaCod = Exams.ExaCod; + Grp_GetParamWhichGroups (); + Event.EvtCod = ExaEvt_GetParamEvtCod (); + ItsANewEvent = (Event.EvtCod <= 0); /***** Get exam data from database *****/ Exa_GetDataOfExamByCod (&Exam); + if (Exam.CrsCod != Gbl.Hierarchy.Crs.CrsCod) + Lay_WrongExamExit (); Exams.ExaCod = Exam.ExaCod; + /***** Get event data *****/ + if (ItsANewEvent) + /* Initialize to empty event */ + ExaEvt_ResetEvent (&Event); + else + { + /* Get event data from database */ + ExaEvt_GetDataOfEventByCod (&Event); + if (Exam.ExaCod != Event.ExaCod) + Lay_WrongExamExit (); + Exams.EvtCod = Event.EvtCod; + } + /***** Show exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - true); // Put form to start new event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + true); // Put form for event } /*****************************************************************************/ /******************* Create a new exam event (by a teacher) ******************/ /*****************************************************************************/ -void ExaEvt_CreateNewEventTch (void) +void ExaEvt_ReceiveFormEvent (void) { extern const char *Txt_Created_new_event_X; struct Exa_Exams Exams; @@ -1616,8 +1651,6 @@ void ExaEvt_CreateNewEventTch (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -1628,7 +1661,7 @@ void ExaEvt_CreateNewEventTch (void) Lay_WrongExamExit (); /* Get event title */ - Par_GetParToText ("Title",Event.Title,Exa_MAX_BYTES_TITLE); + Par_GetParToText ("Title",Event.Title,ExaEvt_MAX_BYTES_TITLE); /* Get start/end date-times */ Event.TimeUTC[Dat_START_TIME] = Dat_GetTimeUTCFromForm ("StartTimeUTC"); @@ -1640,6 +1673,8 @@ void ExaEvt_CreateNewEventTch (void) /***** Get exam data from database *****/ Exam.ExaCod = Exams.ExaCod; Exa_GetDataOfExamByCod (&Exam); + if (Exam.CrsCod != Gbl.Hierarchy.Crs.CrsCod) + Lay_WrongExamExit (); Event.ExaCod = Exams.ExaCod = Exam.ExaCod; /***** Create a new exam event *****/ @@ -1653,8 +1688,8 @@ void ExaEvt_CreateNewEventTch (void) Event.Title); /***** Show current exam *****/ - Exa_ShowOnlyOneExam (&Exams,&Exam, - false); // Do not put form to start new exam event + Exa_ShowOnlyOneExam (&Exams,&Exam,&Event, + false); // Do not put form for event } /*****************************************************************************/ diff --git a/swad_exam_event.h b/swad_exam_event.h index 4d267bd8..45f3b9c6 100644 --- a/swad_exam_event.h +++ b/swad_exam_event.h @@ -27,7 +27,7 @@ /********************************* Headers ***********************************/ /*****************************************************************************/ -#include "swad_scope.h" +#include "swad_exam_type.h" #include "swad_test.h" /*****************************************************************************/ @@ -38,42 +38,6 @@ #define ExaEvt_AFTER_LAST_QUESTION ((unsigned)((1UL << 31) - 1)) // 2^31 - 1, don't change this number because it is used in database to indicate that a event is finished -#define ExaEvt_NUM_SHOWING 5 -typedef enum - { - ExaEvt_START, // Start: don't show anything - ExaEvt_STEM, // Showing only the question stem - ExaEvt_ANSWERS, // Showing the question stem and the answers - ExaEvt_RESULTS, // Showing the results - ExaEvt_END, // End: don't show anything - } ExaEvt_Showing_t; -#define ExaEvt_SHOWING_DEFAULT ExaEvt_START - -struct ExaEvt_Event - { - long EvtCod; - long ExaCod; - long UsrCod; - time_t TimeUTC[Dat_NUM_START_END_TIME]; - char Title[Exa_MAX_BYTES_TITLE + 1]; - bool Hidden; - struct - { - unsigned QstInd; // 0 means that the exam has not started. First question has index 1. - long QstCod; - time_t QstStartTimeUTC; - ExaEvt_Showing_t Showing; // What is shown on teacher's screen - long Countdown; // > 0 ==> countdown in progress - // = 0 ==> countdown over ==> go to next step - // < 0 ==> no countdown at this time - unsigned NumCols; // Number of columns for answers on teacher's screen - bool ShowQstResults; // Show global results of current question while playing - bool ShowUsrResults; // Show exam with results of all questions for the student - bool Happening; // Is being played now? - unsigned NumParticipants; - } Status; // Status related to event playing - }; - struct ExaEvt_UsrAnswer { int NumOpt; // < 0 ==> no answer selected @@ -90,7 +54,8 @@ void ExaEvt_ResetEvent (struct ExaEvt_Event *Event); void ExaEvt_ListEvents (struct Exa_Exams *Exams, struct Exa_Exam *Exam, - bool PutFormNewEvent); + struct ExaEvt_Event *Event, + bool PutFormEvent); void ExaEvt_GetDataOfEventByCod (struct ExaEvt_Event *Event); void ExaEvt_ToggleVisibilResultsEvtUsr (void); @@ -112,8 +77,8 @@ void ExaEvt_GetAndCheckParameters (struct Exa_Exams *Exams, long ExaEvt_GetParamEvtCod (void); void ExaEvt_PutButtonNewEvent (struct Exa_Exams *Exams,long ExaCod); -void ExaEvt_RequestNewEvent (void); -void ExaEvt_CreateNewEventTch (void); +void ExaEvt_RequestCreatOrEditEvent (void); +void ExaEvt_ReceiveFormEvent (void); void ExaEvt_ResumeEvent (void); void ExaEvt_GetIndexes (long EvtCod,unsigned QstInd, unsigned Indexes[Tst_MAX_OPTIONS_PER_QUESTION]); diff --git a/swad_exam_result.c b/swad_exam_result.c index 9fd8473c..951e84f2 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -38,6 +38,7 @@ #include "swad_exam.h" #include "swad_exam_event.h" #include "swad_exam_result.h" +#include "swad_exam_type.h" #include "swad_form.h" #include "swad_global.h" #include "swad_HTML.h" @@ -156,12 +157,12 @@ void ExaRes_ShowMyExaResultsInExa (void) extern const char *Txt_Results_of_game_X; struct Exa_Exams Exams; struct Exa_Exam Exam; + struct ExaEvt_Event Event; /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); + ExaEvt_ResetEvent (&Event); /***** Get parameters *****/ Exa_GetParams (&Exams); @@ -174,7 +175,7 @@ void ExaRes_ShowMyExaResultsInExa (void) Exams.ExaCod = Exam.ExaCod; /***** Exam begin *****/ - Exa_ShowOnlyOneExamBegin (&Exams,&Exam, + Exa_ShowOnlyOneExamBegin (&Exams,&Exam,&Event, false); // Do not put form to start new event /***** List my events results in exam *****/ @@ -212,8 +213,6 @@ void ExaRes_ShowMyExaResultsInEvt (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -229,7 +228,7 @@ void ExaRes_ShowMyExaResultsInEvt (void) ExaEvt_GetDataOfEventByCod (&Event); /***** Exam begin *****/ - Exa_ShowOnlyOneExamBegin (&Exams,&Exam, + Exa_ShowOnlyOneExamBegin (&Exams,&Exam,&Event, false); // Do not put form to start new event /***** List my events results in event *****/ @@ -364,12 +363,12 @@ void ExaRes_ShowAllExaResultsInExa (void) extern const char *Txt_Results_of_game_X; struct Exa_Exams Exams; struct Exa_Exam Exam; + struct ExaEvt_Event Event; /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam *****/ Exa_ResetExam (&Exam); + ExaEvt_ResetEvent (&Event); /***** Get parameters *****/ Exa_GetParams (&Exams); @@ -380,7 +379,7 @@ void ExaRes_ShowAllExaResultsInExa (void) Exams.ExaCod = Exam.ExaCod; /***** Exam begin *****/ - Exa_ShowOnlyOneExamBegin (&Exams,&Exam, + Exa_ShowOnlyOneExamBegin (&Exams,&Exam,&Event, false); // Do not put form to start new event /***** List events results in exam *****/ @@ -459,8 +458,6 @@ void ExaRes_ShowAllExaResultsInEvt (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); @@ -478,7 +475,7 @@ void ExaRes_ShowAllExaResultsInEvt (void) ExaEvt_GetDataOfEventByCod (&Event); /***** Exam begin *****/ - Exa_ShowOnlyOneExamBegin (&Exams,&Exam, + Exa_ShowOnlyOneExamBegin (&Exams,&Exam,&Event, false); // Do not put form to start new event /***** List events results in event *****/ @@ -1103,8 +1100,6 @@ void ExaRes_ShowOneExaResult (void) /***** Reset exams context *****/ Exa_ResetExams (&Exams); - - /***** Reset exam and event *****/ Exa_ResetExam (&Exam); ExaEvt_ResetEvent (&Event); diff --git a/swad_exam_type.h b/swad_exam_type.h new file mode 100644 index 00000000..c7705667 --- /dev/null +++ b/swad_exam_type.h @@ -0,0 +1,147 @@ +// swad_exam_type.h: definition of types for exams + +#ifndef _SWAD_EXA_TYP +#define _SWAD_EXA_TYP +/* + SWAD (Shared Workspace At a Distance), + is a web platform developed at the University of Granada (Spain), + and used to support university teaching. + + This file is part of SWAD core. + Copyright (C) 1999-2020 Antonio Cañas Vargas + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General 3 License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/*****************************************************************************/ +/********************************* Headers ***********************************/ +/*****************************************************************************/ + +#include // For boolean type + +#include "swad_date.h" +#include "swad_hierarchy.h" +#include "swad_string.h" + +/*****************************************************************************/ +/************************** Public types and constants ***********************/ +/*****************************************************************************/ + +#define Exa_MAX_CHARS_TITLE (128 - 1) // 127 +#define Exa_MAX_BYTES_TITLE ((Exa_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 + +#define ExaSet_MAX_CHARS_TITLE (128 - 1) // 127 +#define ExaSet_MAX_BYTES_TITLE ((ExaSet_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 + +#define ExaEvt_MAX_CHARS_TITLE (128 - 1) // 127 +#define ExaEvt_MAX_BYTES_TITLE ((ExaEvt_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 + +#define Exa_NUM_ORDERS 3 +typedef enum + { + Exa_ORDER_BY_START_DATE = 0, + Exa_ORDER_BY_END_DATE = 1, + Exa_ORDER_BY_TITLE = 2, + } Exa_Order_t; +#define Exa_ORDER_DEFAULT Exa_ORDER_BY_START_DATE + +struct Exa_ExamSelected + { + long ExaCod; // Exam code + bool Selected; // Is this exam selected when seeing match results? + }; + +/* Exams context */ +struct Exa_Exams + { + bool LstIsRead; // Is the list already read from database... + // ...or it needs to be read? + unsigned Num; // Total number of exams + unsigned NumSelected; // Number of exams selected + struct Exa_ExamSelected *Lst;// List of exams + Exa_Order_t SelectedOrder; + unsigned CurrentPage; + char *ListQuestions; + char *ExaCodsSelected; // String with selected exam codes separated by separator multiple + long ExaCod; // Selected/current exam code + long SetCod; // Selected/current set code + long EvtCod; // Selected/current match code + unsigned SetInd; // Current set index + long QstCod; // Current question code + }; + +struct Exa_Exam + { + long ExaCod; // Exam code + long CrsCod; // Course code + long UsrCod; // Author code + double MaxGrade; // Score range [0...max.score] + // will be converted to + // grade range [0...max.grade] + unsigned Visibility; // Visibility of results + char Title[Exa_MAX_BYTES_TITLE + 1]; + time_t TimeUTC[Dat_NUM_START_END_TIME]; + bool Hidden; // Exam is hidden + unsigned NumSets; // Number of sets in the exam + unsigned NumQsts; // Number of questions in the exam + unsigned NumEvts; // Number of events in the exam + unsigned NumUnfinishedEvts; // Number of unfinished events in the exam + }; + +struct ExaSet_Set + { + long ExaCod; // Exam code + long SetCod; // Set code + unsigned SetInd; // Set index (position in the exam) + unsigned NumQstsToExam; // Number of questions in this set taht will appear in the exam + char Title[ExaSet_MAX_BYTES_TITLE + 1]; // Title of the set + }; + +#define ExaEvt_NUM_SHOWING 5 +typedef enum + { + ExaEvt_START, // Start: don't show anything + ExaEvt_STEM, // Showing only the question stem + ExaEvt_ANSWERS, // Showing the question stem and the answers + ExaEvt_RESULTS, // Showing the results + ExaEvt_END, // End: don't show anything + } ExaEvt_Showing_t; +#define ExaEvt_SHOWING_DEFAULT ExaEvt_START + +struct ExaEvt_Event + { + long EvtCod; + long ExaCod; + long UsrCod; + time_t TimeUTC[Dat_NUM_START_END_TIME]; + char Title[ExaEvt_MAX_BYTES_TITLE + 1]; + bool Hidden; + struct + { + unsigned QstInd; // 0 means that the exam has not started. First question has index 1. + long QstCod; + time_t QstStartTimeUTC; + ExaEvt_Showing_t Showing; // What is shown on teacher's screen + long Countdown; // > 0 ==> countdown in progress + // = 0 ==> countdown over ==> go to next step + // < 0 ==> no countdown at this time + unsigned NumCols; // Number of columns for answers on teacher's screen + bool ShowQstResults; // Show global results of current question while playing + bool ShowUsrResults; // Show exam with results of all questions for the student + bool Happening; // Is being played now? + unsigned NumParticipants; + } Status; // Status related to event playing + }; + +#endif diff --git a/swad_game.c b/swad_game.c index c7ef6244..cdbc7fed 100644 --- a/swad_game.c +++ b/swad_game.c @@ -1486,7 +1486,7 @@ static void Gam_PutFormsEditionGame (struct Gam_Games *Games, /********************** Receive form to create a new game ********************/ /*****************************************************************************/ -void Gam_RecFormGame (void) +void Gam_ReceiveFormGame (void) { struct Gam_Games Games; struct Gam_Game Game; diff --git a/swad_game.h b/swad_game.h index 3ed638b6..073e8f3f 100644 --- a/swad_game.h +++ b/swad_game.h @@ -133,7 +133,7 @@ void Gam_UnhideGame (void); void Gam_RequestCreatOrEditGame (void); -void Gam_RecFormGame (void); +void Gam_ReceiveFormGame (void); bool Mch_CheckIfMatchIsAssociatedToGrp (long MchCod,long GrpCod); unsigned Gam_GetNumQstsGame (long GamCod); diff --git a/swad_group.c b/swad_group.c index 7b11f6ba..3fa56f45 100644 --- a/swad_group.c +++ b/swad_group.c @@ -3703,7 +3703,7 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames) /****************** Receive form to create a new group type ******************/ /*****************************************************************************/ -void Grp_RecFormNewGrpTyp (void) +void Grp_ReceiveFormNewGrpTyp (void) { extern const char *Txt_The_type_of_group_X_already_exists; extern const char *Txt_Created_new_type_of_group_X; @@ -3776,7 +3776,7 @@ static bool Grp_CheckIfOpenTimeInTheFuture (time_t OpenTimeUTC) /******************** Receive form to create a new group *********************/ /*****************************************************************************/ -void Grp_RecFormNewGrp (void) +void Grp_ReceiveFormNewGrp (void) { extern const char *Txt_The_group_X_already_exists; extern const char *Txt_Created_new_group_X; diff --git a/swad_group.h b/swad_group.h index ea4f4b59..92ae2d31 100644 --- a/swad_group.h +++ b/swad_group.h @@ -205,8 +205,8 @@ bool Grp_GetIfAvailableGrpTyp (long GrpTypCod); void Grp_GetLstCodGrpsWithFileZonesIBelong (struct ListCodGrps *LstGrps); void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GrpNames); -void Grp_RecFormNewGrpTyp (void); -void Grp_RecFormNewGrp (void); +void Grp_ReceiveFormNewGrpTyp (void); +void Grp_ReceiveFormNewGrp (void); void Grp_ReqRemGroupType (void); void Grp_ReqRemGroup (void); void Grp_RemoveGroupType (void); diff --git a/swad_holiday.c b/swad_holiday.c index 5687a3a4..89c702b8 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -1107,7 +1107,7 @@ static void Hld_PutHeadHolidays (void) /******************* Receive form to create a new holiday ********************/ /*****************************************************************************/ -void Hld_RecFormNewHoliday (void) +void Hld_ReceiveFormNewHoliday (void) { extern const char *Txt_Created_new_holiday_X; extern const char *Txt_You_must_specify_the_name_of_the_new_holiday; diff --git a/swad_holiday.h b/swad_holiday.h index b1fe6cce..edaef717 100644 --- a/swad_holiday.h +++ b/swad_holiday.h @@ -99,6 +99,6 @@ void Hld_ChangeStartDate (void); void Hld_ChangeEndDate (void); void Hld_RenameHoliday (void); void Hld_ContEditAfterChgHld (void); -void Hld_RecFormNewHoliday (void); +void Hld_ReceiveFormNewHoliday (void); #endif diff --git a/swad_institution.c b/swad_institution.c index 2a391ddd..c79390c5 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -100,7 +100,7 @@ static void Ins_PutParamGoToIns (void *InsCod); static void Ins_PutFormToCreateInstitution (void); static void Ins_PutHeadInstitutionsForEdition (void); -static void Ins_RecFormRequestOrCreateIns (unsigned Status); +static void Ins_ReceiveFormRequestOrCreateIns (unsigned Status); static void Ins_CreateInstitution (unsigned Status); static void Ins_EditingInstitutionConstructor (); @@ -1831,33 +1831,33 @@ static void Ins_PutHeadInstitutionsForEdition (void) /*************** Receive form to request a new institution *******************/ /*****************************************************************************/ -void Ins_RecFormReqIns (void) +void Ins_ReceiveFormReqIns (void) { /***** Institution constructor *****/ Ins_EditingInstitutionConstructor (); /***** Receive form to request a new institution *****/ - Ins_RecFormRequestOrCreateIns ((unsigned) Ins_STATUS_BIT_PENDING); + Ins_ReceiveFormRequestOrCreateIns ((unsigned) Ins_STATUS_BIT_PENDING); } /*****************************************************************************/ /***************** Receive form to create a new institution ******************/ /*****************************************************************************/ -void Ins_RecFormNewIns (void) +void Ins_ReceiveFormNewIns (void) { /***** Institution constructor *****/ Ins_EditingInstitutionConstructor (); /***** Receive form to create a new institution *****/ - Ins_RecFormRequestOrCreateIns (0); + Ins_ReceiveFormRequestOrCreateIns (0); } /*****************************************************************************/ /*********** Receive form to request or create a new institution *************/ /*****************************************************************************/ -static void Ins_RecFormRequestOrCreateIns (unsigned Status) +static void Ins_ReceiveFormRequestOrCreateIns (unsigned Status) { extern const char *Txt_The_institution_X_already_exists; extern const char *Txt_Created_new_institution_X; diff --git a/swad_institution.h b/swad_institution.h index a28abff4..5d3761ea 100644 --- a/swad_institution.h +++ b/swad_institution.h @@ -126,8 +126,8 @@ void Ins_UpdateInsWWWDB (long InsCod,const char NewWWW[Cns_MAX_BYTES_WWW + 1]); void Ins_ChangeInsStatus (void); void Ins_ContEditAfterChgIns (void); -void Ins_RecFormReqIns (void); -void Ins_RecFormNewIns (void); +void Ins_ReceiveFormReqIns (void); +void Ins_ReceiveFormNewIns (void); unsigned Ins_GetCachedNumInssInSys (void); diff --git a/swad_link.c b/swad_link.c index 9b004430..7db87d84 100644 --- a/swad_link.c +++ b/swad_link.c @@ -797,7 +797,7 @@ static void Lnk_PutHeadLinks (void) /******************* Receive form to create a new link ***********************/ /*****************************************************************************/ -void Lnk_RecFormNewLink (void) +void Lnk_ReceiveFormNewLink (void) { extern const char *Txt_The_link_X_already_exists; extern const char *Txt_You_must_specify_the_URL_of_the_new_link; diff --git a/swad_link.h b/swad_link.h index 3ba252eb..9df66bf8 100644 --- a/swad_link.h +++ b/swad_link.h @@ -65,6 +65,6 @@ void Lnk_RenameLinkShort (void); void Lnk_RenameLinkFull (void); void Lnk_ChangeLinkWWW (void); void Lnk_ContEditAfterChgLnk (void); -void Lnk_RecFormNewLink (void); +void Lnk_ReceiveFormNewLink (void); #endif diff --git a/swad_mail.c b/swad_mail.c index aa63a8ae..1a145466 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -813,7 +813,7 @@ static void Mai_PutHeadMailDomains (void) /******************* Receive form to create a new mail ***********************/ /*****************************************************************************/ -void Mai_RecFormNewMailDomain (void) +void Mai_ReceiveFormNewMailDomain (void) { extern const char *Txt_The_email_domain_X_already_exists; extern const char *Txt_Created_new_email_domain_X; diff --git a/swad_mail.h b/swad_mail.h index 9df90bb4..f5659da7 100644 --- a/swad_mail.h +++ b/swad_mail.h @@ -70,7 +70,7 @@ void Mai_RemoveMailDomain (void); void Mai_RenameMailDomainShort (void); void Mai_RenameMailDomainFull (void); void Mai_ContEditAfterChgMai (void); -void Mai_RecFormNewMailDomain (void); +void Mai_ReceiveFormNewMailDomain (void); void Mai_ReqUsrsToListEmails (void); void Mai_GetSelectedUsrsAndListEmails (void); diff --git a/swad_place.c b/swad_place.c index 7c007e5f..2b866b4b 100644 --- a/swad_place.c +++ b/swad_place.c @@ -889,7 +889,7 @@ static void Plc_PutHeadPlaces (void) /******************* Receive form to create a new place **********************/ /*****************************************************************************/ -void Plc_RecFormNewPlace (void) +void Plc_ReceiveFormNewPlace (void) { extern const char *Txt_The_place_X_already_exists; extern const char *Txt_Created_new_place_X; diff --git a/swad_place.h b/swad_place.h index d5292f51..657aa2f8 100644 --- a/swad_place.h +++ b/swad_place.h @@ -81,6 +81,6 @@ void Plc_RenamePlaceShort (void); void Plc_RenamePlaceFull (void); void Plc_ContEditAfterChgPlc (void); -void Plc_RecFormNewPlace (void); +void Plc_ReceiveFormNewPlace (void); #endif diff --git a/swad_plugin.c b/swad_plugin.c index 735b6cbf..cac32324 100644 --- a/swad_plugin.c +++ b/swad_plugin.c @@ -973,7 +973,7 @@ static void Plg_PutHeadPlugins (void) /****************** Receive form to create a new plugin **********************/ /*****************************************************************************/ -void Plg_RecFormNewPlg (void) +void Plg_ReceiveFormNewPlg (void) { extern const char *Txt_The_plugin_X_already_exists; extern const char *Txt_Created_new_plugin_X; diff --git a/swad_plugin.h b/swad_plugin.h index 38c57f95..5c429514 100644 --- a/swad_plugin.h +++ b/swad_plugin.h @@ -76,6 +76,6 @@ void Plg_ChangePlgURL (void); void Plg_ChangePlgIP (void); void Plg_ContEditAfterChgPlg (void); -void Plg_RecFormNewPlg (void); +void Plg_ReceiveFormNewPlg (void); #endif diff --git a/swad_program.c b/swad_program.c index dabeba59..b548cafd 100644 --- a/swad_program.c +++ b/swad_program.c @@ -1949,7 +1949,7 @@ static void Prg_ShowFormItem (const struct ProgramItem *Item, /***************** Receive form to create a new program item *****************/ /*****************************************************************************/ -void Prg_RecFormNewItem (void) +void Prg_ReceiveFormNewItem (void) { struct ProgramItem ParentItem; // Parent item struct ProgramItem NewItem; // Item data received from form @@ -2003,7 +2003,7 @@ void Prg_RecFormNewItem (void) /************* Receive form to change an existing program item ***************/ /*****************************************************************************/ -void Prg_RecFormChgItem (void) +void Prg_ReceiveFormChgItem (void) { struct ProgramItem OldItem; // Current program item data in database struct ProgramItem NewItem; // Item data received from form diff --git a/swad_program.h b/swad_program.h index 99e5881e..c1451917 100644 --- a/swad_program.h +++ b/swad_program.h @@ -41,8 +41,8 @@ void Prg_ShowCourseProgram (void); void Prg_RequestCreateItem (void); void Prg_RequestChangeItem (void); -void Prg_RecFormNewItem (void); -void Prg_RecFormChgItem (void); +void Prg_ReceiveFormNewItem (void); +void Prg_ReceiveFormChgItem (void); void Prg_ReqRemItem (void); void Prg_RemoveItem (void); @@ -54,7 +54,6 @@ void Prg_MoveDownItem (void); void Prg_MoveLeftItem (void); void Prg_MoveRightItem (void); -void Prg_RecFormItem (void); void Prg_RemoveCrsItems (long CrsCod); unsigned Prg_GetNumCoursesWithItems (Hie_Level_t Scope); diff --git a/swad_project.c b/swad_project.c index f5a4d30e..746ff378 100644 --- a/swad_project.c +++ b/swad_project.c @@ -3865,7 +3865,7 @@ void Prj_FreeMemProject (struct Prj_Project *Prj) /******************** Receive form to create a new project *******************/ /*****************************************************************************/ -void Prj_RecFormProject (void) +void Prj_ReceiveFormProject (void) { extern const char *Txt_You_must_specify_the_title_of_the_project; extern const char *Txt_Created_new_project_X; diff --git a/swad_project.h b/swad_project.h index 1c0b30bd..b941e434 100644 --- a/swad_project.h +++ b/swad_project.h @@ -226,7 +226,7 @@ void Prj_RemoveProject (void); void Prj_HideProject (void); void Prj_UnhideProject (void); -void Prj_RecFormProject (void); +void Prj_ReceiveFormProject (void); void Prj_ShowFormConfig (void); void Prj_ReceiveConfigPrj (void); diff --git a/swad_room.c b/swad_room.c index b8fcbf41..d4b11fb0 100644 --- a/swad_room.c +++ b/swad_room.c @@ -1390,7 +1390,7 @@ static void Roo_PutHeadRooms (void) /******************* Receive form to create a new room ***********************/ /*****************************************************************************/ -void Roo_RecFormNewRoom (void) +void Roo_ReceiveFormNewRoom (void) { extern const char *Txt_The_room_X_already_exists; extern const char *Txt_Created_new_room_X; diff --git a/swad_room.h b/swad_room.h index ddc57f41..14cbb8f2 100644 --- a/swad_room.h +++ b/swad_room.h @@ -141,6 +141,6 @@ void Roo_RenameRoomFull (void); void Roo_ChangeCapacity (void); void Roo_ContEditAfterChgRoom (void); -void Roo_RecFormNewRoom (void); +void Roo_ReceiveFormNewRoom (void); #endif diff --git a/swad_survey.c b/swad_survey.c index c995b227..046fe80a 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -2185,7 +2185,7 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod) /********************* Receive form to create a new survey *******************/ /*****************************************************************************/ -void Svy_RecFormSurvey (void) +void Svy_ReceiveFormSurvey (void) { extern const char *Txt_Already_existed_a_survey_with_the_title_X; extern const char *Txt_You_must_specify_the_title_of_the_survey; diff --git a/swad_survey.h b/swad_survey.h index 5498d11f..2c67db4e 100644 --- a/swad_survey.h +++ b/swad_survey.h @@ -107,7 +107,7 @@ void Svy_AskResetSurvey (void); void Svy_ResetSurvey (void); void Svy_HideSurvey (void); void Svy_UnhideSurvey (void); -void Svy_RecFormSurvey (void); +void Svy_ReceiveFormSurvey (void); bool Svy_CheckIfSvyIsAssociatedToGrp (long SvyCod,long GrpCod); void Svy_RemoveGroup (long GrpCod); void Svy_RemoveGroupsOfType (long GrpTypCod); diff --git a/swad_text_action.c b/swad_text_action.c index f91e539e..e32caaf5 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -10077,6 +10077,90 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução +#endif + , + [ActReqNewExaEvt] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Request new exam event" +#elif L==4 // es + "Solicitar nuevo evento de examen" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActEdiOneExaEvt] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Edit exam event" +#elif L==4 // es + "Editar evento de examen" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActNewExaEvt] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Create new exam event" +#elif L==4 // es + "Crear nuevo evento de examen" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActChgExaEvt] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Change exam event" +#elif L==4 // es + "Cambiar evento de examen" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução #endif , [ActReqRemExaEvt] = @@ -10161,48 +10245,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução -#endif - , - [ActReqNewExaEvt] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "Request new exam event" -#elif L==4 // es - "Solicitar nuevo evento de examen" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução -#endif - , - [ActNewExaEvt] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "Create new exam event" -#elif L==4 // es - "Crear nuevo evento de examen" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução #endif , [ActResExaEvt] =