Version19.122.3

This commit is contained in:
Antonio Cañas Vargas 2020-02-14 10:02:58 +01:00
parent 6c8af18e80
commit b22ef280ae
9 changed files with 54 additions and 51 deletions

View File

@ -679,7 +679,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActRemGam ] = {1657,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RemoveGame ,NULL}, [ActRemGam ] = {1657,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RemoveGame ,NULL},
[ActHidGam ] = {1660,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_HideGame ,NULL}, [ActHidGam ] = {1660,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_HideGame ,NULL},
[ActShoGam ] = {1661,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_UnhideGame ,NULL}, [ActShoGam ] = {1661,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_UnhideGame ,NULL},
[ActAddOneGamQst ] = {1662,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestNewQuestion ,NULL}, [ActAddOneGamQst ] = {1662,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,Gam_RequestNewQuestion ,NULL},
[ActGamLstTstQst ] = {1666,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ListTstQuestionsToSelect ,NULL}, [ActGamLstTstQst ] = {1666,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_ListTstQuestionsToSelect ,NULL},
[ActAddTstQstToGam ] = {1667,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_AddTstQuestionsToGame ,NULL}, [ActAddTstQstToGam ] = {1667,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_AddTstQuestionsToGame ,NULL},
[ActReqRemGamQst ] = {1664,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestRemoveQst ,NULL}, [ActReqRemGamQst ] = {1664,-1,TabUnk,ActSeeAllGam ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Gam_RequestRemoveQst ,NULL},

View File

