Version 22.7: Sep 17, 2022 Link to calls for exams in program.

This commit is contained in:
acanas 2022-09-17 18:08:52 +02:00
parent 4bc73f6552
commit e5d9888810
11 changed files with 280 additions and 172 deletions

View File

@ -3988,7 +3988,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.LOG_R_PINK {color:#660000; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
.LOG_R_DARK {color:#ff8080; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
/***************************** Exam announcement *****************************/
/****************************** Calls for exams ******************************/
/* Bottom space is used for signatures */
.CALL_FOR_EXAM_VISIBLE
{
@ -4003,6 +4003,11 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
padding:25px 25px 125px 25px;
opacity:0.3;
}
.CALL_FOR_EXAM_TIT
{
font-weight:bold;
text-transform:uppercase;
}
/*********************** Media (image/video) uploading ***********************/
.MED_UPLOADER

View File

@ -683,6 +683,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActRemCfe ] = { 187,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_RemoveCallForExam1 ,Cfe_RemoveCallForExam2 ,NULL},
[ActHidCfe ] = {1620,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_HideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
[ActUnhCfe ] = {1621,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_UnhideCallForExam ,Cfe_ListCallsForExamsEdit ,NULL},
[ActReqLnkCfe ] = {1934,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_GetLinkToFile ,NULL},
[ActEdiOneTstQst ] = { 105,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Qst_ShowFormEditOneQst ,NULL},
[ActReqImpTstQst ] = {1007,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,QstImp_ShowFormImpQstsFromXML ,NULL},
@ -3777,6 +3778,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqLnkAdmDocCrs, // #1931
ActSeeCliPrgRsc, // #1932
ActChgLnkPrgRsc, // #1933
ActReqLnkCfe, // #1934
};
/*****************************************************************************/

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
#define Act_MAX_ACTION_COD 1933
#define Act_MAX_ACTION_COD 1934
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -642,156 +642,157 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRemCfe (ActChgCrsTT1stDay + 105)
#define ActHidCfe (ActChgCrsTT1stDay + 106)
#define ActUnhCfe (ActChgCrsTT1stDay + 107)
#define ActReqLnkCfe (ActChgCrsTT1stDay + 108)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 108)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 109)
#define ActImpTstQst (ActChgCrsTT1stDay + 110)
#define ActLstTstQst (ActChgCrsTT1stDay + 111)
#define ActRcvTstQst (ActChgCrsTT1stDay + 112)
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 113)
#define ActRemSevTstQst (ActChgCrsTT1stDay + 114)
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 115)
#define ActRemOneTstQst (ActChgCrsTT1stDay + 116)
#define ActChgShfTstQst (ActChgCrsTT1stDay + 117)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 109)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 110)
#define ActImpTstQst (ActChgCrsTT1stDay + 111)
#define ActLstTstQst (ActChgCrsTT1stDay + 112)
#define ActRcvTstQst (ActChgCrsTT1stDay + 113)
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 114)
#define ActRemSevTstQst (ActChgCrsTT1stDay + 115)
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 116)
#define ActRemOneTstQst (ActChgCrsTT1stDay + 117)
#define ActChgShfTstQst (ActChgCrsTT1stDay + 118)
#define ActEdiTag (ActChgCrsTT1stDay + 118)
#define ActEnaTag (ActChgCrsTT1stDay + 119)
#define ActDisTag (ActChgCrsTT1stDay + 120)
#define ActRenTag (ActChgCrsTT1stDay + 121)
#define ActEdiTag (ActChgCrsTT1stDay + 119)
#define ActEnaTag (ActChgCrsTT1stDay + 120)
#define ActDisTag (ActChgCrsTT1stDay + 121)
#define ActRenTag (ActChgCrsTT1stDay + 122)
#define ActSeeTst (ActChgCrsTT1stDay + 122)
#define ActReqAssTst (ActChgCrsTT1stDay + 123)
#define ActAssTst (ActChgCrsTT1stDay + 124)
#define ActCfgTst (ActChgCrsTT1stDay + 125)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 126)
#define ActSeeTst (ActChgCrsTT1stDay + 123)
#define ActReqAssTst (ActChgCrsTT1stDay + 124)
#define ActAssTst (ActChgCrsTT1stDay + 125)
#define ActCfgTst (ActChgCrsTT1stDay + 126)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 127)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 127)
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 128)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 129)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 130)
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 131)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 132)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 128)
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 129)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 130)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 131)
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 132)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 133)
#define ActSeeExa (ActChgCrsTT1stDay + 133)
#define ActSeeExa (ActChgCrsTT1stDay + 134)
#define ActFrmNewExa (ActChgCrsTT1stDay + 134)
#define ActEdiOneExa (ActChgCrsTT1stDay + 135)
#define ActNewExa (ActChgCrsTT1stDay + 136)
#define ActChgExa (ActChgCrsTT1stDay + 137)
#define ActReqRemExa (ActChgCrsTT1stDay + 138)
#define ActRemExa (ActChgCrsTT1stDay + 139)
#define ActHidExa (ActChgCrsTT1stDay + 140)
#define ActUnhExa (ActChgCrsTT1stDay + 141)
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 142)
#define ActNewExaSet (ActChgCrsTT1stDay + 143)
#define ActReqRemExaSet (ActChgCrsTT1stDay + 144)
#define ActRemExaSet (ActChgCrsTT1stDay + 145)
#define ActUp_ExaSet (ActChgCrsTT1stDay + 146)
#define ActDwnExaSet (ActChgCrsTT1stDay + 147)
#define ActChgTitExaSet (ActChgCrsTT1stDay + 148)
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 149)
#define ActFrmNewExa (ActChgCrsTT1stDay + 135)
#define ActEdiOneExa (ActChgCrsTT1stDay + 136)
#define ActNewExa (ActChgCrsTT1stDay + 137)
#define ActChgExa (ActChgCrsTT1stDay + 138)
#define ActReqRemExa (ActChgCrsTT1stDay + 139)
#define ActRemExa (ActChgCrsTT1stDay + 140)
#define ActHidExa (ActChgCrsTT1stDay + 141)
#define ActUnhExa (ActChgCrsTT1stDay + 142)
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 143)
#define ActNewExaSet (ActChgCrsTT1stDay + 144)
#define ActReqRemExaSet (ActChgCrsTT1stDay + 145)
#define ActRemExaSet (ActChgCrsTT1stDay + 146)
#define ActUp_ExaSet (ActChgCrsTT1stDay + 147)
#define ActDwnExaSet (ActChgCrsTT1stDay + 148)
#define ActChgTitExaSet (ActChgCrsTT1stDay + 149)
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 150)
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 150)
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 151)
#define ActAddQstToExa (ActChgCrsTT1stDay + 152)
#define ActReqRemSetQst (ActChgCrsTT1stDay + 153)
#define ActRemExaQst (ActChgCrsTT1stDay + 154)
#define ActValSetQst (ActChgCrsTT1stDay + 155)
#define ActInvSetQst (ActChgCrsTT1stDay + 156)
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 151)
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 152)
#define ActAddQstToExa (ActChgCrsTT1stDay + 153)
#define ActReqRemSetQst (ActChgCrsTT1stDay + 154)
#define ActRemExaQst (ActChgCrsTT1stDay + 155)
#define ActValSetQst (ActChgCrsTT1stDay + 156)
#define ActInvSetQst (ActChgCrsTT1stDay + 157)
#define ActReqNewExaSes (ActChgCrsTT1stDay + 157)
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 158)
#define ActNewExaSes (ActChgCrsTT1stDay + 159)
#define ActChgExaSes (ActChgCrsTT1stDay + 160)
#define ActReqRemExaSes (ActChgCrsTT1stDay + 161)
#define ActRemExaSes (ActChgCrsTT1stDay + 162)
#define ActHidExaSes (ActChgCrsTT1stDay + 163)
#define ActUnhExaSes (ActChgCrsTT1stDay + 164)
#define ActReqNewExaSes (ActChgCrsTT1stDay + 158)
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 159)
#define ActNewExaSes (ActChgCrsTT1stDay + 160)
#define ActChgExaSes (ActChgCrsTT1stDay + 161)
#define ActReqRemExaSes (ActChgCrsTT1stDay + 162)
#define ActRemExaSes (ActChgCrsTT1stDay + 163)
#define ActHidExaSes (ActChgCrsTT1stDay + 164)
#define ActUnhExaSes (ActChgCrsTT1stDay + 165)
#define ActSeeExaPrn (ActChgCrsTT1stDay + 165)
#define ActAnsExaPrn (ActChgCrsTT1stDay + 166)
#define ActEndExaPrn (ActChgCrsTT1stDay + 167)
#define ActSeeExaPrn (ActChgCrsTT1stDay + 166)
#define ActAnsExaPrn (ActChgCrsTT1stDay + 167)
#define ActEndExaPrn (ActChgCrsTT1stDay + 168)
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 168)
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 169)
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 170)
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 171)
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 172)
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 173)
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 174)
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 175)
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 176)
#define ActChgVisExaRes (ActChgCrsTT1stDay + 177)
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 169)
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 170)
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 171)
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 172)
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 173)
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 174)
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 175)
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 176)
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 177)
#define ActChgVisExaRes (ActChgCrsTT1stDay + 178)
#define ActSeeGam (ActChgCrsTT1stDay + 178)
#define ActReqRemMch (ActChgCrsTT1stDay + 179)
#define ActRemMch (ActChgCrsTT1stDay + 180)
#define ActEdiMch (ActChgCrsTT1stDay + 181)
#define ActChgMch (ActChgCrsTT1stDay + 182)
#define ActReqNewMch (ActChgCrsTT1stDay + 183)
#define ActNewMch (ActChgCrsTT1stDay + 184)
#define ActResMch (ActChgCrsTT1stDay + 185)
#define ActBckMch (ActChgCrsTT1stDay + 186)
#define ActPlyPauMch (ActChgCrsTT1stDay + 187)
#define ActFwdMch (ActChgCrsTT1stDay + 188)
#define ActChgNumColMch (ActChgCrsTT1stDay + 189)
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 190)
#define ActMchCntDwn (ActChgCrsTT1stDay + 191)
#define ActRefMchTch (ActChgCrsTT1stDay + 192)
#define ActSeeGam (ActChgCrsTT1stDay + 179)
#define ActReqRemMch (ActChgCrsTT1stDay + 180)
#define ActRemMch (ActChgCrsTT1stDay + 181)
#define ActEdiMch (ActChgCrsTT1stDay + 182)
#define ActChgMch (ActChgCrsTT1stDay + 183)
#define ActReqNewMch (ActChgCrsTT1stDay + 184)
#define ActNewMch (ActChgCrsTT1stDay + 185)
#define ActResMch (ActChgCrsTT1stDay + 186)
#define ActBckMch (ActChgCrsTT1stDay + 187)
#define ActPlyPauMch (ActChgCrsTT1stDay + 188)
#define ActFwdMch (ActChgCrsTT1stDay + 189)
#define ActChgNumColMch (ActChgCrsTT1stDay + 190)
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 191)
#define ActMchCntDwn (ActChgCrsTT1stDay + 192)
#define ActRefMchTch (ActChgCrsTT1stDay + 193)
#define ActJoiMch (ActChgCrsTT1stDay + 193)
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 194)
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 195)
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 196)
#define ActRefMchStd (ActChgCrsTT1stDay + 197)
#define ActJoiMch (ActChgCrsTT1stDay + 194)
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 195)
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 196)
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 197)
#define ActRefMchStd (ActChgCrsTT1stDay + 198)
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 198)
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 199)
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 200)
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 201)
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 199)
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 200)
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 201)
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 202)
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 202)
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 203)
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 204)
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 205)
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 206)
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 203)
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 204)
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 205)
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 206)
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 207)
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 207)
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 208)
#define ActLstOneGam (ActChgCrsTT1stDay + 208)
#define ActLstOneGam (ActChgCrsTT1stDay + 209)
#define ActFrmNewGam (ActChgCrsTT1stDay + 209)
#define ActEdiOneGam (ActChgCrsTT1stDay + 210)
#define ActNewGam (ActChgCrsTT1stDay + 211)
#define ActChgGam (ActChgCrsTT1stDay + 212)
#define ActReqRemGam (ActChgCrsTT1stDay + 213)
#define ActRemGam (ActChgCrsTT1stDay + 214)
#define ActHidGam (ActChgCrsTT1stDay + 215)
#define ActUnhGam (ActChgCrsTT1stDay + 216)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 217)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 218)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 219)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 220)
#define ActRemGamQst (ActChgCrsTT1stDay + 221)
#define ActUp_GamQst (ActChgCrsTT1stDay + 222)
#define ActDwnGamQst (ActChgCrsTT1stDay + 223)
#define ActFrmNewGam (ActChgCrsTT1stDay + 210)
#define ActEdiOneGam (ActChgCrsTT1stDay + 211)
#define ActNewGam (ActChgCrsTT1stDay + 212)
#define ActChgGam (ActChgCrsTT1stDay + 213)
#define ActReqRemGam (ActChgCrsTT1stDay + 214)
#define ActRemGam (ActChgCrsTT1stDay + 215)
#define ActHidGam (ActChgCrsTT1stDay + 216)
#define ActUnhGam (ActChgCrsTT1stDay + 217)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 218)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 219)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 220)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 221)
#define ActRemGamQst (ActChgCrsTT1stDay + 222)
#define ActUp_GamQst (ActChgCrsTT1stDay + 223)
#define ActDwnGamQst (ActChgCrsTT1stDay + 224)
#define ActSeeSvy (ActChgCrsTT1stDay + 224)
#define ActAnsSvy (ActChgCrsTT1stDay + 225)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 226)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 227)
#define ActNewSvy (ActChgCrsTT1stDay + 228)
#define ActChgSvy (ActChgCrsTT1stDay + 229)
#define ActReqRemSvy (ActChgCrsTT1stDay + 230)
#define ActRemSvy (ActChgCrsTT1stDay + 231)
#define ActReqRstSvy (ActChgCrsTT1stDay + 232)
#define ActRstSvy (ActChgCrsTT1stDay + 233)
#define ActHidSvy (ActChgCrsTT1stDay + 234)
#define ActUnhSvy (ActChgCrsTT1stDay + 235)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 236)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 237)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 238)
#define ActRemSvyQst (ActChgCrsTT1stDay + 239)
#define ActSeeSvy (ActChgCrsTT1stDay + 225)
#define ActAnsSvy (ActChgCrsTT1stDay + 226)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 227)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 228)
#define ActNewSvy (ActChgCrsTT1stDay + 229)
#define ActChgSvy (ActChgCrsTT1stDay + 230)
#define ActReqRemSvy (ActChgCrsTT1stDay + 231)
#define ActRemSvy (ActChgCrsTT1stDay + 232)
#define ActReqRstSvy (ActChgCrsTT1stDay + 233)
#define ActRstSvy (ActChgCrsTT1stDay + 234)
#define ActHidSvy (ActChgCrsTT1stDay + 235)
#define ActUnhSvy (ActChgCrsTT1stDay + 236)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 237)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 238)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 239)
#define ActRemSvyQst (ActChgCrsTT1stDay + 240)
/*****************************************************************************/
/******************************** Files tab **********************************/

