mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-13 04:04:35 +02:00
Version 17.2
This commit is contained in:
parent
a92307a062
commit
06ba4b2d99
23
sql/swad.sql
23
sql/swad.sql
|
@ -930,6 +930,29 @@ CREATE TABLE IF NOT EXISTS plugins (
|
||||||
IP CHAR(15) NOT NULL,
|
IP CHAR(15) NOT NULL,
|
||||||
UNIQUE INDEX(PlgCod));
|
UNIQUE INDEX(PlgCod));
|
||||||
--
|
--
|
||||||
|
-- Table Prj_grp: stores the groups associated to projects
|
||||||
|
--
|
||||||
|
CREATE TABLE IF NOT EXISTS prj_grp (
|
||||||
|
PrjCod INT NOT NULL,
|
||||||
|
GrpCod INT NOT NULL,
|
||||||
|
UNIQUE INDEX(PrjCod,GrpCod));
|
||||||
|
--
|
||||||
|
-- Table projects: stores the projects proposed by the teachers to their students
|
||||||
|
--
|
||||||
|
CREATE TABLE IF NOT EXISTS projects (
|
||||||
|
PrjCod INT NOT NULL AUTO_INCREMENT,
|
||||||
|
CrsCod INT NOT NULL DEFAULT -1,
|
||||||
|
Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||||
|
NumNotif INT NOT NULL DEFAULT 0,
|
||||||
|
UsrCod INT NOT NULL,
|
||||||
|
StartTime DATETIME NOT NULL,
|
||||||
|
EndTime DATETIME NOT NULL,
|
||||||
|
Title VARCHAR(2047) NOT NULL,
|
||||||
|
Folder VARBINARY(255) NOT NULL,
|
||||||
|
Txt TEXT NOT NULL,
|
||||||
|
UNIQUE INDEX(PrjCod),
|
||||||
|
INDEX(CrsCod,Hidden));
|
||||||
|
--
|
||||||
-- Table sessions: stores the information of open sessions
|
-- Table sessions: stores the information of open sessions
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS sessions (
|
CREATE TABLE IF NOT EXISTS sessions (
|
||||||
|
|
|
@ -65,6 +65,7 @@
|
||||||
#include "swad_preference.h"
|
#include "swad_preference.h"
|
||||||
#include "swad_privacy.h"
|
#include "swad_privacy.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
|
#include "swad_project.h"
|
||||||
#include "swad_QR.h"
|
#include "swad_QR.h"
|
||||||
#include "swad_report.h"
|
#include "swad_report.h"
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
|
@ -424,6 +425,7 @@ Course:
|
||||||
Assessment:
|
Assessment:
|
||||||
288. ActSeeAss Show the assessment system
|
288. ActSeeAss Show the assessment system
|
||||||
289. ActSeeAsg Show assignments
|
289. ActSeeAsg Show assignments
|
||||||
|
NEW. ActSeePrj Show projects
|
||||||
290. ActReqTst Request a test of self-assesment
|
290. ActReqTst Request a test of self-assesment
|
||||||
NEW. ActSeeAllGam Remote control
|
NEW. ActSeeAllGam Remote control
|
||||||
291. ActSeeAllSvy List all surveys in pages
|
291. ActSeeAllSvy List all surveys in pages
|
||||||
|
@ -440,6 +442,7 @@ Assessment:
|
||||||
301. ActRchTxtEdiAss Editor of rich text of assessment
|
301. ActRchTxtEdiAss Editor of rich text of assessment
|
||||||
302. ActRcvPlaTxtAss Receive and change the plain text of the assessment system
|
302. ActRcvPlaTxtAss Receive and change the plain text of the assessment system
|
||||||
303. ActRcvRchTxtAss Receive and change the rich text of the assessment system
|
303. ActRcvRchTxtAss Receive and change the rich text of the assessment system
|
||||||
|
|
||||||
304. ActFrmNewAsg Form to create a new assignment
|
304. ActFrmNewAsg Form to create a new assignment
|
||||||
305. ActEdiOneAsg Edit one assignment
|
305. ActEdiOneAsg Edit one assignment
|
||||||
306. ActPrnOneAsg Print one assignment
|
306. ActPrnOneAsg Print one assignment
|
||||||
|
@ -450,6 +453,16 @@ Assessment:
|
||||||
311. ActHidAsg Hide assignment
|
311. ActHidAsg Hide assignment
|
||||||
312. ActShoAsg Show assignment
|
312. ActShoAsg Show assignment
|
||||||
|
|
||||||
|
NEW. ActFrmNewPrj Form to create a new project
|
||||||
|
NEW. ActEdiOnePrj Edit one project
|
||||||
|
NEW. ActPrnOnePrj Print one project
|
||||||
|
NEW. ActNewPrj Create new project
|
||||||
|
NEW. ActChgPrj Modify data of an existing project
|
||||||
|
NEW. ActReqRemPrj Request the removal of an project
|
||||||
|
NEW. ActRemPrj Remove project
|
||||||
|
NEW. ActHidPrj Hide project
|
||||||
|
NEW. ActShoPrj Show project
|
||||||
|
|
||||||
313. ActSeeTst Show the seft-assessment test
|
313. ActSeeTst Show the seft-assessment test
|
||||||
314. ActAssTst Assess a self-assessment test
|
314. ActAssTst Assess a self-assessment test
|
||||||
315. ActEdiTstQst Request the edition of self-assessment questions
|
315. ActEdiTstQst Request the edition of self-assessment questions
|
||||||
|
@ -1902,10 +1915,11 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
// Actions in menu:
|
// Actions in menu:
|
||||||
/* ActSeeAss */{ 15, 0,TabAss,ActSeeAss ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"infogrades64x64.gif" },
|
/* ActSeeAss */{ 15, 0,TabAss,ActSeeAss ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_ShowInfo ,"infogrades64x64.gif" },
|
||||||
/* ActSeeAsg */{ 801, 1,TabAss,ActSeeAsg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_SeeAssignments ,"desk64x64.gif" },
|
/* ActSeeAsg */{ 801, 1,TabAss,ActSeeAsg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_SeeAssignments ,"desk64x64.gif" },
|
||||||
/* ActReqTst */{ 103, 2,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowFormAskTst ,"test64x64.gif" },
|
/* ActSeePrj */{1674, 2,TabAss,ActSeePrj ,0x200,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_SeeProjects ,"project64x64.png" },
|
||||||
/* ActSeeAllGam */{1649, 3,TabAss,ActSeeAllGam ,0x200,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_SeeAllGames ,"remote64x64.png" },
|
/* ActReqTst */{ 103, 3,TabAss,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowFormAskTst ,"test64x64.gif" },
|
||||||
/* ActSeeAllSvy */{ 966, 4,TabAss,ActSeeAllSvy ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_SeeAllSurveys ,"survey64x64.gif" },
|
/* ActSeeAllGam */{1649, 4,TabAss,ActSeeAllGam ,0x200,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_SeeAllGames ,"remote64x64.png" },
|
||||||
/* ActSeeAllExaAnn */{ 85, 5,TabAss,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_ListExamAnnouncementsSee ,"announce64x64.gif" },
|
/* ActSeeAllSvy */{ 966, 5,TabAss,ActSeeAllSvy ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Svy_SeeAllSurveys ,"survey64x64.gif" },
|
||||||
|
/* ActSeeAllExaAnn */{ 85, 6,TabAss,ActSeeAllExaAnn ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_ListExamAnnouncementsSee ,"announce64x64.gif" },
|
||||||
|
|
||||||
// Actions not in menu:
|
// Actions not in menu:
|
||||||
/* ActEdiAss */{ 69,-1,TabUnk,ActSeeAss ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_FormsToSelSendInfo ,NULL},
|
/* ActEdiAss */{ 69,-1,TabUnk,ActSeeAss ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Inf_FormsToSelSendInfo ,NULL},
|
||||||
|
@ -1930,6 +1944,16 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL},
|
/* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL},
|
||||||
/* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ShowAssignment ,NULL},
|
/* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_ShowAssignment ,NULL},
|
||||||
|
|
||||||
|
/* ActFrmNewPrj */{1675,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatOrEditPrj ,NULL},
|
||||||
|
/* ActEdiOnePrj */{1676,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatOrEditPrj ,NULL},
|
||||||
|
/* ActPrnOnePrj */{1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL},
|
||||||
|
/* ActNewPrj */{1678,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL},
|
||||||
|
/* ActChgPrj */{1679,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL},
|
||||||
|
/* ActReqRemPrj */{1680,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqRemProject ,NULL},
|
||||||
|
/* ActRemPrj */{1681,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RemoveProject ,NULL},
|
||||||
|
/* ActHidPrj */{1682,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_HideProject ,NULL},
|
||||||
|
/* ActShoPrj */{1683,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowProject ,NULL},
|
||||||
|
|
||||||
/* ActSeeTst */{ 29,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowNewTest ,NULL},
|
/* ActSeeTst */{ 29,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowNewTest ,NULL},
|
||||||
/* ActAssTst */{ 98,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_AssessTest ,NULL},
|
/* ActAssTst */{ 98,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_AssessTest ,NULL},
|
||||||
|
|
||||||
|
@ -4729,6 +4753,16 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
||||||
ActPlyGam1stQst, // #1671
|
ActPlyGam1stQst, // #1671
|
||||||
ActPlyGamNxtQst, // #1672
|
ActPlyGamNxtQst, // #1672
|
||||||
ActPlyGamAns, // #1673
|
ActPlyGamAns, // #1673
|
||||||
|
ActSeePrj, // #1674
|
||||||
|
ActFrmNewPrj, // #1675
|
||||||
|
ActEdiOnePrj, // #1676
|
||||||
|
ActPrnOnePrj, // #1677
|
||||||
|
ActNewPrj, // #1678
|
||||||
|
ActChgPrj, // #1679
|
||||||
|
ActReqRemPrj, // #1680
|
||||||
|
ActRemPrj, // #1681
|
||||||
|
ActHidPrj, // #1682
|
||||||
|
ActShoPrj, // #1683
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
203
swad_action.h
203
swad_action.h
|
@ -58,9 +58,9 @@ typedef enum
|
||||||
|
|
||||||
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 33 + 24 + 115 + 96 + 416 + 165 + 172 + 42 + 14 + 97)
|
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 33 + 24 + 115 + 106 + 416 + 165 + 172 + 42 + 14 + 97)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1673
|
#define Act_MAX_ACTION_COD 1683
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12
|
||||||
|
|
||||||
|
@ -434,108 +434,119 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
||||||
// Actions in menu
|
// Actions in menu
|
||||||
#define ActSeeAss (ActChgCalCrs1stDay + 1)
|
#define ActSeeAss (ActChgCalCrs1stDay + 1)
|
||||||
#define ActSeeAsg (ActChgCalCrs1stDay + 2)
|
#define ActSeeAsg (ActChgCalCrs1stDay + 2)
|
||||||
#define ActReqTst (ActChgCalCrs1stDay + 3)
|
#define ActSeePrj (ActChgCalCrs1stDay + 3)
|
||||||
#define ActSeeAllGam (ActChgCalCrs1stDay + 4)
|
#define ActReqTst (ActChgCalCrs1stDay + 4)
|
||||||
#define ActSeeAllSvy (ActChgCalCrs1stDay + 5)
|
#define ActSeeAllGam (ActChgCalCrs1stDay + 5)
|
||||||
#define ActSeeAllExaAnn (ActChgCalCrs1stDay + 6)
|
#define ActSeeAllSvy (ActChgCalCrs1stDay + 6)
|
||||||
|
#define ActSeeAllExaAnn (ActChgCalCrs1stDay + 7)
|
||||||
|
|
||||||
// Secondary actions
|
// Secondary actions
|
||||||
#define ActEdiAss (ActChgCalCrs1stDay + 7)
|
#define ActEdiAss (ActChgCalCrs1stDay + 8)
|
||||||
#define ActChgFrcReaAss (ActChgCalCrs1stDay + 8)
|
#define ActChgFrcReaAss (ActChgCalCrs1stDay + 9)
|
||||||
#define ActChgHavReaAss (ActChgCalCrs1stDay + 9)
|
#define ActChgHavReaAss (ActChgCalCrs1stDay + 10)
|
||||||
#define ActSelInfSrcAss (ActChgCalCrs1stDay + 10)
|
#define ActSelInfSrcAss (ActChgCalCrs1stDay + 11)
|
||||||
#define ActRcvURLAss (ActChgCalCrs1stDay + 11)
|
#define ActRcvURLAss (ActChgCalCrs1stDay + 12)
|
||||||
#define ActRcvPagAss (ActChgCalCrs1stDay + 12)
|
#define ActRcvPagAss (ActChgCalCrs1stDay + 13)
|
||||||
#define ActEditorAss (ActChgCalCrs1stDay + 13)
|
#define ActEditorAss (ActChgCalCrs1stDay + 14)
|
||||||
#define ActPlaTxtEdiAss (ActChgCalCrs1stDay + 14)
|
#define ActPlaTxtEdiAss (ActChgCalCrs1stDay + 15)
|
||||||
#define ActRchTxtEdiAss (ActChgCalCrs1stDay + 15)
|
#define ActRchTxtEdiAss (ActChgCalCrs1stDay + 16)
|
||||||
#define ActRcvPlaTxtAss (ActChgCalCrs1stDay + 16)
|
#define ActRcvPlaTxtAss (ActChgCalCrs1stDay + 17)
|
||||||
#define ActRcvRchTxtAss (ActChgCalCrs1stDay + 17)
|
#define ActRcvRchTxtAss (ActChgCalCrs1stDay + 18)
|
||||||
|
|
||||||
#define ActFrmNewAsg (ActChgCalCrs1stDay + 18)
|
#define ActFrmNewAsg (ActChgCalCrs1stDay + 19)
|
||||||
#define ActEdiOneAsg (ActChgCalCrs1stDay + 19)
|
#define ActEdiOneAsg (ActChgCalCrs1stDay + 20)
|
||||||
#define ActPrnOneAsg (ActChgCalCrs1stDay + 20)
|
#define ActPrnOneAsg (ActChgCalCrs1stDay + 21)
|
||||||
#define ActNewAsg (ActChgCalCrs1stDay + 21)
|
#define ActNewAsg (ActChgCalCrs1stDay + 22)
|
||||||
#define ActChgAsg (ActChgCalCrs1stDay + 22)
|
#define ActChgAsg (ActChgCalCrs1stDay + 23)
|
||||||
#define ActReqRemAsg (ActChgCalCrs1stDay + 23)
|
#define ActReqRemAsg (ActChgCalCrs1stDay + 24)
|
||||||
#define ActRemAsg (ActChgCalCrs1stDay + 24)
|
#define ActRemAsg (ActChgCalCrs1stDay + 25)
|
||||||
#define ActHidAsg (ActChgCalCrs1stDay + 25)
|
#define ActHidAsg (ActChgCalCrs1stDay + 26)
|
||||||
#define ActShoAsg (ActChgCalCrs1stDay + 26)
|
#define ActShoAsg (ActChgCalCrs1stDay + 27)
|
||||||
|
|
||||||
#define ActSeeTst (ActChgCalCrs1stDay + 27)
|
#define ActFrmNewPrj (ActChgCalCrs1stDay + 28)
|
||||||
#define ActAssTst (ActChgCalCrs1stDay + 28)
|
#define ActEdiOnePrj (ActChgCalCrs1stDay + 29)
|
||||||
#define ActEdiTstQst (ActChgCalCrs1stDay + 29)
|
#define ActPrnOnePrj (ActChgCalCrs1stDay + 30)
|
||||||
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 30)
|
#define ActNewPrj (ActChgCalCrs1stDay + 31)
|
||||||
#define ActReqImpTstQst (ActChgCalCrs1stDay + 31)
|
#define ActChgPrj (ActChgCalCrs1stDay + 32)
|
||||||
#define ActImpTstQst (ActChgCalCrs1stDay + 32)
|
#define ActReqRemPrj (ActChgCalCrs1stDay + 33)
|
||||||
#define ActLstTstQst (ActChgCalCrs1stDay + 33)
|
#define ActRemPrj (ActChgCalCrs1stDay + 34)
|
||||||
#define ActRcvTstQst (ActChgCalCrs1stDay + 34)
|
#define ActHidPrj (ActChgCalCrs1stDay + 35)
|
||||||
#define ActReqRemTstQst (ActChgCalCrs1stDay + 35)
|
#define ActShoPrj (ActChgCalCrs1stDay + 36)
|
||||||
#define ActRemTstQst (ActChgCalCrs1stDay + 36)
|
|
||||||
#define ActShfTstQst (ActChgCalCrs1stDay + 37)
|
|
||||||
#define ActCfgTst (ActChgCalCrs1stDay + 38)
|
|
||||||
#define ActEnableTag (ActChgCalCrs1stDay + 39)
|
|
||||||
#define ActDisableTag (ActChgCalCrs1stDay + 40)
|
|
||||||
#define ActRenTag (ActChgCalCrs1stDay + 41)
|
|
||||||
#define ActRcvCfgTst (ActChgCalCrs1stDay + 42)
|
|
||||||
|
|
||||||
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 43)
|
#define ActSeeTst (ActChgCalCrs1stDay + 37)
|
||||||
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 44)
|
#define ActAssTst (ActChgCalCrs1stDay + 38)
|
||||||
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 45)
|
#define ActEdiTstQst (ActChgCalCrs1stDay + 39)
|
||||||
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 46)
|
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 40)
|
||||||
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 47)
|
#define ActReqImpTstQst (ActChgCalCrs1stDay + 41)
|
||||||
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 48)
|
#define ActImpTstQst (ActChgCalCrs1stDay + 42)
|
||||||
|
#define ActLstTstQst (ActChgCalCrs1stDay + 43)
|
||||||
|
#define ActRcvTstQst (ActChgCalCrs1stDay + 44)
|
||||||
|
#define ActReqRemTstQst (ActChgCalCrs1stDay + 45)
|
||||||
|
#define ActRemTstQst (ActChgCalCrs1stDay + 46)
|
||||||
|
#define ActShfTstQst (ActChgCalCrs1stDay + 47)
|
||||||
|
#define ActCfgTst (ActChgCalCrs1stDay + 48)
|
||||||
|
#define ActEnableTag (ActChgCalCrs1stDay + 49)
|
||||||
|
#define ActDisableTag (ActChgCalCrs1stDay + 50)
|
||||||
|
#define ActRenTag (ActChgCalCrs1stDay + 51)
|
||||||
|
#define ActRcvCfgTst (ActChgCalCrs1stDay + 52)
|
||||||
|
|
||||||
#define ActSeeOneGam (ActChgCalCrs1stDay + 49)
|
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 53)
|
||||||
#define ActPlyGam (ActChgCalCrs1stDay + 50)
|
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 54)
|
||||||
#define ActPlyGam1stQst (ActChgCalCrs1stDay + 51)
|
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 55)
|
||||||
#define ActPlyGamNxtQst (ActChgCalCrs1stDay + 52)
|
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 56)
|
||||||
#define ActPlyGamAns (ActChgCalCrs1stDay + 53)
|
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 57)
|
||||||
#define ActAnsGam (ActChgCalCrs1stDay + 54)
|
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 58)
|
||||||
#define ActFrmNewGam (ActChgCalCrs1stDay + 55)
|
|
||||||
#define ActEdiOneGam (ActChgCalCrs1stDay + 56)
|
|
||||||
#define ActNewGam (ActChgCalCrs1stDay + 57)
|
|
||||||
#define ActChgGam (ActChgCalCrs1stDay + 58)
|
|
||||||
#define ActReqRemGam (ActChgCalCrs1stDay + 59)
|
|
||||||
#define ActRemGam (ActChgCalCrs1stDay + 60)
|
|
||||||
#define ActReqRstGam (ActChgCalCrs1stDay + 61)
|
|
||||||
#define ActRstGam (ActChgCalCrs1stDay + 62)
|
|
||||||
#define ActHidGam (ActChgCalCrs1stDay + 63)
|
|
||||||
#define ActShoGam (ActChgCalCrs1stDay + 64)
|
|
||||||
#define ActAddOneGamQst (ActChgCalCrs1stDay + 65)
|
|
||||||
#define ActGamLstTstQst (ActChgCalCrs1stDay + 66)
|
|
||||||
#define ActAddTstQstToGam (ActChgCalCrs1stDay + 67)
|
|
||||||
#define ActReqRemGamQst (ActChgCalCrs1stDay + 68)
|
|
||||||
#define ActRemGamQst (ActChgCalCrs1stDay + 69)
|
|
||||||
#define ActUp_GamQst (ActChgCalCrs1stDay + 70)
|
|
||||||
#define ActDwnGamQst (ActChgCalCrs1stDay + 71)
|
|
||||||
|
|
||||||
#define ActSeeOneSvy (ActChgCalCrs1stDay + 72)
|
#define ActSeeOneGam (ActChgCalCrs1stDay + 59)
|
||||||
#define ActAnsSvy (ActChgCalCrs1stDay + 73)
|
#define ActPlyGam (ActChgCalCrs1stDay + 60)
|
||||||
#define ActFrmNewSvy (ActChgCalCrs1stDay + 74)
|
#define ActPlyGam1stQst (ActChgCalCrs1stDay + 61)
|
||||||
#define ActEdiOneSvy (ActChgCalCrs1stDay + 75)
|
#define ActPlyGamNxtQst (ActChgCalCrs1stDay + 62)
|
||||||
#define ActNewSvy (ActChgCalCrs1stDay + 76)
|
#define ActPlyGamAns (ActChgCalCrs1stDay + 63)
|
||||||
#define ActChgSvy (ActChgCalCrs1stDay + 77)
|
#define ActAnsGam (ActChgCalCrs1stDay + 64)
|
||||||
#define ActReqRemSvy (ActChgCalCrs1stDay + 78)
|
#define ActFrmNewGam (ActChgCalCrs1stDay + 65)
|
||||||
#define ActRemSvy (ActChgCalCrs1stDay + 79)
|
#define ActEdiOneGam (ActChgCalCrs1stDay + 66)
|
||||||
#define ActReqRstSvy (ActChgCalCrs1stDay + 80)
|
#define ActNewGam (ActChgCalCrs1stDay + 67)
|
||||||
#define ActRstSvy (ActChgCalCrs1stDay + 81)
|
#define ActChgGam (ActChgCalCrs1stDay + 68)
|
||||||
#define ActHidSvy (ActChgCalCrs1stDay + 82)
|
#define ActReqRemGam (ActChgCalCrs1stDay + 69)
|
||||||
#define ActShoSvy (ActChgCalCrs1stDay + 83)
|
#define ActRemGam (ActChgCalCrs1stDay + 70)
|
||||||
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 84)
|
#define ActReqRstGam (ActChgCalCrs1stDay + 71)
|
||||||
#define ActRcvSvyQst (ActChgCalCrs1stDay + 85)
|
#define ActRstGam (ActChgCalCrs1stDay + 72)
|
||||||
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 86)
|
#define ActHidGam (ActChgCalCrs1stDay + 73)
|
||||||
#define ActRemSvyQst (ActChgCalCrs1stDay + 87)
|
#define ActShoGam (ActChgCalCrs1stDay + 74)
|
||||||
|
#define ActAddOneGamQst (ActChgCalCrs1stDay + 75)
|
||||||
|
#define ActGamLstTstQst (ActChgCalCrs1stDay + 76)
|
||||||
|
#define ActAddTstQstToGam (ActChgCalCrs1stDay + 77)
|
||||||
|
#define ActReqRemGamQst (ActChgCalCrs1stDay + 78)
|
||||||
|
#define ActRemGamQst (ActChgCalCrs1stDay + 79)
|
||||||
|
#define ActUp_GamQst (ActChgCalCrs1stDay + 80)
|
||||||
|
#define ActDwnGamQst (ActChgCalCrs1stDay + 81)
|
||||||
|
|
||||||
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 88)
|
#define ActSeeOneSvy (ActChgCalCrs1stDay + 82)
|
||||||
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 89)
|
#define ActAnsSvy (ActChgCalCrs1stDay + 83)
|
||||||
#define ActEdiExaAnn (ActChgCalCrs1stDay + 90)
|
#define ActFrmNewSvy (ActChgCalCrs1stDay + 84)
|
||||||
#define ActRcvExaAnn (ActChgCalCrs1stDay + 91)
|
#define ActEdiOneSvy (ActChgCalCrs1stDay + 85)
|
||||||
#define ActPrnExaAnn (ActChgCalCrs1stDay + 92)
|
#define ActNewSvy (ActChgCalCrs1stDay + 86)
|
||||||
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 93)
|
#define ActChgSvy (ActChgCalCrs1stDay + 87)
|
||||||
#define ActRemExaAnn (ActChgCalCrs1stDay + 94)
|
#define ActReqRemSvy (ActChgCalCrs1stDay + 88)
|
||||||
#define ActHidExaAnn (ActChgCalCrs1stDay + 95)
|
#define ActRemSvy (ActChgCalCrs1stDay + 89)
|
||||||
#define ActShoExaAnn (ActChgCalCrs1stDay + 96)
|
#define ActReqRstSvy (ActChgCalCrs1stDay + 90)
|
||||||
|
#define ActRstSvy (ActChgCalCrs1stDay + 91)
|
||||||
|
#define ActHidSvy (ActChgCalCrs1stDay + 92)
|
||||||
|
#define ActShoSvy (ActChgCalCrs1stDay + 93)
|
||||||
|
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 94)
|
||||||
|
#define ActRcvSvyQst (ActChgCalCrs1stDay + 95)
|
||||||
|
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 96)
|
||||||
|
#define ActRemSvyQst (ActChgCalCrs1stDay + 97)
|
||||||
|
|
||||||
|
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 98)
|
||||||
|
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 99)
|
||||||
|
#define ActEdiExaAnn (ActChgCalCrs1stDay + 100)
|
||||||
|
#define ActRcvExaAnn (ActChgCalCrs1stDay + 101)
|
||||||
|
#define ActPrnExaAnn (ActChgCalCrs1stDay + 102)
|
||||||
|
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 103)
|
||||||
|
#define ActRemExaAnn (ActChgCalCrs1stDay + 104)
|
||||||
|
#define ActHidExaAnn (ActChgCalCrs1stDay + 105)
|
||||||
|
#define ActShoExaAnn (ActChgCalCrs1stDay + 106)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Files tab **********************************/
|
/******************************** Files tab **********************************/
|
||||||
|
|
|
@ -1291,7 +1291,8 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
||||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||||
NumGrpTyp++)
|
NumGrpTyp++)
|
||||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||||
Grp_ListGrpsToEditAsgAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],AsgCod,Grp_ASSIGNMENT);
|
Grp_ListGrpsToEditAsgPrjAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
|
AsgCod,Grp_ASSIGNMENT);
|
||||||
|
|
||||||
/***** End table and box *****/
|
/***** End table and box *****/
|
||||||
Box_EndBoxTable ();
|
Box_EndBoxTable ();
|
||||||
|
|
|
@ -1213,7 +1213,8 @@ static void Att_ShowLstGrpsToEditAttEvent (long AttCod)
|
||||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||||
NumGrpTyp++)
|
NumGrpTyp++)
|
||||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||||
Grp_ListGrpsToEditAsgAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],AttCod,Grp_ATT_EVENT);
|
Grp_ListGrpsToEditAsgPrjAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
|
AttCod,Grp_ATT_EVENT);
|
||||||
|
|
||||||
/***** End table and box *****/
|
/***** End table and box *****/
|
||||||
Box_EndBoxTable ();
|
Box_EndBoxTable ();
|
||||||
|
|
|
@ -252,14 +252,29 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 17.1 (2017-09-15)"
|
#define Log_PLATFORM_VERSION "SWAD 17.2 (2017-09-17)"
|
||||||
#define CSS_FILE "swad17.0.css"
|
#define CSS_FILE "swad17.0.css"
|
||||||
#define JS_FILE "swad16.206.3.js"
|
#define JS_FILE "swad16.206.3.js"
|
||||||
|
|
||||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
|
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
|
||||||
/*
|
/*
|
||||||
Version 17.1: Sep 14, 2017 New module swad_project. Not finished. (229123 lines)
|
Version 17.2: Sep 17, 2017 New option for projects. Not finished. (229575 lines)
|
||||||
|
12 changes necessary in database:
|
||||||
|
CREATE TABLE IF NOT EXISTS projects (PrjCod INT NOT NULL AUTO_INCREMENT,CrsCod INT NOT NULL DEFAULT -1,Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',NumNotif INT NOT NULL DEFAULT 0,UsrCod INT NOT NULL,StartTime DATETIME NOT NULL,EndTime DATETIME NOT NULL,Title VARCHAR(2047) NOT NULL,Folder VARBINARY(255) NOT NULL,Txt TEXT NOT NULL,UNIQUE INDEX(PrjCod),INDEX(CrsCod,Hidden));
|
||||||
|
CREATE TABLE IF NOT EXISTS prj_grp (PrjCod INT NOT NULL,GrpCod INT NOT NULL,UNIQUE INDEX(PrjCod,GrpCod));
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1674','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1675','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1676','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1677','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1678','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1679','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1680','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1681','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1682','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1683','es','N','Mostrar respuestas de pregunta juego');
|
||||||
|
|
||||||
|
Version 17.1: Sep 15, 2017 New module swad_project. Not finished. (229123 lines)
|
||||||
Copy the following icons to icon public directory:
|
Copy the following icons to icon public directory:
|
||||||
sudo cp icon/iconset/awesome/action64x64/guide64x64.png /var/www/html/swad/icon/iconset/awesome/action64x64/
|
sudo cp icon/iconset/awesome/action64x64/guide64x64.png /var/www/html/swad/icon/iconset/awesome/action64x64/
|
||||||
sudo cp icon/iconset/awesome/action64x64/project64x64.png /var/www/html/swad/icon/iconset/awesome/action64x64/
|
sudo cp icon/iconset/awesome/action64x64/project64x64.png /var/www/html/swad/icon/iconset/awesome/action64x64/
|
||||||
|
|
|
@ -1985,6 +1985,55 @@ mysql> DESCRIBE plugins;
|
||||||
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
||||||
"UNIQUE INDEX(PlgCod))");
|
"UNIQUE INDEX(PlgCod))");
|
||||||
|
|
||||||
|
/***** Table prj_grp *****/
|
||||||
|
/*
|
||||||
|
mysql> DESCRIBE prj_grp;
|
||||||
|
+--------+---------+------+-----+---------+-------+
|
||||||
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
|
+--------+---------+------+-----+---------+-------+
|
||||||
|
| PrjCod | int(11) | NO | PRI | NULL | |
|
||||||
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
||||||
|
+--------+---------+------+-----+---------+-------+
|
||||||
|
2 rows in set (0,00 sec)
|
||||||
|
*/
|
||||||
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prj_grp ("
|
||||||
|
"PrjCod INT NOT NULL,"
|
||||||
|
"GrpCod INT NOT NULL,"
|
||||||
|
"UNIQUE INDEX(PrjCod,GrpCod))");
|
||||||
|
|
||||||
|
/***** Table projects *****/
|
||||||
|
/*
|
||||||
|
mysql> DESCRIBE projects;
|
||||||
|
+-----------+----------------+------+-----+---------+----------------+
|
||||||
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
|
+-----------+----------------+------+-----+---------+----------------+
|
||||||
|
| PrjCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||||
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
||||||
|
| Hidden | enum('N','Y') | NO | | N | |
|
||||||
|
| NumNotif | int(11) | NO | | 0 | |
|
||||||
|
| UsrCod | int(11) | NO | | NULL | |
|
||||||
|
| StartTime | datetime | NO | | NULL | |
|
||||||
|
| EndTime | datetime | NO | | NULL | |
|
||||||
|
| Title | varchar(2047) | NO | | NULL | |
|
||||||
|
| Folder | varbinary(255) | NO | | NULL | |
|
||||||
|
| Txt | text | NO | | NULL | |
|
||||||
|
+-----------+----------------+------+-----+---------+----------------+
|
||||||
|
10 rows in set (0,00 sec)
|
||||||
|
*/
|
||||||
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS projects ("
|
||||||
|
"PrjCod INT NOT NULL AUTO_INCREMENT,"
|
||||||
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
||||||
|
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
||||||
|
"NumNotif INT NOT NULL DEFAULT 0,"
|
||||||
|
"UsrCod INT NOT NULL,"
|
||||||
|
"StartTime DATETIME NOT NULL,"
|
||||||
|
"EndTime DATETIME NOT NULL,"
|
||||||
|
"Title VARCHAR(2047) NOT NULL," // Prj_MAX_BYTES_ASSIGNMENT_TITLE
|
||||||
|
"Folder VARBINARY(255) NOT NULL," // Brw_MAX_BYTES_FOLDER
|
||||||
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
||||||
|
"UNIQUE INDEX(PrjCod),"
|
||||||
|
"INDEX(CrsCod,Hidden))");
|
||||||
|
|
||||||
/***** Table sessions *****/
|
/***** Table sessions *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE sessions;
|
mysql> DESCRIBE sessions;
|
||||||
|
|
|
@ -2002,7 +2002,7 @@ static void Gam_ShowLstGrpsToEditGame (long GamCod)
|
||||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||||
NumGrpTyp++)
|
NumGrpTyp++)
|
||||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||||
Grp_ListGrpsToEditAsgAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgPrjAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
GamCod,Grp_SURVEY);
|
GamCod,Grp_SURVEY);
|
||||||
|
|
||||||
/***** End table and box *****/
|
/***** End table and box *****/
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#include "swad_icon.h"
|
#include "swad_icon.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_preference.h"
|
#include "swad_preference.h"
|
||||||
|
#include "swad_project.h"
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
#include "swad_theme.h"
|
#include "swad_theme.h"
|
||||||
#include "swad_web_service.h"
|
#include "swad_web_service.h"
|
||||||
|
@ -348,6 +349,11 @@ void Gbl_InitializeGlobals (void)
|
||||||
Gbl.Asgs.LstAsgCods = NULL;
|
Gbl.Asgs.LstAsgCods = NULL;
|
||||||
Gbl.Asgs.SelectedOrder = Asg_ORDER_DEFAULT;
|
Gbl.Asgs.SelectedOrder = Asg_ORDER_DEFAULT;
|
||||||
|
|
||||||
|
Gbl.Prjs.LstIsRead = false; // List is not read
|
||||||
|
Gbl.Prjs.Num = 0;
|
||||||
|
Gbl.Prjs.LstPrjCods = NULL;
|
||||||
|
Gbl.Prjs.SelectedOrder = Prj_ORDER_DEFAULT;
|
||||||
|
|
||||||
Gbl.AttEvents.LstIsRead = false; // List is not read
|
Gbl.AttEvents.LstIsRead = false; // List is not read
|
||||||
Gbl.AttEvents.Num = 0;
|
Gbl.AttEvents.Num = 0;
|
||||||
Gbl.AttEvents.Lst = NULL;
|
Gbl.AttEvents.Lst = NULL;
|
||||||
|
|
|
@ -569,6 +569,15 @@ struct Globals
|
||||||
long AsgCodToEdit; // Used as parameter in contextual links
|
long AsgCodToEdit; // Used as parameter in contextual links
|
||||||
unsigned CurrentPage;
|
unsigned CurrentPage;
|
||||||
} Asgs;
|
} Asgs;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool LstIsRead; // Is the list already read from database, or it needs to be read?
|
||||||
|
unsigned Num; // Number of projects
|
||||||
|
long *LstPrjCods; // List of project codes
|
||||||
|
Dat_StartEndTime_t SelectedOrder;
|
||||||
|
long PrjCodToEdit; // Used as parameter in contextual links
|
||||||
|
unsigned CurrentPage;
|
||||||
|
} Prjs;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
bool LstIsRead; // Is the list already read from database, or it needs to be read?
|
bool LstIsRead; // Is the list already read from database, or it needs to be read?
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include "swad_group.h"
|
#include "swad_group.h"
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
|
#include "swad_project.h"
|
||||||
#include "swad_table.h"
|
#include "swad_table.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1650,8 +1651,8 @@ static void Grp_WriteHeadingGroups (void)
|
||||||
/********* to edit assignments, attendance events, surveys or games **********/
|
/********* to edit assignments, attendance events, surveys or games **********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Grp_ListGrpsToEditAsgAttSvyGam (struct GroupType *GrpTyp,long Cod,
|
void Grp_ListGrpsToEditAsgPrjAttSvyGam (struct GroupType *GrpTyp,long Cod,
|
||||||
Grp_AsgAttSvyGam_t Grp_AsgAttOrSvy)
|
Grp_AsgPrjAttSvyGam_t Grp_AsgAttOrSvy)
|
||||||
{
|
{
|
||||||
struct ListCodGrps LstGrpsIBelong;
|
struct ListCodGrps LstGrpsIBelong;
|
||||||
unsigned NumGrpThisType;
|
unsigned NumGrpThisType;
|
||||||
|
@ -1691,6 +1692,9 @@ void Grp_ListGrpsToEditAsgAttSvyGam (struct GroupType *GrpTyp,long Cod,
|
||||||
case Grp_ASSIGNMENT:
|
case Grp_ASSIGNMENT:
|
||||||
AssociatedToGrp = Asg_CheckIfAsgIsAssociatedToGrp (Cod,Grp->GrpCod);
|
AssociatedToGrp = Asg_CheckIfAsgIsAssociatedToGrp (Cod,Grp->GrpCod);
|
||||||
break;
|
break;
|
||||||
|
case Grp_PROJECT:
|
||||||
|
AssociatedToGrp = Prj_CheckIfPrjIsAssociatedToGrp (Cod,Grp->GrpCod);
|
||||||
|
break;
|
||||||
case Grp_ATT_EVENT:
|
case Grp_ATT_EVENT:
|
||||||
AssociatedToGrp = Att_CheckIfAttEventIsAssociatedToGrp (Cod,Grp->GrpCod);
|
AssociatedToGrp = Att_CheckIfAttEventIsAssociatedToGrp (Cod,Grp->GrpCod);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -124,10 +124,11 @@ typedef enum
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Grp_ASSIGNMENT,
|
Grp_ASSIGNMENT,
|
||||||
|
Grp_PROJECT,
|
||||||
Grp_ATT_EVENT,
|
Grp_ATT_EVENT,
|
||||||
Grp_SURVEY,
|
Grp_SURVEY,
|
||||||
Grp_GAME,
|
Grp_GAME,
|
||||||
} Grp_AsgAttSvyGam_t;
|
} Grp_AsgPrjAttSvyGam_t;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public prototypes ****************************/
|
/****************************** Public prototypes ****************************/
|
||||||
|
@ -152,8 +153,8 @@ void Grp_RegisterUsrIntoGroups (struct UsrData *UsrDat,struct ListCodGrps *LstGr
|
||||||
unsigned Grp_RemoveUsrFromGroups (struct UsrData *UsrDat,struct ListCodGrps *LstGrps);
|
unsigned Grp_RemoveUsrFromGroups (struct UsrData *UsrDat,struct ListCodGrps *LstGrps);
|
||||||
void Grp_RemUsrFromAllGrpsInCrs (long UsrCod,long CrsCod);
|
void Grp_RemUsrFromAllGrpsInCrs (long UsrCod,long CrsCod);
|
||||||
void Grp_RemUsrFromAllGrps (long UsrCod);
|
void Grp_RemUsrFromAllGrps (long UsrCod);
|
||||||
void Grp_ListGrpsToEditAsgAttSvyGam (struct GroupType *GrpTyp,long Cod,
|
void Grp_ListGrpsToEditAsgPrjAttSvyGam (struct GroupType *GrpTyp,long Cod,
|
||||||
Grp_AsgAttSvyGam_t Grp_AsgOrSvy);
|
Grp_AsgPrjAttSvyGam_t Grp_AsgOrSvy);
|
||||||
|
|
||||||
void Grp_ReqRegisterInGrps (void);
|
void Grp_ReqRegisterInGrps (void);
|
||||||
void Grp_ShowLstGrpsToChgMyGrps (void);
|
void Grp_ShowLstGrpsToChgMyGrps (void);
|
||||||
|
|
|
@ -967,6 +967,70 @@ const char *Hlp_ASSESSMENT_Assignments_edit_assignment =
|
||||||
"ASSESSMENT.Assignments.en#edit-assignment";
|
"ASSESSMENT.Assignments.en#edit-assignment";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
const char *Hlp_ASSESSMENT_Projects =
|
||||||
|
#if L==1
|
||||||
|
"ASSESSMENT.Projects.es";
|
||||||
|
#elif L==2
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#elif L==3
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#elif L==4
|
||||||
|
"ASSESSMENT.Projects.es";
|
||||||
|
#elif L==5
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#elif L==6
|
||||||
|
"ASSESSMENT.Projects.es";
|
||||||
|
#elif L==7
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#elif L==8
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#elif L==9
|
||||||
|
"ASSESSMENT.Projects.en";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Hlp_ASSESSMENT_Projects_new_project =
|
||||||
|
#if L==1
|
||||||
|
"ASSESSMENT.Projects.es#nuevo-proyecto";
|
||||||
|
#elif L==2
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#elif L==3
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#elif L==4
|
||||||
|
"ASSESSMENT.Projects.es#nuevo-proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#elif L==6
|
||||||
|
"ASSESSMENT.Projects.es#nuevo-proyecto";
|
||||||
|
#elif L==7
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#elif L==8
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#elif L==9
|
||||||
|
"ASSESSMENT.Projects.en#new-project";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Hlp_ASSESSMENT_Projects_edit_project =
|
||||||
|
#if L==1
|
||||||
|
"ASSESSMENT.Projects.es#editar-proyecto";
|
||||||
|
#elif L==2
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#elif L==3
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#elif L==4
|
||||||
|
"ASSESSMENT.Projects.es#editar-proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#elif L==6
|
||||||
|
"ASSESSMENT.Projects.es#editar-proyecto";
|
||||||
|
#elif L==7
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#elif L==8
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#elif L==9
|
||||||
|
"ASSESSMENT.Projects.en#edit-project";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Hlp_ASSESSMENT_Tests =
|
const char *Hlp_ASSESSMENT_Tests =
|
||||||
#if L==1
|
#if L==1
|
||||||
"ASSESSMENT.Tests.es";
|
"ASSESSMENT.Tests.es";
|
||||||
|
|
10
swad_menu.c
10
swad_menu.c
|
@ -178,11 +178,11 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
|
||||||
{
|
{
|
||||||
ActSeeAss, // 0
|
ActSeeAss, // 0
|
||||||
ActSeeAsg, // 1
|
ActSeeAsg, // 1
|
||||||
ActReqTst, // 2
|
ActSeePrj, // 2
|
||||||
ActSeeAllGam, // 3
|
ActReqTst, // 3
|
||||||
ActSeeAllSvy, // 4
|
ActSeeAllGam, // 4
|
||||||
ActSeeAllExaAnn, // 5
|
ActSeeAllSvy, // 5
|
||||||
0, // 6
|
ActSeeAllExaAnn, // 6
|
||||||
0, // 7
|
0, // 7
|
||||||
0, // 8
|
0, // 8
|
||||||
0, // 9
|
0, // 9
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "swad_forum.h"
|
#include "swad_forum.h"
|
||||||
#include "swad_global.h"
|
#include "swad_global.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
|
#include "swad_project.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*************** External global variables from others modules ***************/
|
/*************** External global variables from others modules ***************/
|
||||||
|
@ -48,6 +49,7 @@ extern const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM];
|
||||||
static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
|
static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
|
||||||
{
|
{
|
||||||
"NumPagAsg", // Pag_ASSIGNMENTS
|
"NumPagAsg", // Pag_ASSIGNMENTS
|
||||||
|
"NumPagPrj", // Pag_PROJECTS
|
||||||
"NumPagGam", // Pag_GAMES
|
"NumPagGam", // Pag_GAMES
|
||||||
"NumPagSvy", // Pag_SURVEYS
|
"NumPagSvy", // Pag_SURVEYS
|
||||||
"NumPagAtt", // Pag_ATT_EVENTS
|
"NumPagAtt", // Pag_ATT_EVENTS
|
||||||
|
@ -160,6 +162,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
|
@ -261,6 +269,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||||
|
@ -348,6 +362,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
||||||
|
@ -446,6 +466,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
||||||
|
@ -532,6 +558,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
||||||
|
@ -617,6 +649,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
||||||
Asg_PutHiddenParamAsgOrder ();
|
Asg_PutHiddenParamAsgOrder ();
|
||||||
Grp_PutParamWhichGrps ();
|
Grp_PutParamWhichGrps ();
|
||||||
break;
|
break;
|
||||||
|
case Pag_PROJECTS:
|
||||||
|
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
|
||||||
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
||||||
|
Prj_PutHiddenParamPrjOrder ();
|
||||||
|
Grp_PutParamWhichGrps ();
|
||||||
|
break;
|
||||||
case Pag_GAMES:
|
case Pag_GAMES:
|
||||||
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
Act_FormStartAnchor (ActSeeAllGam,Pagination->Anchor);
|
||||||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
||||||
|
|
507
swad_project.c
507
swad_project.c
File diff suppressed because it is too large
Load Diff
|
@ -78,10 +78,6 @@ void Prj_GetDataOfProjectByCod (struct Project *Prj);
|
||||||
void Prj_GetDataOfProjectByFolder (struct Project *Prj);
|
void Prj_GetDataOfProjectByFolder (struct Project *Prj);
|
||||||
void Prj_FreeListProjects (void);
|
void Prj_FreeListProjects (void);
|
||||||
|
|
||||||
void Prj_GetNotifProject (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
|
||||||
char **ContentStr,
|
|
||||||
long PrjCod,bool GetContent);
|
|
||||||
|
|
||||||
long Prj_GetParamPrjCod (void);
|
long Prj_GetParamPrjCod (void);
|
||||||
void Prj_ReqRemProject (void);
|
void Prj_ReqRemProject (void);
|
||||||
void Prj_RemoveProject (void);
|
void Prj_RemoveProject (void);
|
||||||
|
@ -95,6 +91,6 @@ void Prj_RemoveCrsProjects (long CrsCod);
|
||||||
unsigned Prj_GetNumProjectsInCrs(long CrsCod);
|
unsigned Prj_GetNumProjectsInCrs(long CrsCod);
|
||||||
|
|
||||||
unsigned Prj_GetNumCoursesWithProjects (Sco_Scope_t Scope);
|
unsigned Prj_GetNumCoursesWithProjects (Sco_Scope_t Scope);
|
||||||
unsigned Prj_GetNumProjects (Sco_Scope_t Scope,unsigned *NumNotif);
|
unsigned Prj_GetNumProjects (Sco_Scope_t Scope);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2044,7 +2044,8 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
||||||
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
NumGrpTyp < Gbl.CurrentCrs.Grps.GrpTypes.Num;
|
||||||
NumGrpTyp++)
|
NumGrpTyp++)
|
||||||
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
if (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||||
Grp_ListGrpsToEditAsgAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],SvyCod,Grp_SURVEY);
|
Grp_ListGrpsToEditAsgPrjAttSvyGam (&Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
|
SvyCod,Grp_SURVEY);
|
||||||
|
|
||||||
/***** End table and box *****/
|
/***** End table and box *****/
|
||||||
Box_EndBoxTable ();
|
Box_EndBoxTable ();
|
||||||
|
|
471
swad_text.c
471
swad_text.c
|
@ -2529,6 +2529,48 @@ const char *Txt_Already_existed_a_game_with_the_title_X = // Warning: it is very
|
||||||
"Já existe um jogo com o título <strong>%s</strong>.";
|
"Já existe um jogo com o título <strong>%s</strong>.";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Already_existed_a_project_with_the_folder_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==1
|
||||||
|
"Ja existia un projecte amb la carpeta <strong>%s</strong>.";
|
||||||
|
#elif L==2
|
||||||
|
"Es gibt bereits einen Projekt im Verzeichnis <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"There is already a project with folder <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"Ya existía un proyecto con la carpeta <strong>%s</strong>.";
|
||||||
|
#elif L==5
|
||||||
|
"Il existe déjà un projet avec le répertoire <strong>%s</strong>.";
|
||||||
|
#elif L==6
|
||||||
|
"Ya existía un proyecto con la carpeta <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Esiste già un progetto con la cartella <strong>%s</strong>.";
|
||||||
|
#elif L==8
|
||||||
|
"Istniał projekt z folderem <strong>%s</strong>.";
|
||||||
|
#elif L==9
|
||||||
|
"Já existe um projeto com o diretório <strong>%s</strong>.";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Already_existed_a_project_with_the_title_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==1
|
||||||
|
"Ja existia un projecte amb el títol <strong>%s</strong>.";
|
||||||
|
#elif L==2
|
||||||
|
"Es gibt bereits einen Projekt mit dem Namen <strong>%s</strong>.";
|
||||||
|
#elif L==3
|
||||||
|
"Already existed a project with the title <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"Ya existía un proyecto con el título <strong>%s</strong>.";
|
||||||
|
#elif L==5
|
||||||
|
"Il existe déjà un projet du titre <strong>%s</strong>.";
|
||||||
|
#elif L==6
|
||||||
|
"Ya existía un proyecto con el título <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Esiste già un progetto con il titolo <strong>%s</strong>.";
|
||||||
|
#elif L==8
|
||||||
|
"Był już projekt o tytule <strong>%s</strong>.";
|
||||||
|
#elif L==9
|
||||||
|
"Já existe um projeto com o título <strong>%s</strong>.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Already_existed_a_survey_with_the_title_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Already_existed_a_survey_with_the_title_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Ja existia una enquesta amb el títol <strong>%s</strong>.";
|
"Ja existia una enquesta amb el títol <strong>%s</strong>.";
|
||||||
|
@ -6777,6 +6819,27 @@ const char *Txt_Create_plugin =
|
||||||
"Criar plugin";
|
"Criar plugin";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Create_project =
|
||||||
|
#if L==1
|
||||||
|
"Crear projecte";
|
||||||
|
#elif L==2
|
||||||
|
"Projekt eingeben";
|
||||||
|
#elif L==3
|
||||||
|
"Create project";
|
||||||
|
#elif L==4
|
||||||
|
"Crear proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"Créer projet";
|
||||||
|
#elif L==6
|
||||||
|
"Crear proyecto"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Crea progetto";
|
||||||
|
#elif L==8
|
||||||
|
"Tworzenie projekt";
|
||||||
|
#elif L==9
|
||||||
|
"Criar projeto";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Create_question =
|
const char *Txt_Create_question =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Crear pregunta";
|
"Crear pregunta";
|
||||||
|
@ -6926,7 +6989,7 @@ const char *Txt_Created_new_announcement_of_exam =
|
||||||
|
|
||||||
const char *Txt_Created_new_assignment_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Created_new_assignment_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Creada nueva actividad <strong>%s</strong>."; // Necessita traduccio
|
"Creada nova activitat <strong>%s</strong>.";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Neue Aufgabe <strong>%s</strong> erstellt.";
|
"Neue Aufgabe <strong>%s</strong> erstellt.";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -6947,7 +7010,7 @@ const char *Txt_Created_new_assignment_X = // Warning: it is very important to i
|
||||||
|
|
||||||
const char *Txt_Created_new_banner_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Created_new_banner_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Creado nuevo banner <strong>%s</strong>."; // Necessita traduccio
|
"Creat nou banner <strong>%s</strong>.";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Neuer Werbebanner <strong>%s</strong> erstellt.";
|
"Neuer Werbebanner <strong>%s</strong> erstellt.";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -6968,7 +7031,7 @@ const char *Txt_Created_new_banner_X = // Warning: it is very important to inclu
|
||||||
|
|
||||||
const char *Txt_Created_new_centre_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Created_new_centre_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Creado nuevo centro <strong>%s</strong>."; // Necessita traduccio
|
"Creat nou centre <strong>%s</strong>."; // Necessita traduccio
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Neues Lehrinstitut <strong>%s</strong> eingegeben.";
|
"Neues Lehrinstitut <strong>%s</strong> eingegeben.";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -7260,6 +7323,27 @@ const char *Txt_Created_new_plugin_X = // Warning: it is very important to inclu
|
||||||
"Criado novo plugin <strong>%s</strong>.";
|
"Criado novo plugin <strong>%s</strong>.";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Created_new_project_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==1
|
||||||
|
"Creat nou projecte <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
#elif L==2
|
||||||
|
"Neues Projekt <strong>%s</strong> eingegeben.";
|
||||||
|
#elif L==3
|
||||||
|
"Created new project <strong>%s</strong>.";
|
||||||
|
#elif L==4
|
||||||
|
"Creado nuevo proyecto <strong>%s</strong>.";
|
||||||
|
#elif L==5
|
||||||
|
"Créé nouveau projet <strong>%s</strong>.";
|
||||||
|
#elif L==6
|
||||||
|
"Creado nuevo proyecto <strong>%s</strong>."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Creato nuovo progetto <strong>%s</strong>.";
|
||||||
|
#elif L==8
|
||||||
|
"Utworzono nowe projekt <strong>%s</strong>.";
|
||||||
|
#elif L==9
|
||||||
|
"Criado novo projeto <strong>%s</strong>.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Created_new_record_field_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Created_new_record_field_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Creado nuevo campo de ficha <strong>%s</strong>."; // Necessita traduccio
|
"Creado nuevo campo de ficha <strong>%s</strong>."; // Necessita traduccio
|
||||||
|
@ -9165,7 +9249,7 @@ const char *Txt_Do_you_really_want_to_remove_the_X_students_from_the_course_Y_ =
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_assignment_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_assignment_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"¿Realmente desea eliminar la actividad <strong>%s</strong>?"; // Necessita traduccio
|
"¿De veres voleu eliminar l'activitat <strong>%s</strong>?";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Wollen Sie die Aufgabe <strong>%s</strong> wirklich entfernen?";
|
"Wollen Sie die Aufgabe <strong>%s</strong> wirklich entfernen?";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -9586,6 +9670,27 @@ const char *Txt_Do_you_really_want_to_remove_the_photo_of_X = // Warning: it is
|
||||||
"Você realmente deseja remover la foto de <strong>%s</strong>?";
|
"Você realmente deseja remover la foto de <strong>%s</strong>?";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_remove_the_project_X = // Warning: it is very important to include %s in the following sentences
|
||||||
|
#if L==1
|
||||||
|
"¿De veres voleu eliminar el projecte <strong>%s</strong>?";
|
||||||
|
#elif L==2
|
||||||
|
"Wollen Sie die Projekt <strong>%s</strong> wirklich entfernen?";
|
||||||
|
#elif L==3
|
||||||
|
"Do you really want to remove the project <strong>%s</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"¿Realmente desea eliminar el proyecto <strong>%s</strong>?";
|
||||||
|
#elif L==5
|
||||||
|
"Voulez-vous vraiment supprimer le projet <strong>%s</strong>?";
|
||||||
|
#elif L==6
|
||||||
|
"¿Realmente desea eliminar el proyecto <strong>%s</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Vuoi realmente rimuovere il progetto <strong>%s</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Czy na pewno chcesz usunac projekt <strong>%s</strong>?";
|
||||||
|
#elif L==9
|
||||||
|
"Você realmente deseja remover o projeto <strong>%s</strong>?";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_question_X = // Warning: it is very important to include %lu in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_question_X = // Warning: it is very important to include %lu in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"De veres voleu eliminar pregunta <strong>%lu</strong>?";
|
"De veres voleu eliminar pregunta <strong>%lu</strong>?";
|
||||||
|
@ -10318,6 +10423,48 @@ const char *Txt_Edit_my_webs_networks =
|
||||||
"Editar as minhas webs / redes";
|
"Editar as minhas webs / redes";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Edit_plain_text =
|
||||||
|
#if L==1
|
||||||
|
"Editar text sense format";
|
||||||
|
#elif L==2
|
||||||
|
"Plain Text bearbeiten";
|
||||||
|
#elif L==3
|
||||||
|
"Edit plain text";
|
||||||
|
#elif L==4
|
||||||
|
"Editar texto sin formato";
|
||||||
|
#elif L==5
|
||||||
|
"Éditer texte simple";
|
||||||
|
#elif L==6
|
||||||
|
"Editar texto sin formato"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Editare testo normale";
|
||||||
|
#elif L==8
|
||||||
|
"Edycja tekstu zwykły";
|
||||||
|
#elif L==9
|
||||||
|
"Editar texto simples";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Edit_project =
|
||||||
|
#if L==1
|
||||||
|
"Editar projecte";
|
||||||
|
#elif L==2
|
||||||
|
"Projekt bearbeiten";
|
||||||
|
#elif L==3
|
||||||
|
"Edit project";
|
||||||
|
#elif L==4
|
||||||
|
"Editar proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"Éditer projet";
|
||||||
|
#elif L==6
|
||||||
|
"Editar proyecto"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Editare progetto";
|
||||||
|
#elif L==8
|
||||||
|
"Edycja projekt";
|
||||||
|
#elif L==9
|
||||||
|
"Editar projeto";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Edit_record_fields =
|
const char *Txt_Edit_record_fields =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Editar camps de fitxes";
|
"Editar camps de fitxes";
|
||||||
|
@ -10360,27 +10507,6 @@ const char *Txt_Edit_survey =
|
||||||
"Editar inquérito";
|
"Editar inquérito";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Edit_plain_text =
|
|
||||||
#if L==1
|
|
||||||
"Editar text sense format";
|
|
||||||
#elif L==2
|
|
||||||
"Plain Text bearbeiten";
|
|
||||||
#elif L==3
|
|
||||||
"Edit plain text";
|
|
||||||
#elif L==4
|
|
||||||
"Editar texto sin formato";
|
|
||||||
#elif L==5
|
|
||||||
"Éditer texte simple";
|
|
||||||
#elif L==6
|
|
||||||
"Editar texto sin formato"; // Okoteve traducción
|
|
||||||
#elif L==7
|
|
||||||
"Editare testo normale";
|
|
||||||
#elif L==8
|
|
||||||
"Edycja tekstu zwykły";
|
|
||||||
#elif L==9
|
|
||||||
"Editar texto simples";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_Edit_rich_text =
|
const char *Txt_Edit_rich_text =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Editar text enriquit";
|
"Editar text enriquit";
|
||||||
|
@ -19191,7 +19317,28 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Atividades"
|
"Atividades"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 2: ActReqTst
|
// 2: ActSeePrj
|
||||||
|
#if L==1
|
||||||
|
"Projectes"
|
||||||
|
#elif L==2
|
||||||
|
"Projekte"
|
||||||
|
#elif L==3
|
||||||
|
"Projects"
|
||||||
|
#elif L==4
|
||||||
|
"Proyectos"
|
||||||
|
#elif L==5
|
||||||
|
"Projets"
|
||||||
|
#elif L==6
|
||||||
|
"Proyectos" // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Progetti"
|
||||||
|
#elif L==8
|
||||||
|
"Projekty"
|
||||||
|
#elif L==9
|
||||||
|
"Projetos"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
// 3: ActReqTst
|
||||||
#if L==1
|
#if L==1
|
||||||
"Tests"
|
"Tests"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -19212,7 +19359,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Testes"
|
"Testes"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 3: ActSeeAllGam
|
// 4: ActSeeAllGam
|
||||||
#if L==1
|
#if L==1
|
||||||
"Jocs"
|
"Jocs"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -19233,7 +19380,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Jogos"
|
"Jogos"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 4: ActSeeAllSvy
|
// 5: ActSeeAllSvy
|
||||||
#if L==1
|
#if L==1
|
||||||
"Enquestes"
|
"Enquestes"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -19254,7 +19401,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Inquéritos"
|
"Inquéritos"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 5: ActSeeAllExaAnn
|
// 6: ActSeeAllExaAnn
|
||||||
#if L==1
|
#if L==1
|
||||||
"Convocatòries"
|
"Convocatòries"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -19275,7 +19422,6 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Chamadas"
|
"Chamadas"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
NULL, // 6
|
|
||||||
NULL, // 7
|
NULL, // 7
|
||||||
NULL, // 8
|
NULL, // 8
|
||||||
NULL, // 9
|
NULL, // 9
|
||||||
|
@ -21136,7 +21282,28 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Atividades"
|
"Atividades"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 2: ActReqTst
|
// 2: ActSeePrj
|
||||||
|
#if L==1
|
||||||
|
"Projectes"
|
||||||
|
#elif L==2
|
||||||
|
"Projekte"
|
||||||
|
#elif L==3
|
||||||
|
"Projects (final degree projects…)"
|
||||||
|
#elif L==4
|
||||||
|
"Proyectos (proyectos fin de carrera, trabajos fin de grado…)"
|
||||||
|
#elif L==5
|
||||||
|
"Projets"
|
||||||
|
#elif L==6
|
||||||
|
"Proyectos (proyectos fin de carrera, trabajos fin de grado…)" // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Progetti"
|
||||||
|
#elif L==8
|
||||||
|
"Projekty"
|
||||||
|
#elif L==9
|
||||||
|
"Projetos"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
// 3: ActReqTst
|
||||||
#if L==1
|
#if L==1
|
||||||
"Tests sobre els continguts d'aquesta assignatura"
|
"Tests sobre els continguts d'aquesta assignatura"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -21157,7 +21324,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Testes"
|
"Testes"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 3: ActSeeAllGam
|
// 4: ActSeeAllGam
|
||||||
#if L==1
|
#if L==1
|
||||||
"Jocs (comandament a distància)"
|
"Jocs (comandament a distància)"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -21178,7 +21345,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Jogos (controlo remoto)"
|
"Jogos (controlo remoto)"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 4: ActSeeAllSvy
|
// 5: ActSeeAllSvy
|
||||||
#if L==1
|
#if L==1
|
||||||
"Enquestes anònimes"
|
"Enquestes anònimes"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -21199,7 +21366,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Inquéritos"
|
"Inquéritos"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
// 5: ActSeeAllExaAnn
|
// 6: ActSeeAllExaAnn
|
||||||
#if L==1
|
#if L==1
|
||||||
"Llistat de convocatòries d'exàmens d'aquesta assignatura"
|
"Llistat de convocatòries d'exàmens d'aquesta assignatura"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -21220,7 +21387,6 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
|
||||||
"Chamadas para exames"
|
"Chamadas para exames"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
NULL, // 6
|
|
||||||
NULL, // 7
|
NULL, // 7
|
||||||
NULL, // 8
|
NULL, // 8
|
||||||
NULL, // 9
|
NULL, // 9
|
||||||
|
@ -24514,6 +24680,27 @@ const char *Txt_New_post =
|
||||||
"Novo post";
|
"Novo post";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_New_project =
|
||||||
|
#if L==1
|
||||||
|
"Nou projecte";
|
||||||
|
#elif L==2
|
||||||
|
"Neues Projekt";
|
||||||
|
#elif L==3
|
||||||
|
"New project";
|
||||||
|
#elif L==4
|
||||||
|
"Nuevo proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"Nouveau projet";
|
||||||
|
#elif L==6
|
||||||
|
"Nuevo proyecto"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Nuovo progetto";
|
||||||
|
#elif L==8
|
||||||
|
"Nowy projekt";
|
||||||
|
#elif L==9
|
||||||
|
"Novo projeto";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_New_question =
|
const char *Txt_New_question =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Nova pregunta";
|
"Nova pregunta";
|
||||||
|
@ -25792,6 +25979,27 @@ const char *Txt_No_of_users =
|
||||||
"Nº de utilizadores";
|
"Nº de utilizadores";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_No_projects =
|
||||||
|
#if L==1
|
||||||
|
"No hi ha projectes.";
|
||||||
|
#elif L==2
|
||||||
|
"Keine Projekte.";
|
||||||
|
#elif L==3
|
||||||
|
"No projects.";
|
||||||
|
#elif L==4
|
||||||
|
"No hay proyectos.";
|
||||||
|
#elif L==5
|
||||||
|
"Il n'y a pas de projets.";
|
||||||
|
#elif L==6
|
||||||
|
"No hay proyectos."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Non ci sono progetti.";
|
||||||
|
#elif L==8
|
||||||
|
"Brak projekty.";
|
||||||
|
#elif L==9
|
||||||
|
"Não há projetos.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_No_questions_found_matching_your_search_criteria =
|
const char *Txt_No_questions_found_matching_your_search_criteria =
|
||||||
#if L==1
|
#if L==1
|
||||||
"No hay preguntas con el criterio de búsqueda seleccionado."; // Necessita traduccio
|
"No hay preguntas con el criterio de búsqueda seleccionado."; // Necessita traduccio
|
||||||
|
@ -29822,6 +30030,70 @@ const char *Txt_Possibly_duplicate_users =
|
||||||
"Usuários possivelmente duplicados";
|
"Usuários possivelmente duplicados";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
const char *Txt_Post = // Publish (verb)
|
||||||
|
#if L==1
|
||||||
|
"Publicar";
|
||||||
|
#elif L==2
|
||||||
|
"Veröffentlichen";
|
||||||
|
#elif L==3
|
||||||
|
"Post";
|
||||||
|
#elif L==4
|
||||||
|
"Publicar";
|
||||||
|
#elif L==5
|
||||||
|
"Publier";
|
||||||
|
#elif L==6
|
||||||
|
"Publicar"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Pubblicare";
|
||||||
|
#elif L==8
|
||||||
|
"Publikować";
|
||||||
|
#elif L==9
|
||||||
|
"Publicar";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_post =
|
||||||
|
#if L==1
|
||||||
|
"comentari";
|
||||||
|
#elif L==2
|
||||||
|
"Post";
|
||||||
|
#elif L==3
|
||||||
|
"post";
|
||||||
|
#elif L==4
|
||||||
|
"comentario";
|
||||||
|
#elif L==5
|
||||||
|
"post";
|
||||||
|
#elif L==6
|
||||||
|
"marandu";
|
||||||
|
#elif L==7
|
||||||
|
"post";
|
||||||
|
#elif L==8
|
||||||
|
"post";
|
||||||
|
#elif L==9
|
||||||
|
"post";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_posts =
|
||||||
|
#if L==1
|
||||||
|
"comentaris";
|
||||||
|
#elif L==2
|
||||||
|
"Nachrichten";
|
||||||
|
#elif L==3
|
||||||
|
"posts";
|
||||||
|
#elif L==4
|
||||||
|
"comentarios";
|
||||||
|
#elif L==5
|
||||||
|
"posts";
|
||||||
|
#elif L==6
|
||||||
|
"marandu";
|
||||||
|
#elif L==7
|
||||||
|
"post";
|
||||||
|
#elif L==8
|
||||||
|
"posty";
|
||||||
|
#elif L==9
|
||||||
|
"posts";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Post_X_allowed = // Warning: it is very important to include %u in the following sentences
|
const char *Txt_Post_X_allowed = // Warning: it is very important to include %u in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Comentario %u permitido."; // Necessita traduccio
|
"Comentario %u permitido."; // Necessita traduccio
|
||||||
|
@ -30240,67 +30512,25 @@ const char *Txt_Private_available_to_certain_users_identified =
|
||||||
"Privado, disponível para alguns usuários identificados";
|
"Privado, disponível para alguns usuários identificados";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Post = // Publish (verb)
|
const char *Txt_Projects =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Publicar";
|
"Projectes";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Veröffentlichen";
|
"Projekte";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
"Post";
|
"Projects";
|
||||||
#elif L==4
|
#elif L==4
|
||||||
"Publicar";
|
"Proyectos";
|
||||||
#elif L==5
|
#elif L==5
|
||||||
"Publier";
|
"Projets";
|
||||||
#elif L==6
|
#elif L==6
|
||||||
"Publicar"; // Okoteve traducción
|
"Proyectos"; // Okoteve traducción
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Pubblicare";
|
"Progetti";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Publikować";
|
"Projekty";
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"Publicar";
|
"Projetos";
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_post =
|
|
||||||
#if L==1
|
|
||||||
"comentari";
|
|
||||||
#elif L==2
|
|
||||||
"Post";
|
|
||||||
#elif L==3
|
|
||||||
"post";
|
|
||||||
#elif L==4
|
|
||||||
"comentario";
|
|
||||||
#elif L==5
|
|
||||||
"post";
|
|
||||||
#elif L==6
|
|
||||||
"marandu";
|
|
||||||
#elif L==7
|
|
||||||
"post";
|
|
||||||
#elif L==8
|
|
||||||
"post";
|
|
||||||
#elif L==9
|
|
||||||
"post";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *Txt_posts =
|
|
||||||
#if L==1
|
|
||||||
"comentaris";
|
|
||||||
#elif L==2
|
|
||||||
"Nachrichten";
|
|
||||||
#elif L==3
|
|
||||||
"posts";
|
|
||||||
#elif L==4
|
|
||||||
"comentarios";
|
|
||||||
#elif L==5
|
|
||||||
"posts";
|
|
||||||
#elif L==6
|
|
||||||
"marandu";
|
|
||||||
#elif L==7
|
|
||||||
"post";
|
|
||||||
#elif L==8
|
|
||||||
"posty";
|
|
||||||
#elif L==9
|
|
||||||
"posts";
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_Public_agenda_USER = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Public_agenda_USER = // Warning: it is very important to include %s in the following sentences
|
||||||
|
@ -31884,6 +32114,27 @@ const char *Txt_Remove_photo =
|
||||||
"Remover foto";
|
"Remover foto";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Remove_project =
|
||||||
|
#if L==1
|
||||||
|
"Eliminar projecte";
|
||||||
|
#elif L==2
|
||||||
|
"Entfernen Projekt";
|
||||||
|
#elif L==3
|
||||||
|
"Remove project";
|
||||||
|
#elif L==4
|
||||||
|
"Eliminar proyecto";
|
||||||
|
#elif L==5
|
||||||
|
"Supprimer projet";
|
||||||
|
#elif L==6
|
||||||
|
"Eliminar proyecto"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Rimuovere progetto";
|
||||||
|
#elif L==8
|
||||||
|
"Usuń projekt";
|
||||||
|
#elif L==9
|
||||||
|
"Remover projeto";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Remove_question =
|
const char *Txt_Remove_question =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Eliminar pregunta";
|
"Eliminar pregunta";
|
||||||
|
@ -42764,7 +43015,7 @@ const char *Txt_The_answers_of_the_question_with_code_X_will_appear_without_shuf
|
||||||
|
|
||||||
const char *Txt_The_assignment_has_been_modified =
|
const char *Txt_The_assignment_has_been_modified =
|
||||||
#if L==1
|
#if L==1
|
||||||
"La actividad ha sido modificada."; // Necessita traduccio
|
"L'activitat ha estat modificada.";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Die Aufgabe wurde geändert.";
|
"Die Aufgabe wurde geändert.";
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -42778,7 +43029,7 @@ const char *Txt_The_assignment_has_been_modified =
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"L'attività è stata modificata.";
|
"L'attività è stata modificata.";
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"The assignment has been modified."; // Potrzebujesz tlumaczenie
|
"Działanie zostało zmodyfikowane.";
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"A atividade foi modificada.";
|
"A atividade foi modificada.";
|
||||||
#endif
|
#endif
|
||||||
|
@ -46002,6 +46253,27 @@ const char *Txt_The_plugin_X_has_been_renamed_as_Y = // Warning: it is very impo
|
||||||
"The plugin <strong>%s</strong> has been renamed as <strong>%s</strong>."; // Necessita de tradução
|
"The plugin <strong>%s</strong> has been renamed as <strong>%s</strong>."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_The_project_has_been_modified =
|
||||||
|
#if L==1
|
||||||
|
"L'activitat ha estat modificada.";
|
||||||
|
#elif L==2
|
||||||
|
"Die Projekt wurde geändert.";
|
||||||
|
#elif L==3
|
||||||
|
"The project has been modified.";
|
||||||
|
#elif L==4
|
||||||
|
"Le projet ha sido modificado.";
|
||||||
|
#elif L==5
|
||||||
|
"Le projet a été modifié.";
|
||||||
|
#elif L==6
|
||||||
|
"El proyecto ha sido modificado."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Il progetto è stato modificato.";
|
||||||
|
#elif L==8
|
||||||
|
"Projekt został zmodyfikowany.";
|
||||||
|
#elif L==9
|
||||||
|
"O projeto foi modificado.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_The_properties_of_file_X_have_been_saved = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_The_properties_of_file_X_have_been_saved = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"Las propiedades del archivo %s se han guardado."; // Necessita traduccio
|
"Las propiedades del archivo %s se han guardado."; // Necessita traduccio
|
||||||
|
@ -55433,6 +55705,27 @@ const char *Txt_You_must_specify_the_title_of_the_game =
|
||||||
"Você deve especificar o título do jogo.";
|
"Você deve especificar o título do jogo.";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_You_must_specify_the_title_of_the_project =
|
||||||
|
#if L==1
|
||||||
|
"Cal especificar el títol del projecte.";
|
||||||
|
#elif L==2
|
||||||
|
"Der Projekt muss angegeben werden.";
|
||||||
|
#elif L==3
|
||||||
|
"You must specify the title of the project.";
|
||||||
|
#elif L==4
|
||||||
|
"Debe especificar el título del proyecto.";
|
||||||
|
#elif L==5
|
||||||
|
"Vous devez spécifier le titre du projet.";
|
||||||
|
#elif L==6
|
||||||
|
"Debe especificar el título del proyecto."; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"È necessario specificare il titolo del progetto.";
|
||||||
|
#elif L==8
|
||||||
|
"Musisz podać tytuł projektu.";
|
||||||
|
#elif L==9
|
||||||
|
"Você deve especificar o título do projeto.";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_You_must_specify_the_title_of_the_survey =
|
const char *Txt_You_must_specify_the_title_of_the_survey =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Cal especificar el títol de l'enquesta.";
|
"Cal especificar el títol de l'enquesta.";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user