diff --git a/Makefile b/Makefile
index a14224a24..a3a0101bc 100644
--- a/Makefile
+++ b/Makefile
@@ -47,7 +47,7 @@ OBJS = swad_account.o swad_action.o swad_agenda.o swad_announcement.o \
swad_place.o swad_plugin.o swad_preference.o swad_profile.o \
swad_privacy.o \
swad_QR.o \
- swad_record.o swad_role.o swad_RSS.o \
+ swad_record.o swad_report.o swad_role.o swad_RSS.o \
swad_scope.o swad_search.o swad_session.o swad_setup.o swad_social.o \
swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \
swad_tab.o swad_test.o swad_test_import.o swad_theme.o swad_timetable.o \
diff --git a/swad_action.c b/swad_action.c
index b828d375e..ee3842951 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -62,6 +62,7 @@
#include "swad_preference.h"
#include "swad_profile.h"
#include "swad_QR.h"
+#include "swad_report.h"
#include "swad_search.h"
#include "swad_setup.h"
#include "swad_social.h"
@@ -1284,6 +1285,7 @@ Statistics:
1100. ActSeePhoDeg Show a class photo with the average photos of the students of each degree
1101. ActReqStaCrs Request statistics of courses
1102. ActReqAccGbl Request query of clicks to the complete platform
+ NEW. ActSeeMyUsgRep Show my usage report
1103. ActSeeOneSvy Show one survey
1104. ActAnsSvy Answer a survey
@@ -2705,6 +2707,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeePhoDeg */{ 447, 2,TabSta,ActSeePhoDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ShowPhotoDegree ,"classphoto64x64.gif" },
/* ActReqStaCrs */{ 767, 3,TabSta,ActReqStaCrs ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Ind_ReqIndicatorsCourses ,"tablestats64x64.gif" },
/* ActReqAccGbl */{ 591, 4,TabSta,ActReqAccGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Sta_SetIniEndDates ,Sta_AskShowGblHits ,"stats64x64.gif" },
+ /* ActSeeMyUsgRep */{1582, 5,TabSta,ActSeeMyUsgRep ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rep_ShowMyUsageReport ,"report64x64.png" },
// Actions not in menu:
/* ActSeeOneSvy */{ 982,-1,TabSta,ActSeeAllSvy ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Svy_SeeOneSurvey ,NULL},
@@ -4428,6 +4431,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActLstSimUsr, // #1579
ActRemDupUsr, // #1580
ActSeeMyAgd, // #1581
+ ActSeeMyUsgRep, // #1582
};
/*****************************************************************************/
diff --git a/swad_action.h b/swad_action.h
index 790844937..c21b00f76 100644
--- a/swad_action.h
+++ b/swad_action.h
@@ -72,9 +72,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
-#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+246+186+156+172+36+28+85)
+#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+246+186+156+172+36+29+85)
-#define Act_MAX_ACTION_COD 1581
+#define Act_MAX_ACTION_COD 1582
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@@ -1335,31 +1335,33 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActSeePhoDeg (ActUnbUsrLst+ 3)
#define ActReqStaCrs (ActUnbUsrLst+ 4)
#define ActReqAccGbl (ActUnbUsrLst+ 5)
-// Secondary actions
-#define ActSeeOneSvy (ActUnbUsrLst+ 6)
-#define ActAnsSvy (ActUnbUsrLst+ 7)
-#define ActFrmNewSvy (ActUnbUsrLst+ 8)
-#define ActEdiOneSvy (ActUnbUsrLst+ 9)
-#define ActNewSvy (ActUnbUsrLst+ 10)
-#define ActChgSvy (ActUnbUsrLst+ 11)
-#define ActReqRemSvy (ActUnbUsrLst+ 12)
-#define ActRemSvy (ActUnbUsrLst+ 13)
-#define ActReqRstSvy (ActUnbUsrLst+ 14)
-#define ActRstSvy (ActUnbUsrLst+ 15)
-#define ActHidSvy (ActUnbUsrLst+ 16)
-#define ActShoSvy (ActUnbUsrLst+ 17)
-#define ActEdiOneSvyQst (ActUnbUsrLst+ 18)
-#define ActRcvSvyQst (ActUnbUsrLst+ 19)
-#define ActReqRemSvyQst (ActUnbUsrLst+ 20)
-#define ActRemSvyQst (ActUnbUsrLst+ 21)
+#define ActSeeMyUsgRep (ActUnbUsrLst+ 6)
-#define ActSeeUseGbl (ActUnbUsrLst+ 22)
-#define ActPrnPhoDeg (ActUnbUsrLst+ 23)
-#define ActCalPhoDeg (ActUnbUsrLst+ 24)
-#define ActSeeAccGbl (ActUnbUsrLst+ 25)
-#define ActReqAccCrs (ActUnbUsrLst+ 26)
-#define ActSeeAccCrs (ActUnbUsrLst+ 27)
-#define ActSeeAllStaCrs (ActUnbUsrLst+ 28)
+// Secondary actions
+#define ActSeeOneSvy (ActUnbUsrLst+ 7)
+#define ActAnsSvy (ActUnbUsrLst+ 8)
+#define ActFrmNewSvy (ActUnbUsrLst+ 9)
+#define ActEdiOneSvy (ActUnbUsrLst+ 10)
+#define ActNewSvy (ActUnbUsrLst+ 11)
+#define ActChgSvy (ActUnbUsrLst+ 12)
+#define ActReqRemSvy (ActUnbUsrLst+ 13)
+#define ActRemSvy (ActUnbUsrLst+ 14)
+#define ActReqRstSvy (ActUnbUsrLst+ 15)
+#define ActRstSvy (ActUnbUsrLst+ 16)
+#define ActHidSvy (ActUnbUsrLst+ 17)
+#define ActShoSvy (ActUnbUsrLst+ 18)
+#define ActEdiOneSvyQst (ActUnbUsrLst+ 19)
+#define ActRcvSvyQst (ActUnbUsrLst+ 20)
+#define ActReqRemSvyQst (ActUnbUsrLst+ 21)
+#define ActRemSvyQst (ActUnbUsrLst+ 22)
+
+#define ActSeeUseGbl (ActUnbUsrLst+ 23)
+#define ActPrnPhoDeg (ActUnbUsrLst+ 24)
+#define ActCalPhoDeg (ActUnbUsrLst+ 25)
+#define ActSeeAccGbl (ActUnbUsrLst+ 26)
+#define ActReqAccCrs (ActUnbUsrLst+ 27)
+#define ActSeeAccCrs (ActUnbUsrLst+ 28)
+#define ActSeeAllStaCrs (ActUnbUsrLst+ 29)
/*****************************************************************************/
/******************************** Profile tab ********************************/
diff --git a/swad_changelog.h b/swad_changelog.h
index a5b104bfd..ff9d1f225 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -135,13 +135,15 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 15.248.2 (2016-09-07)"
+#define Log_PLATFORM_VERSION "SWAD 15.249 (2016-09-08)"
#define CSS_FILE "swad15.229.css"
#define JS_FILE "swad15.238.1.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 15.249: Sep 08, 2016 New option Statistics > Report. Not implemented. (204341 lines)
+ Version 15.248.3: Sep 07, 2016 Fixed bug related to attendance events in web service, reported by Rubén Martín Hidalgo. (? lines)
Version 15.248.2: Sep 07, 2016 Code refactoring related to boolean fields in database. (204201 lines)
Version 15.248.1: Sep 07, 2016 Fixed bugs related to hidden attendance events, reported by Rubén Martín Hidalgo. (204200 lines)
Version 15.248: Sep 06, 2016 New web service function removeAttendanceEvent. (204186 lines)
diff --git a/swad_menu.c b/swad_menu.c
index 03a0c6717..55fad97d6 100644
--- a/swad_menu.c
+++ b/swad_menu.c
@@ -177,6 +177,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
ActSeePhoDeg,
ActReqStaCrs,
ActReqAccGbl,
+ ActSeeMyUsgRep,
},
// TabPrf **********
{
diff --git a/swad_report.c b/swad_report.c
new file mode 100644
index 000000000..b4568ea2f
--- /dev/null
+++ b/swad_report.c
@@ -0,0 +1,71 @@
+// swad_report.c: report on my use of the platform
+
+/*
+ SWAD (Shared Workspace At a Distance),
+ is a web platform developed at the University of Granada (Spain),
+ and used to support university teaching.
+
+ This file is part of SWAD core.
+ Copyright (C) 1999-2016 Antonio Cañas Vargas
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General 3 License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+/*****************************************************************************/
+/*********************************** Headers *********************************/
+/*****************************************************************************/
+
+// #include // For boolean type
+// #include // For sprintf
+// #include // For string functions
+
+// #include "swad_database.h"
+// #include "swad_follow.h"
+// #include "swad_global.h"
+// #include "swad_notification.h"
+// #include "swad_profile.h"
+// #include "swad_user.h"
+
+/*****************************************************************************/
+/****************************** Public constants *****************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/***************************** Private constants *****************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/****************************** Internal types *******************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/************** External global variables from others modules ****************/
+/*****************************************************************************/
+
+// extern struct Globals Gbl;
+
+/*****************************************************************************/
+/************************* Internal global variables *************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/***************************** Private prototypes ****************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/********* Show my usage report (report on my use of the platform) ***********/
+/*****************************************************************************/
+
+void Rep_ShowMyUsageReport (void)
+ {
+ }
diff --git a/swad_report.h b/swad_report.h
new file mode 100644
index 000000000..7cbf2e78f
--- /dev/null
+++ b/swad_report.h
@@ -0,0 +1,48 @@
+// swad_report.h: report on my use of the platform
+
+#ifndef _SWAD_REP
+#define _SWAD_REP
+/*
+ SWAD (Shared Workspace At a Distance in Spanish),
+ is a web platform developed at the University of Granada (Spain),
+ and used to support university teaching.
+
+ This file is part of SWAD core.
+ Copyright (C) 1999-2016 Antonio Cañas Vargas
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+/*****************************************************************************/
+/********************************** Headers **********************************/
+/*****************************************************************************/
+
+// #include // For malloc
+
+// #include "swad_user.h"
+
+/*****************************************************************************/
+/****************************** Public constants *****************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/******************************** Public types *******************************/
+/*****************************************************************************/
+
+/*****************************************************************************/
+/****************************** Public prototypes ****************************/
+/*****************************************************************************/
+
+void Rep_ShowMyUsageReport (void);
+
+#endif
diff --git a/swad_text.c b/swad_text.c
index dc42ec7fd..3ff400c3b 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -18947,7 +18947,27 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Visitas"
#endif
,
- NULL,
+ // ActSeeMyUsgRep
+#if L==1
+ "Informe"
+#elif L==2
+ "Nutzungsbericht"
+#elif L==3
+ "Report"
+#elif L==4
+ "Informe"
+#elif L==5
+ "Rapport"
+#elif L==6
+ "Informe" // Okoteve traducción
+#elif L==7
+ "Rapporto"
+#elif L==8
+ "Raport"
+#elif L==9
+ "Relatório"
+#endif
+ ,
NULL,
NULL,
NULL,
@@ -20980,6 +21000,27 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Statystyki dostęp do platformy"
#elif L==9
"Estatísticas de acesso à plataforma"
+#endif
+ ,
+ // ActSeeMyUsgRep
+#if L==1
+ "Informe sobre el meu ús de la plataforma"
+#elif L==2
+ "Bericht über meine Nutzung der Plattform"
+#elif L==3
+ "Report on my use of the platform"
+#elif L==4
+ "Informe sobre mi uso de la plataforma"
+#elif L==5
+ "Rapport sur mon utilisation de la plate-forme"
+#elif L==6
+ "Informe sobre mi uso de la plataforma" // Okoteve traducción
+#elif L==7
+ "Relazione sulla mia utilizzo della piattaforma"
+#elif L==8
+ "Raport o moim korzystania z platformy"
+#elif L==9
+ "Relatório sobre o meu uso da plataforma"
#endif
,
NULL,
diff --git a/swad_web_service.c b/swad_web_service.c
index b60814da6..3c9e9e559 100644
--- a/swad_web_service.c
+++ b/swad_web_service.c
@@ -2116,7 +2116,7 @@ int swad__getAttendanceEvents (struct soap *soap,
"Requester must be a teacher");
/***** Query list of attendance events *****/
- sprintf (Query,"SELECT AttCod,UsrCod,"
+ sprintf (Query,"SELECT AttCod,Hidden,UsrCod,"
"UNIX_TIMESTAMP(StartTime) AS ST,"
"UNIX_TIMESTAMP(EndTime) AS ET,"
"CommentTchVisible,Title,Txt"