@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD: En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 19.122.2 (2020-02-13)" #define Log_PLATFORM_VERSION "SWAD 19.122.3 (2020-02-14)"
#define CSS_FILE "swad19.118.css" #define CSS_FILE "swad19.118.css"
#define JS_FILE "swad19.91.1.js" #define JS_FILE "swad19.91.1.js"
/* /*
@ -506,9 +506,11 @@ ps2pdf source.ps destination.pdf
// TODO: No se puede entrar con DNI '1' suponiendo que no tenga password ¿por qué? // TODO: No se puede entrar con DNI '1' suponiendo que no tenga password ¿por qué?
// TODO: En la lista de conectados central, poner el logo de la institución a la que pertenece el usuario // TODO: En la lista de conectados central, poner el logo de la institución a la que pertenece el usuario
// TODO: En la lista de solicitudes de inscripción, alinear a la izquierda el nombre de la asignatura // TODO: En la lista de solicitudes de inscripción, alinear a la izquierda el nombre de la asignatura
// TODO: Urgente: Añadir nuevos niveles de realimentación tras sugerencia de Mancia y conversación con Javier.
// TODO: Urgente: en swad.ugr.es sale error al refrescar una titulación en la orla de titulaciones. // TODO: Urgente: en swad.ugr.es sale error al refrescar una titulación en la orla de titulaciones.
// TODO: URGENTÍSIMO: NO SE PUEDEN AÑADIR PREGUNTAS EN LOS JUEGOS. FALLA LA SELECCIÓN DE FECHAS.
Version 19.122.3: Feb 14, 2020 Fixed bug in games, reported by Gustavo Romero López.
Fixed bug in listing of departments, reported by Daniel Haro Contreras. (278698 lines)
Version 19.122.2: Feb 13, 2020 Increased quality in images. (278698 lines) Version 19.122.2: Feb 13, 2020 Increased quality in images. (278698 lines)
Version 19.122.1: Feb 07, 2020 Fixed bug removing test tags, reported by Mancia Anguita López. (278692 lines) Version 19.122.1: Feb 07, 2020 Fixed bug removing test tags, reported by Mancia Anguita López. (278692 lines)
Version 19.122: Jan 30, 2020 Some options changed in system tab. (278690 lines) Version 19.122: Jan 30, 2020 Some options changed in system tab. (278690 lines)

View File

@ -438,7 +438,7 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
HTM_TD_Begin ("class=\"LM\""); HTM_TD_Begin ("class=\"LM\"");
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start", Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start",
"Start", "Start",
Gbl.DateRange.TimeUTC[0], Gbl.DateRange.TimeUTC[Dat_START_TIME],
Cfg_LOG_START_YEAR, Cfg_LOG_START_YEAR,
Gbl.Now.Date.Year, Gbl.Now.Date.Year,
Dat_FORM_SECONDS_ON, Dat_FORM_SECONDS_ON,
@ -466,7 +466,7 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
HTM_TD_Begin ("class=\"LM\""); HTM_TD_Begin ("class=\"LM\"");
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End", Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End",
"End", "End",
Gbl.DateRange.TimeUTC[1], Gbl.DateRange.TimeUTC[Dat_END_TIME],
Cfg_LOG_START_YEAR, Cfg_LOG_START_YEAR,
Gbl.Now.Date.Year, Gbl.Now.Date.Year,
Dat_FORM_SECONDS_ON, Dat_FORM_SECONDS_ON,
@ -956,8 +956,8 @@ void Dat_GetDateFromForm (const char *ParamNameDay,const char *ParamNameMonth,co
void Dat_SetIniEndDates (void) void Dat_SetIniEndDates (void)
{ {
Gbl.DateRange.TimeUTC[0] = (time_t) 0; Gbl.DateRange.TimeUTC[Dat_START_TIME] = (time_t) 0;
Gbl.DateRange.TimeUTC[1] = Gbl.StartExecutionTimeUTC; Gbl.DateRange.TimeUTC[Dat_END_TIME ] = Gbl.StartExecutionTimeUTC;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -966,8 +966,8 @@ void Dat_SetIniEndDates (void)
void Dat_WriteParamsIniEndDates (void) void Dat_WriteParamsIniEndDates (void)
{ {
Par_PutHiddenParamUnsigned (NULL,"StartTimeUTC",Gbl.DateRange.TimeUTC[0]); Par_PutHiddenParamUnsigned (NULL,"StartTimeUTC",Gbl.DateRange.TimeUTC[Dat_START_TIME]);
Par_PutHiddenParamUnsigned (NULL,"EndTimeUTC" ,Gbl.DateRange.TimeUTC[1]); Par_PutHiddenParamUnsigned (NULL,"EndTimeUTC" ,Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -980,11 +980,11 @@ void Dat_GetIniEndDatesFromForm (void)
struct tm *tm_ptr; struct tm *tm_ptr;
/***** Get initial date *****/ /***** Get initial date *****/
Gbl.DateRange.TimeUTC[0] = Dat_GetTimeUTCFromForm ("StartTimeUTC"); Gbl.DateRange.TimeUTC[Dat_START_TIME] = Dat_GetTimeUTCFromForm ("StartTimeUTC");
if (Gbl.DateRange.TimeUTC[0]) if (Gbl.DateRange.TimeUTC[Dat_START_TIME])
/* Convert time UTC to a local date */ /* Convert time UTC to a local date */
tm_ptr = Dat_GetLocalTimeFromClock (&Gbl.DateRange.TimeUTC[0]); tm_ptr = Dat_GetLocalTimeFromClock (&Gbl.DateRange.TimeUTC[Dat_START_TIME]);
else // Gbl.DateRange.TimeUTC[0] == 0 ==> initial date not specified else // Gbl.DateRange.TimeUTC[Dat_START_TIME] == 0 ==> initial date not specified
{ {
tm.tm_year = Cfg_LOG_START_YEAR - 1900; tm.tm_year = Cfg_LOG_START_YEAR - 1900;
tm.tm_mon = 0; // January tm.tm_mon = 0; // January
@ -996,8 +996,8 @@ void Dat_GetIniEndDatesFromForm (void)
// (use timezone information and system databases to) // (use timezone information and system databases to)
// attempt to determine whether DST // attempt to determine whether DST
// is in effect at the specified time. // is in effect at the specified time.
if ((Gbl.DateRange.TimeUTC[0] = mktime (&tm)) < 0) if ((Gbl.DateRange.TimeUTC[Dat_START_TIME] = mktime (&tm)) < 0)
Gbl.DateRange.TimeUTC[0] = (time_t) 0; Gbl.DateRange.TimeUTC[Dat_START_TIME] = (time_t) 0;
tm_ptr = &tm; tm_ptr = &tm;
} }
@ -1009,12 +1009,12 @@ void Dat_GetIniEndDatesFromForm (void)
Gbl.DateRange.DateIni.Time.Second = tm_ptr->tm_sec; Gbl.DateRange.DateIni.Time.Second = tm_ptr->tm_sec;
/***** Get end date *****/ /***** Get end date *****/
Gbl.DateRange.TimeUTC[1] = Dat_GetTimeUTCFromForm ("EndTimeUTC"); Gbl.DateRange.TimeUTC[Dat_END_TIME] = Dat_GetTimeUTCFromForm ("EndTimeUTC");
if (Gbl.DateRange.TimeUTC[1] == 0) // Gbl.DateRange.TimeUTC[1] == 0 ==> end date not specified if (Gbl.DateRange.TimeUTC[Dat_END_TIME] == 0) // Gbl.DateRange.TimeUTC[Dat_END_TIME] == 0 ==> end date not specified
Gbl.DateRange.TimeUTC[1] = Gbl.StartExecutionTimeUTC; Gbl.DateRange.TimeUTC[Dat_END_TIME] = Gbl.StartExecutionTimeUTC;
/* Convert current time UTC to a local date */ /* Convert current time UTC to a local date */
tm_ptr = Dat_GetLocalTimeFromClock (&Gbl.DateRange.TimeUTC[1]); tm_ptr = Dat_GetLocalTimeFromClock (&Gbl.DateRange.TimeUTC[Dat_END_TIME]);
Gbl.DateRange.DateEnd.Date.Year = tm_ptr->tm_year + 1900; Gbl.DateRange.DateEnd.Date.Year = tm_ptr->tm_year + 1900;
Gbl.DateRange.DateEnd.Date.Month = tm_ptr->tm_mon + 1; Gbl.DateRange.DateEnd.Date.Month = tm_ptr->tm_mon + 1;

