Version 16.193

This commit is contained in:
Antonio Cañas Vargas 2017-04-27 10:15:07 +02:00
parent e2f30749f8
commit fb8f1d73f8
13 changed files with 687 additions and 671 deletions

View File

@ -11698,3 +11698,12 @@ ALTER TABLE surveys DROP COLUMN CrsCod;
SELECT LENGTH(Subject) AS Len,COUNT(*) AS N FROM forum_post GROUP BY Len ORDER BY Len DESC;
CREATE TABLE timetable_crs_backup LIKE timetable_crs;
INSERT INTO timetable_crs_backup SELECT * FROM timetable_crs;
CREATE TABLE timetable_tut_backup LIKE timetable_tut;
INSERT INTO timetable_tut_backup SELECT * FROM timetable_tut;

View File

@ -422,6 +422,7 @@ Assessment:
299. ActSeeAsg Show assignments
300. ActReqTst Request a test of self-assesment
301. ActSeeAllExaAnn Show the exam announcements
1140. ActSeeAllSvy List all surveys in pages
302. ActEdiAss Edit the assessment system
303. ActChgFrcReaAss Change force students to read assessment system
@ -476,6 +477,22 @@ Assessment:
350. ActHidExaAnn Hide exam announcement
351. ActShoExaAnn Show exam announcement
1147. ActSeeOneSvy Show one survey
1148. ActAnsSvy Answer a survey
1149. ActFrmNewSvy Form to create a new survey
1150. ActEdiOneSvy Edit one survey
1151. ActNewSvy Create new survey
1152. ActChgSvy Modify data of an existing survey
1153. ActReqRemSvy Request the removal of a survey
1154. ActRemSvy Remove survey
1155. ActReqRstSvy Request the reset of answers of a survey
1156. ActRstSvy Reset answers of survey
1157. ActHidSvy Hide survey
1158. ActShoSvy Show survey
1159. ActEdiOneSvyQst Edit a new question for a survey
1160. ActRcvSvyQst Receive a question of a survey
1161. ActReqRemSvyQst Request the removal of a question of a survey
1162. ActRemSvyQst Confirm the removal of a question of a survey
Files:
352. ActSeeAdmDocIns Documents zone of the institution (see or admin)
353. ActAdmShaIns Admin the shared files zone of the institution
@ -1334,7 +1351,6 @@ Messages:
1139. ActUnbUsrLst Unban a user when listing banned users
Statistics:
1140. ActSeeAllSvy List all surveys in pages
1141. ActReqUseGbl Request showing use of the platform
1142. ActSeePhoDeg Show a class photo with the average photos of the students of each degree
1143. ActReqStaCrs Request statistics of courses
@ -1342,22 +1358,6 @@ Statistics:
1145. ActReqMyUsgRep Request my usage report
1146. ActMFUAct Show most frequently used actions
1147. ActSeeOneSvy Show one survey
1148. ActAnsSvy Answer a survey
1149. ActFrmNewSvy Form to create a new survey
1150. ActEdiOneSvy Edit one survey
1151. ActNewSvy Create new survey
1152. ActChgSvy Modify data of an existing survey
1153. ActReqRemSvy Request the removal of a survey
1154. ActRemSvy Remove survey
1155. ActReqRstSvy Request the reset of answers of a survey
1156. ActRstSvy Reset answers of survey
1157. ActHidSvy Hide survey
1158. ActShoSvy Show survey
1159. ActEdiOneSvyQst Edit a new question for a survey
1160. ActRcvSvyQst Receive a question of a survey
1161. ActReqRemSvyQst Request the removal of a question of a survey
1162. ActRemSvyQst Confirm the removal of a question of a survey
1163. ActSeeUseGbl Show use of the platform
1164. ActPrnPhoDeg Show vista of impresión of the class photo with the average photos of the students of each degree.
1165. ActCalPhoDeg Compute the average photos of the students of each degree
@ -1866,6 +1866,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeAsg */{ 801, 1,TabAss,ActSeeAsg ,0x118,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_SeeAssignments ,"desk64x64.gif" },
/* ActReqTst */{ 103, 2,TabAss,ActReqTst ,0x118,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Tst_ShowFormAskTst ,"test64x64.gif" },
/* ActSeeAllExaAnn */{ 85, 3,TabAss,ActSeeAllExaAnn ,0x1FF,0x1FF, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Exa_ListExamAnnouncementsSee ,"announce64x64.gif" },
/* ActSeeAllSvy */{ 966, 4,TabAss,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_SeeAllSurveys ,"survey64x64.gif" },
// Actions not in menu:
/* ActEdiAss */{ 69,-1,TabUnk,ActSeeAss ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Inf_FormsToSelSendInfo ,NULL},
@ -1925,6 +1926,25 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActHidExaAnn */{1620,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,Exa_HideExamAnnouncement1 ,Exa_HideExamAnnouncement2 ,NULL},
/* ActShoExaAnn */{1621,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,Exa_UnhideExamAnnouncement1 ,Exa_UnhideExamAnnouncement2 ,NULL},
/* ActSeeOneSvy */{ 982,-1,TabUnk,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_SeeOneSurvey ,NULL},
/* ActAnsSvy */{ 983,-1,TabUnk,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ReceiveSurveyAnswers ,NULL},
/* ActFrmNewSvy */{ 973,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestCreatOrEditSvy ,NULL},
/* ActEdiOneSvy */{ 974,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestCreatOrEditSvy ,NULL},
/* ActNewSvy */{ 968,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RecFormSurvey ,NULL},
/* ActChgSvy */{ 975,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RecFormSurvey ,NULL},
/* ActReqRemSvy */{ 976,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_AskRemSurvey ,NULL},
/* ActRemSvy */{ 969,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RemoveSurvey ,NULL},
/* ActReqRstSvy */{ 984,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_AskResetSurvey ,NULL},
/* ActRstSvy */{ 985,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ResetSurvey ,NULL},
/* ActHidSvy */{ 977,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_HideSurvey ,NULL},
/* ActShoSvy */{ 978,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_UnhideSurvey ,NULL},
/* ActEdiOneSvyQst */{ 979,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestEditQuestion ,NULL},
/* ActRcvSvyQst */{ 980,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ReceiveQst ,NULL},
/* ActReqRemSvyQst */{1524,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestRemoveQst ,NULL},
/* ActRemSvyQst */{ 981,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RemoveQst ,NULL},
// TabFil ******************************************************************
// Actions in menu:
/* ActSeeAdmDocIns */{1249, 0,TabFil,ActSeeAdmDocIns , 0, 0, 0, 0,0x1FF, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folder64x64.gif" },
@ -2827,34 +2847,14 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
// TabSta ******************************************************************
// Actions in menu:
/* ActSeeAllSvy */{ 966, 0,TabSta,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_SeeAllSurveys ,"survey64x64.gif" },
/* ActReqUseGbl */{ 761, 1,TabSta,ActReqUseGbl ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Sta_ReqShowFigures ,"pie64x64.gif" },
/* ActSeePhoDeg */{ 447, 2,TabSta,ActSeePhoDeg ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pho_ShowPhotoDegree ,"classphoto64x64.gif" },
/* ActReqStaCrs */{ 767, 3,TabSta,ActReqStaCrs ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ind_ReqIndicatorsCourses ,"tablestats64x64.gif" },
/* ActReqAccGbl */{ 591, 4,TabSta,ActReqAccGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Sta_SetIniEndDates ,Sta_AskShowGblHits ,"stats64x64.gif" },
/* ActReqMyUsgRep */{1586, 5,TabSta,ActReqMyUsgRep ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Rep_ReqMyUsageReport ,"report64x64.png" },
/* ActMFUAct */{ 993, 6,TabSta,ActMFUAct ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,MFU_ShowMyMFUActions ,"star64x64.gif" },
/* ActReqUseGbl */{ 761, 0,TabSta,ActReqUseGbl ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Sta_ReqShowFigures ,"pie64x64.gif" },
/* ActSeePhoDeg */{ 447, 1,TabSta,ActSeePhoDeg ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pho_ShowPhotoDegree ,"classphoto64x64.gif" },
/* ActReqStaCrs */{ 767, 2,TabSta,ActReqStaCrs ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ind_ReqIndicatorsCourses ,"tablestats64x64.gif" },
/* ActReqAccGbl */{ 591, 3,TabSta,ActReqAccGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Sta_SetIniEndDates ,Sta_AskShowGblHits ,"stats64x64.gif" },
/* ActReqMyUsgRep */{1586, 4,TabSta,ActReqMyUsgRep ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Rep_ReqMyUsageReport ,"report64x64.png" },
/* ActMFUAct */{ 993, 5,TabSta,ActMFUAct ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,MFU_ShowMyMFUActions ,"star64x64.gif" },
// Actions not in menu:
/* ActSeeOneSvy */{ 982,-1,TabUnk,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_SeeOneSurvey ,NULL},
/* ActAnsSvy */{ 983,-1,TabUnk,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,0x1F8,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ReceiveSurveyAnswers ,NULL},
/* ActFrmNewSvy */{ 973,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestCreatOrEditSvy ,NULL},
/* ActEdiOneSvy */{ 974,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestCreatOrEditSvy ,NULL},
/* ActNewSvy */{ 968,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RecFormSurvey ,NULL},
/* ActChgSvy */{ 975,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RecFormSurvey ,NULL},
/* ActReqRemSvy */{ 976,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_AskRemSurvey ,NULL},
/* ActRemSvy */{ 969,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RemoveSurvey ,NULL},
/* ActReqRstSvy */{ 984,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_AskResetSurvey ,NULL},
/* ActRstSvy */{ 985,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ResetSurvey ,NULL},
/* ActHidSvy */{ 977,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_HideSurvey ,NULL},
/* ActShoSvy */{ 978,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_UnhideSurvey ,NULL},
/* ActEdiOneSvyQst */{ 979,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestEditQuestion ,NULL},
/* ActRcvSvyQst */{ 980,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_ReceiveQst ,NULL},
/* ActReqRemSvyQst */{1524,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RequestRemoveQst ,NULL},
/* ActRemSvyQst */{ 981,-1,TabUnk,ActSeeAllSvy ,0x1F0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Svy_RemoveQst ,NULL},
/* ActSeeUseGbl */{ 84,-1,TabUnk,ActReqUseGbl ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Sta_ShowFigures ,NULL},
/* ActPrnPhoDeg */{ 448,-1,TabUnk,ActSeePhoDeg ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_BLNK_WINDOW,NULL ,Pho_PrintPhotoDegree ,NULL},
/* ActCalPhoDeg */{ 444,-1,TabUnk,ActSeePhoDeg ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pho_CalcPhotoDegree ,NULL},

File diff suppressed because it is too large Load Diff

View File

@ -211,21 +211,24 @@
// TODO: En información de un centro, poner icono que enlace a edición de lugares, y posibilidad de editar lugar del centro en un menú desplegable. Lugar debería ir encima de Acceso directo.
// TODO: Cuando se está editando instituciones, centros, titulaciones y asignaturas, poner un icono Ver (ojo) en la esquina superior izquierda.
// TODO: Changes in timetable (hours end in 24h).
// TODO: Fix bug: An URL like https://openswad.org/es?a gives Internal Server Error
// TODO: Fix bug: En Compartidos, si se borra la posibilidad de carpetas en un grupo ==> sale mensaje "The group has no file zones."
// TODO: Change numbers of notifications in program and database to match order in tabs
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.192.1 (2017-04-25)"
#define Log_PLATFORM_VERSION "SWAD 16.193 (2017-04-27)"
#define CSS_FILE "swad16.192.css"
#define JS_FILE "swad16.181.js"
// 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
/*
Version 16.193: Apr 27, 2017 Surveys action moved from statistics to assessment tab. (218262 lines)
Version 16.192.1: Apr 25, 2017 Code refactoring in timetable. (218258 lines)
Version 16.192: Apr 25, 2017 Changes in layout and code refactoring in timetable. (218262 lines)
Version 16.191: Apr 25, 2017 Changes in layout of timetable. (218183 lines)

View File

@ -4311,8 +4311,8 @@ void Grp_GetParamWhichGrps (void)
case ActPrnCrsTT:
case ActChgCrsTT1stDay:
case ActSeeAsg:
case ActSeeAtt:
case ActSeeAllSvy:
case ActSeeAtt:
WhichGroupsDefault = Gbl.Usrs.Me.IBelongToCurrentCrs ? Grp_ONLY_MY_GROUPS : // If I belong to this course ==> see only my groups
Grp_ALL_GROUPS; // If I don't belong to this course ==> see all groups
break;

View File

@ -179,7 +179,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
ActSeeAsg, // 1
ActReqTst, // 2
ActSeeAllExaAnn, // 3
0, // 4
ActSeeAllSvy, // 4
0, // 5
0, // 6
0, // 7
@ -250,13 +250,13 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
},
// TabSta *******************
{
ActSeeAllSvy, // 0
ActReqUseGbl, // 1
ActSeePhoDeg, // 2
ActReqStaCrs, // 3
ActReqAccGbl, // 4
ActReqMyUsgRep, // 5
ActMFUAct, // 6
ActReqUseGbl, // 0
ActSeePhoDeg, // 1
ActReqStaCrs, // 2
ActReqAccGbl, // 3
ActReqMyUsgRep, // 4
ActMFUAct, // 5
0, // 6
0, // 7
0, // 8
0, // 9

View File

@ -124,11 +124,11 @@ static const Act_Action_t Ntf_DefaultActions[Ntf_NUM_NOTIFY_EVENTS] =
ActSeeFor, // Ntf_EVENT_FORUM_REPLY
/* Messages tab */
ActSeeOneNot, // Ntf_EVENT_NOTICE
ActSeeOneNot, // Ntf_EVENT_NOTICE
ActExpRcvMsg, // Ntf_EVENT_MESSAGE
/* Statistics tab */
ActSeeAllSvy, // Ntf_EVENT_SURVEY
ActSeeAllSvy, // Ntf_EVENT_SURVEY TODO: Move to assessment tab (also necessary in database) !!!!!!!!!
/* Profile tab */
};

