Version 22.45: Oct 13, 2022 Review of projects (not finished).

This commit is contained in:
acanas 2022-10-13 16:49:55 +02:00
parent c708e089e4
commit 9dad60355a
8 changed files with 369 additions and 222 deletions

View File

@ -1123,7 +1123,7 @@ function updateDivHiddenComments (form,Params) {
} }
/*****************************************************************************/ /*****************************************************************************/
/********** Update fav or share area in social timeline using AJAX ***********/ /************** Update lock/unlock area in project using AJAX ****************/
/*****************************************************************************/ /*****************************************************************************/
// This function is called when user submit a form just inside a parent div // This function is called when user submit a form just inside a parent div
@ -1151,7 +1151,7 @@ function updateDivLockUnlockProject (form,Params) {
} }
/*****************************************************************************/ /*****************************************************************************/
/************** Update lock/unlock area in project using AJAX ****************/ /********** Update fav or share area in social timeline using AJAX ***********/
/*****************************************************************************/ /*****************************************************************************/
// This function is called when user submit a form inside two parent divs // This function is called when user submit a form inside two parent divs

View File

@ -637,6 +637,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActUnhPrj ] = {1683,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnhideProject ,NULL}, [ActUnhPrj ] = {1683,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnhideProject ,NULL},
[ActLckPrj ] = {1773,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_NORMAL,NULL ,Prj_LockProjectEdition ,NULL}, [ActLckPrj ] = {1773,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_NORMAL,NULL ,Prj_LockProjectEdition ,NULL},
[ActUnlPrj ] = {1774,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_NORMAL,NULL ,Prj_UnloProjectEdition ,NULL}, [ActUnlPrj ] = {1774,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_NORMAL,NULL ,Prj_UnloProjectEdition ,NULL},
[ActChgPrjRev ] = {1950,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ChangeReviewStatus ,NULL},
[ActReqAddStdPrj ] = {1684,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddStds ,NULL}, [ActReqAddStdPrj ] = {1684,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddStds ,NULL},
[ActReqAddTutPrj ] = {1685,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddTuts ,NULL}, [ActReqAddTutPrj ] = {1685,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddTuts ,NULL},
[ActReqAddEvlPrj ] = {1686,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddEvls ,NULL}, [ActReqAddEvlPrj ] = {1686,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddEvls ,NULL},
@ -3819,6 +3820,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActConEdiPrgItm, // #1947 ActConEdiPrgItm, // #1947
ActReqLnkPrj, // #1948 ActReqLnkPrj, // #1948
ActSeeOnePrj, // #1949 ActSeeOnePrj, // #1949
ActChgPrjRev, // #1950
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -65,7 +65,7 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_MAX_ACTION_COD 1949 #define Act_MAX_ACTION_COD 1950
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -587,225 +587,226 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActUnhPrj (ActChgCrsTT1stDay + 49) #define ActUnhPrj (ActChgCrsTT1stDay + 49)
#define ActLckPrj (ActChgCrsTT1stDay + 50) #define ActLckPrj (ActChgCrsTT1stDay + 50)
#define ActUnlPrj (ActChgCrsTT1stDay + 51) #define ActUnlPrj (ActChgCrsTT1stDay + 51)
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 52) #define ActChgPrjRev (ActChgCrsTT1stDay + 52)
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 53) #define ActReqAddStdPrj (ActChgCrsTT1stDay + 53)
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 54) #define ActReqAddTutPrj (ActChgCrsTT1stDay + 54)
#define ActAddStdPrj (ActChgCrsTT1stDay + 55) #define ActReqAddEvlPrj (ActChgCrsTT1stDay + 55)
#define ActAddTutPrj (ActChgCrsTT1stDay + 56) #define ActAddStdPrj (ActChgCrsTT1stDay + 56)
#define ActAddEvlPrj (ActChgCrsTT1stDay + 57) #define ActAddTutPrj (ActChgCrsTT1stDay + 57)
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 58) #define ActAddEvlPrj (ActChgCrsTT1stDay + 58)
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 59) #define ActReqRemStdPrj (ActChgCrsTT1stDay + 59)
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 60) #define ActReqRemTutPrj (ActChgCrsTT1stDay + 60)
#define ActRemStdPrj (ActChgCrsTT1stDay + 61) #define ActReqRemEvlPrj (ActChgCrsTT1stDay + 61)
#define ActRemTutPrj (ActChgCrsTT1stDay + 62) #define ActRemStdPrj (ActChgCrsTT1stDay + 62)
#define ActRemEvlPrj (ActChgCrsTT1stDay + 63) #define ActRemTutPrj (ActChgCrsTT1stDay + 63)
#define ActReqLnkPrj (ActChgCrsTT1stDay + 64) #define ActRemEvlPrj (ActChgCrsTT1stDay + 64)
#define ActReqLnkPrj (ActChgCrsTT1stDay + 65)
#define ActAdmDocPrj (ActChgCrsTT1stDay + 65) #define ActAdmDocPrj (ActChgCrsTT1stDay + 66)
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 66) #define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 67)
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 67) #define ActRemFilDocPrj (ActChgCrsTT1stDay + 68)
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 68) #define ActRemFolDocPrj (ActChgCrsTT1stDay + 69)
#define ActCopDocPrj (ActChgCrsTT1stDay + 69) #define ActCopDocPrj (ActChgCrsTT1stDay + 70)
#define ActPasDocPrj (ActChgCrsTT1stDay + 70) #define ActPasDocPrj (ActChgCrsTT1stDay + 71)
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 71) #define ActRemTreDocPrj (ActChgCrsTT1stDay + 72)
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 72) #define ActFrmCreDocPrj (ActChgCrsTT1stDay + 73)
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 73) #define ActCreFolDocPrj (ActChgCrsTT1stDay + 74)
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 74) #define ActCreLnkDocPrj (ActChgCrsTT1stDay + 75)
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 75) #define ActRenFolDocPrj (ActChgCrsTT1stDay + 76)
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 76) #define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 77)
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 77) #define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 78)
#define ActExpDocPrj (ActChgCrsTT1stDay + 78) #define ActExpDocPrj (ActChgCrsTT1stDay + 79)
#define ActConDocPrj (ActChgCrsTT1stDay + 79) #define ActConDocPrj (ActChgCrsTT1stDay + 80)
#define ActZIPDocPrj (ActChgCrsTT1stDay + 80) #define ActZIPDocPrj (ActChgCrsTT1stDay + 81)
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 81) #define ActReqDatDocPrj (ActChgCrsTT1stDay + 82)
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 82) #define ActChgDatDocPrj (ActChgCrsTT1stDay + 83)
#define ActDowDocPrj (ActChgCrsTT1stDay + 83) #define ActDowDocPrj (ActChgCrsTT1stDay + 84)
#define ActAdmAssPrj (ActChgCrsTT1stDay + 84) #define ActAdmAssPrj (ActChgCrsTT1stDay + 85)
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 85) #define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 86)
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 86) #define ActRemFilAssPrj (ActChgCrsTT1stDay + 87)
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 87) #define ActRemFolAssPrj (ActChgCrsTT1stDay + 88)
#define ActCopAssPrj (ActChgCrsTT1stDay + 88) #define ActCopAssPrj (ActChgCrsTT1stDay + 89)
#define ActPasAssPrj (ActChgCrsTT1stDay + 89) #define ActPasAssPrj (ActChgCrsTT1stDay + 90)
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 90) #define ActRemTreAssPrj (ActChgCrsTT1stDay + 91)
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 91) #define ActFrmCreAssPrj (ActChgCrsTT1stDay + 92)
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 92) #define ActCreFolAssPrj (ActChgCrsTT1stDay + 93)
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 93) #define ActCreLnkAssPrj (ActChgCrsTT1stDay + 94)
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 94) #define ActRenFolAssPrj (ActChgCrsTT1stDay + 95)
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 95) #define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 96)
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 96) #define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 97)
#define ActExpAssPrj (ActChgCrsTT1stDay + 97) #define ActExpAssPrj (ActChgCrsTT1stDay + 98)
#define ActConAssPrj (ActChgCrsTT1stDay + 98) #define ActConAssPrj (ActChgCrsTT1stDay + 99)
#define ActZIPAssPrj (ActChgCrsTT1stDay + 99) #define ActZIPAssPrj (ActChgCrsTT1stDay + 100)
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 100) #define ActReqDatAssPrj (ActChgCrsTT1stDay + 101)
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 101) #define ActChgDatAssPrj (ActChgCrsTT1stDay + 102)
#define ActDowAssPrj (ActChgCrsTT1stDay + 102) #define ActDowAssPrj (ActChgCrsTT1stDay + 103)
#define ActSeeOneCfe (ActChgCrsTT1stDay + 103) #define ActSeeOneCfe (ActChgCrsTT1stDay + 104)
#define ActSeeDatCfe (ActChgCrsTT1stDay + 104) #define ActSeeDatCfe (ActChgCrsTT1stDay + 105)
#define ActEdiCfe (ActChgCrsTT1stDay + 105) #define ActEdiCfe (ActChgCrsTT1stDay + 106)
#define ActRcvCfe (ActChgCrsTT1stDay + 106) #define ActRcvCfe (ActChgCrsTT1stDay + 107)
#define ActPrnCfe (ActChgCrsTT1stDay + 107) #define ActPrnCfe (ActChgCrsTT1stDay + 108)
#define ActReqRemCfe (ActChgCrsTT1stDay + 108) #define ActReqRemCfe (ActChgCrsTT1stDay + 109)
#define ActRemCfe (ActChgCrsTT1stDay + 109) #define ActRemCfe (ActChgCrsTT1stDay + 110)
#define ActHidCfe (ActChgCrsTT1stDay + 110) #define ActHidCfe (ActChgCrsTT1stDay + 111)
#define ActUnhCfe (ActChgCrsTT1stDay + 111) #define ActUnhCfe (ActChgCrsTT1stDay + 112)
#define ActReqLnkCfe (ActChgCrsTT1stDay + 112) #define ActReqLnkCfe (ActChgCrsTT1stDay + 113)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 113) #define ActEdiOneTstQst (ActChgCrsTT1stDay + 114)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 114) #define ActReqImpTstQst (ActChgCrsTT1stDay + 115)
#define ActImpTstQst (ActChgCrsTT1stDay + 115) #define ActImpTstQst (ActChgCrsTT1stDay + 116)
#define ActLstTstQst (ActChgCrsTT1stDay + 116) #define ActLstTstQst (ActChgCrsTT1stDay + 117)
#define ActRcvTstQst (ActChgCrsTT1stDay + 117) #define ActRcvTstQst (ActChgCrsTT1stDay + 118)
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 118) #define ActReqRemSevTstQst (ActChgCrsTT1stDay + 119)
#define ActRemSevTstQst (ActChgCrsTT1stDay + 119) #define ActRemSevTstQst (ActChgCrsTT1stDay + 120)
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 120) #define ActReqRemOneTstQst (ActChgCrsTT1stDay + 121)
#define ActRemOneTstQst (ActChgCrsTT1stDay + 121) #define ActRemOneTstQst (ActChgCrsTT1stDay + 122)
#define ActChgShfTstQst (ActChgCrsTT1stDay + 122) #define ActChgShfTstQst (ActChgCrsTT1stDay + 123)
#define ActEdiTag (ActChgCrsTT1stDay + 123) #define ActEdiTag (ActChgCrsTT1stDay + 124)
#define ActEnaTag (ActChgCrsTT1stDay + 124) #define ActEnaTag (ActChgCrsTT1stDay + 125)
#define ActDisTag (ActChgCrsTT1stDay + 125) #define ActDisTag (ActChgCrsTT1stDay + 126)
#define ActRenTag (ActChgCrsTT1stDay + 126) #define ActRenTag (ActChgCrsTT1stDay + 127)
#define ActSeeTst (ActChgCrsTT1stDay + 127) #define ActSeeTst (ActChgCrsTT1stDay + 128)
#define ActReqAssTst (ActChgCrsTT1stDay + 128) #define ActReqAssTst (ActChgCrsTT1stDay + 129)
#define ActAssTst (ActChgCrsTT1stDay + 129) #define ActAssTst (ActChgCrsTT1stDay + 130)
#define ActCfgTst (ActChgCrsTT1stDay + 130) #define ActCfgTst (ActChgCrsTT1stDay + 131)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 131) #define ActRcvCfgTst (ActChgCrsTT1stDay + 132)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 132) #define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 133)
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 133) #define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 134)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 134) #define ActSeeOneTstResMe (ActChgCrsTT1stDay + 135)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 135) #define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 136)
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 136) #define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 137)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 137) #define ActSeeOneTstResOth (ActChgCrsTT1stDay + 138)
#define ActSeeExa (ActChgCrsTT1stDay + 138) #define ActSeeExa (ActChgCrsTT1stDay + 139)
#define ActFrmNewExa (ActChgCrsTT1stDay + 139) #define ActFrmNewExa (ActChgCrsTT1stDay + 140)
#define ActEdiOneExa (ActChgCrsTT1stDay + 140) #define ActEdiOneExa (ActChgCrsTT1stDay + 141)
#define ActNewExa (ActChgCrsTT1stDay + 141) #define ActNewExa (ActChgCrsTT1stDay + 142)
#define ActChgExa (ActChgCrsTT1stDay + 142) #define ActChgExa (ActChgCrsTT1stDay + 143)
#define ActReqRemExa (ActChgCrsTT1stDay + 143) #define ActReqRemExa (ActChgCrsTT1stDay + 144)
#define ActRemExa (ActChgCrsTT1stDay + 144) #define ActRemExa (ActChgCrsTT1stDay + 145)
#define ActHidExa (ActChgCrsTT1stDay + 145) #define ActHidExa (ActChgCrsTT1stDay + 146)
#define ActUnhExa (ActChgCrsTT1stDay + 146) #define ActUnhExa (ActChgCrsTT1stDay + 147)
#define ActReqLnkExa (ActChgCrsTT1stDay + 147) #define ActReqLnkExa (ActChgCrsTT1stDay + 148)
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 148) #define ActFrmNewExaSet (ActChgCrsTT1stDay + 149)
#define ActNewExaSet (ActChgCrsTT1stDay + 149) #define ActNewExaSet (ActChgCrsTT1stDay + 150)
#define ActReqRemExaSet (ActChgCrsTT1stDay + 150) #define ActReqRemExaSet (ActChgCrsTT1stDay + 151)
#define ActRemExaSet (ActChgCrsTT1stDay + 151) #define ActRemExaSet (ActChgCrsTT1stDay + 152)
#define ActUp_ExaSet (ActChgCrsTT1stDay + 152) #define ActUp_ExaSet (ActChgCrsTT1stDay + 153)
#define ActDwnExaSet (ActChgCrsTT1stDay + 153) #define ActDwnExaSet (ActChgCrsTT1stDay + 154)
#define ActChgTitExaSet (ActChgCrsTT1stDay + 154) #define ActChgTitExaSet (ActChgCrsTT1stDay + 155)
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 155) #define ActChgNumQstExaSet (ActChgCrsTT1stDay + 156)
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 156) #define ActReqAddQstExaSet (ActChgCrsTT1stDay + 157)
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 157) #define ActLstTstQstForSet (ActChgCrsTT1stDay + 158)
#define ActAddQstToExa (ActChgCrsTT1stDay + 158) #define ActAddQstToExa (ActChgCrsTT1stDay + 159)
#define ActReqRemSetQst (ActChgCrsTT1stDay + 159) #define ActReqRemSetQst (ActChgCrsTT1stDay + 160)
#define ActRemExaQst (ActChgCrsTT1stDay + 160) #define ActRemExaQst (ActChgCrsTT1stDay + 161)
#define ActValSetQst (ActChgCrsTT1stDay + 161) #define ActValSetQst (ActChgCrsTT1stDay + 162)
#define ActInvSetQst (ActChgCrsTT1stDay + 162) #define ActInvSetQst (ActChgCrsTT1stDay + 163)
#define ActReqNewExaSes (ActChgCrsTT1stDay + 163) #define ActReqNewExaSes (ActChgCrsTT1stDay + 164)
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 164) #define ActEdiOneExaSes (ActChgCrsTT1stDay + 165)
#define ActNewExaSes (ActChgCrsTT1stDay + 165) #define ActNewExaSes (ActChgCrsTT1stDay + 166)
#define ActChgExaSes (ActChgCrsTT1stDay + 166) #define ActChgExaSes (ActChgCrsTT1stDay + 167)
#define ActReqRemExaSes (ActChgCrsTT1stDay + 167) #define ActReqRemExaSes (ActChgCrsTT1stDay + 168)
#define ActRemExaSes (ActChgCrsTT1stDay + 168) #define ActRemExaSes (ActChgCrsTT1stDay + 169)
#define ActHidExaSes (ActChgCrsTT1stDay + 169) #define ActHidExaSes (ActChgCrsTT1stDay + 170)
#define ActUnhExaSes (ActChgCrsTT1stDay + 170) #define ActUnhExaSes (ActChgCrsTT1stDay + 171)
#define ActSeeExaPrn (ActChgCrsTT1stDay + 171) #define ActSeeExaPrn (ActChgCrsTT1stDay + 172)
#define ActAnsExaPrn (ActChgCrsTT1stDay + 172) #define ActAnsExaPrn (ActChgCrsTT1stDay + 173)
#define ActEndExaPrn (ActChgCrsTT1stDay + 173) #define ActEndExaPrn (ActChgCrsTT1stDay + 174)
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 174) #define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 175)
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 175) #define ActSeeMyExaResExa (ActChgCrsTT1stDay + 176)
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 176) #define ActSeeMyExaResSes (ActChgCrsTT1stDay + 177)
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 177) #define ActSeeOneExaResMe (ActChgCrsTT1stDay + 178)
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 178) #define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 179)
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 179) #define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 180)
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 180) #define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 181)
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 181) #define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 182)
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 182) #define ActSeeOneExaResOth (ActChgCrsTT1stDay + 183)
#define ActChgVisExaRes (ActChgCrsTT1stDay + 183) #define ActChgVisExaRes (ActChgCrsTT1stDay + 184)
#define ActSeeGam (ActChgCrsTT1stDay + 184) #define ActSeeGam (ActChgCrsTT1stDay + 185)
#define ActReqRemMch (ActChgCrsTT1stDay + 185) #define ActReqRemMch (ActChgCrsTT1stDay + 186)
#define ActRemMch (ActChgCrsTT1stDay + 186) #define ActRemMch (ActChgCrsTT1stDay + 187)
#define ActEdiMch (ActChgCrsTT1stDay + 187) #define ActEdiMch (ActChgCrsTT1stDay + 188)
#define ActChgMch (ActChgCrsTT1stDay + 188) #define ActChgMch (ActChgCrsTT1stDay + 189)
#define ActReqNewMch (ActChgCrsTT1stDay + 189) #define ActReqNewMch (ActChgCrsTT1stDay + 190)
#define ActNewMch (ActChgCrsTT1stDay + 190) #define ActNewMch (ActChgCrsTT1stDay + 191)
#define ActResMch (ActChgCrsTT1stDay + 191) #define ActResMch (ActChgCrsTT1stDay + 192)
#define ActBckMch (ActChgCrsTT1stDay + 192) #define ActBckMch (ActChgCrsTT1stDay + 193)
#define ActPlyPauMch (ActChgCrsTT1stDay + 193) #define ActPlyPauMch (ActChgCrsTT1stDay + 194)
#define ActFwdMch (ActChgCrsTT1stDay + 194) #define ActFwdMch (ActChgCrsTT1stDay + 195)
#define ActChgNumColMch (ActChgCrsTT1stDay + 195) #define ActChgNumColMch (ActChgCrsTT1stDay + 196)
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 196) #define ActChgVisResMchQst (ActChgCrsTT1stDay + 197)
#define ActMchCntDwn (ActChgCrsTT1stDay + 197) #define ActMchCntDwn (ActChgCrsTT1stDay + 198)
#define ActRefMchTch (ActChgCrsTT1stDay + 198) #define ActRefMchTch (ActChgCrsTT1stDay + 199)
#define ActJoiMch (ActChgCrsTT1stDay + 199) #define ActJoiMch (ActChgCrsTT1stDay + 200)
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 200) #define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 201)
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 201) #define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 202)
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 202) #define ActAnsMchQstStd (ActChgCrsTT1stDay + 203)
#define ActRefMchStd (ActChgCrsTT1stDay + 203) #define ActRefMchStd (ActChgCrsTT1stDay + 204)
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 204) #define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 205)
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 205) #define ActSeeMyMchResGam (ActChgCrsTT1stDay + 206)
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 206) #define ActSeeMyMchResMch (ActChgCrsTT1stDay + 207)
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 207) #define ActSeeOneMchResMe (ActChgCrsTT1stDay + 208)
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 208) #define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 209)
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 209) #define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 210)
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 210) #define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 211)
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 211) #define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 212)
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 212) #define ActSeeOneMchResOth (ActChgCrsTT1stDay + 213)
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 213) #define ActChgVisResMchUsr (ActChgCrsTT1stDay + 214)
#define ActLstOneGam (ActChgCrsTT1stDay + 214) #define ActLstOneGam (ActChgCrsTT1stDay + 215)
#define ActFrmNewGam (ActChgCrsTT1stDay + 215) #define ActFrmNewGam (ActChgCrsTT1stDay + 216)
#define ActEdiOneGam (ActChgCrsTT1stDay + 216) #define ActEdiOneGam (ActChgCrsTT1stDay + 217)
#define ActNewGam (ActChgCrsTT1stDay + 217) #define ActNewGam (ActChgCrsTT1stDay + 218)
#define ActChgGam (ActChgCrsTT1stDay + 218) #define ActChgGam (ActChgCrsTT1stDay + 219)
#define ActReqRemGam (ActChgCrsTT1stDay + 219) #define ActReqRemGam (ActChgCrsTT1stDay + 220)
#define ActRemGam (ActChgCrsTT1stDay + 220) #define ActRemGam (ActChgCrsTT1stDay + 221)
#define ActHidGam (ActChgCrsTT1stDay + 221) #define ActHidGam (ActChgCrsTT1stDay + 222)
#define ActUnhGam (ActChgCrsTT1stDay + 222) #define ActUnhGam (ActChgCrsTT1stDay + 223)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 223) #define ActAddOneGamQst (ActChgCrsTT1stDay + 224)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 224) #define ActGamLstTstQst (ActChgCrsTT1stDay + 225)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 225) #define ActAddTstQstToGam (ActChgCrsTT1stDay + 226)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 226) #define ActReqRemGamQst (ActChgCrsTT1stDay + 227)
#define ActRemGamQst (ActChgCrsTT1stDay + 227) #define ActRemGamQst (ActChgCrsTT1stDay + 228)
#define ActUp_GamQst (ActChgCrsTT1stDay + 228) #define ActUp_GamQst (ActChgCrsTT1stDay + 229)
#define ActDwnGamQst (ActChgCrsTT1stDay + 229) #define ActDwnGamQst (ActChgCrsTT1stDay + 230)
#define ActReqLnkGam (ActChgCrsTT1stDay + 230) #define ActReqLnkGam (ActChgCrsTT1stDay + 231)
#define ActSeeSvy (ActChgCrsTT1stDay + 231) #define ActSeeSvy (ActChgCrsTT1stDay + 232)
#define ActAnsSvy (ActChgCrsTT1stDay + 232) #define ActAnsSvy (ActChgCrsTT1stDay + 233)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 233) #define ActFrmNewSvy (ActChgCrsTT1stDay + 234)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 234) #define ActEdiOneSvy (ActChgCrsTT1stDay + 235)
#define ActNewSvy (ActChgCrsTT1stDay + 235) #define ActNewSvy (ActChgCrsTT1stDay + 236)
#define ActChgSvy (ActChgCrsTT1stDay + 236) #define ActChgSvy (ActChgCrsTT1stDay + 237)
#define ActReqRemSvy (ActChgCrsTT1stDay + 237) #define ActReqRemSvy (ActChgCrsTT1stDay + 238)
#define ActRemSvy (ActChgCrsTT1stDay + 238) #define ActRemSvy (ActChgCrsTT1stDay + 239)
#define ActReqRstSvy (ActChgCrsTT1stDay + 239) #define ActReqRstSvy (ActChgCrsTT1stDay + 240)
#define ActRstSvy (ActChgCrsTT1stDay + 240) #define ActRstSvy (ActChgCrsTT1stDay + 241)
#define ActHidSvy (ActChgCrsTT1stDay + 241) #define ActHidSvy (ActChgCrsTT1stDay + 242)
#define ActUnhSvy (ActChgCrsTT1stDay + 242) #define ActUnhSvy (ActChgCrsTT1stDay + 243)
#define ActReqLnkSvy (ActChgCrsTT1stDay + 243) #define ActReqLnkSvy (ActChgCrsTT1stDay + 244)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 244) #define ActEdiOneSvyQst (ActChgCrsTT1stDay + 245)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 245) #define ActRcvSvyQst (ActChgCrsTT1stDay + 246)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 246) #define ActReqRemSvyQst (ActChgCrsTT1stDay + 247)
#define ActRemSvyQst (ActChgCrsTT1stDay + 247) #define ActRemSvyQst (ActChgCrsTT1stDay + 248)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Files tab **********************************/ /******************************** Files tab **********************************/

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia. TODO: Attach pdf files in multimedia.
*/ */
#define Log_PLATFORM_VERSION "SWAD 22.44.3 (2022-10-12)" #define Log_PLATFORM_VERSION "SWAD 22.45 (2022-10-13)"
#define CSS_FILE "swad22.40.css" #define CSS_FILE "swad22.40.css"
#define JS_FILE "swad21.100.js" #define JS_FILE "swad21.100.js"
/* /*
Version 22.45: Oct 13, 2022 Review of projects (not finished). (333137 lines)
Version 22.44.3: Oct 12, 2022 Code refactoring in projects. (333015 lines) Version 22.44.3: Oct 12, 2022 Code refactoring in projects. (333015 lines)
Version 22.44.2: Oct 12, 2022 Code refactoring in projects. (333001 lines) Version 22.44.2: Oct 12, 2022 Code refactoring in projects. (333001 lines)
Version 22.44.1: Oct 12, 2022 Code refactoring in projects. (332985 lines) Version 22.44.1: Oct 12, 2022 Code refactoring in projects. (332985 lines)

View File

@ -202,12 +202,17 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
static void Prj_ShowProjectFirstRow (struct Prj_Projects *Projects, static void Prj_ShowProjectFirstRow (struct Prj_Projects *Projects,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults, const struct Prj_Faults *Faults,
unsigned NumIndex,unsigned UniqueId); unsigned NumIndex,unsigned UniqueId,
const char *Anchor);
static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects, static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
const char *ClassData); const char *ClassData);
static void Prj_ShowProjectReviewStatus (const struct Prj_Projects *Projects, static void Prj_ShowProjectReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData); const char *ClassData,
const char *Anchor);
static void Prj_FormChangeReviewStatus (struct Prj_Projects *Projects,
const char *Anchor);
static bool Prj_CheckIfICanReviewProjects (void);
static void Prj_ShowProjectAssigned (const struct Prj_Projects *Projects, static void Prj_ShowProjectAssigned (const struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData, const char *ClassData,
@ -293,6 +298,9 @@ static void Prj_PutIconsToLockUnlockAllProjects (struct Prj_Projects *Projects);
static void Prj_FormLockUnlock (const struct Prj_Project *Prj); static void Prj_FormLockUnlock (const struct Prj_Project *Prj);
static void Prj_PutIconOffLockedUnlocked (const struct Prj_Project *Prj); static void Prj_PutIconOffLockedUnlocked (const struct Prj_Project *Prj);
//---------------------------- Review status ----------------------------------
static Prj_ReviewStatus_t Prj_GetHiddenParamReviewStatus (void);
/*****************************************************************************/ /*****************************************************************************/
/******* Set/get project code (used to pass parameter to file browser) *******/ /******* Set/get project code (used to pass parameter to file browser) *******/
/*****************************************************************************/ /*****************************************************************************/
@ -1375,20 +1383,24 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
extern const char *Txt_Required_materials; extern const char *Txt_Required_materials;
struct Prj_Faults Faults; struct Prj_Faults Faults;
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
char *Anchor = NULL;
const char *ClassLabel = (Projects->Prj.Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" : const char *ClassLabel = (Projects->Prj.Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL"; "ASG_LABEL";
const char *ClassData = (Projects->Prj.Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : const char *ClassData = (Projects->Prj.Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
"DAT"; "DAT";
/***** Set anchor string *****/
Frm_SetAnchorStr (Projects->Prj.PrjCod,&Anchor);
/***** Check project faults *****/ /***** Check project faults *****/
Prj_CheckIfPrjIsFaulty (Projects->Prj.PrjCod,&Faults); Prj_CheckIfPrjIsFaulty (Projects->Prj.PrjCod,&Faults);
/***** First row with main data (dates, title...) *****/ /***** First row with main data (dates, title...) *****/
UniqueId++; UniqueId++;
Prj_ShowProjectFirstRow (Projects,ClassData,&Faults,NumIndex,UniqueId); Prj_ShowProjectFirstRow (Projects,ClassData,&Faults,NumIndex,UniqueId,Anchor);
/***** Review status *****/ /***** Review status *****/
Prj_ShowProjectReviewStatus (Projects,ClassLabel,ClassData); Prj_ShowProjectReviewStatus (Projects,ClassLabel,ClassData,Anchor);
/***** Assigned? *****/ /***** Assigned? *****/
Prj_ShowProjectAssigned (Projects,ClassLabel,ClassData,&Faults); Prj_ShowProjectAssigned (Projects,ClassLabel,ClassData,&Faults);
@ -1426,6 +1438,9 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
/* Link to view more info about the project */ /* Link to view more info about the project */
Prj_ShowProjectURL (Projects,ClassLabel,ClassData,"prj_url_",UniqueId); Prj_ShowProjectURL (Projects,ClassLabel,ClassData,"prj_url_",UniqueId);
/***** Free anchor string *****/
Frm_FreeAnchorStr (Anchor);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1435,18 +1450,15 @@ static void Prj_ShowProjectRow (struct Prj_Projects *Projects,
static void Prj_ShowProjectFirstRow (struct Prj_Projects *Projects, static void Prj_ShowProjectFirstRow (struct Prj_Projects *Projects,
const char *ClassData, const char *ClassData,
const struct Prj_Faults *Faults, const struct Prj_Faults *Faults,
unsigned NumIndex,unsigned UniqueId) unsigned NumIndex,unsigned UniqueId,
const char *Anchor)
{ {
extern const char *Txt_Actions[Act_NUM_ACTIONS]; extern const char *Txt_Actions[Act_NUM_ACTIONS];
char *Id; char *Id;
Act_Action_t NextAction; Act_Action_t NextAction;
char *Anchor = NULL;
const char *ClassDate = (Projects->Prj.Hidden == Prj_HIDDEN) ? "DATE_BLUE_LIGHT" : const char *ClassDate = (Projects->Prj.Hidden == Prj_HIDDEN) ? "DATE_BLUE_LIGHT" :
"DATE_BLUE"; "DATE_BLUE";
/***** Set anchor string *****/
Frm_SetAnchorStr (Projects->Prj.PrjCod,&Anchor);
/***** Write first row of data of this project *****/ /***** Write first row of data of this project *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -1564,9 +1576,6 @@ static void Prj_ShowProjectFirstRow (struct Prj_Projects *Projects,
Prj_ShowProjectDepartment (Projects,ClassData); Prj_ShowProjectDepartment (Projects,ClassData);
HTM_TR_End (); HTM_TR_End ();
/***** Free anchor string *****/
Frm_FreeAnchorStr (Anchor);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1612,9 +1621,10 @@ static void Prj_ShowProjectDepartment (const struct Prj_Projects *Projects,
/********* When listing a project, show one row with review status ***********/ /********* When listing a project, show one row with review status ***********/
/*****************************************************************************/ /*****************************************************************************/
static void Prj_ShowProjectReviewStatus (const struct Prj_Projects *Projects, static void Prj_ShowProjectReviewStatus (struct Prj_Projects *Projects,
const char *ClassLabel, const char *ClassLabel,
const char *ClassData) const char *ClassData,
const char *Anchor)
{ {
extern const char *Txt_Review; extern const char *Txt_Review;
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS]; extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
@ -1646,20 +1656,76 @@ static void Prj_ShowProjectReviewStatus (const struct Prj_Projects *Projects,
ClassData,The_GetSuffix ()); ClassData,The_GetSuffix ());
break; break;
} }
if (Prj_CheckIfICanReviewProjects ())
/* Form to change review status */
Prj_FormChangeReviewStatus (Projects,Anchor);
else
HTM_TxtF ("%s ",Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]); HTM_TxtF ("%s ",Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]);
Ico_PutIconOff (ReviewIcon[Projects->Prj.Review.Status].Icon,
ReviewIcon[Projects->Prj.Review.Status].Color, /*
Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]); if (Faults.WrongAssigned)
/* Prj_PutWarningIcon ();
if (Faults.WrongAssigned) */
Prj_PutWarningIcon (); Ico_PutIconOff (ReviewIcon[Projects->Prj.Review.Status].Icon,
*/ ReviewIcon[Projects->Prj.Review.Status].Color,
Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
} }
/*****************************************************************************/
/******************** Form to lock/unlock project edition ********************/
/*****************************************************************************/
static void Prj_FormChangeReviewStatus (struct Prj_Projects *Projects,
const char *Anchor)
{
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
Prj_ReviewStatus_t ReviewStatus;
unsigned ReviewStatusUnsigned;
/***** Form to change review status and text *****/
Frm_BeginFormAnchor (ActChgPrjRev,Anchor);
Prj_PutCurrentParams (Projects);
/* Selector for review status */
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
"id=\"ReviewStatus\" name=\"ReviewStatus\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
for (ReviewStatus = (Prj_ReviewStatus_t) 0;
ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1);
ReviewStatus++)
{
ReviewStatusUnsigned = (unsigned) ReviewStatus;
HTM_OPTION (HTM_Type_UNSIGNED,&ReviewStatusUnsigned,
ReviewStatus == Projects->Prj.Review.Status,false,
"%s",Txt_PROJECT_REVIEW_SINGUL[ReviewStatus]);
}
HTM_SELECT_End ();
// Btn_PutConfirmButtonInline ("Cambiar");
Frm_EndForm ();
}
/*****************************************************************************/
/**************************** Can I review projects? *************************/
/*****************************************************************************/
static bool Prj_CheckIfICanReviewProjects (void)
{
static bool ICanReviewProjects[Rol_NUM_ROLES] =
{
[Rol_TCH ] = true,
[Rol_SYS_ADM] = true,
};
return ICanReviewProjects[Gbl.Usrs.Me.Role.Logged];
}
/*****************************************************************************/ /*****************************************************************************/
/******** When listing a project, show one row with assigned status **********/ /******** When listing a project, show one row with assigned status **********/
/*****************************************************************************/ /*****************************************************************************/
@ -4388,6 +4454,61 @@ void Prj_UnloProjectEdition (void)
Prj_FreeMemProject (&Projects.Prj); Prj_FreeMemProject (&Projects.Prj);
} }
/*****************************************************************************/
/********************** Change review status of a project ********************/
/*****************************************************************************/
void Prj_ChangeReviewStatus (void)
{
struct Prj_Projects Projects;
/***** Reset projects *****/
Prj_ResetProjects (&Projects);
/***** Allocate memory for the project *****/
Prj_AllocMemProject (&Projects.Prj);
/***** Get parameters *****/
Prj_GetParams (&Projects);
if ((Projects.Prj.PrjCod = Prj_GetParamPrjCod ()) < 0)
Err_WrongProjectExit ();
/***** Get data of the project from database *****/
Prj_GetDataOfProjectByCod (&Projects.Prj);
/***** Hide project *****/
if (Prj_CheckIfICanReviewProjects ())
{
Projects.Prj.Review.Status = Prj_GetHiddenParamReviewStatus ();
Projects.Prj.Review.Txt[0] = '\0'; // TODO: Get from parameter
Prj_DB_UpdateReview (&Projects.Prj);
/*
Ale_ShowAlert (Ale_INFO,"Recibida nueva revisi&oacute;n del proyecto = %u.",
(unsigned) Projects.Prj.Review.Status); */
}
else
Err_NoPermissionExit ();
/***** Free memory of the project *****/
Prj_FreeMemProject (&Projects.Prj);
/***** Show projects again *****/
Prj_ShowProjects (&Projects);
}
/*****************************************************************************/
/********************** Get parameter with review status *********************/
/*****************************************************************************/
static Prj_ReviewStatus_t Prj_GetHiddenParamReviewStatus (void)
{
return (Prj_ReviewStatus_t)
Par_GetParToUnsignedLong ("ReviewStatus",
0,
Prj_NUM_REVIEW_STATUS - 1,
(unsigned long) Prj_REVIEW_STATUS_DEFAULT);
}
/*****************************************************************************/ /*****************************************************************************/
/********************** Remove all projects in a course **********************/ /********************** Remove all projects in a course **********************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -269,6 +269,8 @@ void Prj_UnloSelectedPrjsEdition (void);
void Prj_LockProjectEdition (void); void Prj_LockProjectEdition (void);
void Prj_UnloProjectEdition (void); void Prj_UnloProjectEdition (void);
void Prj_ChangeReviewStatus (void);
void Prj_RemoveCrsProjects (long CrsCod); void Prj_RemoveCrsProjects (long CrsCod);
void Prj_RemoveUsrFromProjects (long UsrCod); void Prj_RemoveUsrFromProjects (long UsrCod);

View File

@ -215,6 +215,25 @@ void Prj_DB_HideOrUnhideProject (long PrjCod,bool Hide)
Gbl.Hierarchy.Crs.CrsCod); Gbl.Hierarchy.Crs.CrsCod);
} }
/*****************************************************************************/
/******************* Update review of an existing project ********************/
/*****************************************************************************/
void Prj_DB_UpdateReview (const struct Prj_Project *Prj)
{
DB_QueryUPDATE ("can not update project review",
"UPDATE prj_projects"
" SET ReviewStatus='%s',"
"ReviewTime=NOW(),"
"ReviewTxt='%s'"
" WHERE PrjCod=%ld"
" AND CrsCod=%ld", // Extra check
Prj_ReviewStatus_DB[Prj->Review.Status],
Prj->Review.Txt,
Prj->PrjCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/ /*****************************************************************************/
/******************************** Get projects *******************************/ /******************************** Get projects *******************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -40,6 +40,7 @@ long Prj_DB_CreateProject (const struct Prj_Project *Prj);
void Prj_DB_UpdateProject (const struct Prj_Project *Prj); void Prj_DB_UpdateProject (const struct Prj_Project *Prj);
void Prj_DB_AddUsrToPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,long UsrCod); void Prj_DB_AddUsrToPrj (long PrjCod,Prj_RoleInProject_t RoleInProject,long UsrCod);
void Prj_DB_HideOrUnhideProject (long PrjCod,bool Hide); void Prj_DB_HideOrUnhideProject (long PrjCod,bool Hide);
void Prj_DB_UpdateReview (const struct Prj_Project *Prj);
unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res, unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
const struct Prj_Projects *Projects, const struct Prj_Projects *Projects,