View File

@ -97,8 +97,8 @@ void Dpt_SeeDepts (void)
extern const char *Txt_Department_unspecified; extern const char *Txt_Department_unspecified;
Dpt_Order_t Order; Dpt_Order_t Order;
unsigned NumDpt; unsigned NumDpt;
unsigned NumTchsInsWithDpt = 0; // Number of teachers from the current institution with department unsigned NumTchsInsInOtherDpts;
unsigned NumTchsInOtherDpts; unsigned NumTchsInsWithNoDpt;
/***** Trivial check *****/ /***** Trivial check *****/
if (Gbl.Hierarchy.Ins.InsCod <= 0) // No institution selected if (Gbl.Hierarchy.Ins.InsCod <= 0) // No institution selected
@ -124,7 +124,8 @@ void Dpt_SeeDepts (void)
Order <= Dpt_ORDER_BY_NUM_TCHS; Order <= Dpt_ORDER_BY_NUM_TCHS;
Order++) Order++)
{ {
HTM_TH_Begin (1,1,"LM"); HTM_TH_Begin (1,1,Order == Dpt_ORDER_BY_NUM_TCHS ? "RM" :
"LM");
Frm_StartForm (ActSeeDpt); Frm_StartForm (ActSeeDpt);
Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order);
@ -161,10 +162,6 @@ void Dpt_SeeDepts (void)
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/* Update number of teachers from the current institution
with department */
NumTchsInsWithDpt += Gbl.Dpts.Lst[NumDpt].NumTchs;
} }
/***** Separation row *****/ /***** Separation row *****/
@ -174,8 +171,9 @@ void Dpt_SeeDepts (void)
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** Write teachers with other department *****/ /***** Write teachers of this institution with other department *****/
NumTchsInOtherDpts = Usr_GetNumTchsCurrentInsInDepartment (0); NumTchsInsInOtherDpts = Usr_GetNumTchsCurrentInsInDepartment (0);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"DAT LM\""); HTM_TD_Begin ("class=\"DAT LM\"");
@ -183,13 +181,14 @@ void Dpt_SeeDepts (void)
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT RM\""); HTM_TD_Begin ("class=\"DAT RM\"");
HTM_Unsigned (NumTchsInOtherDpts); HTM_Unsigned (NumTchsInsInOtherDpts);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
NumTchsInsWithDpt += NumTchsInOtherDpts;
/***** Write teachers with no department *****/ /***** Write teachers with no department *****/
NumTchsInsWithNoDpt = Usr_GetNumTchsCurrentInsInDepartment (-1L);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"DAT LM\""); HTM_TD_Begin ("class=\"DAT LM\"");
@ -197,10 +196,7 @@ void Dpt_SeeDepts (void)
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT RM\""); HTM_TD_Begin ("class=\"DAT RM\"");
HTM_Unsigned (Usr_GetNumUsrsInCrss (Hie_INS,Gbl.Hierarchy.Ins.InsCod, HTM_Unsigned (NumTchsInsWithNoDpt);
1 << Rol_NET | // Non-editing teachers
1 << Rol_TCH) - // Teachers
NumTchsInsWithDpt);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();