View File

@ -54,14 +54,17 @@ typedef enum
Ntf_EVENT_UNKNOWN = 0,
/* Course tab */
Ntf_EVENT_DOCUMENT_FILE = 1,
Ntf_EVENT_TEACHERS_FILE = 2,
Ntf_EVENT_SHARED_FILE = 3,
/* Assessment tab */
Ntf_EVENT_ASSIGNMENT = 4,
Ntf_EVENT_EXAM_ANNOUNCEMENT = 5,
Ntf_EVENT_MARKS_FILE = 6,
Ntf_EVENT_SURVEY = 19, // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
/* Files tab */
Ntf_EVENT_DOCUMENT_FILE = 1, // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
Ntf_EVENT_TEACHERS_FILE = 2, // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
Ntf_EVENT_SHARED_FILE = 3, // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
/* Users tab */
Ntf_EVENT_ENROLMENT_STUDENT = 7,
@ -82,7 +85,6 @@ typedef enum
Ntf_EVENT_MESSAGE = 18,
/* Statistics tab */
Ntf_EVENT_SURVEY = 19,
/* Profile tab */

View File

@ -48,12 +48,12 @@ extern const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM];
static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
{
"NumPagAsg", // Pag_ASSIGNMENTS
"NumPagSvy", // Pag_SURVEYS
"NumPagAtt", // Pag_ATT_EVENTS
"NumPagThr", // Pag_THREADS_FORUM
"NumPagPst", // Pag_POSTS_FORUM
"NumPagRcv", // Pag_MESSAGES_RECEIVED
"NumPagSnt", // Pag_MESSAGES_SENT
"NumPagSvy", // Pag_SURVEYS
"NumPagMyAgd", // Pag_MY_AGENDA
"NumPagOthAgd", // Pag_ANOTHER_AGENDA
};
@ -159,6 +159,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
@ -197,12 +203,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
@ -254,6 +254,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
@ -292,12 +298,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
@ -335,6 +335,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
@ -373,12 +379,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
@ -427,6 +427,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
@ -465,12 +471,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
@ -507,6 +507,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
@ -545,12 +551,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
@ -586,6 +586,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
@ -624,12 +630,6 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_SURVEYS:
Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_MY_AGENDA:
Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,