View File

@ -5319,7 +5319,7 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic)
}
/*****************************************************************************/
/******************** Get summary and content of a file **********************/
/******************** Write file name in course program **********************/
/*****************************************************************************/
void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToDownload)
@ -8348,7 +8348,7 @@ static void Brw_PutParamsToGetLinkToFile (void *FileMetadata)
}
/*****************************************************************************/
/*********************** Put icon to get link to file ************************/
/****************************** Get link to file *****************************/
/*****************************************************************************/
void Brw_GetLinkToFile (void)

View File

@ -882,7 +882,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
extern const char *Hlp_ASSESSMENT_Calls_for_exam_new_call;
extern const char *Hlp_ASSESSMENT_Announcements_edit_announcement;
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
extern const char *Txt_CALL_FOR_EXAM;
extern const char *Txt_Call_for_exam;
extern const char *Txt_CALL_FOR_EXAM_Course;
extern const char *Txt_CALL_FOR_EXAM_Year_or_semester;
extern const char *Txt_CALL_FOR_EXAM_Session;
@ -1005,13 +1005,11 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
/***** Title *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"CM DAT_STRONG_%s\"",
HTM_TD_Begin ("colspan=\"2\" class=\"CM CALL_FOR_EXAM_TIT DAT_STRONG_%s\"",
The_GetSuffix ());
HTM_NBSP ();
HTM_BR ();
HTM_STRONG_Begin ();
HTM_Txt (Txt_CALL_FOR_EXAM);
HTM_STRONG_End ();
HTM_TxtF (Txt_Call_for_exam);
HTM_BR ();
HTM_NBSP ();
HTM_TD_End ();
@ -1528,6 +1526,12 @@ static void Cfe_PutIconsCallForExam (void *CallsForExams)
Ico_PutContextualIconToPrint (ActPrnCfe,
Cfe_PutParamExaCodToEdit,
&((struct Cfe_CallsForExams *) CallsForExams)->ExaCod);
/***** Link to get resource link *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // Only if I am superuser // TODO: Include teachers
Ico_PutContextualIconToGetLink (ActReqLnkCfe,NULL,
Cfe_PutParamExaCodToEdit,
&((struct Cfe_CallsForExams *) CallsForExams)->ExaCod);
}
}
@ -1678,3 +1682,65 @@ static void Cfe_GetNotifContentCallForExam (const struct Cfe_CallsForExams *Call
Txt_CALL_FOR_EXAM_Other_information,CallsForExams->CallForExam.OtherInfo) < 0)
Err_NotEnoughMemoryExit ();
}
/*****************************************************************************/
/******************** Write file name in course program **********************/
/*****************************************************************************/
void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo)
{
extern const char *Txt_Call_for_exam;
/***** Begin form to download file *****/
if (PutFormToGo)
{
Frm_BeginForm (ActSeeOneCfe);
Cfe_PutHiddenParamExaCod (ExaCod);
HTM_BUTTON_Submit_Begin (Txt_Call_for_exam,
"class=\"LM BT_LINK PRG_RSC_%s\"",
The_GetSuffix ());
}
/***** Write filename *****/
HTM_Txt ("Convocatoria de examen");
/***** End form to download file *****/
if (PutFormToGo)
{
HTM_BUTTON_End ();
Frm_EndForm ();
}
}
/*****************************************************************************/
/*********************** Get link to call for exam ************************/
/*****************************************************************************/
void Cfe_GetLinkToFile (void)
{
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
// struct FileMetadata FileMetadata;
// bool Found;
/***** Get parameters related to file browser *****/
// Brw_GetParAndInitFileBrowser ();
/***** Get file metadata *****/
// FileMetadata.FilCod = Brw_GetParamFilCod ();
// Brw_GetFileMetadataByCod (&FileMetadata);
// Found = Brw_GetFileTypeSizeAndDate (&FileMetadata);
// if (Found)
// {
/***** Copy link to file into resource clipboard *****/
// Prg_DB_CopyToClipboard (PrgRsc_DOCUMENT,FileMetadata.FilCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
"Convocatoria");
// }
/***** Show again the file browser *****/
// Brw_ShowAgainFileBrowserOrWorks ();
}