View File

@ -1503,7 +1503,7 @@ unsigned Gam_GetNumQstsGame (long GamCod)
} }
/*****************************************************************************/ /*****************************************************************************/
/*********** Put a form to edit/create a question in game *****************/ /*************** Put a form to edit/create a question in game ****************/
/*****************************************************************************/ /*****************************************************************************/
void Gam_RequestNewQuestion (void) void Gam_RequestNewQuestion (void)

View File

@ -701,7 +701,7 @@ struct Globals
{ {
struct DateTime DateIni; // TODO: Remove in future versions struct DateTime DateIni; // TODO: Remove in future versions
struct DateTime DateEnd; // TODO: Remove in future versions struct DateTime DateEnd; // TODO: Remove in future versions
time_t TimeUTC[2]; time_t TimeUTC[Dat_NUM_START_END_TIME];
} DateRange; } DateRange;
struct struct
{ {

View File

@ -629,8 +629,8 @@ static void Sta_WriteSelectorAction (void)
void Sta_SetIniEndDates (void) void Sta_SetIniEndDates (void)
{ {
Gbl.DateRange.TimeUTC[0] = Gbl.StartExecutionTimeUTC - ((Cfg_DAYS_IN_RECENT_LOG - 1) * 24 * 60 * 60); Gbl.DateRange.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC - ((Cfg_DAYS_IN_RECENT_LOG - 1) * 24 * 60 * 60);
Gbl.DateRange.TimeUTC[1] = Gbl.StartExecutionTimeUTC; Gbl.DateRange.TimeUTC[Dat_END_TIME ] = Gbl.StartExecutionTimeUTC;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -987,8 +987,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
sprintf (QueryAux," WHERE %s.ClickTime" sprintf (QueryAux," WHERE %s.ClickTime"
" BETWEEN FROM_UNIXTIME(%ld) AND FROM_UNIXTIME(%ld)", " BETWEEN FROM_UNIXTIME(%ld) AND FROM_UNIXTIME(%ld)",
LogTable, LogTable,
(long) Gbl.DateRange.TimeUTC[0], (long) Gbl.DateRange.TimeUTC[Dat_START_TIME],
(long) Gbl.DateRange.TimeUTC[1]); (long) Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
Str_Concat (Query,QueryAux, Str_Concat (Query,QueryAux,
Sta_MAX_BYTES_QUERY_ACCESS); Sta_MAX_BYTES_QUERY_ACCESS);

View File

@ -2489,14 +2489,14 @@ static unsigned long Tst_GetQuestions (MYSQL_RES **mysql_res)
Tst_MAX_BYTES_QUERY_TEST); Tst_MAX_BYTES_QUERY_TEST);
snprintf (LongStr,sizeof (LongStr), snprintf (LongStr,sizeof (LongStr),
"%ld", "%ld",
(long) Gbl.DateRange.TimeUTC[0]); (long) Gbl.DateRange.TimeUTC[Dat_START_TIME]);
Str_Concat (Query,LongStr, Str_Concat (Query,LongStr,
Tst_MAX_BYTES_QUERY_TEST); Tst_MAX_BYTES_QUERY_TEST);
Str_Concat (Query,"') AND tst_questions.EditTime<=FROM_UNIXTIME('", Str_Concat (Query,"') AND tst_questions.EditTime<=FROM_UNIXTIME('",
Tst_MAX_BYTES_QUERY_TEST); Tst_MAX_BYTES_QUERY_TEST);
snprintf (LongStr,sizeof (LongStr), snprintf (LongStr,sizeof (LongStr),
"%ld", "%ld",
(long) Gbl.DateRange.TimeUTC[1]); (long) Gbl.DateRange.TimeUTC[Dat_END_TIME]);
Str_Concat (Query,LongStr, Str_Concat (Query,LongStr,
Tst_MAX_BYTES_QUERY_TEST); Tst_MAX_BYTES_QUERY_TEST);
Str_Concat (Query,"')", Str_Concat (Query,"')",
@ -7748,8 +7748,8 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
" ORDER BY TstCod", " ORDER BY TstCod",
Gbl.Hierarchy.Crs.CrsCod, Gbl.Hierarchy.Crs.CrsCod,
UsrDat->UsrCod, UsrDat->UsrCod,
(long) Gbl.DateRange.TimeUTC[0], (long) Gbl.DateRange.TimeUTC[Dat_START_TIME],
(long) Gbl.DateRange.TimeUTC[1]); (long) Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
/***** Show user's data *****/ /***** Show user's data *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);

View File

@ -4224,7 +4224,7 @@ long Usr_GetRamdomStdFromGrp (long GrpCod)
} }
/*****************************************************************************/ /*****************************************************************************/
/**** Get number of teachers from the current institution in a department ****/ /* Get number of teachers in courses of the current instit. in a department **/
/*****************************************************************************/ /*****************************************************************************/
unsigned Usr_GetNumTchsCurrentInsInDepartment (long DptCod) unsigned Usr_GetNumTchsCurrentInsInDepartment (long DptCod)
@ -4235,13 +4235,18 @@ unsigned Usr_GetNumTchsCurrentInsInDepartment (long DptCod)
(unsigned) DB_QueryCOUNT ("can not get the number of teachers" (unsigned) DB_QueryCOUNT ("can not get the number of teachers"
" in a department", " in a department",
"SELECT COUNT(DISTINCT usr_data.UsrCod)" "SELECT COUNT(DISTINCT usr_data.UsrCod)"
" FROM usr_data,crs_usr" " FROM usr_data,crs_usr,courses,degrees,centres"
" WHERE usr_data.InsCod=%ld" " WHERE usr_data.InsCod=%ld" // User in the current institution...
" AND usr_data.DptCod=%ld" " AND usr_data.DptCod=%ld" // ...and the specified department...
" AND usr_data.UsrCod=crs_usr.UsrCod" " AND usr_data.UsrCod=crs_usr.UsrCod" // ...who is...
" AND crs_usr.Role IN (%u,%u)", " AND crs_usr.Role IN (%u,%u)" // ...a teacher...
" AND crs_usr.CrsCod=courses.CrsCod" // ...in a course...
" AND courses.DegCod=degrees.DegCod" // ...of a degree...
" AND degrees.CtrCod=centres.InsCod" // ...of a centre...
" AND centres.InsCod=%ld", // ...of the current institution
Gbl.Hierarchy.Ins.InsCod,DptCod, Gbl.Hierarchy.Ins.InsCod,DptCod,
(unsigned) Rol_NET,(unsigned) Rol_TCH); (unsigned) Rol_NET,(unsigned) Rol_TCH,
Gbl.Hierarchy.Ins.InsCod);
} }
/*****************************************************************************/ /*****************************************************************************/