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},
[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},
[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},
[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},

View File

@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
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 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: 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: 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: 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.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)

View File

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

View File

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

View File

@ -701,7 +701,7 @@ struct Globals
{
struct DateTime DateIni; // 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;
struct
{

View File

@ -629,8 +629,8 @@ static void Sta_WriteSelectorAction (void)
void Sta_SetIniEndDates (void)
{
Gbl.DateRange.TimeUTC[0] = Gbl.StartExecutionTimeUTC - ((Cfg_DAYS_IN_RECENT_LOG - 1) * 24 * 60 * 60);
Gbl.DateRange.TimeUTC[1] = Gbl.StartExecutionTimeUTC;
Gbl.DateRange.TimeUTC[Dat_START_TIME] = Gbl.StartExecutionTimeUTC - ((Cfg_DAYS_IN_RECENT_LOG - 1) * 24 * 60 * 60);
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"
" BETWEEN FROM_UNIXTIME(%ld) AND FROM_UNIXTIME(%ld)",
LogTable,
(long) Gbl.DateRange.TimeUTC[0],
(long) Gbl.DateRange.TimeUTC[1]);
(long) Gbl.DateRange.TimeUTC[Dat_START_TIME],
(long) Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
Str_Concat (Query,QueryAux,
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);
snprintf (LongStr,sizeof (LongStr),
"%ld",
(long) Gbl.DateRange.TimeUTC[0]);
(long) Gbl.DateRange.TimeUTC[Dat_START_TIME]);
Str_Concat (Query,LongStr,
Tst_MAX_BYTES_QUERY_TEST);
Str_Concat (Query,"') AND tst_questions.EditTime<=FROM_UNIXTIME('",
Tst_MAX_BYTES_QUERY_TEST);
snprintf (LongStr,sizeof (LongStr),
"%ld",
(long) Gbl.DateRange.TimeUTC[1]);
(long) Gbl.DateRange.TimeUTC[Dat_END_TIME]);
Str_Concat (Query,LongStr,
Tst_MAX_BYTES_QUERY_TEST);
Str_Concat (Query,"')",
@ -7748,8 +7748,8 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
" ORDER BY TstCod",
Gbl.Hierarchy.Crs.CrsCod,
UsrDat->UsrCod,
(long) Gbl.DateRange.TimeUTC[0],
(long) Gbl.DateRange.TimeUTC[1]);
(long) Gbl.DateRange.TimeUTC[Dat_START_TIME],
(long) Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
/***** Show user's data *****/
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)
@ -4235,13 +4235,18 @@ unsigned Usr_GetNumTchsCurrentInsInDepartment (long DptCod)
(unsigned) DB_QueryCOUNT ("can not get the number of teachers"
" in a department",
"SELECT COUNT(DISTINCT usr_data.UsrCod)"
" FROM usr_data,crs_usr"
" WHERE usr_data.InsCod=%ld"
" AND usr_data.DptCod=%ld"
" AND usr_data.UsrCod=crs_usr.UsrCod"
" AND crs_usr.Role IN (%u,%u)",
" FROM usr_data,crs_usr,courses,degrees,centres"
" WHERE usr_data.InsCod=%ld" // User in the current institution...
" AND usr_data.DptCod=%ld" // ...and the specified department...
" AND usr_data.UsrCod=crs_usr.UsrCod" // ...who is...
" 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,
(unsigned) Rol_NET,(unsigned) Rol_TCH);
(unsigned) Rol_NET,(unsigned) Rol_TCH,
Gbl.Hierarchy.Ins.InsCod);
}
/*****************************************************************************/