mirror of https://github.com/acanas/swad-core.git
Version 20.51: Mar 18, 2021 Call for exam module renamed.
This commit is contained in:
parent
9ea76aeebd
commit
789b3697f5
8
Makefile
8
Makefile
|
@ -29,13 +29,13 @@
|
|||
OBJS = swad_account.o swad_action.o swad_agenda.o swad_alert.o \
|
||||
swad_announcement.o swad_API.o swad_assignment.o swad_attendance.o \
|
||||
swad_banner.o swad_box.o swad_building.o swad_button.o \
|
||||
swad_calendar.o swad_center.o swad_center_config.o swad_chat.o \
|
||||
swad_config.o swad_connected.o swad_cookie.o swad_country.o \
|
||||
swad_country_config.o swad_course.o \
|
||||
swad_calendar.o swad_call_for_exam.o swad_center.o \
|
||||
swad_center_config.o swad_chat.o swad_config.o swad_connected.o \
|
||||
swad_cookie.o swad_country.o swad_country_config.o swad_course.o \
|
||||
swad_course_config.o swad_cryptography.o \
|
||||
swad_database.o swad_date.o swad_degree.o swad_degree_config.o \
|
||||
swad_degree_type.o swad_department.o swad_duplicate.o \
|
||||
swad_enrolment.o swad_exam.o swad_exam_announcement.o swad_exam_log.o \
|
||||
swad_enrolment.o swad_exam.o swad_exam_log.o \
|
||||
swad_exam_print.o swad_exam_result.o swad_exam_session.o \
|
||||
swad_exam_set.o \
|
||||
swad_figure.o swad_figure_cache.o swad_file.o swad_file_browser.o \
|
||||
|
|
|
@ -3272,13 +3272,13 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
|
||||
/***************************** Exam announcement *****************************/
|
||||
/* Bottom space is used for signatures */
|
||||
.EXA_ANN_VISIBLE
|
||||
.CALL_FOR_EXAM_VISIBLE
|
||||
{
|
||||
box-sizing:border-box;
|
||||
width:100%;
|
||||
padding:25px 25px 125px 25px;
|
||||
}
|
||||
.EXA_ANN_HIDDEN
|
||||
.CALL_FOR_EXAM_HIDDEN
|
||||
{
|
||||
box-sizing:border-box;
|
||||
width:100%;
|
||||
|
|
|
@ -10645,7 +10645,7 @@ UPDATE usr_data SET EmailNtfEvents=(((EmailNtfEvents & ~0x7F) << 1) | (EmailNtfE
|
|||
|
||||
/* Assessment tab */
|
||||
Ntf_EVENT_ASSIGNMENT = 3, // old 3
|
||||
Ntf_EVENT_EXAM_ANNOUNCEMENT = 4, // old 4
|
||||
Ntf_EVENT_CALL_FOR_EXAM = 4, // old 4
|
||||
Ntf_EVENT_MARKS_FILE = 5, // old 5
|
||||
|
||||
/* Enrollment tab */
|
||||
|
|
|
@ -160,7 +160,7 @@ void QR_LinkTo (unsigned Size,const char *ParamName,long Cod)
|
|||
|
||||
void QR_ExamAnnnouncement (void)
|
||||
{
|
||||
extern const char *Txt_Link_to_announcement_of_exam;
|
||||
extern const char *Txt_Link_to_call_for_exam;
|
||||
char *URL;
|
||||
|
||||
/***** Show QR code with direct link to the exam announcement *****/
|
||||
|
@ -171,7 +171,7 @@ void QR_ExamAnnnouncement (void)
|
|||
Cfg_URL_SWAD_CGI,Gbl.Hierarchy.Crs.CrsCod,
|
||||
Act_GetActCod (ActSeeAllExaAnn)) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_IMG (URL,NULL,Txt_Link_to_announcement_of_exam,
|
||||
HTM_IMG (URL,NULL,Txt_Link_to_call_for_exam,
|
||||
"style=\"width:250px;height:250px;\"");
|
||||
free (URL);
|
||||
|
||||
|
|
|
@ -29,9 +29,9 @@
|
|||
#include <stddef.h> // For NULL
|
||||
#include <string.h>
|
||||
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_changelog.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_notice.h"
|
||||
#include "swad_RSS.h"
|
||||
|
@ -260,7 +260,7 @@ static void RSS_WriteExamAnnouncements (FILE *FileRSS,struct Crs_Course *Crs)
|
|||
" WHERE CrsCod=%ld AND Status=%u AND ExamDate>=NOW()"
|
||||
" ORDER BY T",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
(unsigned) ExaAnn_VISIBLE_EXAM_ANNOUNCEMENT);
|
||||
(unsigned) Cfe_VISIBLE_CALL_FOR_EXAM);
|
||||
|
||||
/***** Write items with notices *****/
|
||||
if (NumExamAnnouncements)
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "swad_banner.h"
|
||||
#include "swad_building.h"
|
||||
#include "swad_calendar.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_center_config.h"
|
||||
#include "swad_config.h"
|
||||
#include "swad_cookie.h"
|
||||
|
@ -47,7 +48,6 @@
|
|||
#include "swad_department.h"
|
||||
#include "swad_duplicate.h"
|
||||
#include "swad_exam.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_exam_print.h"
|
||||
#include "swad_exam_result.h"
|
||||
#include "swad_exam_session.h"
|
||||
|
@ -554,7 +554,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActSeeAss ] = { 15, 0,TabAss,ActSeeAss ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"info" },
|
||||
[ActSeeAsg ] = { 801, 1,TabAss,ActSeeAsg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_SeeAssignments ,"edit" },
|
||||
[ActSeePrj ] = {1674, 2,TabAss,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_SeeProjects ,"file-invoice" },
|
||||
[ActSeeAllExaAnn ] = { 85, 3,TabAss,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaAnn_ListExamAnnsSee ,"bullhorn" },
|
||||
[ActSeeAllExaAnn ] = { 85, 3,TabAss,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsSee ,"bullhorn" },
|
||||
[ActEdiTstQst ] = { 104, 4,TabAss,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,Tst_RequestEditTests ,"tasks" },
|
||||
[ActReqTst ] = { 103, 5,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RequestTest ,"check" },
|
||||
[ActSeeAllExa ] = {1848, 6,TabAss,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeAllExams ,"file-signature" },
|
||||
|
@ -656,15 +656,15 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActChgDatAssPrj ] = {1733,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL},
|
||||
[ActDowAssPrj ] = {1734,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
||||
|
||||
[ActSeeOneExaAnn ] = {1572,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaAnn_ListExamAnnsCod ,NULL},
|
||||
[ActSeeDatExaAnn ] = {1571,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaAnn_ListExamAnnsDay ,NULL},
|
||||
[ActEdiExaAnn ] = { 91,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaAnn_PutFrmEditAExamAnn ,NULL},
|
||||
[ActRcvExaAnn ] = { 110,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,ExaAnn_ReceiveExamAnn1 ,ExaAnn_ReceiveExamAnn2 ,NULL},
|
||||
[ActPrnExaAnn ] = { 179,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,ExaAnn_PrintExamAnn ,NULL},
|
||||
[ActReqRemExaAnn ] = {1619,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaAnn_ReqRemoveExamAnn ,NULL},
|
||||
[ActRemExaAnn ] = { 187,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,ExaAnn_RemoveExamAnn1 ,ExaAnn_RemoveExamAnn2 ,NULL},
|
||||
[ActHidExaAnn ] = {1620,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,ExaAnn_HideExamAnn ,ExaAnn_ListExamAnnsEdit ,NULL},
|
||||
[ActUnhExaAnn ] = {1621,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,ExaAnn_UnhideExamAnn ,ExaAnn_ListExamAnnsEdit ,NULL},
|
||||
[ActSeeOneCfe ] = {1572,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsCod ,NULL},
|
||||
[ActSeeDatCfe ] = {1571,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ListCallsForExamsDay ,NULL},
|
||||
[ActEdiCfe ] = { 91,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_PutFrmEditACallForExam ,NULL},
|
||||
[ActRcvCfe ] = { 110,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cfe_ReceiveCallForExam1 ,Cfe_ReceiveCallForExam2 ,NULL},
|
||||
[ActPrnCfe ] = { 179,-1,TabUnk,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Cfe_PrintCallForExam ,NULL},
|
||||
[ActReqRemCfe ] = {1619,-1,TabUnk,ActSeeAllExaAnn ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cfe_ReqRemoveCallForExam ,NULL},
|
||||
[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},
|
||||
|
||||
[ActEdiOneTstQst ] = { 105,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowFormEditOneQst ,NULL},
|
||||
[ActReqImpTstQst ] = {1007,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TsI_ShowFormImportQstsFromXML ,NULL},
|
||||
|
@ -1913,7 +1913,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActReqRemAllStdCrs, // #88
|
||||
ActSeeRecSevStd, // #89
|
||||
ActDelSntMsg, // #90
|
||||
ActEdiExaAnn, // #91
|
||||
ActEdiCfe, // #91
|
||||
-1, // #92 (obsolete action)
|
||||
-1, // #93 (obsolete action)
|
||||
-1, // #94 (obsolete action)
|
||||
|
@ -1932,7 +1932,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActReqRemGrp, // #107
|
||||
ActReqEdiGrp, // #108
|
||||
ActEdiFAQ, // #109
|
||||
ActRcvExaAnn, // #110
|
||||
ActRcvCfe, // #110
|
||||
ActPrnRecSevStd, // #111
|
||||
-1, // #112 (obsolete action)
|
||||
-1, // #113 (obsolete action)
|
||||
|
@ -2001,7 +2001,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
-1, // #176 (obsolete action)
|
||||
-1, // #177 (obsolete action)
|
||||
-1, // #178 (obsolete action)
|
||||
ActPrnExaAnn, // #179
|
||||
ActPrnCfe, // #179
|
||||
-1, // #180 (obsolete action)
|
||||
ActInsIteSylPra, // #181
|
||||
ActRcvURLCrsLnk, // #182
|
||||
|
@ -2009,7 +2009,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActRcvPagAss, // #184
|
||||
ActRcvPagBib, // #185
|
||||
-1, // #186 (obsolete action)
|
||||
ActRemExaAnn, // #187
|
||||
ActRemCfe, // #187
|
||||
-1, // #188 (obsolete action)
|
||||
-1, // #189 (obsolete action)
|
||||
-1, // #190 (obsolete action)
|
||||
|
@ -3393,8 +3393,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActCnfID_Oth, // #1568
|
||||
ActCnfID_Std, // #1569
|
||||
ActCnfID_Tch, // #1570
|
||||
ActSeeDatExaAnn, // #1571
|
||||
ActSeeOneExaAnn, // #1572
|
||||
ActSeeDatCfe, // #1571
|
||||
ActSeeOneCfe, // #1572
|
||||
ActChgCrsYeaCfg, // #1573
|
||||
ActReqRemOthPho, // #1574
|
||||
ActReqRemStdPho, // #1575
|
||||
|
@ -3441,9 +3441,9 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActLogInUsrAgdLan, // #1616
|
||||
-1, // #1617 (obsolete action)
|
||||
ActPrnAgdQR, // #1618
|
||||
ActReqRemExaAnn, // #1619
|
||||
ActHidExaAnn, // #1620
|
||||
ActUnhExaAnn, // #1621
|
||||
ActReqRemCfe, // #1619
|
||||
ActHidCfe, // #1620
|
||||
ActUnhCfe, // #1621
|
||||
ActSeeCal, // #1622
|
||||
ActPrnCal, // #1623
|
||||
ActChgCal1stDay, // #1624
|
||||
|
|
|
@ -618,15 +618,15 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 97)
|
||||
#define ActDowAssPrj (ActChgCrsTT1stDay + 98)
|
||||
|
||||
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 99)
|
||||
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 100)
|
||||
#define ActEdiExaAnn (ActChgCrsTT1stDay + 101)
|
||||
#define ActRcvExaAnn (ActChgCrsTT1stDay + 102)
|
||||
#define ActPrnExaAnn (ActChgCrsTT1stDay + 103)
|
||||
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 104)
|
||||
#define ActRemExaAnn (ActChgCrsTT1stDay + 105)
|
||||
#define ActHidExaAnn (ActChgCrsTT1stDay + 106)
|
||||
#define ActUnhExaAnn (ActChgCrsTT1stDay + 107)
|
||||
#define ActSeeOneCfe (ActChgCrsTT1stDay + 99)
|
||||
#define ActSeeDatCfe (ActChgCrsTT1stDay + 100)
|
||||
#define ActEdiCfe (ActChgCrsTT1stDay + 101)
|
||||
#define ActRcvCfe (ActChgCrsTT1stDay + 102)
|
||||
#define ActPrnCfe (ActChgCrsTT1stDay + 103)
|
||||
#define ActReqRemCfe (ActChgCrsTT1stDay + 104)
|
||||
#define ActRemCfe (ActChgCrsTT1stDay + 105)
|
||||
#define ActHidCfe (ActChgCrsTT1stDay + 106)
|
||||
#define ActUnhCfe (ActChgCrsTT1stDay + 107)
|
||||
|
||||
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 108)
|
||||
#define ActReqImpTstQst (ActChgCrsTT1stDay + 109)
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
|
||||
#include "swad_box.h"
|
||||
#include "swad_calendar.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_figure.h"
|
||||
#include "swad_form.h"
|
||||
#include "swad_global.h"
|
||||
|
@ -219,7 +219,7 @@ void Cal_DrawCurrentMonth (void)
|
|||
Lan_STR_LANG_ID[Gbl.Prefs.Language]);
|
||||
Frm_SetParamsForm (ParamsStr,ActSeeCal,true);
|
||||
HTM_TxtF ("'%s',",ParamsStr);
|
||||
Frm_SetParamsForm (ParamsStr,ActSeeDatExaAnn,true);
|
||||
Frm_SetParamsForm (ParamsStr,ActSeeDatCfe,true);
|
||||
HTM_TxtF ("'%s');",ParamsStr);
|
||||
HTM_SCRIPT_End ();
|
||||
}
|
||||
|
@ -288,7 +288,7 @@ static void Cal_DrawCalendar (Act_Action_t ActionSeeCalendar,
|
|||
Lan_STR_LANG_ID[Gbl.Prefs.Language]);
|
||||
Frm_SetParamsForm (ParamsStr,ActionSeeCalendar,true);
|
||||
HTM_TxtF ("'%s',",ParamsStr);
|
||||
Frm_SetParamsForm (ParamsStr,ActSeeDatExaAnn,true);
|
||||
Frm_SetParamsForm (ParamsStr,ActSeeDatCfe,true);
|
||||
HTM_TxtF ("'%s');",ParamsStr);
|
||||
HTM_SCRIPT_End ();
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,129 @@
|
|||
// swad_call_for_exam.h: calls for exams
|
||||
|
||||
#ifndef _SWAD_CFE
|
||||
#define _SWAD_CFE
|
||||
/*
|
||||
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-2021 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#include <stdbool.h> // For boolean type
|
||||
|
||||
#include "swad_constant.h"
|
||||
#include "swad_course.h"
|
||||
#include "swad_date.h"
|
||||
#include "swad_notification.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Public types and constants ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Cfe_NUM_VIEWS 3
|
||||
typedef enum
|
||||
{
|
||||
Cfe_NORMAL_VIEW,
|
||||
Cfe_PRINT_VIEW,
|
||||
Cfe_FORM_VIEW,
|
||||
} Cfe_TypeViewCallForExam_t;
|
||||
|
||||
#define Cfe_NUM_STATUS 3
|
||||
typedef enum
|
||||
{
|
||||
Cfe_VISIBLE_CALL_FOR_EXAM = 0,
|
||||
Cfe_HIDDEN_CALL_FOR_EXAM = 1,
|
||||
Cfe_DELETED_CALL_FOR_EXAM = 2,
|
||||
} Cfe_Status_t; // Don't change these numbers because they are used in database
|
||||
#define Cfe_STATUS_DEFAULT Cfe_VISIBLE_CALL_FOR_EXAM
|
||||
|
||||
#define Cfe_MAX_CHARS_SESSION (128 - 1) // 127
|
||||
#define Cfe_MAX_BYTES_SESSION ((Cfe_MAX_CHARS_SESSION + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||
|
||||
struct Cfe_CallForExam
|
||||
{
|
||||
long CrsCod;
|
||||
Cfe_Status_t Status;
|
||||
char CrsFullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1];
|
||||
unsigned Year; // Number of year (0 (N.A.), 1, 2, 3, 4, 5, 6) in the degree
|
||||
char Session[Cfe_MAX_BYTES_SESSION + 1]; // Exam session is june, september, etc.
|
||||
struct Date CallDate;
|
||||
struct Date ExamDate;
|
||||
struct Hour StartTime;
|
||||
struct Hour Duration;
|
||||
char *Place;
|
||||
char *Mode;
|
||||
char *Structure;
|
||||
char *DocRequired;
|
||||
char *MatRequired;
|
||||
char *MatAllowed;
|
||||
char *OtherInfo;
|
||||
};
|
||||
|
||||
struct Cfe_ExamCodeAndDate
|
||||
{
|
||||
long ExaCod;
|
||||
struct Date ExamDate;
|
||||
};
|
||||
|
||||
struct Cfe_CallsForExams
|
||||
{
|
||||
unsigned NumCallsForExams; // Number of calls for exams in the list
|
||||
struct Cfe_ExamCodeAndDate *Lst; // List of calls for exams
|
||||
long NewExaCod; // New call for exam just created
|
||||
long HighlightExaCod; // Call for exam to be highlighted
|
||||
char HighlightDate[4 + 2 + 2 + 1]; // Date with calls for exams to be highlighted (in YYYYMMDD format)
|
||||
long ExaCod; // Used to put contextual icons
|
||||
const char *Anchor; // Used to put contextual icons
|
||||
struct Cfe_CallForExam CallForExam;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cfe_ResetCallsForExams (struct Cfe_CallsForExams *CallsForExams);
|
||||
|
||||
void Cfe_PutFrmEditACallForExam (void);
|
||||
void Cfe_ReceiveCallForExam1 (void);
|
||||
void Cfe_ReceiveCallForExam2 (void);
|
||||
void Cfe_PrintCallForExam (void);
|
||||
void Cfe_ReqRemoveCallForExam (void);
|
||||
void Cfe_RemoveCallForExam1 (void);
|
||||
void Cfe_RemoveCallForExam2 (void);
|
||||
void Cfe_HideCallForExam (void);
|
||||
void Cfe_UnhideCallForExam (void);
|
||||
|
||||
void Cfe_FreeListCallsForExams (struct Cfe_CallsForExams *CallsForExams);
|
||||
void Cfe_ListCallsForExamsSee (void);
|
||||
void Cfe_ListCallsForExamsEdit (void);
|
||||
|
||||
void Cfe_ListCallsForExamsCod (void);
|
||||
void Cfe_ListCallsForExamsDay (void);
|
||||
|
||||
void Cfe_CreateListCallsForExams (struct Cfe_CallsForExams *CallsForExams);
|
||||
void Cfe_PutHiddenParamExaCod (long ExaCod);
|
||||
|
||||
void Cfe_GetSummaryAndContentCallForExam (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||
char **ContentStr,
|
||||
long ExaCod,bool GetContent);
|
||||
|
||||
#endif
|
|
@ -600,12 +600,14 @@ TODO: Salvador Romero Cort
|
|||
|
||||
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.50.11 (2021-03-17)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.51 (2021-03-18)"
|
||||
#define CSS_FILE "swad20.45.css"
|
||||
#define JS_FILE "swad20.6.2.js"
|
||||
/*
|
||||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||
|
||||
Version 20.51: Mar 18, 2021 Call for exam module renamed. (307459 lines)
|
||||
Version 20.50.11: Mar 17, 2021 Departments database table renamed. (307450 lines)
|
||||
1 change necessary in database:
|
||||
RENAME TABLE departments TO dpt_departments;
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
#include <string.h> // For string functions
|
||||
|
||||
#include "swad_attendance.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_course.h"
|
||||
#include "swad_course_config.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_figure.h"
|
||||
#include "swad_figure_cache.h"
|
||||
#include "swad_form.h"
|
||||
|
@ -1948,7 +1948,7 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
|
|||
DB_QueryUPDATE ("can not remove exam announcements of a course",
|
||||
"UPDATE exam_announcements SET Status=%u"
|
||||
" WHERE CrsCod=%ld",
|
||||
(unsigned) ExaAnn_DELETED_EXAM_ANNOUNCEMENT,CrsCod);
|
||||
(unsigned) Cfe_DELETED_CALL_FOR_EXAM,CrsCod);
|
||||
|
||||
/***** Remove course cards of the course *****/
|
||||
/* Remove content of course cards */
|
||||
|
|
|
@ -1214,7 +1214,7 @@ mysql> DESCRIBE exam_announcements;
|
|||
"NumNotif INT NOT NULL DEFAULT 0,"
|
||||
"CrsFullName VARCHAR(2047) NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
||||
"Year TINYINT NOT NULL,"
|
||||
"ExamSession VARCHAR(2047) NOT NULL," // ExaAnn_MAX_BYTES_SESSION
|
||||
"ExamSession VARCHAR(2047) NOT NULL," // Cfe_MAX_BYTES_SESSION
|
||||
"CallDate DATETIME NOT NULL,"
|
||||
"ExamDate DATETIME NOT NULL,"
|
||||
"Duration TIME NOT NULL,"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,129 +0,0 @@
|
|||
// swad_exam_announcement.h: exam announcements
|
||||
|
||||
#ifndef _SWAD_EXA_ANN
|
||||
#define _SWAD_EXA_ANN
|
||||
/*
|
||||
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-2021 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#include <stdbool.h> // For boolean type
|
||||
|
||||
#include "swad_constant.h"
|
||||
#include "swad_course.h"
|
||||
#include "swad_date.h"
|
||||
#include "swad_notification.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Public types and constants ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define ExaAnn_NUM_VIEWS 3
|
||||
typedef enum
|
||||
{
|
||||
ExaAnn_NORMAL_VIEW,
|
||||
ExaAnn_PRINT_VIEW,
|
||||
ExaAnn_FORM_VIEW,
|
||||
} ExaAnn_TypeViewExamAnnouncement_t;
|
||||
|
||||
#define ExaAnn_NUM_STATUS 3
|
||||
typedef enum
|
||||
{
|
||||
ExaAnn_VISIBLE_EXAM_ANNOUNCEMENT = 0,
|
||||
ExaAnn_HIDDEN_EXAM_ANNOUNCEMENT = 1,
|
||||
ExaAnn_DELETED_EXAM_ANNOUNCEMENT = 2,
|
||||
} ExaAnn_Status_t; // Don't change these numbers because they are used in database
|
||||
#define ExaAnn_STATUS_DEFAULT ExaAnn_VISIBLE_EXAM_ANNOUNCEMENT
|
||||
|
||||
#define ExaAnn_MAX_CHARS_SESSION (128 - 1) // 127
|
||||
#define ExaAnn_MAX_BYTES_SESSION ((ExaAnn_MAX_CHARS_SESSION + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||
|
||||
struct ExaAnn_ExamAnnouncement
|
||||
{
|
||||
long CrsCod;
|
||||
ExaAnn_Status_t Status;
|
||||
char CrsFullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1];
|
||||
unsigned Year; // Number of year (0 (N.A.), 1, 2, 3, 4, 5, 6) in the degree
|
||||
char Session[ExaAnn_MAX_BYTES_SESSION + 1]; // Exam session is june, september, etc.
|
||||
struct Date CallDate;
|
||||
struct Date ExamDate;
|
||||
struct Hour StartTime;
|
||||
struct Hour Duration;
|
||||
char *Place;
|
||||
char *Mode;
|
||||
char *Structure;
|
||||
char *DocRequired;
|
||||
char *MatRequired;
|
||||
char *MatAllowed;
|
||||
char *OtherInfo;
|
||||
};
|
||||
|
||||
struct ExaAnn_ExamCodeAndDate
|
||||
{
|
||||
long ExaCod;
|
||||
struct Date ExamDate;
|
||||
};
|
||||
|
||||
struct ExaAnn_ExamAnnouncements
|
||||
{
|
||||
unsigned NumExaAnns; // Number of announcements of exam in the list
|
||||
struct ExaAnn_ExamCodeAndDate *Lst; // List of exam announcements
|
||||
long NewExaCod; // New exam announcement just created
|
||||
long HighlightExaCod; // Exam announcement to be highlighted
|
||||
char HighlightDate[4 + 2 + 2 + 1]; // Date with exam announcements to be highlighted (in YYYYMMDD format)
|
||||
long ExaCod; // Used to put contextual icons
|
||||
const char *Anchor; // Used to put contextual icons
|
||||
struct ExaAnn_ExamAnnouncement ExamAnn;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void ExaAnn_ResetExamAnns (struct ExaAnn_ExamAnnouncements *ExamAnns);
|
||||
|
||||
void ExaAnn_PutFrmEditAExamAnn (void);
|
||||
void ExaAnn_ReceiveExamAnn1 (void);
|
||||
void ExaAnn_ReceiveExamAnn2 (void);
|
||||
void ExaAnn_PrintExamAnn (void);
|
||||
void ExaAnn_ReqRemoveExamAnn (void);
|
||||
void ExaAnn_RemoveExamAnn1 (void);
|
||||
void ExaAnn_RemoveExamAnn2 (void);
|
||||
void ExaAnn_HideExamAnn (void);
|
||||
void ExaAnn_UnhideExamAnn (void);
|
||||
|
||||
void ExaAnn_FreeListExamAnns (struct ExaAnn_ExamAnnouncements *ExamAnns);
|
||||
void ExaAnn_ListExamAnnsSee (void);
|
||||
void ExaAnn_ListExamAnnsEdit (void);
|
||||
|
||||
void ExaAnn_ListExamAnnsCod (void);
|
||||
void ExaAnn_ListExamAnnsDay (void);
|
||||
|
||||
void ExaAnn_CreateListExamAnns (struct ExaAnn_ExamAnnouncements *ExamAnns);
|
||||
void ExaAnn_PutHiddenParamExaCod (long ExaCod);
|
||||
|
||||
void ExaAnn_GetSummaryAndContentExamAnn (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||
char **ContentStr,
|
||||
long ExaCod,bool GetContent);
|
||||
|
||||
#endif
|
|
@ -36,11 +36,10 @@
|
|||
#include "swad_action.h"
|
||||
#include "swad_API.h"
|
||||
#include "swad_calendar.h"
|
||||
#include "swad_room.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_config.h"
|
||||
#include "swad_constant.h"
|
||||
#include "swad_department.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_follow.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_hierarchy.h"
|
||||
|
@ -50,6 +49,7 @@
|
|||
#include "swad_program.h"
|
||||
#include "swad_project.h"
|
||||
#include "swad_role.h"
|
||||
#include "swad_room.h"
|
||||
#include "swad_setting.h"
|
||||
#include "swad_statistic.h"
|
||||
#include "swad_theme.h"
|
||||
|
|
|
@ -1873,67 +1873,67 @@ const char *Hlp_ASSESSMENT_Surveys_questions =
|
|||
"ASSESSMENT.Surveys.en#questions";
|
||||
#endif
|
||||
|
||||
const char *Hlp_ASSESSMENT_Announcements =
|
||||
const char *Hlp_ASSESSMENT_Calls_for_exams =
|
||||
#if L==1
|
||||
"ASSESSMENT.Announcements.es";
|
||||
"ASSESSMENT.Calls_for_exams.es";
|
||||
#elif L==2
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#elif L==3
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#elif L==4
|
||||
"ASSESSMENT.Announcements.es";
|
||||
"ASSESSMENT.Calls_for_exams.es";
|
||||
#elif L==5
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#elif L==6
|
||||
"ASSESSMENT.Announcements.es";
|
||||
"ASSESSMENT.Calls_for_exams.es";
|
||||
#elif L==7
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#elif L==8
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#elif L==9
|
||||
"ASSESSMENT.Announcements.en";
|
||||
"ASSESSMENT.Calls_for_exams.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_ASSESSMENT_Announcements_new_announcement =
|
||||
const char *Hlp_ASSESSMENT_Calls_for_exam_new_call =
|
||||
#if L==1
|
||||
"ASSESSMENT.Announcements.es#nueva-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#nueva-convocatoria";
|
||||
#elif L==2
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#elif L==3
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#elif L==4
|
||||
"ASSESSMENT.Announcements.es#nueva-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#nueva-convocatoria";
|
||||
#elif L==5
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#elif L==6
|
||||
"ASSESSMENT.Announcements.es#nueva-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#nueva-convocatoria";
|
||||
#elif L==7
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#elif L==8
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#elif L==9
|
||||
"ASSESSMENT.Announcements.en#new-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#new-call";
|
||||
#endif
|
||||
|
||||
const char *Hlp_ASSESSMENT_Announcements_edit_announcement =
|
||||
#if L==1
|
||||
"ASSESSMENT.Announcements.es#editar-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#editar-convocatoria";
|
||||
#elif L==2
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#elif L==3
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#elif L==4
|
||||
"ASSESSMENT.Announcements.es#editar-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#editar-convocatoria";
|
||||
#elif L==5
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#elif L==6
|
||||
"ASSESSMENT.Announcements.es#editar-convocatoria";
|
||||
"ASSESSMENT.Calls_for_exams.es#editar-convocatoria";
|
||||
#elif L==7
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#elif L==8
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#elif L==9
|
||||
"ASSESSMENT.Announcements.en#edit-announcement";
|
||||
"ASSESSMENT.Calls_for_exams.en#edit-call";
|
||||
#endif
|
||||
|
||||
/***** FILES tab *****/
|
||||
|
|
|
@ -34,11 +34,11 @@
|
|||
#include "swad_banner.h"
|
||||
#include "swad_box.h"
|
||||
#include "swad_calendar.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_changelog.h"
|
||||
#include "swad_config.h"
|
||||
#include "swad_connected.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_exam_session.h"
|
||||
#include "swad_firewall.h"
|
||||
#include "swad_follow.h"
|
||||
|
@ -495,7 +495,7 @@ static void Lay_WriteScripts (void)
|
|||
extern const char *Txt_DAYS_SMALL[7];
|
||||
extern const char *Txt_Exam_of_X;
|
||||
struct Hld_Holidays Holidays;
|
||||
struct ExaAnn_ExamAnnouncements ExamAnns;
|
||||
struct Cfe_CallsForExams ExamAnns;
|
||||
unsigned DayOfWeek; /* 0, 1, 2, 3, 4, 5, 6 */
|
||||
unsigned NumHld;
|
||||
unsigned NumExamAnnouncement; // Number of exam announcement
|
||||
|
@ -542,10 +542,10 @@ static void Lay_WriteScripts (void)
|
|||
Hld_GetListHolidays (&Holidays);
|
||||
|
||||
/***** Reset exam announcements context *****/
|
||||
ExaAnn_ResetExamAnns (&ExamAnns);
|
||||
Cfe_ResetCallsForExams (&ExamAnns);
|
||||
|
||||
/***** Create list of exam announcements *****/
|
||||
ExaAnn_CreateListExamAnns (&ExamAnns);
|
||||
Cfe_CreateListCallsForExams (&ExamAnns);
|
||||
|
||||
/***** Write script to initialize variables used to draw months *****/
|
||||
HTM_SCRIPT_Begin (NULL,NULL);
|
||||
|
@ -579,7 +579,7 @@ static void Lay_WriteScripts (void)
|
|||
|
||||
HTM_TxtF ("\tvar LstExamAnnouncements = [];\n");
|
||||
for (NumExamAnnouncement = 0;
|
||||
NumExamAnnouncement < ExamAnns.NumExaAnns;
|
||||
NumExamAnnouncement < ExamAnns.NumCallsForExams;
|
||||
NumExamAnnouncement++)
|
||||
HTM_TxtF ("LstExamAnnouncements.push({ ExaCod: %ld, Year: %u, Month: %u, Day: %u });\n",
|
||||
ExamAnns.Lst[NumExamAnnouncement].ExaCod,
|
||||
|
@ -590,7 +590,7 @@ static void Lay_WriteScripts (void)
|
|||
HTM_SCRIPT_End ();
|
||||
|
||||
/***** Free list of exam announcements *****/
|
||||
ExaAnn_FreeListExamAnns (&ExamAnns);
|
||||
Cfe_FreeListCallsForExams (&ExamAnns);
|
||||
|
||||
/***** Free list of holidays *****/
|
||||
Hld_FreeListHolidays (&Holidays);
|
||||
|
|
|
@ -33,11 +33,11 @@
|
|||
|
||||
#include "swad_action.h"
|
||||
#include "swad_box.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_config.h"
|
||||
#include "swad_config.h"
|
||||
#include "swad_database.h"
|
||||
#include "swad_enrolment.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_figure.h"
|
||||
#include "swad_follow.h"
|
||||
#include "swad_form.h"
|
||||
|
@ -85,7 +85,7 @@ const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = "assignment",
|
||||
[Ntf_EVENT_SURVEY ] = "survey",
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "examAnnouncement",
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = "examAnnouncement",
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = "documentFile",
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = "teachersFile",
|
||||
|
@ -123,7 +123,7 @@ static const Act_Action_t Ntf_DefaultActions[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = ActSeeAsg,
|
||||
[Ntf_EVENT_SURVEY ] = ActSeeAllSvy,
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = ActSeeAllExaAnn,
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = ActSeeAllExaAnn,
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = ActSeeAdmDocCrsGrp,
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = ActAdmTchCrsGrp,
|
||||
|
@ -166,7 +166,7 @@ static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = "NotifyNtfEventAssignment",
|
||||
[Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey",
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "NotifyNtfEventExamAnnouncement",
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = "NotifyNtfEventExamAnnouncement",
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = "NotifyNtfEventDocumentFile",
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = "NotifyNtfEventTeachersFile",
|
||||
|
@ -205,7 +205,7 @@ static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = "EmailNtfEventAssignment",
|
||||
[Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey",
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "EmailNtfEventExamAnnouncement",
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = "EmailNtfEventExamAnnouncement",
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = "EmailNtfEventDocumentFile",
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = "EmailNtfEventTeachersFile",
|
||||
|
@ -244,7 +244,7 @@ static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = "edit.svg",
|
||||
[Ntf_EVENT_SURVEY ] = "poll.svg",
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "bullhorn.svg",
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = "bullhorn.svg",
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = "file.svg",
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = "file.svg",
|
||||
|
@ -858,8 +858,8 @@ void Ntf_GetNotifSummaryAndContent (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
|||
case Ntf_EVENT_ASSIGNMENT:
|
||||
Asg_GetNotifAssignment (SummaryStr,ContentStr,Cod,GetContent);
|
||||
break;
|
||||
case Ntf_EVENT_EXAM_ANNOUNCEMENT:
|
||||
ExaAnn_GetSummaryAndContentExamAnn (SummaryStr,ContentStr,Cod,GetContent);
|
||||
case Ntf_EVENT_CALL_FOR_EXAM:
|
||||
Cfe_GetSummaryAndContentCallForExam (SummaryStr,ContentStr,Cod,GetContent);
|
||||
break;
|
||||
case Ntf_EVENT_MARKS_FILE:
|
||||
Mrk_GetNotifMyMarks (SummaryStr,ContentStr,Cod,UsrCod,GetContent);
|
||||
|
@ -1250,7 +1250,7 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
|
|||
Cod,Cod,Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
Cod,Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
break;
|
||||
case Ntf_EVENT_EXAM_ANNOUNCEMENT:
|
||||
case Ntf_EVENT_CALL_FOR_EXAM:
|
||||
case Ntf_EVENT_NOTICE:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get users"
|
||||
" to be notified",
|
||||
|
@ -1708,7 +1708,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
|
|||
case Ntf_EVENT_TEACHERS_FILE:
|
||||
case Ntf_EVENT_SHARED_FILE:
|
||||
case Ntf_EVENT_ASSIGNMENT:
|
||||
case Ntf_EVENT_EXAM_ANNOUNCEMENT:
|
||||
case Ntf_EVENT_CALL_FOR_EXAM:
|
||||
case Ntf_EVENT_MARKS_FILE:
|
||||
case Ntf_EVENT_ENROLMENT_STD:
|
||||
case Ntf_EVENT_ENROLMENT_NET:
|
||||
|
|
|
@ -69,7 +69,7 @@ typedef enum // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
|
|||
/* Assessment tab */
|
||||
Ntf_EVENT_ASSIGNMENT = 4,
|
||||
Ntf_EVENT_SURVEY = 19,
|
||||
Ntf_EVENT_EXAM_ANNOUNCEMENT = 5,
|
||||
Ntf_EVENT_CALL_FOR_EXAM = 5,
|
||||
/* Files tab */
|
||||
Ntf_EVENT_DOCUMENT_FILE = 1,
|
||||
Ntf_EVENT_TEACHERS_FILE = 2,
|
||||
|
|
827
swad_text.c
827
swad_text.c
|
@ -1761,48 +1761,6 @@ const char *Txt_Announcements =
|
|||
"Anúncios";
|
||||
#endif
|
||||
|
||||
const char *Txt_Announcement_of_exam_removed =
|
||||
#if L==1 // ca
|
||||
"Convocatòria d'examen eliminada.";
|
||||
#elif L==2 // de
|
||||
"Aufruf zur Prüfung entfernt.";
|
||||
#elif L==3 // en
|
||||
"Announcement of exam removed.";
|
||||
#elif L==4 // es
|
||||
"Convocatoria de examen eliminada.";
|
||||
#elif L==5 // fr
|
||||
"Convocation pour l'examen supprimé.";
|
||||
#elif L==6 // gn
|
||||
"Convocatoria de examen eliminada."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Appello d'esame rimosso.";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenie egzamin usuniete.";
|
||||
#elif L==9 // pt
|
||||
"Chamada para exame removida.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Announcements_of_exams =
|
||||
#if L==1 // ca
|
||||
"Convocatòries d'exàmens";
|
||||
#elif L==2 // de
|
||||
"Aufrufe für Prüfung";
|
||||
#elif L==3 // en
|
||||
"Announcements of exams";
|
||||
#elif L==4 // es
|
||||
"Convocatorias de exámenes";
|
||||
#elif L==5 // fr
|
||||
"Convocations à examens";
|
||||
#elif L==6 // gn
|
||||
"Convocatorias de exámenes"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Appelli d'esame";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenia egzaminów";
|
||||
#elif L==9 // pt
|
||||
"Chamadas para exames";
|
||||
#endif
|
||||
|
||||
const char *Txt_Another_building =
|
||||
#if L==1 // ca
|
||||
"Un altre edifici";
|
||||
|
@ -3492,6 +3450,321 @@ const char *Txt_Calendar =
|
|||
"Calendário";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM =
|
||||
#if L==1 // ca
|
||||
"CONVOCATÒRIA D'EXAMEN";
|
||||
#elif L==2 // de
|
||||
"PRÜFUNGSAUFRUF";
|
||||
#elif L==3 // en
|
||||
"CALL FOR EXAM";
|
||||
#elif L==4 // es
|
||||
"CONVOCATORIA DE EXAMEN";
|
||||
#elif L==5 // fr
|
||||
"CONVOCATION À 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";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Approximate_duration =
|
||||
#if L==1 // ca
|
||||
"Duración aproximada"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Voraussichtliche Dauer";
|
||||
#elif L==3 // en
|
||||
"Approximate duration";
|
||||
#elif L==4 // es
|
||||
"Duración aproximada";
|
||||
#elif L==5 // fr
|
||||
"Durée approximative";
|
||||
#elif L==6 // gn
|
||||
"Duración aproximada"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Durata approssimativa";
|
||||
#elif L==8 // pl
|
||||
"Przyblizony czas trwania";
|
||||
#elif L==9 // pt
|
||||
"Duração aproximada";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Course =
|
||||
#if L==1 // ca
|
||||
"Assignatura";
|
||||
#elif L==2 // de
|
||||
"Kurs";
|
||||
#elif L==3 // en
|
||||
"Course";
|
||||
#elif L==4 // es
|
||||
"Asignatura";
|
||||
#elif L==5 // fr
|
||||
"Matière";
|
||||
#elif L==6 // gn
|
||||
"Mbo'esyry";
|
||||
#elif L==7 // it
|
||||
"Corso";
|
||||
#elif L==8 // pl
|
||||
"Kurs";
|
||||
#elif L==9 // pt
|
||||
"Disciplina";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Documentation_required =
|
||||
#if L==1 // ca
|
||||
"Documentación exigida"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Ausweis erforderlich";
|
||||
#elif L==3 // en
|
||||
"ID required";
|
||||
#elif L==4 // es
|
||||
"Documentación exigida";
|
||||
#elif L==5 // fr
|
||||
"Pièce d'identité obligatoire";
|
||||
#elif L==6 // gn
|
||||
"Documentación exigida"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Documentazione richiesta";
|
||||
#elif L==8 // pl
|
||||
"ID wymagane";
|
||||
#elif L==9 // pt
|
||||
"Documentação necessária";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Exam_date =
|
||||
#if L==1 // ca
|
||||
"Fecha del examen"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsdatum";
|
||||
#elif L==3 // en
|
||||
"Exam date";
|
||||
#elif L==4 // es
|
||||
"Fecha del examen";
|
||||
#elif L==5 // fr
|
||||
"Date de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Fecha del examen"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Data d'esame";
|
||||
#elif L==8 // pl
|
||||
"Termin egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Exame data";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Material_allowed =
|
||||
#if L==1 // ca
|
||||
"Material permitido"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Erlaubte Unterlagen";
|
||||
#elif L==3 // en
|
||||
"Material allowed";
|
||||
#elif L==4 // es
|
||||
"Material permitido";
|
||||
#elif L==5 // fr
|
||||
"Matériel autorisé";
|
||||
#elif L==6 // gn
|
||||
"Material permitido"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Materiale permesso";
|
||||
#elif L==8 // pl
|
||||
"Material dozwolone";
|
||||
#elif L==9 // pt
|
||||
"Material autorizado";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Material_required =
|
||||
#if L==1 // ca
|
||||
"Material obligatorio"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Erforderliche Unterlagen";
|
||||
#elif L==3 // en
|
||||
"Material required";
|
||||
#elif L==4 // es
|
||||
"Material obligatorio";
|
||||
#elif L==5 // fr
|
||||
"Matériel nécessaire";
|
||||
#elif L==6 // gn
|
||||
"Material obligatorio"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Materiale richiesto";
|
||||
#elif L==8 // pl
|
||||
"Materialy niezbedne do";
|
||||
#elif L==9 // pt
|
||||
"Material obrigatório";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Mode =
|
||||
#if L==1 // ca
|
||||
"Modalidad<br />(escrito, oral,…)"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsart<br />(schriftlich, mündlich,…)";
|
||||
#elif L==3 // en
|
||||
"Mode<br />(written, oral,…)";
|
||||
#elif L==4 // es
|
||||
"Modalidad<br />(escrito, oral,…)";
|
||||
#elif L==5 // fr
|
||||
"Mode<br />(écrit, oral,…)";
|
||||
#elif L==6 // gn
|
||||
"Modalidad<br />(escrito, oral,…)"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Modalità<br />(scritto, orale,…)";
|
||||
#elif L==8 // pl
|
||||
"Tryb<br />(pisemnej, ustnej,…)";
|
||||
#elif L==9 // pt
|
||||
"Modalidade<br />(escrita, oral,…)";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Other_information =
|
||||
#if L==1 // ca
|
||||
"Otras indicaciones"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Weitere Informationen";
|
||||
#elif L==3 // en
|
||||
"Other information";
|
||||
#elif L==4 // es
|
||||
"Otras indicaciones";
|
||||
#elif L==5 // fr
|
||||
"Autres informations";
|
||||
#elif L==6 // gn
|
||||
"Otras indicaciones"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Altre informazioni";
|
||||
#elif L==8 // pl
|
||||
"Inne informacje";
|
||||
#elif L==9 // pt
|
||||
"Outras informações";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Place_of_exam =
|
||||
#if L==1 // ca
|
||||
"Lugar de realización"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsort";
|
||||
#elif L==3 // en
|
||||
"Place of exam";
|
||||
#elif L==4 // es
|
||||
"Lugar de realización";
|
||||
#elif L==5 // fr
|
||||
"Lieu de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Lugar de realización"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Luogo d'esame";
|
||||
#elif L==8 // pl
|
||||
"Miejsce egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Local do exame";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Session =
|
||||
#if L==1 // ca
|
||||
"Convocatoria<br />(junio, septiembre,…)"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Einberufung<br />(Juni, September,…)";
|
||||
#elif L==3 // en
|
||||
"Session<br />(june, september,…)";
|
||||
#elif L==4 // es
|
||||
"Convocatoria<br />(junio, septiembre,…)";
|
||||
#elif L==5 // fr
|
||||
"Période<br />(juin, septembre,…)";
|
||||
#elif L==6 // gn
|
||||
"Convocatoria<br />(junio, septiembre,…)"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Sessione<br />(giugno, settembre,…)";
|
||||
#elif L==8 // pl
|
||||
"Sesja<br />(czerwiec, wrzesien,…)";
|
||||
#elif L==9 // pt
|
||||
"Período<br />(junho, setembro,…)";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Start_time =
|
||||
#if L==1 // ca
|
||||
"Hora de inicio"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Beginn um";
|
||||
#elif L==3 // en
|
||||
"Start time";
|
||||
#elif L==4 // es
|
||||
"Hora de inicio";
|
||||
#elif L==5 // fr
|
||||
"Heure de début";
|
||||
#elif L==6 // gn
|
||||
"Hora de inicio"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Ora d'inizio";
|
||||
#elif L==8 // pl
|
||||
"Czas rozpoczecia";
|
||||
#elif L==9 // pt
|
||||
"Hora de início";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Structure_of_the_exam =
|
||||
#if L==1 // ca
|
||||
"Estructura del examen"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsstruktur";
|
||||
#elif L==3 // en
|
||||
"Structure of the exam";
|
||||
#elif L==4 // es
|
||||
"Estructura del examen";
|
||||
#elif L==5 // fr
|
||||
"Structure de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Estructura del examen"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Struttura d'esame";
|
||||
#elif L==8 // pl
|
||||
"Struktura egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Estrutura do exame";
|
||||
#endif
|
||||
|
||||
const char *Txt_CALL_FOR_EXAM_Year_or_semester = // 1, 2, 3..., not 1984, 2038...
|
||||
#if L==1 // ca
|
||||
"Any o semestre";
|
||||
#elif L==2 // de
|
||||
"Jahr oder Semester";
|
||||
#elif L==3 // en
|
||||
"Year or semester";
|
||||
#elif L==4 // es
|
||||
"Año o semestre";
|
||||
#elif L==5 // fr
|
||||
"Année ou semestre";
|
||||
#elif L==6 // gn
|
||||
"Año o semestre"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Anno o semestre";
|
||||
#elif L==8 // pl
|
||||
"Rok lub semestr";
|
||||
#elif L==9 // pt
|
||||
"Ano ou semestre";
|
||||
#endif
|
||||
|
||||
const char *Txt_Call_for_exam_removed =
|
||||
#if L==1 // ca
|
||||
"Convocatòria d'examen eliminada.";
|
||||
#elif L==2 // de
|
||||
"Aufruf zur Prüfung entfernt.";
|
||||
#elif L==3 // en
|
||||
"Call for exam removed.";
|
||||
#elif L==4 // es
|
||||
"Convocatoria de examen eliminada.";
|
||||
#elif L==5 // fr
|
||||
"Convocation pour l'examen supprimé.";
|
||||
#elif L==6 // gn
|
||||
"Convocatoria de examen eliminada."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Appello d'esame rimosso.";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenie egzamin usuniete.";
|
||||
#elif L==9 // pt
|
||||
"Chamada para exame removida.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Call_the_roll =
|
||||
#if L==1 // ca
|
||||
"Passar llista";
|
||||
|
@ -3513,6 +3786,27 @@ const char *Txt_Call_the_roll =
|
|||
"Lista de presença";
|
||||
#endif
|
||||
|
||||
const char *Txt_Calls_for_exams =
|
||||
#if L==1 // ca
|
||||
"Convocatòries d'exàmens";
|
||||
#elif L==2 // de
|
||||
"Aufrufe für Prüfung";
|
||||
#elif L==3 // en
|
||||
"Calls for exams";
|
||||
#elif L==4 // es
|
||||
"Convocatorias de exámenes";
|
||||
#elif L==5 // fr
|
||||
"Convocations à examens";
|
||||
#elif L==6 // gn
|
||||
"Convocatorias de exámenes"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Appelli d'esame";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenia egzaminów";
|
||||
#elif L==9 // pt
|
||||
"Chamadas para exames";
|
||||
#endif
|
||||
|
||||
const char *Txt_Can_not_create_the_folder_X_because_it_would_exceed_the_disk_quota = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"No s'ha creat la carpeta <strong>%s</strong>"
|
||||
|
@ -5094,7 +5388,6 @@ const char *Txt_Could_not_detect_any_face_in_front_position_ =
|
|||
"Não foi possível detectar nenhum rosto na posição frontal.";
|
||||
#endif
|
||||
|
||||
|
||||
const char *Txt_Countdown =
|
||||
#if L==1 // ca
|
||||
"Compte enrere";
|
||||
|
@ -6553,27 +6846,6 @@ const char *Txt_Create_ZIP_file =
|
|||
"Criar arquivo ZIP";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_announcement_of_exam =
|
||||
#if L==1 // ca
|
||||
"Creada nueva convocatoria de examen."; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Neuer Aufruf zur Prüfung erstellt.";
|
||||
#elif L==3 // en
|
||||
"Created new announcement of exam.";
|
||||
#elif L==4 // es
|
||||
"Creada nueva convocatoria de examen.";
|
||||
#elif L==5 // fr
|
||||
"Créé nouvelle convocation à un examen.";
|
||||
#elif L==6 // gn
|
||||
"Creada nueva convocatoria de examen."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Creato nuovo appello d'esame.";
|
||||
#elif L==8 // pl
|
||||
"Utworzono nowe ogloszenie egzamin.";
|
||||
#elif L==9 // pt
|
||||
"Criado nova chamada para exame.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_assignment_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Creada nova activitat <strong>%s</strong>.";
|
||||
|
@ -6637,6 +6909,27 @@ const char *Txt_Created_new_building_X = // Warning: it is very important to inc
|
|||
"Criado novo edifício <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_call_for_exam =
|
||||
#if L==1 // ca
|
||||
"Creada nueva convocatoria de examen."; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Neuer Aufruf zur Prüfung erstellt.";
|
||||
#elif L==3 // en
|
||||
"Created new call for exam.";
|
||||
#elif L==4 // es
|
||||
"Creada nueva convocatoria de examen.";
|
||||
#elif L==5 // fr
|
||||
"Créé nouvelle convocation à un examen.";
|
||||
#elif L==6 // gn
|
||||
"Creada nueva convocatoria de examen."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Creato nuovo appello d'esame.";
|
||||
#elif L==8 // pl
|
||||
"Utworzono nowe ogloszenie egzamin.";
|
||||
#elif L==9 // pt
|
||||
"Criado nova chamada para exame.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Created_new_center_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Creat nou center <strong>%s</strong>."; // Necessita traduccio
|
||||
|
@ -9248,13 +9541,13 @@ const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is ve
|
|||
" o diretório <strong>%s</strong> e todo o seu conteúdo?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Do_you_really_want_to_remove_the_following_announcement_of_exam =
|
||||
const char *Txt_Do_you_really_want_to_remove_the_following_call_for_exam =
|
||||
#if L==1 // ca
|
||||
"De veres voleu eliminar la següent convocatòria d'examen?";
|
||||
#elif L==2 // de
|
||||
"Wollen Sie wirklich, um die folgende Aufruf für Prüfung?";
|
||||
#elif L==3 // en
|
||||
"Do you really want to remove the following announcement of exam?";
|
||||
"Do you really want to remove the following call for exam?";
|
||||
#elif L==4 // es
|
||||
"¿Realmente desea eliminar la siguiente convocatoria de examen?";
|
||||
#elif L==5 // fr
|
||||
|
@ -11731,300 +12024,6 @@ const char *Txt_Exam =
|
|||
"Exame";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT =
|
||||
#if L==1 // ca
|
||||
"CONVOCATÒRIA D'EXAMEN";
|
||||
#elif L==2 // de
|
||||
"PRÜFUNGSAUFRUF";
|
||||
#elif L==3 // en
|
||||
"ANNOUNCEMENT OF EXAM";
|
||||
#elif L==4 // es
|
||||
"CONVOCATORIA DE EXAMEN";
|
||||
#elif L==5 // fr
|
||||
"CONVOCATION À 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";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Approximate_duration =
|
||||
#if L==1 // ca
|
||||
"Duración aproximada"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Voraussichtliche Dauer";
|
||||
#elif L==3 // en
|
||||
"Approximate duration";
|
||||
#elif L==4 // es
|
||||
"Duración aproximada";
|
||||
#elif L==5 // fr
|
||||
"Durée approximative";
|
||||
#elif L==6 // gn
|
||||
"Duración aproximada"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Durata approssimativa";
|
||||
#elif L==8 // pl
|
||||
"Przyblizony czas trwania";
|
||||
#elif L==9 // pt
|
||||
"Duração aproximada";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Course =
|
||||
#if L==1 // ca
|
||||
"Assignatura";
|
||||
#elif L==2 // de
|
||||
"Kurs";
|
||||
#elif L==3 // en
|
||||
"Course";
|
||||
#elif L==4 // es
|
||||
"Asignatura";
|
||||
#elif L==5 // fr
|
||||
"Matière";
|
||||
#elif L==6 // gn
|
||||
"Mbo'esyry";
|
||||
#elif L==7 // it
|
||||
"Corso";
|
||||
#elif L==8 // pl
|
||||
"Kurs";
|
||||
#elif L==9 // pt
|
||||
"Disciplina";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Documentation_required =
|
||||
#if L==1 // ca
|
||||
"Documentación exigida"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Ausweis erforderlich";
|
||||
#elif L==3 // en
|
||||
"ID required";
|
||||
#elif L==4 // es
|
||||
"Documentación exigida";
|
||||
#elif L==5 // fr
|
||||
"Pièce d'identité obligatoire";
|
||||
#elif L==6 // gn
|
||||
"Documentación exigida"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Documentazione richiesta";
|
||||
#elif L==8 // pl
|
||||
"ID wymagane";
|
||||
#elif L==9 // pt
|
||||
"Documentação necessária";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Exam_date =
|
||||
#if L==1 // ca
|
||||
"Fecha del examen"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsdatum";
|
||||
#elif L==3 // en
|
||||
"Exam date";
|
||||
#elif L==4 // es
|
||||
"Fecha del examen";
|
||||
#elif L==5 // fr
|
||||
"Date de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Fecha del examen"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Data d'esame";
|
||||
#elif L==8 // pl
|
||||
"Termin egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Exame data";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Material_allowed =
|
||||
#if L==1 // ca
|
||||
"Material permitido"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Erlaubte Unterlagen";
|
||||
#elif L==3 // en
|
||||
"Material allowed";
|
||||
#elif L==4 // es
|
||||
"Material permitido";
|
||||
#elif L==5 // fr
|
||||
"Matériel autorisé";
|
||||
#elif L==6 // gn
|
||||
"Material permitido"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Materiale permesso";
|
||||
#elif L==8 // pl
|
||||
"Material dozwolone";
|
||||
#elif L==9 // pt
|
||||
"Material autorizado";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Material_required =
|
||||
#if L==1 // ca
|
||||
"Material obligatorio"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Erforderliche Unterlagen";
|
||||
#elif L==3 // en
|
||||
"Material required";
|
||||
#elif L==4 // es
|
||||
"Material obligatorio";
|
||||
#elif L==5 // fr
|
||||
"Matériel nécessaire";
|
||||
#elif L==6 // gn
|
||||
"Material obligatorio"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Materiale richiesto";
|
||||
#elif L==8 // pl
|
||||
"Materialy niezbedne do";
|
||||
#elif L==9 // pt
|
||||
"Material obrigatório";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Mode =
|
||||
#if L==1 // ca
|
||||
"Modalidad<br />(escrito, oral,…)"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsart<br />(schriftlich, mündlich,…)";
|
||||
#elif L==3 // en
|
||||
"Mode<br />(written, oral,…)";
|
||||
#elif L==4 // es
|
||||
"Modalidad<br />(escrito, oral,…)";
|
||||
#elif L==5 // fr
|
||||
"Mode<br />(écrit, oral,…)";
|
||||
#elif L==6 // gn
|
||||
"Modalidad<br />(escrito, oral,…)"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Modalità<br />(scritto, orale,…)";
|
||||
#elif L==8 // pl
|
||||
"Tryb<br />(pisemnej, ustnej,…)";
|
||||
#elif L==9 // pt
|
||||
"Modalidade<br />(escrita, oral,…)";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Other_information =
|
||||
#if L==1 // ca
|
||||
"Otras indicaciones"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Weitere Informationen";
|
||||
#elif L==3 // en
|
||||
"Other information";
|
||||
#elif L==4 // es
|
||||
"Otras indicaciones";
|
||||
#elif L==5 // fr
|
||||
"Autres informations";
|
||||
#elif L==6 // gn
|
||||
"Otras indicaciones"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Altre informazioni";
|
||||
#elif L==8 // pl
|
||||
"Inne informacje";
|
||||
#elif L==9 // pt
|
||||
"Outras informações";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Place_of_exam =
|
||||
#if L==1 // ca
|
||||
"Lugar de realización"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsort";
|
||||
#elif L==3 // en
|
||||
"Place of exam";
|
||||
#elif L==4 // es
|
||||
"Lugar de realización";
|
||||
#elif L==5 // fr
|
||||
"Lieu de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Lugar de realización"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Luogo d'esame";
|
||||
#elif L==8 // pl
|
||||
"Miejsce egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Local do exame";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Session =
|
||||
#if L==1 // ca
|
||||
"Convocatoria<br />(junio, septiembre,…)"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Einberufung<br />(Juni, September,…)";
|
||||
#elif L==3 // en
|
||||
"Session<br />(june, september,…)";
|
||||
#elif L==4 // es
|
||||
"Convocatoria<br />(junio, septiembre,…)";
|
||||
#elif L==5 // fr
|
||||
"Période<br />(juin, septembre,…)";
|
||||
#elif L==6 // gn
|
||||
"Convocatoria<br />(junio, septiembre,…)"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Sessione<br />(giugno, settembre,…)";
|
||||
#elif L==8 // pl
|
||||
"Sesja<br />(czerwiec, wrzesien,…)";
|
||||
#elif L==9 // pt
|
||||
"Período<br />(junho, setembro,…)";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Start_time =
|
||||
#if L==1 // ca
|
||||
"Hora de inicio"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Beginn um";
|
||||
#elif L==3 // en
|
||||
"Start time";
|
||||
#elif L==4 // es
|
||||
"Hora de inicio";
|
||||
#elif L==5 // fr
|
||||
"Heure de début";
|
||||
#elif L==6 // gn
|
||||
"Hora de inicio"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Ora d'inizio";
|
||||
#elif L==8 // pl
|
||||
"Czas rozpoczecia";
|
||||
#elif L==9 // pt
|
||||
"Hora de início";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Structure_of_the_exam =
|
||||
#if L==1 // ca
|
||||
"Estructura del examen"; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Prüfungsstruktur";
|
||||
#elif L==3 // en
|
||||
"Structure of the exam";
|
||||
#elif L==4 // es
|
||||
"Estructura del examen";
|
||||
#elif L==5 // fr
|
||||
"Structure de l'examen";
|
||||
#elif L==6 // gn
|
||||
"Estructura del examen"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Struttura d'esame";
|
||||
#elif L==8 // pl
|
||||
"Struktura egzaminu";
|
||||
#elif L==9 // pt
|
||||
"Estrutura do exame";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_ANNOUNCEMENT_Year_or_semester = // 1, 2, 3..., not 1984, 2038...
|
||||
#if L==1 // ca
|
||||
"Any o semestre";
|
||||
#elif L==2 // de
|
||||
"Jahr oder Semester";
|
||||
#elif L==3 // en
|
||||
"Year or semester";
|
||||
#elif L==4 // es
|
||||
"Año o semestre";
|
||||
#elif L==5 // fr
|
||||
"Année ou semestre";
|
||||
#elif L==6 // gn
|
||||
"Año o semestre"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Anno o semestre";
|
||||
#elif L==8 // pl
|
||||
"Rok lub semestr";
|
||||
#elif L==9 // pt
|
||||
"Ano ou semestre";
|
||||
#endif
|
||||
|
||||
const char *Txt_EXAM_LOG_ACTIONS[ExaLog_NUM_ACTIONS] =
|
||||
{
|
||||
[ExaLog_UNKNOWN_ACTION] =
|
||||
|
@ -18567,13 +18566,13 @@ const char *Txt_Link_X_removed = // Warning: it is very important to include %s
|
|||
"Ligação <strong>%s</strong> removida.";
|
||||
#endif
|
||||
|
||||
const char *Txt_Link_to_announcement_of_exam =
|
||||
const char *Txt_Link_to_call_for_exam =
|
||||
#if L==1 // ca
|
||||
"Enllaç a convocatòria d'examen";
|
||||
#elif L==2 // de
|
||||
"Link zu Aufruf für Prüfung";
|
||||
#elif L==3 // en
|
||||
"Link to announcement of exam";
|
||||
"Link to call for exam";
|
||||
#elif L==4 // es
|
||||
"Enlace a convocatoria de examen";
|
||||
#elif L==5 // fr
|
||||
|
@ -22282,7 +22281,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
|||
#elif L==2 // de
|
||||
"Prüfungsaufruf"
|
||||
#elif L==3 // en
|
||||
"Announcements of exams"
|
||||
"Calls for exams"
|
||||
#elif L==4 // es
|
||||
"Listado de convocatorias de exámenes de esta asignatura"
|
||||
#elif L==5 // fr
|
||||
|
@ -25124,7 +25123,7 @@ const char *Txt_New_announcement =
|
|||
"Novo anúncio";
|
||||
#endif
|
||||
|
||||
const char *Txt_New_announcement_OF_EXAM =
|
||||
const char *Txt_New_call_FOR_EXAM =
|
||||
#if L==1 // ca
|
||||
"Nova convocatòria";
|
||||
#elif L==2 // de
|
||||
|
@ -26153,27 +26152,6 @@ const char *Txt_No_announcements =
|
|||
"Não há anúncios";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_announcements_of_exams_of_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"No hay convocatorias de examen de <strong>%s</strong>."; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Keine Aufrufe für Prüfung von <strong>%s</strong>.";
|
||||
#elif L==3 // en
|
||||
"No announcements of exams of <strong>%s</strong>.";
|
||||
#elif L==4 // es
|
||||
"No hay convocatorias de examen de <strong>%s</strong>.";
|
||||
#elif L==5 // fr
|
||||
"Aucune convocation à un examen de <strong>%s</strong>.";
|
||||
#elif L==6 // gn
|
||||
"No hay convocatorias de examen de <strong>%s</strong>."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Nessun appello d'esame di <strong>%s</strong>.";
|
||||
#elif L==8 // pl
|
||||
"Brak ogloszen egzaminów <strong>%s</strong>.";
|
||||
#elif L==9 // pt
|
||||
"Não chamadas para exame de <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_assigned_building =
|
||||
#if L==1 // ca
|
||||
"Sense edifici assignat";
|
||||
|
@ -26258,6 +26236,27 @@ const char *Txt_No_banners =
|
|||
"Não há banners.";
|
||||
#endif
|
||||
|
||||
const char *Txt_No_calls_for_exams_of_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"No hay convocatorias de examen de <strong>%s</strong>."; // Necessita traduccio
|
||||
#elif L==2 // de
|
||||
"Keine Aufrufe für Prüfung von <strong>%s</strong>.";
|
||||
#elif L==3 // en
|
||||
"No calls for exams of <strong>%s</strong>.";
|
||||
#elif L==4 // es
|
||||
"No hay convocatorias de examen de <strong>%s</strong>.";
|
||||
#elif L==5 // fr
|
||||
"Aucune convocation à un examen de <strong>%s</strong>.";
|
||||
#elif L==6 // gn
|
||||
"No hay convocatorias de examen de <strong>%s</strong>."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Nessun appello d'esame di <strong>%s</strong>.";
|
||||
#elif L==8 // pl
|
||||
"Brak ogloszen egzaminów <strong>%s</strong>.";
|
||||
#elif L==9 // pt
|
||||
"Não chamadas para exame de <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_no_course_of_origin = // Means: "message sent from any course"
|
||||
#if L==1 // ca
|
||||
"sin asignatura de origen"; // Necessita traduccio
|
||||
|
@ -27793,13 +27792,13 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
"Novas atividades"
|
||||
#endif
|
||||
,
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] =
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] =
|
||||
#if L==1 // ca
|
||||
"Noves convocatòries d'examen"
|
||||
#elif L==2 // de
|
||||
"Neue Aufrufe für Prüfung"
|
||||
#elif L==3 // en
|
||||
"New announcements of exam"
|
||||
"New calls for exam"
|
||||
#elif L==4 // es
|
||||
"Nuevas convocatorias de examen"
|
||||
#elif L==5 // fr
|
||||
|
@ -28237,13 +28236,13 @@ const char *Txt_NOTIFY_EVENTS_SINGULAR[Ntf_NUM_NOTIFY_EVENTS] =
|
|||
"Atividade"
|
||||
#endif
|
||||
,
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] =
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] =
|
||||
#if L==1 // ca
|
||||
"Convocatòria d'examen"
|
||||
#elif L==2 // de
|
||||
"Aufrufe für Prüfung"
|
||||
#elif L==3 // en
|
||||
"Announcement of exam"
|
||||
"Call for exam"
|
||||
#elif L==4 // es
|
||||
"Convocatoria de examen"
|
||||
#elif L==5 // fr
|
||||
|
@ -32851,13 +32850,13 @@ const char *Txt_Public_views =
|
|||
"Acessos públicos";
|
||||
#endif
|
||||
|
||||
const char *Txt_Publish_announcement_OF_EXAM =
|
||||
const char *Txt_Publish_call_FOR_EXAM =
|
||||
#if L==1 // ca
|
||||
"Publicar convocatòria";
|
||||
#elif L==2 // de
|
||||
"Veröffentlichen Aufruf";
|
||||
#elif L==3 // en
|
||||
"Publish announcement";
|
||||
"Publish call";
|
||||
#elif L==4 // es
|
||||
"Publicar convocatoria";
|
||||
#elif L==5 // fr
|
||||
|
@ -46252,27 +46251,6 @@ const char *Txt_The_alphabetical_code_X_is_not_correct = // Warning: it is very
|
|||
"O código alfabético ISO 3166-1 %s não está correto.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_announcement_of_exam_has_been_successfully_updated =
|
||||
#if L==1 // ca
|
||||
"La convocatòria d'examen s'ha actualitzat correctament.";
|
||||
#elif L==2 // de
|
||||
"Der Aufruf zur Prüfung wurde erfolgreich aktualisiert.";
|
||||
#elif L==3 // en
|
||||
"The announcement of exam has been successfully updated.";
|
||||
#elif L==4 // es
|
||||
"La convocatoria de examen se ha actualizado correctamente.";
|
||||
#elif L==5 // fr
|
||||
"La convocation pour l'examen a été mis à jour avec succès.";
|
||||
#elif L==6 // gn
|
||||
"La convocatoria de examen se ha actualizado correctamente."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"L'apello d'esame è stata aggiornata con successo.";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenie egzamin został pomyślnie zaktualizowany.";
|
||||
#elif L==9 // pt
|
||||
"A chamada para exame foi atualizada com sucesso.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_answers_of_the_question_with_code_X_will_appear_shuffled = // Warning: it is very important to include %ld in the following sentences
|
||||
#if L==1 // ca
|
||||
"Las respuestas de la pregunta con código <strong>%ld</strong>"
|
||||
|
@ -46480,6 +46458,27 @@ const char *Txt_The_building_of_room_X_is_now_Y = // Warning: it is very importa
|
|||
"O edifício da sala <strong>%s</strong> é agora <strong>%s</strong>.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_call_for_exam_has_been_successfully_updated =
|
||||
#if L==1 // ca
|
||||
"La convocatòria d'examen s'ha actualitzat correctament.";
|
||||
#elif L==2 // de
|
||||
"Der Aufruf zur Prüfung wurde erfolgreich aktualisiert.";
|
||||
#elif L==3 // en
|
||||
"The call for exam has been successfully updated.";
|
||||
#elif L==4 // es
|
||||
"La convocatoria de examen se ha actualizado correctamente.";
|
||||
#elif L==5 // fr
|
||||
"La convocation pour l'examen a été mis à jour avec succès.";
|
||||
#elif L==6 // gn
|
||||
"La convocatoria de examen se ha actualizado correctamente."; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"L'apello d'esame è stata aggiornata con successo.";
|
||||
#elif L==8 // pl
|
||||
"Ogloszenie egzamin został pomyślnie zaktualizowany.";
|
||||
#elif L==9 // pt
|
||||
"A chamada para exame foi atualizada com sucesso.";
|
||||
#endif
|
||||
|
||||
const char *Txt_The_capacity_of_room_X_has_not_changed = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"L'aforament de la sala <strong>%s</strong> no ha canviat.";
|
||||
|
@ -52779,13 +52778,13 @@ const char *Txt_TIMELINE_NOTE[TL_NOT_NUM_NOTE_TYPES] =
|
|||
"Arquivo compartilhado público (disciplina)"
|
||||
#endif
|
||||
,
|
||||
[TL_NOTE_EXAM_ANNOUNCEMENT] =
|
||||
[TL_NOTE_CALL_FOR_EXAM] =
|
||||
#if L==1 // ca
|
||||
"Convocatòria d'examen"
|
||||
#elif L==2 // de
|
||||
"Aufrufe für Prüfung"
|
||||
#elif L==3 // en
|
||||
"Announcement of exam"
|
||||
"Call for exam"
|
||||
#elif L==4 // es
|
||||
"Convocatoria de examen"
|
||||
#elif L==5 // fr
|
||||
|
|
|
@ -9556,7 +9556,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Download file from the assessment zone of a project" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeOneExaAnn] =
|
||||
[ActSeeOneCfe] =
|
||||
#if L==1 // ca
|
||||
"See one exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9577,7 +9577,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"See one exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeDatExaAnn] =
|
||||
[ActSeeDatCfe] =
|
||||
#if L==1 // ca
|
||||
"See exam announcements of a given date" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9598,7 +9598,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"See exam announcements of a given date" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActEdiExaAnn] =
|
||||
[ActEdiCfe] =
|
||||
#if L==1 // ca
|
||||
"Edit an exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9619,7 +9619,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Edit an exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActRcvExaAnn] =
|
||||
[ActRcvCfe] =
|
||||
#if L==1 // ca
|
||||
"Send an exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9640,7 +9640,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Send an exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActPrnExaAnn] =
|
||||
[ActPrnCfe] =
|
||||
#if L==1 // ca
|
||||
"See an exam announcement ready to be printed" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9661,7 +9661,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"See an exam announcement ready to be printed" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActReqRemExaAnn] =
|
||||
[ActReqRemCfe] =
|
||||
#if L==1 // ca
|
||||
"Request removal of an exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9682,7 +9682,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Request removal of an exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActRemExaAnn] =
|
||||
[ActRemCfe] =
|
||||
#if L==1 // ca
|
||||
"Remove exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9703,7 +9703,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Remove exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActHidExaAnn] =
|
||||
[ActHidCfe] =
|
||||
#if L==1 // ca
|
||||
"Hide exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -9724,7 +9724,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"Hide exam announcement" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActUnhExaAnn] =
|
||||
[ActUnhCfe] =
|
||||
#if L==1 // ca
|
||||
"Unhide exam announcement" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
|
|
@ -469,12 +469,12 @@ const char *Txt_NOTIFY_EVENTS_SINGULAR_NO_HTML[Ntf_NUM_NOTIFY_EVENTS][1 + Lan_NU
|
|||
[Lan_LANGUAGE_PL ] = "Nowe zadania",
|
||||
[Lan_LANGUAGE_PT ] = "Nova atividade",
|
||||
},
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] =
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] =
|
||||
{
|
||||
[Lan_LANGUAGE_UNKNOWN] = "",
|
||||
[Lan_LANGUAGE_CA ] = "Nova convocatòria d'examen",
|
||||
[Lan_LANGUAGE_DE ] = "Neue Aufrufe für Prüfung",
|
||||
[Lan_LANGUAGE_EN ] = "New announcement of exam",
|
||||
[Lan_LANGUAGE_EN ] = "New call for exam",
|
||||
[Lan_LANGUAGE_ES ] = "Nueva convocatoria de examen",
|
||||
[Lan_LANGUAGE_FR ] = "Nouvelle convocation à un examen",
|
||||
[Lan_LANGUAGE_GN ] = "Nueva convocatoria de examen", // Okoteve traducción
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
|
||||
#include "swad_alert.h"
|
||||
#include "swad_box.h"
|
||||
#include "swad_call_for_exam.h"
|
||||
#include "swad_course.h"
|
||||
#include "swad_exam_announcement.h"
|
||||
#include "swad_forum.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_hierarchy.h"
|
||||
|
@ -138,7 +138,7 @@ void Tml_Not_ShowHighlightedNote (struct Tml_Timeline *Timeline,
|
|||
/* Assessment tab */
|
||||
[Ntf_EVENT_ASSIGNMENT ] = Tml_TOP_MESSAGE_NONE,
|
||||
[Ntf_EVENT_SURVEY ] = Tml_TOP_MESSAGE_NONE,
|
||||
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = Tml_TOP_MESSAGE_NONE,
|
||||
[Ntf_EVENT_CALL_FOR_EXAM] = Tml_TOP_MESSAGE_NONE,
|
||||
/* Files tab */
|
||||
[Ntf_EVENT_DOCUMENT_FILE ] = Tml_TOP_MESSAGE_NONE,
|
||||
[Ntf_EVENT_TEACHERS_FILE ] = Tml_TOP_MESSAGE_NONE,
|
||||
|
@ -467,7 +467,7 @@ static void Tml_Not_GetLocationInHierarchy (const struct Tml_Not_Note *Not,
|
|||
break;
|
||||
case TL_NOTE_CRS_DOC_PUB_FILE:
|
||||
case TL_NOTE_CRS_SHA_PUB_FILE:
|
||||
case TL_NOTE_EXAM_ANNOUNCEMENT:
|
||||
case TL_NOTE_CALL_FOR_EXAM:
|
||||
case TL_NOTE_NOTICE:
|
||||
/* Get course data */
|
||||
Hie->Crs.CrsCod = Not->HieCod;
|
||||
|
@ -524,7 +524,7 @@ static void Tml_Not_WriteLocationInHierarchy (const struct Tml_Not_Note *Not,
|
|||
break;
|
||||
case TL_NOTE_CRS_DOC_PUB_FILE:
|
||||
case TL_NOTE_CRS_SHA_PUB_FILE:
|
||||
case TL_NOTE_EXAM_ANNOUNCEMENT:
|
||||
case TL_NOTE_CALL_FOR_EXAM:
|
||||
case TL_NOTE_NOTICE:
|
||||
/* Write location (course) in hierarchy */
|
||||
HTM_DIV_Begin ("class=\"TL_LOC\"");
|
||||
|
@ -572,7 +572,7 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not,
|
|||
[TL_NOTE_CRS_DOC_PUB_FILE ] = ActReqDatSeeDocCrs,
|
||||
[TL_NOTE_CRS_SHA_PUB_FILE ] = ActReqDatShaCrs,
|
||||
/* Assessment tab */
|
||||
[TL_NOTE_EXAM_ANNOUNCEMENT] = ActSeeOneExaAnn,
|
||||
[TL_NOTE_CALL_FOR_EXAM] = ActSeeOneCfe,
|
||||
/* Users tab */
|
||||
/* Messages tab */
|
||||
[TL_NOTE_NOTICE ] = ActSeeOneNot,
|
||||
|
@ -598,7 +598,7 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not,
|
|||
[TL_NOTE_CRS_DOC_PUB_FILE ] = "file.svg",
|
||||
[TL_NOTE_CRS_SHA_PUB_FILE ] = "file.svg",
|
||||
/* Assessment tab */
|
||||
[TL_NOTE_EXAM_ANNOUNCEMENT] = "bullhorn.svg",
|
||||
[TL_NOTE_CALL_FOR_EXAM] = "bullhorn.svg",
|
||||
/* Users tab */
|
||||
/* Messages tab */
|
||||
[TL_NOTE_NOTICE ] = "sticky-note.svg",
|
||||
|
@ -658,12 +658,12 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not,
|
|||
if (Not->HieCod != Gbl.Hierarchy.Crs.CrsCod) // Not the current course
|
||||
Crs_PutParamCrsCod (Not->HieCod); // Go to another course
|
||||
break;
|
||||
case TL_NOTE_EXAM_ANNOUNCEMENT:
|
||||
case TL_NOTE_CALL_FOR_EXAM:
|
||||
Frm_SetAnchorStr (Not->Cod,&Anchor);
|
||||
Frm_BeginFormUniqueAnchor (TL_DefaultActions[Not->NoteType],
|
||||
Anchor); // Locate on this specific exam
|
||||
Frm_FreeAnchorStr (Anchor);
|
||||
ExaAnn_PutHiddenParamExaCod (Not->Cod);
|
||||
Cfe_PutHiddenParamExaCod (Not->Cod);
|
||||
if (Not->HieCod != Gbl.Hierarchy.Crs.CrsCod) // Not the current course
|
||||
Crs_PutParamCrsCod (Not->HieCod); // Go to another course
|
||||
break;
|
||||
|
@ -741,8 +741,8 @@ void Tml_Not_GetNoteSummary (const struct Tml_Not_Note *Not,
|
|||
case TL_NOTE_CRS_SHA_PUB_FILE:
|
||||
Brw_GetSummaryAndContentOfFile (SummaryStr,NULL,Not->Cod,false);
|
||||
break;
|
||||
case TL_NOTE_EXAM_ANNOUNCEMENT:
|
||||
ExaAnn_GetSummaryAndContentExamAnn (SummaryStr,NULL,Not->Cod,false);
|
||||
case TL_NOTE_CALL_FOR_EXAM:
|
||||
Cfe_GetSummaryAndContentCallForExam (SummaryStr,NULL,Not->Cod,false);
|
||||
break;
|
||||
case TL_NOTE_POST:
|
||||
// Not applicable
|
||||
|
@ -916,7 +916,7 @@ void Tml_Not_StoreAndPublishNoteInternal (Tml_Not_NoteType_t NoteType,long Cod,
|
|||
break;
|
||||
case TL_NOTE_CRS_DOC_PUB_FILE:
|
||||
case TL_NOTE_CRS_SHA_PUB_FILE:
|
||||
case TL_NOTE_EXAM_ANNOUNCEMENT:
|
||||
case TL_NOTE_CALL_FOR_EXAM:
|
||||
case TL_NOTE_NOTICE:
|
||||
HieCod = Gbl.Hierarchy.Crs.CrsCod;
|
||||
break;
|
||||
|
|
|
@ -58,7 +58,7 @@ typedef enum
|
|||
TL_NOTE_CRS_DOC_PUB_FILE = 7, // Public file in documents of course
|
||||
TL_NOTE_CRS_SHA_PUB_FILE = 8, // Public file in shared files of course
|
||||
/* Assessment tab */
|
||||
TL_NOTE_EXAM_ANNOUNCEMENT = 9, // Exam announcement in a course
|
||||
TL_NOTE_CALL_FOR_EXAM = 9, // Exam announcement in a course
|
||||
/* Users tab */
|
||||
/* Messages tab */
|
||||
TL_NOTE_NOTICE = 12, // A public notice in a course
|
||||
|
|
Loading…
Reference in New Issue