View File

@ -41,12 +41,12 @@
typedef enum
{
Pag_ASSIGNMENTS = 0,
Pag_ATT_EVENTS = 1,
Pag_THREADS_FORUM = 2,
Pag_POSTS_FORUM = 3,
Pag_MESSAGES_RECEIVED = 4,
Pag_MESSAGES_SENT = 5,
Pag_SURVEYS = 6,
Pag_SURVEYS = 1,
Pag_ATT_EVENTS = 2,
Pag_THREADS_FORUM = 3,
Pag_POSTS_FORUM = 4,
Pag_MESSAGES_RECEIVED = 5,
Pag_MESSAGES_SENT = 6,
Pag_MY_AGENDA = 7,
Pag_ANOTHER_AGENDA = 8,
} Pag_WhatPaginate_t;

View File

@ -185,7 +185,6 @@ static bool Tab_CheckIfICanViewTab (Tab_Tab_t Tab)
return (Gbl.CurrentDeg.Deg.DegCod > 0 &&
Gbl.CurrentCrs.Crs.CrsCod <= 0);
case TabCrs:
case TabAss:
return (Gbl.CurrentCrs.Crs.CrsCod > 0);
case TabFil:
return (Gbl.CurrentIns.Ins.InsCod > 0);

View File

@ -18843,7 +18843,27 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Chamadas"
#endif
,
NULL, // 4
// 4: ActSeeAllSvy
#if L==1
"Enquestes"
#elif L==2
"Umfragen"
#elif L==3
"Surveys"
#elif L==4
"Encuestas"
#elif L==5
"Sondages"
#elif L==6
"Encuestas" // Okoteve traducción
#elif L==7
"Sondaggi"
#elif L==8
"Ankiety"
#elif L==9
"Inqu&eacute;ritos"
#endif
,
NULL, // 5
NULL, // 6
NULL, // 7
@ -19533,28 +19553,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
},
{
// TabSta **********************************************************************
// 0: ActSeeAllSvy
#if L==1
"Enquestes"
#elif L==2
"Umfragen"
#elif L==3
"Surveys"
#elif L==4
"Encuestas"
#elif L==5
"Sondages"
#elif L==6
"Encuestas" // Okoteve traducción
#elif L==7
"Sondaggi"
#elif L==8
"Ankiety"
#elif L==9
"Inqu&eacute;ritos"
#endif
,
// 1: ActReqUseGbl
// 0: ActReqUseGbl
#if L==1
"Xifres"
#elif L==2
@ -19575,7 +19574,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"N&uacute;meros"
#endif
,
// 2: ActSeePhoDeg
// 1: ActSeePhoDeg
#if L==1
"Titulacions"
#elif L==2
@ -19596,7 +19595,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Titula&ccedil;&atilde;os"
#endif
,
// 3: ActReqStaCrs
// 2: ActReqStaCrs
#if L==1
"Indicadors"
#elif L==2
@ -19617,7 +19616,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Indicadores"
#endif
,
// 4: ActReqAccGbl
// 3: ActReqAccGbl
#if L==1
"Accessos"
#elif L==2
@ -19638,7 +19637,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Visitas"
#endif
,
// 5: ActReqMyUsgRep
// 4: ActReqMyUsgRep
#if L==1
"Informe"
#elif L==2
@ -19659,7 +19658,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Relat&oacute;rio"
#endif
,
// 6: ActMFUAct
// 5: ActMFUAct
#if L==1
"Freq&uuml;ents"
#elif L==2
@ -19680,6 +19679,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Freq&uuml;entes"
#endif
,
NULL, // 6
NULL, // 7
NULL, // 8
NULL, // 9
@ -20768,7 +20768,27 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Chamadas para exames"
#endif
,
NULL, // 4
// 4: ActSeeAllSvy
#if L==1
"Enquestes an&ograve;nimes"
#elif L==2
"Umfragen"
#elif L==3
"Surveys"
#elif L==4
"Encuestas an&oacute;nimas"
#elif L==5
"Sondages"
#elif L==6
"Encuestas an&oacute;nimas" // Okoteve traducción
#elif L==7
"Sondaggi"
#elif L==8
"Ankiety"
#elif L==9
"Inqu&eacute;ritos"
#endif
,
NULL, // 5
NULL, // 6
NULL, // 7
@ -21499,28 +21519,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
},
{
// TabSta *****************************************************
// 0: ActSeeAllSvy
#if L==1
"Enquestes an&ograve;nimes"
#elif L==2
"Umfragen"
#elif L==3
"Surveys"
#elif L==4
"Encuestas an&oacute;nimas"
#elif L==5
"Sondages"
#elif L==6
"Encuestas an&oacute;nimas" // Okoteve traducción
#elif L==7
"Sondaggi"
#elif L==8
"Ankiety"
#elif L==9
"Inqu&eacute;ritos"
#endif
,
// 1: ActReqUseGbl
// 0: ActReqUseGbl
#if L==1
"Grans nombres sobre l'&uacute;s actual de tota la plataforma,"
" o d'aquesta titulaci&oacute; o assignatura"
@ -21544,7 +21543,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Utiliza&ccedil;&atilde;o de SWAD"
#endif
,
// 2: ActSeePhoDeg
// 1: ActSeePhoDeg
#if L==1
"Estad&iacute;stiques del nombre d'estudiants en cada titulaci&oacute;"
" representades per les fotos mitjana dels estudiants"
@ -21568,7 +21567,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Fotografia titula&ccedil;oes"
#endif
,
// 3: ActReqStaCrs
// 2: ActReqStaCrs
#if L==1
"Indicadors d'assignatures per al contracte-programa"
#elif L==2
@ -21589,7 +21588,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Indicadores de disciplinas para o contrato programa"
#endif
,
// 4: ActReqAccGbl
// 3: ActReqAccGbl
#if L==1
"Estad&iacute;stiques d'accesso a la plataforma"
#elif L==2
@ -21610,7 +21609,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Estat&iacute;sticas de acesso &agrave; plataforma"
#endif
,
// 5: ActReqMyUsgRep
// 4: ActReqMyUsgRep
#if L==1
"Informe sobre el meu &uacute;s de la plataforma"
#elif L==2
@ -21631,7 +21630,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Relat&oacute;rio sobre o meu uso da plataforma"
#endif
,
// 6: ActMFUAct
// 5: ActMFUAct
#if L==1
"Acc&eacute;s directe a les meves accions m&eacute;s freq&uuml;ents"
#elif L==2
@ -21652,6 +21651,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Acesso direto das minhas a&ccedil;&otilde;es mais freq&uuml;entes"
#endif
,
NULL, // 6
NULL, // 7
NULL, // 8
NULL, // 9

View File

@ -27,6 +27,7 @@
#include <linux/stddef.h> // For NULL
#include <stdio.h> // For fprintf, etc.
#include <stdlib.h> // For malloc, calloc, free
#include <string.h> // For string functions
#include "swad_calendar.h"
@ -1054,7 +1055,7 @@ static void TT_FillTimeTableFromDB (long UsrCod)
}
/*****************************************************************************/
/****************** Get resolution given a time in seconds *******************/
/** Calculate range of a cell (start hour, end hour, minutes per interval) ***/
/*****************************************************************************/
static void TT_CalculateRangeCell (unsigned StartTimeSeconds,
@ -1091,6 +1092,9 @@ static void TT_CalculateRangeCell (unsigned StartTimeSeconds,
}
}
/*****************************************************************************/
/*********************** Calculate minutes per interval **********************/
/*****************************************************************************/
// Example: if Seconds == 42300 (time == 11:45:00) => Minutes = 45 => Resolution = 15
static unsigned TT_CalculateMinutesPerInterval (unsigned Seconds)
@ -1389,13 +1393,11 @@ static unsigned TT_CalculateColsToDrawInCell (bool TopCall,
static bool *TT_IntervalsChecked;
if (TopCall) // Top call, non recursive call
{
/****** Allocate space to store list of intervals already checked
and initialize to false by using calloc *****/
if ((TT_IntervalsChecked = (bool *) calloc (Gbl.TimeTable.Config.IntervalsPerDay,
sizeof (bool))) == NULL)
Lay_ShowErrorAndExit ("Error allocating memory for timetable.");
}
ColumnsToDraw = TT_TimeTable[Weekday][Interval].NumColumns;
@ -1405,13 +1407,13 @@ static unsigned TT_CalculateColsToDrawInCell (bool TopCall,
for (Column = 0;
Column < TT_MAX_COLUMNS_PER_CELL;
Column++)
{
switch (TT_TimeTable[Weekday][Interval].Columns[Column].IntervalType)
{
case TT_FREE_INTERVAL:
break;
case TT_FIRST_INTERVAL:
/* Check from first hour (this one) to last hour searching maximum number of columns */
/* Check from first hour (this one) to last hour
searching maximum number of columns */
for (i = Interval + 1;
i < Interval + TT_TimeTable[Weekday][Interval].Columns[Column].DurationIntervals;
i++)
@ -1429,7 +1431,8 @@ static unsigned TT_CalculateColsToDrawInCell (bool TopCall,
TT_TimeTable[Weekday][FirstHour].Columns[Column].IntervalType == TT_NEXT_INTERVAL;
FirstHour--);
/* Check from first hour to last hour searching maximum number of columns */
/* Check from first hour to last hour
searching maximum number of columns */
for (i = FirstHour;
i < FirstHour + TT_TimeTable[Weekday][FirstHour].Columns[Column].DurationIntervals;
i++)
@ -1442,7 +1445,6 @@ static unsigned TT_CalculateColsToDrawInCell (bool TopCall,
}
break;
}
}
}
if (TopCall) // Top call, non recursive call