diff --git a/swad_changelog.h b/swad_changelog.h
index 4c3734de2..f1c361054 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -557,10 +557,11 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
-#define Log_PLATFORM_VERSION "SWAD 19.236.4 (2020-05-18)"
+#define Log_PLATFORM_VERSION "SWAD 19.237 (2020-05-18)"
#define CSS_FILE "swad19.230.1.css"
#define JS_FILE "swad19.236.4.js"
/*
+ Version 19.237: May 18, 2020 Figures about exams. (301325 lines)
Version 19.236.4: May 18, 2020 Fixed minor bug in dates. (301244 lines)
Version 19.236.3: May 18, 2020 Number of players in a match now is calculated as number of users who have result, even in blank. (301243 lines)
Version 19.236.2: May 18, 2020 Fixed bug in matches, reported by Javier Fernández Baldomero. (301241 lines)
diff --git a/swad_figure.c b/swad_figure.c
index e639c7e34..8e159b55e 100644
--- a/swad_figure.c
+++ b/swad_figure.c
@@ -3275,47 +3275,47 @@ static void Fig_GetAndShowTestsStats (void)
static void Fig_GetAndShowExamsStats (void)
{
- extern const char *Hlp_ANALYTICS_Figures_games;
+ extern const char *Hlp_ANALYTICS_Figures_exams;
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
- extern const char *Txt_Number_of_BR_games;
- extern const char *Txt_Number_of_BR_courses_with_BR_games;
- extern const char *Txt_Average_number_BR_of_games_BR_per_course;
- unsigned NumGames;
- unsigned NumCoursesWithGames = 0;
- double NumGamesPerCourse = 0.0;
+ extern const char *Txt_Number_of_BR_exams;
+ extern const char *Txt_Number_of_BR_courses_with_BR_exams;
+ extern const char *Txt_Average_number_BR_of_exams_BR_per_course;
+ unsigned NumExams;
+ unsigned NumCoursesWithExams = 0;
+ double NumExamsPerCourse = 0.0;
- /***** Get the number of games from this location *****/
- if ((NumGames = Gam_GetNumGames (Gbl.Scope.Current)))
- if ((NumCoursesWithGames = Gam_GetNumCoursesWithGames (Gbl.Scope.Current)) != 0)
- NumGamesPerCourse = (double) NumGames / (double) NumCoursesWithGames;
+ /***** Get the number of exams from this location *****/
+ if ((NumExams = Exa_GetNumExams (Gbl.Scope.Current)))
+ if ((NumCoursesWithExams = Exa_GetNumCoursesWithExams (Gbl.Scope.Current)) != 0)
+ NumExamsPerCourse = (double) NumExams / (double) NumCoursesWithExams;
/***** Begin box and table *****/
- Box_BoxTableBegin (NULL,Txt_FIGURE_TYPES[Fig_GAMES],
+ Box_BoxTableBegin (NULL,Txt_FIGURE_TYPES[Fig_EXAMS],
NULL,NULL,
- Hlp_ANALYTICS_Figures_games,Box_NOT_CLOSABLE,2);
+ Hlp_ANALYTICS_Figures_exams,Box_NOT_CLOSABLE,2);
/***** Write table heading *****/
HTM_TR_Begin (NULL);
- HTM_TH (1,1,"RM",Txt_Number_of_BR_games);
- HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_games);
- HTM_TH (1,1,"RM",Txt_Average_number_BR_of_games_BR_per_course);
+ HTM_TH (1,1,"RM",Txt_Number_of_BR_exams);
+ HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_exams);
+ HTM_TH (1,1,"RM",Txt_Average_number_BR_of_exams_BR_per_course);
HTM_TR_End ();
- /***** Write number of games *****/
+ /***** Write number of exams *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (NumGames);
+ HTM_Unsigned (NumExams);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Unsigned (NumCoursesWithGames);
+ HTM_Unsigned (NumCoursesWithExams);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT RM\"");
- HTM_Double2Decimals (NumGamesPerCourse);
+ HTM_Double2Decimals (NumExamsPerCourse);
HTM_TD_End ();
HTM_TR_End ();
diff --git a/swad_help_URL.c b/swad_help_URL.c
index f48db7394..23abdaeff 100644
--- a/swad_help_URL.c
+++ b/swad_help_URL.c
@@ -3057,6 +3057,27 @@ const char *Hlp_ANALYTICS_Figures_tests =
"ANALYTICS.Figures.en#tests";
#endif
+const char *Hlp_ANALYTICS_Figures_exams =
+#if L==1
+ "ANALYTICS.Figures.es#ex%C3%A1menes";
+#elif L==2
+ "ANALYTICS.Figures.en#exams";
+#elif L==3
+ "ANALYTICS.Figures.en#exams";
+#elif L==4
+ "ANALYTICS.Figures.es#ex%C3%A1menes";
+#elif L==5
+ "ANALYTICS.Figures.en#exams";
+#elif L==6
+ "ANALYTICS.Figures.es#ex%C3%A1menes";
+#elif L==7
+ "ANALYTICS.Figures.en#exams";
+#elif L==8
+ "ANALYTICS.Figures.en#exams";
+#elif L==9
+ "ANALYTICS.Figures.en#exams";
+#endif
+
const char *Hlp_ANALYTICS_Figures_games =
#if L==1
"ANALYTICS.Figures.es#juegos";
diff --git a/swad_text.c b/swad_text.c
index 8da7a79d6..da0864e05 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -2521,6 +2521,27 @@ const char *Txt_Average_number_BR_of_ASSIG_BR_per_course =
"N.º medio
de atividades
por disciplina";
#endif
+const char *Txt_Average_number_BR_of_exams_BR_per_course =
+#if L==1 // ca
+ "Nombre mitj´
d'exàmens
per assignatura";
+#elif L==2 // de
+ "Durchschnittliche Anzahl
von Prüfung
pro Kurs";
+#elif L==3 // en
+ "Average number
of exams
per course";
+#elif L==4 // es
+ "N.º medio
de exámenes
por asignatura";
+#elif L==5 // fr
+ "Nombre moyen
d'examens
par matière";
+#elif L==6 // gn
+ "N.º medio
de exámenes
por asignatura"; // Okoteve traducción
+#elif L==7 // it
+ "Numero medio
d'esame
per corso";
+#elif L==8 // pl
+ "Średnia liczba
egzaminów
na kurs";
+#elif L==9 // pt
+ "N.º medio
de exames
por disciplina";
+#endif
+
const char *Txt_Average_number_BR_of_games_BR_per_course =
#if L==1 // ca
"Nombre mitj´
de jocs
per assignatura";
@@ -28838,6 +28859,27 @@ const char *Txt_Number_of_BR_courses_with_BR_assignments =
"N.º de
disciplinas
com atividades";
#endif
+const char *Txt_Number_of_BR_courses_with_BR_exams =
+#if L==1 // ca
+ "Nombre
d'assignatures
amb exàmens";
+#elif L==2 // de
+ "Anzahl der
Kursen
mit Prüfung";
+#elif L==3 // en
+ "Number of
courses with
exams";
+#elif L==4 // es
+ "N.º de
asignaturas
con exámenes";
+#elif L==5 // fr
+ "Nombre de
matières
avec examens";
+#elif L==6 // gn
+ "N.º de
asignaturas
con exámenes"; // Okoteve traducción
+#elif L==7 // it
+ "Numero di
corsi con
esame";
+#elif L==8 // pl
+ "Liczba
kursów z
egzaminów";
+#elif L==9 // pt
+ "N.º de
disciplinas
com exames";
+#endif
+
const char *Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions =
#if L==1 // ca
"Nombre
d'assignatures
amb preguntes
de test
exportables";
@@ -29006,9 +29048,30 @@ const char *Txt_Number_of_BR_emails =
"Número de
emails";
#endif
+const char *Txt_Number_of_BR_exams =
+#if L==1 // ca
+ "Nombre
d'exàmens";
+#elif L==2 // de
+ "Anzahl der
Prüfung";
+#elif L==3 // en
+ "Number of
exams";
+#elif L==4 // es
+ "N.º de
exámenes";
+#elif L==5 // fr
+ "Nombre
d'examens";
+#elif L==6 // gn
+ "N.º de
exámenes"; // Okoteve traducción
+#elif L==7 // it
+ "Numero
d'esame";
+#elif L==8 // pl
+ "Liczba
egzaminów";
+#elif L==9 // pt
+ "Número de
exames";
+#endif
+
const char *Txt_Number_of_BR_games =
#if L==1 // ca
- "Nombre
de jocs.";
+ "Nombre
de jocs";
#elif L==2 // de
"Anzahl der
Spiele";
#elif L==3 // en
@@ -29022,7 +29085,7 @@ const char *Txt_Number_of_BR_games =
#elif L==7 // it
"Numero di
giochi";
#elif L==8 // pl
- "Liczba
gier.";
+ "Liczba
gier";
#elif L==9 // pt
"Número de
jogos";
#endif