Version19.237

This commit is contained in:
acanas 2020-05-18 15:30:06 +02:00
parent c14a6aa474
commit eae6b251a7
4 changed files with 108 additions and 23 deletions

View File

@ -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)

View File

@ -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 ();

View File

@ -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";

View File

@ -2521,6 +2521,27 @@ const char *Txt_Average_number_BR_of_ASSIG_BR_per_course =
"N.&ordm; medio<br />de atividades<br />por disciplina";
#endif
const char *Txt_Average_number_BR_of_exams_BR_per_course =
#if L==1 // ca
"Nombre mitj&acute;<br />d'ex&agrave;mens<br />per assignatura";
#elif L==2 // de
"Durchschnittliche Anzahl<br />von Pr&uuml;fung<br />pro Kurs";
#elif L==3 // en
"Average number<br />of exams<br />per course";
#elif L==4 // es
"N.&ordm; medio<br />de ex&aacute;menes<br />por asignatura";
#elif L==5 // fr
"Nombre moyen<br />d'examens<br />par mati&egrave;re";
#elif L==6 // gn
"N.&ordm; medio<br />de ex&aacute;menes<br />por asignatura"; // Okoteve traducción
#elif L==7 // it
"Numero medio<br />d'esame<br />per corso";
#elif L==8 // pl
"&Sacute;rednia liczba<br />egzamin&oacute;w<br />na kurs";
#elif L==9 // pt
"N.&ordm; medio<br />de exames<br />por disciplina";
#endif
const char *Txt_Average_number_BR_of_games_BR_per_course =
#if L==1 // ca
"Nombre mitj&acute;<br />de jocs<br />per assignatura";
@ -28838,6 +28859,27 @@ const char *Txt_Number_of_BR_courses_with_BR_assignments =
"N.&ordm; de<br />disciplinas<br />com atividades";
#endif
const char *Txt_Number_of_BR_courses_with_BR_exams =
#if L==1 // ca
"Nombre<br />d'assignatures<br />amb ex&agrave;mens";
#elif L==2 // de
"Anzahl der<br />Kursen<br />mit Pr&uuml;fung";
#elif L==3 // en
"Number of<br />courses with<br />exams";
#elif L==4 // es
"N.&ordm; de<br />asignaturas<br />con ex&aacute;menes";
#elif L==5 // fr
"Nombre de<br />mati&egrave;res<br />avec examens";
#elif L==6 // gn
"N.&ordm; de<br />asignaturas<br />con ex&aacute;menes"; // Okoteve traducción
#elif L==7 // it
"Numero di<br />corsi con<br />esame";
#elif L==8 // pl
"Liczba<br />kurs&oacute;w z<br />egzamin&oacute;w";
#elif L==9 // pt
"N.&ordm; de<br />disciplinas<br />com exames";
#endif
const char *Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions =
#if L==1 // ca
"Nombre<br />d'assignatures<br />amb preguntes<br />de test<br />exportables";
@ -29006,9 +29048,30 @@ const char *Txt_Number_of_BR_emails =
"N&uacute;mero de<br />emails";
#endif
const char *Txt_Number_of_BR_exams =
#if L==1 // ca
"Nombre<br />d'ex&agrave;mens";
#elif L==2 // de
"Anzahl der<br />Pr&uuml;fung";
#elif L==3 // en
"Number of<br />exams";
#elif L==4 // es
"N.&ordm; de<br />ex&aacute;menes";
#elif L==5 // fr
"Nombre<br />d'examens";
#elif L==6 // gn
"N.&ordm; de<br />ex&aacute;menes"; // Okoteve traducción
#elif L==7 // it
"Numero<br />d'esame";
#elif L==8 // pl
"Liczba<br />egzamin&oacute;w";
#elif L==9 // pt
"N&uacute;mero de<br />exames";
#endif
const char *Txt_Number_of_BR_games =
#if L==1 // ca
"Nombre<br />de jocs.";
"Nombre<br />de jocs";
#elif L==2 // de
"Anzahl der<br />Spiele";
#elif L==3 // en
@ -29022,7 +29085,7 @@ const char *Txt_Number_of_BR_games =
#elif L==7 // it
"Numero di<br />giochi";
#elif L==8 // pl
"Liczba<br />gier.";
"Liczba<br />gier";
#elif L==9 // pt
"N&uacute;mero de<br />jogos";
#endif