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