View File

@ -126,4 +126,8 @@ void Cfe_GetSummaryAndContentCallForExam (char SummaryStr[Ntf_MAX_BYTES_SUMMARY
char **ContentStr,
long ExaCod,bool GetContent);
void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo);
void Cfe_GetLinkToFile (void);
#endif

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.
*/
#define Log_PLATFORM_VERSION "SWAD 22.6 (2022-09-17)"
#define CSS_FILE "swad22.5.css"
#define Log_PLATFORM_VERSION "SWAD 22.7 (2022-09-17)"
#define CSS_FILE "swad22.7.css"
#define JS_FILE "swad21.100.js"
/*
Version 22.7: Sep 17, 2022 Link to calls for exams in program. (? lines)
Version 22.6: Sep 17, 2022 Changes in edition of program items. (330065 lines)
Version 22.5: Sep 16, 2022 Link to download document in program. (330018 lines)
Version 22.4.2: Sep 16, 2022 Changes in edition of program items. (329982 lines)

View File

@ -226,7 +226,7 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType,
[Prg_END_EDIT_ITEM ] = Prg_PutIconsEditItems,
[Prg_RECEIVE_ITEM ] = Prg_PutIconsEditItems,
[Prg_EDIT_RESOURCES ] = Prg_PutIconsEditItems,
[Prg_SHOW_CLIPBOARD ] = Prg_PutIconsEditItems,
[Prg_EDIT_RESOURCE_LINK ] = Prg_PutIconsEditItems,
[Prg_CHANGE_RESOURCE_LINK] = Prg_PutIconsEditItems,
[Prg_END_EDIT_RES ] = Prg_PutIconsEditItems,
};
@ -247,7 +247,7 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType,
break;
case Prg_RECEIVE_ITEM:
// case Prg_EDIT_RESOURCES: // Uncomment to higlight item
// case Prg_SHOW_CLIPBOARD: // Uncomment to higlight item
// case Prg_EDIT_RESOURCE_LINK: // Uncomment to higlight item
// case Prg_CHANGE_RESOURCE_LINK: // Uncomment to higlight item
// case Prg_END_EDIT_RES: // Uncomment to higlight item
if (SelectedItmCod > 0)
@ -305,7 +305,7 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType,
{
case Prg_FORM_EDIT_ITEM:
case Prg_EDIT_RESOURCES:
case Prg_SHOW_CLIPBOARD:
case Prg_EDIT_RESOURCE_LINK:
case Prg_CHANGE_RESOURCE_LINK:
case Prg_END_EDIT_RES:
if (Item.Hierarchy.ItmCod != SelectedItmCod)
@ -460,7 +460,7 @@ static void Prg_WriteRowItem (Prg_ListingType_t ListingType,
[Prg_END_EDIT_ITEM ] = true,
[Prg_RECEIVE_ITEM ] = true,
[Prg_EDIT_RESOURCES ] = true,
[Prg_SHOW_CLIPBOARD ] = true,
[Prg_EDIT_RESOURCE_LINK ] = true,
[Prg_CHANGE_RESOURCE_LINK] = true,
[Prg_END_EDIT_RES ] = true,
};
@ -1223,8 +1223,8 @@ void Prg_ResetItem (struct Prg_Item *Item)
Item->Resource.Hierarchy.RscCod = -1L;
Item->Resource.Hierarchy.RscInd = 0;
Item->Resource.Hierarchy.Hidden = false;
Item->Resource.Type = PrgRsc_NONE;
Item->Resource.Cod = -1L;
Item->Resource.Link.Type = PrgRsc_NONE;
Item->Resource.Link.Cod = -1L;
Item->Resource.Title[0] = '\0';
Item->Resource.Title[0] = '\0';
}

View File

@ -27,6 +27,8 @@
#include <string.h> // For string functions
#include "swad_browser.h"
#include "swad_call_for_exam.h"
#include "swad_error.h"
#include "swad_form.h"
#include "swad_global.h"
@ -1012,7 +1014,11 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutForm)
HTM_Txt ("sin enlace"); // TODO: Need translation!!!!!
break;
case PrgRsc_ASSIGNMENT:
Ale_ShowAlert (Ale_ERROR,"Not implemented!");
break;
case PrgRsc_CALL_FOR_EXAM:
Cfe_WriteCallForExamInCrsProgram (Link->Cod,PutForm);
break;
case PrgRsc_EXAM:
case PrgRsc_GAME:
case PrgRsc_SURVEY:

View File

@ -3746,29 +3746,6 @@ const char *Txt_Calendar =
"Takvim";
#endif
const char *Txt_CALL_FOR_EXAM =
#if L==1 // ca
"CONVOCAT&Ograve;RIA D'EXAMEN";
#elif L==2 // de
"PR&Uuml;FUNGSAUFRUF";
#elif L==3 // en
"CALL FOR EXAM";
#elif L==4 // es
"CONVOCATORIA DE EXAMEN";
#elif L==5 // fr
"CONVOCATION &Agrave; UN EXAMEN";
#elif L==6 // gn
"CONVOCATORIA DE EXAMEN"; // Okoteve traducción
#elif L==7 // it
"APPELLO D'ESAME";
#elif L==8 // pl
"OGLOSZENIE egzaminu";
#elif L==9 // pt
"CHAMADA DE EXAME";
#elif L==10 // tr
"CALL FOR EXAM"; // Çeviri lazim!
#endif
const char *Txt_CALL_FOR_EXAM_Approximate_duration =
#if L==1 // ca
"Durada aproximada";
@ -4068,6 +4045,29 @@ const char *Txt_CALL_FOR_EXAM_Year_or_semester = // 1, 2, 3..., not 1984, 2038..
"Year or semester"; // Çeviri lazim!
#endif
const char *Txt_Call_for_exam =
#if L==1 // ca
"Convocat&ograve;ria d'examen";
#elif L==2 // de
"Aufrufe für Pr&uuml;fung";
#elif L==3 // en
"Call for exam";
#elif L==4 // es
"Convocatoria de examen";
#elif L==5 // fr
"Convocation &agrave; un examen";
#elif L==6 // gn
"Convocatoria de examen"; // Okoteve traducción
#elif L==7 // it
"Appello d'esame";
#elif L==8 // pl
"Ogloszenie egzamin";
#elif L==9 // pt
"Chamada para exame";
#elif L==10 // tr
"Call for exam"; // Çeviri lazim!
#endif
const char *Txt_Call_for_exam_removed =
#if L==1 // ca
"Convocat&ograve;ria d'examen eliminada.";

View File

@ -10985,6 +10985,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Unhide exam announcement" // Precisa de tradução
#elif L==10 // tr
"Unhide exam announcement" // Çeviri lazim!
#endif
,
[ActReqLnkCfe] =
#if L==1 // ca
"Copy link to exam announcement" // Necessita traducció
#elif L==2 // de
"Copy link to exam announcement" // Need Übersetzung
#elif L==3 // en
"Copy link to exam announcement"
#elif L==4 // es
"Copiar enlace a convocatoria de examen"
#elif L==5 // fr
"Copy link to exam announcement" // Besoin de traduction
#elif L==6 // gn
"Copiar enlace a convocatoria de examen" // Okoteve traducción
#elif L==7 // it
"Copy link to exam announcement" // Bisogno di traduzione
#elif L==8 // pl
"Copy link to exam announcement" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Copy link to exam announcement" // Precisa de tradução
#elif L==10 // tr
"Copy link to exam announcement" // Çeviri lazim!
#endif
,
[ActEdiOneTstQst] =