mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-15 21:24:07 +02:00
Version19.94
This commit is contained in:
parent
455012f780
commit
8f11dafe59
|
@ -13105,6 +13105,6 @@ SELECT MIN(QstInd) FROM gam_questions WHERE GamCod=47 AND QstInd>5;
|
|||
|
||||
|
||||
|
||||
|
||||
SELECT NotifyEvent,FromUsrCod,InsCod,CtrCod,DegCod,CrsCod,Cod,UNIX_TIMESTAMP(TimeNotif),Status FROM notif WHERE ToUsrCod=1346 ORDER BY TimeNotif DESC;
|
||||
|
||||
|
12
swad_API.c
12
swad_API.c
|
@ -1032,7 +1032,7 @@ int swad__loginBySessionKey (struct soap *soap,
|
|||
|
||||
/***** Get course (row[2]) *****/
|
||||
Gbl.Hierarchy.Crs.CrsCod = Str_ConvertStrCodToLongCod (row[2]);
|
||||
Crs_GetDataOfCourseByCod (&Gbl.Hierarchy.Crs);
|
||||
Crs_GetDataOfCourseByCod (&Gbl.Hierarchy.Crs,Crs_GET_BASIC_DATA);
|
||||
loginBySessionKeyOut->courseCode = (int) Gbl.Hierarchy.Crs.CrsCod;
|
||||
Str_Copy (loginBySessionKeyOut->courseName,Gbl.Hierarchy.Crs.FullName,
|
||||
Hie_MAX_BYTES_FULL_NAME);
|
||||
|
@ -1043,7 +1043,7 @@ int swad__loginBySessionKey (struct soap *soap,
|
|||
|
||||
/***** Get degree (row[1]) *****/
|
||||
Gbl.Hierarchy.Deg.DegCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||
Deg_GetDataOfDegreeByCod (&Gbl.Hierarchy.Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Gbl.Hierarchy.Deg,Deg_GET_BASIC_DATA);
|
||||
loginBySessionKeyOut->degreeCode = (int) Gbl.Hierarchy.Deg.DegCod;
|
||||
Str_Copy (loginBySessionKeyOut->degreeName,Gbl.Hierarchy.Deg.FullName,
|
||||
Hie_MAX_BYTES_FULL_NAME);
|
||||
|
@ -2998,7 +2998,7 @@ int swad__getNotifications (struct soap *soap,
|
|||
getNotificationsOut->notificationsArray.__ptr[NumNotif].notifCode = (int) NtfCod;
|
||||
|
||||
/* Get notification event type (row[1]) */
|
||||
NotifyEvent = Ntf_GetNotifyEventFromDB ((const char *) row[1]);
|
||||
NotifyEvent = Ntf_GetNotifyEventFromStr ((const char *) row[1]);
|
||||
getNotificationsOut->notificationsArray.__ptr[NumNotif].eventType =
|
||||
(char *) soap_malloc (Gbl.soap,Ntf_MAX_BYTES_NOTIFY_EVENT + 1);
|
||||
Str_Copy (getNotificationsOut->notificationsArray.__ptr[NumNotif].eventType,
|
||||
|
@ -3013,7 +3013,7 @@ int swad__getNotifications (struct soap *soap,
|
|||
|
||||
/* Get course (row[7]) */
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[7]);
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/* Get user's code of the user who caused the event (row[3]) */
|
||||
Gbl.Usrs.Other.UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[3]);
|
||||
|
@ -3066,11 +3066,11 @@ int swad__getNotifications (struct soap *soap,
|
|||
|
||||
/* Get centre (row[5]) */
|
||||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[5]);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/* Get degree (row[6]) */
|
||||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[6]);
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/* Get message/post/... code (row[8]) */
|
||||
Cod = Str_ConvertStrCodToLongCod (row[8]);
|
||||
|
|
|
@ -203,7 +203,7 @@ void Ctr_SeeCtrWithPendingDegs (void)
|
|||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
|
||||
/* Get data of centre */
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/* Centre logo and full name */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1155,7 +1155,8 @@ void Ctr_GetListCentres (long InsCod)
|
|||
/************************ Get data of centre by code *************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
|
||||
bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr,
|
||||
Ctr_GetExtraData_t GetExtraData)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1233,14 +1234,18 @@ bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
|
|||
if (sscanf (row[7],"%u",&Ctr->NumUsrsWhoClaimToBelongToCtr) != 1)
|
||||
Ctr->NumUsrsWhoClaimToBelongToCtr = 0;
|
||||
|
||||
/* Get number of degrees in this centre */
|
||||
Ctr->Degs.Num = Deg_GetNumDegsInCtr (Ctr->CtrCod);
|
||||
/* Get extra data */
|
||||
if (GetExtraData == Ctr_GET_EXTRA_DATA)
|
||||
{
|
||||
/* Get number of degrees in this centre */
|
||||
Ctr->Degs.Num = Deg_GetNumDegsInCtr (Ctr->CtrCod);
|
||||
|
||||
/* Get number of courses in this centre */
|
||||
Ctr->NumCrss = Crs_GetNumCrssInCtr (Ctr->CtrCod);
|
||||
/* Get number of courses in this centre */
|
||||
Ctr->NumCrss = Crs_GetNumCrssInCtr (Ctr->CtrCod);
|
||||
|
||||
/* Get number of users in courses of this centre */
|
||||
Ctr->NumUsrs = Usr_GetNumUsrsInCrssOfCtr (Rol_UNK,Ctr->CtrCod); // Here Rol_UNK means "all users"
|
||||
/* Get number of users in courses of this centre */
|
||||
Ctr->NumUsrs = Usr_GetNumUsrsInCrssOfCtr (Rol_UNK,Ctr->CtrCod); // Here Rol_UNK means "all users"
|
||||
}
|
||||
|
||||
/* Set return value */
|
||||
CtrFound = true;
|
||||
|
@ -1742,7 +1747,7 @@ void Ctr_RemoveCentre (void)
|
|||
Ctr_EditingCtr->CtrCod = Ctr_GetAndCheckParamOtherCtrCod (1);
|
||||
|
||||
/***** Get data of the centre from database *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr);
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr,Ctr_GET_EXTRA_DATA);
|
||||
|
||||
/***** Check if this centre has teachers *****/
|
||||
if (Ctr_EditingCtr->Degs.Num ||
|
||||
|
@ -1883,7 +1888,7 @@ void Ctr_ChangeCtrPlc (void)
|
|||
NewPlcCod = Plc_GetParamPlcCod ();
|
||||
|
||||
/***** Get data of centre from database *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr);
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Update place in table of centres *****/
|
||||
Ctr_UpdateCtrPlcDB (Ctr_EditingCtr->CtrCod,NewPlcCod);
|
||||
|
@ -2000,7 +2005,7 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
Par_GetParToText (ParamName,NewCtrName,MaxBytes);
|
||||
|
||||
/***** Get from the database the old names of the centre *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr);
|
||||
Ctr_GetDataOfCentreByCod (Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Check if new name is empty *****/
|
||||
if (!NewCtrName[0])
|
||||
|
@ -2086,7 +2091,7 @@ void Ctr_ChangeCtrWWW (void)
|
|||
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
||||
|
||||
/***** Get data of centre *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr);
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Check if new WWW is empty *****/
|
||||
if (NewWWW[0])
|
||||
|
@ -2177,7 +2182,7 @@ void Ctr_ChangeCtrStatus (void)
|
|||
Status = Ctr_GetStatusBitsFromStatusTxt (StatusTxt); // New status
|
||||
|
||||
/***** Get data of centre *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr);
|
||||
Ctr_GetDataOfCentreByCod (Ctr_EditingCtr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Update status in table of centres *****/
|
||||
DB_QueryUPDATE ("can not update the status of a centre",
|
||||
|
@ -2905,7 +2910,7 @@ void Ctr_ListCtrsFound (MYSQL_RES **mysql_res,unsigned NumCtrs)
|
|||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/* Get data of centre */
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_EXTRA_DATA);
|
||||
|
||||
/* Write data of this centre */
|
||||
Ctr_ListOneCentreForSeeing (&Ctr,NumCtr);
|
||||
|
|
|
@ -83,6 +83,12 @@ typedef enum
|
|||
} Ctr_Order_t;
|
||||
#define Ctr_ORDER_DEFAULT Ctr_ORDER_BY_CENTRE
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Ctr_GET_BASIC_DATA,
|
||||
Ctr_GET_EXTRA_DATA,
|
||||
} Ctr_GetExtraData_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -101,7 +107,8 @@ void Ctr_EditCentres (void);
|
|||
void Ctr_PutIconToViewCentres (void);
|
||||
|
||||
void Ctr_GetListCentres (long InsCod);
|
||||
bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr);
|
||||
bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr,
|
||||
Ctr_GetExtraData_t GetExtraData);
|
||||
long Ctr_GetInsCodOfCentreByCod (long CtrCod);
|
||||
void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr);
|
||||
void Ctr_FreeListCentres (void);
|
||||
|
|
|
@ -490,13 +490,15 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.93.3 (2019-12-16)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.94 (2019-12-17)"
|
||||
#define CSS_FILE "swad19.90.1.css"
|
||||
#define JS_FILE "swad19.91.1.js"
|
||||
/*
|
||||
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
|
||||
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
||||
|
||||
Version 19.94: Dec 17, 2019 Code optimization getting time to generate page.
|
||||
Code optimizations getting data of courses, degrees and centres. (? lines)
|
||||
Version 19.93.3: Dec 16, 2019 Fixed minor bugs. (249132 lines)
|
||||
Version 19.93.2: Dec 16, 2019 Code refactoring. (249130 lines)
|
||||
Version 19.93.1: Dec 15, 2019 Code refactoring. (249122 lines)
|
||||
|
|
|
@ -175,7 +175,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
|||
{
|
||||
/* Get data of this degree */
|
||||
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Degree not found.");
|
||||
|
||||
/* Link to the room of this degree */
|
||||
|
@ -206,7 +206,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
|||
if ((Crs.CrsCod = Str_ConvertStrCodToLongCod (row[0])) > 0)
|
||||
{
|
||||
/* Get data of this course */
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/* Link to the room of this course */
|
||||
IsLastItemInLevel[2] = (NumRow == NumRows - 1);
|
||||
|
@ -521,7 +521,7 @@ void Cht_OpenChatWindow (void)
|
|||
|
||||
/* Get data of this degree */
|
||||
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
|
||||
"%s",
|
||||
|
@ -557,7 +557,7 @@ void Cht_OpenChatWindow (void)
|
|||
|
||||
/* Get data of this course */
|
||||
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
|
||||
"%s",
|
||||
|
|
|
@ -656,7 +656,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
|||
|
||||
/***** Get data of this centre *****/
|
||||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr))
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Centre not found.");
|
||||
|
||||
/***** Write link to centre *****/
|
||||
|
@ -690,7 +690,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
|||
|
||||
/***** Get data of this degree *****/
|
||||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Degree not found.");
|
||||
|
||||
/***** Write link to degree *****/
|
||||
|
@ -724,7 +724,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
|||
|
||||
/***** Get data of this course *****/
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Course not found.");
|
||||
|
||||
/***** Write link to course *****/
|
||||
|
@ -1009,6 +1009,14 @@ static void Crs_GetListCoursesInCurrentDegree (Crs_WhatCourses_t WhatCourses)
|
|||
/* Get next course */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
Crs_GetDataOfCourseFromRow (Crs,row);
|
||||
|
||||
/* Get number of users in this course */
|
||||
Crs->NumUsrs[Rol_STD] = Usr_GetNumUsrsInCrs (Rol_STD,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrs (Rol_NET,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_TCH] = Usr_GetNumUsrsInCrs (Rol_TCH,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_UNK] = Crs->NumUsrs[Rol_STD] +
|
||||
Crs->NumUsrs[Rol_NET] +
|
||||
Crs->NumUsrs[Rol_TCH];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1570,8 +1578,8 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
static bool Crs_CheckIfICanEdit (struct Course *Crs)
|
||||
{
|
||||
return (bool) (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM || // I am a degree administrator or higher
|
||||
((Crs->Status & Crs_STATUS_BIT_PENDING) != 0 && // Course is not yet activated
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod == Crs->RequesterUsrCod)); // I am the requester
|
||||
((Crs->Status & Crs_STATUS_BIT_PENDING) != 0 && // Course is not yet activated
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod == Crs->RequesterUsrCod)); // I am the requester
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1806,17 +1814,16 @@ static void Crs_RecFormRequestOrCreateCrs (unsigned Status)
|
|||
extern const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_course;
|
||||
extern const char *Txt_The_year_X_is_not_allowed;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
struct Degree Deg;
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Set course degree */
|
||||
Deg.DegCod = Crs_EditingCrs->DegCod = Gbl.Hierarchy.Deg.DegCod;
|
||||
// Deg.DegCod =
|
||||
Crs_EditingCrs->DegCod = Gbl.Hierarchy.Deg.DegCod;
|
||||
|
||||
/* Get parameters of the new course */
|
||||
Crs_GetParamsNewCourse (Crs_EditingCrs);
|
||||
|
||||
/***** Check if year is correct *****/
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
if (Crs_EditingCrs->Year <= Deg_MAX_YEARS_PER_DEGREE) // If year is valid
|
||||
{
|
||||
if (Crs_EditingCrs->ShrtName[0] &&
|
||||
|
@ -1913,7 +1920,7 @@ void Crs_RemoveCourse (void)
|
|||
Crs_EditingCrs->CrsCod = Crs_GetAndCheckParamOtherCrsCod (1);
|
||||
|
||||
/***** Get data of the course from database *****/
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs);
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs,Crs_GET_EXTRA_DATA);
|
||||
|
||||
if (Crs_CheckIfICanEdit (Crs_EditingCrs))
|
||||
{
|
||||
|
@ -1940,7 +1947,8 @@ void Crs_RemoveCourse (void)
|
|||
/********************* Get data of a course from its code ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
bool Crs_GetDataOfCourseByCod (struct Course *Crs)
|
||||
bool Crs_GetDataOfCourseByCod (struct Course *Crs,
|
||||
Crs_GetExtraData_t GetExtraData)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1971,6 +1979,18 @@ bool Crs_GetDataOfCourseByCod (struct Course *Crs)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
Crs_GetDataOfCourseFromRow (Crs,row);
|
||||
|
||||
/* Get extra data */
|
||||
if (GetExtraData == Crs_GET_EXTRA_DATA)
|
||||
{
|
||||
/* Get number of users in this course */
|
||||
Crs->NumUsrs[Rol_STD] = Usr_GetNumUsrsInCrs (Rol_STD,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrs (Rol_NET,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_TCH] = Usr_GetNumUsrsInCrs (Rol_TCH,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_UNK] = Crs->NumUsrs[Rol_STD] +
|
||||
Crs->NumUsrs[Rol_NET] +
|
||||
Crs->NumUsrs[Rol_TCH];
|
||||
}
|
||||
|
||||
/* Set return value */
|
||||
CrsFound = true;
|
||||
}
|
||||
|
@ -2016,14 +2036,6 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
|
|||
/***** Get the full name of the course (row[7]) *****/
|
||||
Str_Copy (Crs->FullName,row[7],
|
||||
Hie_MAX_BYTES_FULL_NAME);
|
||||
|
||||
/***** Get number of users *****/
|
||||
Crs->NumUsrs[Rol_STD] = Usr_GetNumUsrsInCrs (Rol_STD,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_NET] = Usr_GetNumUsrsInCrs (Rol_NET,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_TCH] = Usr_GetNumUsrsInCrs (Rol_TCH,Crs->CrsCod);
|
||||
Crs->NumUsrs[Rol_UNK] = Crs->NumUsrs[Rol_STD] +
|
||||
Crs->NumUsrs[Rol_NET] +
|
||||
Crs->NumUsrs[Rol_TCH];
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2101,7 +2113,7 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
|
|||
{
|
||||
/***** Get course data *****/
|
||||
Crs.CrsCod = CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_EXTRA_DATA);
|
||||
|
||||
/***** Remove all the students in the course *****/
|
||||
Enr_RemAllStdsInCrs (&Crs);
|
||||
|
@ -2286,7 +2298,7 @@ void Crs_ChangeInsCrsCod (void)
|
|||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/* Get data of the course */
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs);
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs,Crs_GET_BASIC_DATA);
|
||||
|
||||
if (Crs_CheckIfICanEdit (Crs_EditingCrs))
|
||||
{
|
||||
|
@ -2326,7 +2338,7 @@ void Crs_ChangeCrsDegInConfig (void)
|
|||
if (NewDeg.DegCod != Gbl.Hierarchy.Crs.DegCod)
|
||||
{
|
||||
/***** Get data of new degree *****/
|
||||
Deg_GetDataOfDegreeByCod (&NewDeg);
|
||||
Deg_GetDataOfDegreeByCod (&NewDeg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** If name of course was in database in the new degree... *****/
|
||||
if (Crs_CheckIfCrsNameExistsInYearOfDeg ("ShortName",Gbl.Hierarchy.Crs.ShrtName,-1L,
|
||||
|
@ -2446,7 +2458,6 @@ void Crs_ChangeCrsYear (void)
|
|||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
extern const char *Txt_The_year_of_the_course_X_has_changed;
|
||||
extern const char *Txt_The_year_X_is_not_allowed;
|
||||
struct Degree Deg;
|
||||
char YearStr[2 + 1];
|
||||
unsigned NewYear;
|
||||
|
||||
|
@ -2461,13 +2472,10 @@ void Crs_ChangeCrsYear (void)
|
|||
Par_GetParToText ("OthCrsYear",YearStr,2);
|
||||
NewYear = Deg_ConvStrToYear (YearStr);
|
||||
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs);
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs,Crs_GET_BASIC_DATA);
|
||||
|
||||
if (Crs_CheckIfICanEdit (Crs_EditingCrs))
|
||||
{
|
||||
Deg.DegCod = Crs_EditingCrs->DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
|
||||
if (NewYear <= Deg_MAX_YEARS_PER_DEGREE) // If year is valid
|
||||
{
|
||||
/***** If name of course was in database in the new year... *****/
|
||||
|
@ -2610,7 +2618,7 @@ static void Crs_RenameCourse (struct Course *Crs,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
Par_GetParToText (ParamName,NewCrsName,MaxBytes);
|
||||
|
||||
/***** Get from the database the data of the degree *****/
|
||||
Crs_GetDataOfCourseByCod (Crs);
|
||||
Crs_GetDataOfCourseByCod (Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
if (Crs_CheckIfICanEdit (Crs))
|
||||
{
|
||||
|
@ -2713,7 +2721,7 @@ void Crs_ChangeCrsStatus (void)
|
|||
Status = Crs_GetStatusBitsFromStatusTxt (StatusTxt); // New status
|
||||
|
||||
/***** Get data of course *****/
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs);
|
||||
Crs_GetDataOfCourseByCod (Crs_EditingCrs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/***** Update status in table of courses *****/
|
||||
DB_QueryUPDATE ("can not update the status of a course",
|
||||
|
@ -3129,7 +3137,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
/***** Get degree code (row[0]) *****/
|
||||
if ((Deg.DegCod = Str_ConvertStrCodToLongCod (row[0])) < 0)
|
||||
Lay_ShowErrorAndExit ("Wrong code of degree.");
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Degree not found.");
|
||||
|
||||
/***** Get course code (row[1]) *****/
|
||||
|
|
|
@ -88,6 +88,12 @@ struct Course
|
|||
unsigned NumUsrs[Rol_NUM_ROLES]; // Number of users
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Crs_GET_BASIC_DATA,
|
||||
Crs_GET_EXTRA_DATA,
|
||||
} Crs_GetExtraData_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -114,7 +120,8 @@ void Crs_RecFormReqCrs (void);
|
|||
void Crs_RecFormNewCrs (void);
|
||||
|
||||
void Crs_RemoveCourse (void);
|
||||
bool Crs_GetDataOfCourseByCod (struct Course *Crs);
|
||||
bool Crs_GetDataOfCourseByCod (struct Course *Crs,
|
||||
Crs_GetExtraData_t GetExtraData);
|
||||
void Crs_RemoveCourseCompletely (long CrsCod);
|
||||
void Crs_ChangeInsCrsCodInConfig (void);
|
||||
void Crs_ChangeInsCrsCod (void);
|
||||
|
|
|
@ -206,7 +206,7 @@ void Deg_SeeDegWithPendingCrss (void)
|
|||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
|
||||
/* Get data of degree */
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
|
@ -1194,10 +1194,6 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
|||
const char *TxtClassStrong;
|
||||
const char *BgColor;
|
||||
Deg_StatusTxt_t StatusTxt;
|
||||
unsigned NumCrss;
|
||||
|
||||
/***** Get number of courses in this degree *****/
|
||||
NumCrss = Crs_GetNumCrssInDeg (Deg->DegCod);
|
||||
|
||||
/***** Get data of type of degree of this degree *****/
|
||||
DegTyp.DegTypCod = Deg->DegTypCod;
|
||||
|
@ -1222,10 +1218,10 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
|||
/***** Put tip if degree has courses *****/
|
||||
HTM_TD_Begin ("class=\"%s CM %s\" title=\"%s\"",
|
||||
TxtClassNormal,BgColor,
|
||||
NumCrss ? Txt_DEGREE_With_courses :
|
||||
Txt_DEGREE_Without_courses);
|
||||
HTM_Txt (NumCrss ? "✓" :
|
||||
" ");
|
||||
Deg->Crss.Num ? Txt_DEGREE_With_courses :
|
||||
Txt_DEGREE_Without_courses);
|
||||
HTM_Txt (Deg->Crss.Num ? "✓" :
|
||||
" ");
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of degree in this list *****/
|
||||
|
@ -1246,7 +1242,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
|||
|
||||
/***** Current number of courses in this degree *****/
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",TxtClassNormal,BgColor);
|
||||
HTM_Unsigned (NumCrss);
|
||||
HTM_Unsigned (Deg->Crss.Num);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Degree status *****/
|
||||
|
@ -1429,7 +1425,7 @@ void Deg_GetListDegsOfCurrentCtr (void)
|
|||
|
||||
/***** Create list with degrees of this centre *****/
|
||||
if ((Gbl.Hierarchy.Ctr.Degs.Lst = (struct Degree *) calloc (Gbl.Hierarchy.Ctr.Degs.Num,
|
||||
sizeof (struct Degree))) == NULL)
|
||||
sizeof (struct Degree))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the degrees of this centre *****/
|
||||
|
@ -1565,10 +1561,10 @@ void Deg_RemoveDegree (void)
|
|||
Deg_EditingDeg->DegCod = Deg_GetAndCheckParamOtherDegCod (1);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg,Deg_GET_EXTRA_DATA);
|
||||
|
||||
/***** Check if this degree has courses *****/
|
||||
if (Crs_GetNumCrssInDeg (Deg_EditingDeg->DegCod)) // Degree has courses ==> don't remove
|
||||
if (Deg_EditingDeg->Crss.Num) // Degree has courses ==> don't remove
|
||||
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||
Txt_To_remove_a_degree_you_must_first_remove_all_courses_in_the_degree);
|
||||
else // Degree has no courses ==> remove it
|
||||
|
@ -1623,7 +1619,8 @@ long Deg_GetAndCheckParamOtherDegCod (long MinCodAllowed)
|
|||
/*****************************************************************************/
|
||||
// Returns true if degree found
|
||||
|
||||
bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
||||
bool Deg_GetDataOfDegreeByCod (struct Degree *Deg,
|
||||
Deg_GetExtraData_t GetExtraData)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1653,6 +1650,11 @@ bool Deg_GetDataOfDegreeByCod (struct Degree *Deg)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
Deg_GetDataOfDegreeFromRow (Deg,row);
|
||||
|
||||
/* Get extra data */
|
||||
if (GetExtraData == Deg_GET_EXTRA_DATA)
|
||||
/* Get number of courses in this degree */
|
||||
Deg->Crss.Num = Crs_GetNumCrssInDeg (Deg->DegCod);
|
||||
|
||||
/* Set return value */
|
||||
DegFound = true;
|
||||
}
|
||||
|
@ -1933,7 +1935,7 @@ static void Deg_RenameDegree (struct Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
Par_GetParToText (ParamName,NewDegName,MaxBytes);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg);
|
||||
Deg_GetDataOfDegreeByCod (Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Check if new name is empty *****/
|
||||
if (!NewDegName[0])
|
||||
|
@ -2017,7 +2019,7 @@ void Deg_ChangeDegCtrInConfig (void)
|
|||
if (NewCtr.CtrCod != Gbl.Hierarchy.Deg.CtrCod)
|
||||
{
|
||||
/***** Get data of new centre *****/
|
||||
Ctr_GetDataOfCentreByCod (&NewCtr);
|
||||
Ctr_GetDataOfCentreByCod (&NewCtr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Check if it already exists a degree with the same name in the new centre *****/
|
||||
if (Deg_CheckIfDegNameExistsInCtr ("ShortName",Gbl.Hierarchy.Deg.ShrtName,Gbl.Hierarchy.Deg.DegCod,NewCtr.CtrCod))
|
||||
|
@ -2092,7 +2094,7 @@ void Deg_ChangeDegreeType (void)
|
|||
NewDegTypCod = DT_GetAndCheckParamOtherDegTypCod (1);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Update the table of degrees changing old type by new type *****/
|
||||
DB_QueryUPDATE ("can not update the type of a degree",
|
||||
|
@ -2128,7 +2130,7 @@ void Deg_ChangeDegWWW (void)
|
|||
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Check if new WWW is empty *****/
|
||||
if (NewWWW[0])
|
||||
|
@ -2219,7 +2221,7 @@ void Deg_ChangeDegStatus (void)
|
|||
Status = Deg_GetStatusBitsFromStatusTxt (StatusTxt); // New status
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg);
|
||||
Deg_GetDataOfDegreeByCod (Deg_EditingDeg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Update status in table of degrees *****/
|
||||
DB_QueryUPDATE ("can not update the status of a degree",
|
||||
|
@ -2491,7 +2493,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
|||
if (Ctr.CtrCod > 0)
|
||||
{
|
||||
/* Get data of centre */
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/* Write centre logo and name */
|
||||
Ctr_DrawCentreLogoAndNameWithLink (&Ctr,ActSeeCtrInf,
|
||||
|
@ -2503,7 +2505,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
|||
if (Deg.DegCod > 0)
|
||||
{
|
||||
/* Get data of degree */
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/* Write degree logo and name */
|
||||
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,
|
||||
|
@ -2562,7 +2564,7 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs)
|
|||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/* Get data of degree */
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_EXTRA_DATA);
|
||||
|
||||
/* Write data of this degree */
|
||||
Deg_ListOneDegreeForSeeing (&Deg,NumDeg);
|
||||
|
|
|
@ -89,6 +89,12 @@ struct ListDegrees
|
|||
struct Degree *Lst; // List of degrees
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Deg_GET_BASIC_DATA,
|
||||
Deg_GET_EXTRA_DATA,
|
||||
} Deg_GetExtraData_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -122,7 +128,8 @@ void Deg_RemoveDegree (void);
|
|||
void Deg_PutParamDegCod (long DegCod);
|
||||
long Deg_GetAndCheckParamOtherDegCod (long MinCodAllowed);
|
||||
|
||||
bool Deg_GetDataOfDegreeByCod (struct Degree *Deg);
|
||||
bool Deg_GetDataOfDegreeByCod (struct Degree *Deg,
|
||||
Deg_GetExtraData_t GetExtraData);
|
||||
void Deg_GetShortNameOfDegreeByCod (struct Degree *Deg);
|
||||
long Deg_GetCtrCodOfDegreeByCod (long DegCod);
|
||||
long Deg_GetInsCodOfDegreeByCod (long DegCod);
|
||||
|
|
|
@ -2829,9 +2829,9 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Link to course *****/
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
Frm_StartFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||
|
|
|
@ -1615,11 +1615,11 @@ static void Exa_GetNotifContentExamAnnouncement (char **ContentStr)
|
|||
|
||||
/***** Get data of course *****/
|
||||
Crs.CrsCod = Gbl.ExamAnns.ExaDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Get data of institution *****/
|
||||
Ins.InsCod = Deg_GetInsCodOfDegreeByCod (Deg.DegCod);
|
||||
|
|
|
@ -6850,7 +6850,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
{
|
||||
case Brw_ADMI_DOC_INS:
|
||||
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Ins_GetDataOfInstitutionByCod (&Ins,false);
|
||||
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_documents_management_area,
|
||||
|
@ -6858,7 +6858,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_SHR_INS:
|
||||
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Ins_GetDataOfInstitutionByCod (&Ins,false);
|
||||
Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_shared_files_area,
|
||||
|
@ -6866,7 +6866,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_DOC_CTR:
|
||||
Ctr.CtrCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_documents_management_area,
|
||||
|
@ -6874,7 +6874,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_SHR_CTR:
|
||||
Ctr.CtrCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_shared_files_area,
|
||||
|
@ -6882,7 +6882,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_DOC_DEG:
|
||||
Deg.DegCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_documents_management_area,
|
||||
|
@ -6890,7 +6890,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_SHR_DEG:
|
||||
Deg.DegCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_shared_files_area,
|
||||
|
@ -6898,7 +6898,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_DOC_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_documents_management_area,
|
||||
|
@ -6908,7 +6908,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
GrpDat.GrpCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s %s</strong>",
|
||||
Txt_documents_management_area,
|
||||
|
@ -6917,7 +6917,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_TCH_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_teachers_files_area,
|
||||
|
@ -6927,7 +6927,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
GrpDat.GrpCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s %s</strong>",
|
||||
Txt_teachers_files_area,
|
||||
|
@ -6936,7 +6936,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_SHR_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_shared_files_area,
|
||||
|
@ -6946,7 +6946,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
GrpDat.GrpCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s %s</strong>",
|
||||
Txt_shared_files_area,
|
||||
|
@ -6955,7 +6955,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_ASG_USR:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s</strong>",
|
||||
Txt_assignments_area,
|
||||
|
@ -6964,7 +6964,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_WRK_USR:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s</strong>",
|
||||
Txt_works_area,
|
||||
|
@ -6973,7 +6973,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_ASG_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
UsrDat.UsrCod = Gbl.FileBrowser.Clipboard.WorksUsrCod;
|
||||
Usr_GetAllUsrDataFromUsrCod (&UsrDat,Usr_DONT_GET_PREFS);
|
||||
|
@ -6986,7 +6986,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_WRK_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
UsrDat.UsrCod = Gbl.FileBrowser.Clipboard.WorksUsrCod;
|
||||
Usr_GetAllUsrDataFromUsrCod (&UsrDat,Usr_DONT_GET_PREFS);
|
||||
|
@ -7003,7 +7003,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
Prj.PrjCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Prj_GetDataOfProjectByCod (&Prj);
|
||||
Crs.CrsCod = Prj.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s</strong>",
|
||||
Gbl.FileBrowser.Clipboard.FileBrowser == Brw_ADMI_DOC_PRJ ? Txt_project_documents :
|
||||
|
@ -7014,7 +7014,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
break;
|
||||
case Brw_ADMI_MRK_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>",
|
||||
Txt_marks_management_area,
|
||||
|
@ -7024,7 +7024,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
GrpDat.GrpCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
snprintf (TxtClipboardZone,sizeof (TxtClipboardZone),
|
||||
"%s, %s <strong>%s</strong>, %s <strong>%s %s</strong>",
|
||||
Txt_marks_management_area,
|
||||
|
@ -7865,7 +7865,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_DOC_INS:
|
||||
case Brw_ADMI_SHR_INS:
|
||||
Ins.InsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Ins_GetDataOfInstitutionByCod (&Ins,false))
|
||||
if (Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%02u/%u/%s",
|
||||
Cfg_PATH_INS_PRIVATE,
|
||||
|
@ -7878,7 +7878,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_DOC_CTR:
|
||||
case Brw_ADMI_SHR_CTR:
|
||||
Ctr.CtrCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Ctr_GetDataOfCentreByCod (&Ctr))
|
||||
if (Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%02u/%u/%s",
|
||||
Cfg_PATH_CTR_PRIVATE,
|
||||
|
@ -7891,7 +7891,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_DOC_DEG:
|
||||
case Brw_ADMI_SHR_DEG:
|
||||
Deg.DegCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%02u/%u/%s",
|
||||
Cfg_PATH_DEG_PRIVATE,
|
||||
|
@ -7906,7 +7906,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_SHR_CRS:
|
||||
case Brw_ADMI_MRK_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%ld/%s",
|
||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,
|
||||
|
@ -7921,7 +7921,7 @@ static void Brw_PasteClipboard (void)
|
|||
GrpDat.GrpCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
Crs.CrsCod = GrpDat.CrsCod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%ld/%s/%ld/%s",
|
||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_GRP,
|
||||
|
@ -7933,7 +7933,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_ASG_CRS:
|
||||
case Brw_ADMI_WRK_CRS:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
{
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
UsrDat.UsrCod = Gbl.FileBrowser.Clipboard.WorksUsrCod;
|
||||
|
@ -7952,7 +7952,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_ASG_USR:
|
||||
case Brw_ADMI_WRK_USR:
|
||||
Crs.CrsCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%ld/%s/%02u/%ld/%s",
|
||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_USR,
|
||||
|
@ -7966,7 +7966,7 @@ static void Brw_PasteClipboard (void)
|
|||
case Brw_ADMI_ASS_PRJ:
|
||||
PrjCod = Gbl.FileBrowser.Clipboard.Cod;
|
||||
Crs.CrsCod = Prj_GetCourseOfProject (PrjCod);
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
snprintf (PathOrg,sizeof (PathOrg),
|
||||
"%s/%ld/%s/%02u/%ld/%s",
|
||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_PRJ,
|
||||
|
@ -11059,7 +11059,7 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
|||
*CrsCod = -1L;
|
||||
*DegCod = -1L;
|
||||
*CtrCod = Ctr.CtrCod = Cod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
*InsCod = Ctr.InsCod;
|
||||
break;
|
||||
case Brw_ADMI_DOC_DEG:
|
||||
|
@ -11068,9 +11068,9 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
|||
*GrpCod = -1L;
|
||||
*CrsCod = -1L;
|
||||
*DegCod = Deg.DegCod = Cod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
*CtrCod = Ctr.CtrCod = Deg.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
*InsCod = Ctr.InsCod;
|
||||
break;
|
||||
case Brw_ADMI_DOC_CRS:
|
||||
|
@ -11082,11 +11082,11 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
|||
/* Cod stores the course code */
|
||||
*GrpCod = -1L;
|
||||
*CrsCod = Crs.CrsCod = Cod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
*DegCod = Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
*CtrCod = Ctr.CtrCod = Deg.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
*InsCod = Ctr.InsCod;
|
||||
break;
|
||||
case Brw_ADMI_DOC_GRP:
|
||||
|
@ -11097,11 +11097,11 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
|||
*GrpCod = GrpDat.GrpCod = Cod;
|
||||
Grp_GetDataOfGroupByCod (&GrpDat);
|
||||
*CrsCod = Crs.CrsCod = GrpDat.CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
*DegCod = Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
*CtrCod = Ctr.CtrCod = Deg.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
*InsCod = Ctr.InsCod;
|
||||
break;
|
||||
case Brw_ADMI_DOC_PRJ:
|
||||
|
@ -11109,11 +11109,11 @@ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod,
|
|||
/* Cod stores the project code */
|
||||
*GrpCod = -1L;
|
||||
*CrsCod = Crs.CrsCod = Prj_GetCourseOfProject (Cod);
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
*DegCod = Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
*CtrCod = Ctr.CtrCod = Deg.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
*InsCod = Ctr.InsCod;
|
||||
break;
|
||||
default:
|
||||
|
@ -11717,7 +11717,7 @@ void Brw_RemoveUsrWorksInAllCrss (struct UsrData *UsrDat)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
/* Get data of course */
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
Brw_RemoveUsrWorksInCrs (UsrDat,&Crs);
|
||||
NumCrssWorksRemoved++;
|
||||
}
|
||||
|
|
12
swad_forum.c
12
swad_forum.c
|
@ -2179,14 +2179,14 @@ void For_SetForumName (struct Forum *Forum,
|
|||
break;
|
||||
case For_FORUM_CENTRE_USRS:
|
||||
Ctr.CtrCod = Forum->Location;
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr))
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Centre not found.");
|
||||
Str_Copy (ForumName,Ctr.ShrtName,
|
||||
For_MAX_BYTES_FORUM_NAME);
|
||||
break;
|
||||
case For_FORUM_CENTRE_TCHS:
|
||||
Ctr.CtrCod = Forum->Location;
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr))
|
||||
if (!Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Centre not found.");
|
||||
snprintf (ForumName,For_MAX_BYTES_FORUM_NAME + 1,
|
||||
"%s%s",Ctr.ShrtName,
|
||||
|
@ -2195,14 +2195,14 @@ void For_SetForumName (struct Forum *Forum,
|
|||
break;
|
||||
case For_FORUM_DEGREE_USRS:
|
||||
Deg.DegCod = Forum->Location;
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Degree not found.");
|
||||
Str_Copy (ForumName,Deg.ShrtName,
|
||||
For_MAX_BYTES_FORUM_NAME);
|
||||
break;
|
||||
case For_FORUM_DEGREE_TCHS:
|
||||
Deg.DegCod = Forum->Location;
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg))
|
||||
if (!Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Degree not found.");
|
||||
snprintf (ForumName,For_MAX_BYTES_FORUM_NAME + 1,
|
||||
"%s%s",Deg.ShrtName,
|
||||
|
@ -2211,14 +2211,14 @@ void For_SetForumName (struct Forum *Forum,
|
|||
break;
|
||||
case For_FORUM_COURSE_USRS:
|
||||
Crs.CrsCod = Forum->Location;
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Course not found.");
|
||||
Str_Copy (ForumName,Crs.ShrtName,
|
||||
For_MAX_BYTES_FORUM_NAME);
|
||||
break;
|
||||
case For_FORUM_COURSE_TCHS:
|
||||
Crs.CrsCod = Forum->Location;
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (!Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
Lay_ShowErrorAndExit ("Course not found.");
|
||||
snprintf (ForumName,For_MAX_BYTES_FORUM_NAME + 1,
|
||||
"%s%s",Crs.ShrtName,
|
||||
|
|
|
@ -541,7 +541,7 @@ void Hie_InitHierarchy (void)
|
|||
/***** If course code is available, get course data *****/
|
||||
if (Gbl.Hierarchy.Crs.CrsCod > 0)
|
||||
{
|
||||
if (Crs_GetDataOfCourseByCod (&Gbl.Hierarchy.Crs)) // Course found
|
||||
if (Crs_GetDataOfCourseByCod (&Gbl.Hierarchy.Crs,Crs_GET_BASIC_DATA)) // Course found
|
||||
Gbl.Hierarchy.Deg.DegCod = Gbl.Hierarchy.Crs.DegCod;
|
||||
else
|
||||
Hie_ResetHierarchy ();
|
||||
|
@ -550,7 +550,7 @@ void Hie_InitHierarchy (void)
|
|||
/***** If degree code is available, get degree data *****/
|
||||
if (Gbl.Hierarchy.Deg.DegCod > 0)
|
||||
{
|
||||
if (Deg_GetDataOfDegreeByCod (&Gbl.Hierarchy.Deg)) // Degree found
|
||||
if (Deg_GetDataOfDegreeByCod (&Gbl.Hierarchy.Deg,Deg_GET_BASIC_DATA)) // Degree found
|
||||
{
|
||||
Gbl.Hierarchy.Ctr.CtrCod = Gbl.Hierarchy.Deg.CtrCod;
|
||||
Gbl.Hierarchy.Ins.InsCod = Deg_GetInsCodOfDegreeByCod (Gbl.Hierarchy.Deg.DegCod);
|
||||
|
@ -562,7 +562,7 @@ void Hie_InitHierarchy (void)
|
|||
/***** If centre code is available, get centre data *****/
|
||||
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
|
||||
{
|
||||
if (Ctr_GetDataOfCentreByCod (&Gbl.Hierarchy.Ctr)) // Centre found
|
||||
if (Ctr_GetDataOfCentreByCod (&Gbl.Hierarchy.Ctr,Ctr_GET_BASIC_DATA)) // Centre found
|
||||
Gbl.Hierarchy.Ins.InsCod = Gbl.Hierarchy.Ctr.InsCod;
|
||||
else
|
||||
Hie_ResetHierarchy ();
|
||||
|
|
|
@ -1332,7 +1332,7 @@ void Lay_ShowErrorAndExit (const char *Txt)
|
|||
/***** Page is generated (except </body> and </html>).
|
||||
Compute time to generate page *****/
|
||||
if (!Gbl.Action.IsAJAXAutoRefresh)
|
||||
Sta_ComputeTimeToGeneratePage ();
|
||||
Gbl.TimeGenerationInMicroseconds = (long) Sta_ComputeTimeToGeneratePage ();
|
||||
|
||||
if (Gbl.WebService.IsWebService) // Serving a plugin request
|
||||
{
|
||||
|
@ -1557,11 +1557,11 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto,
|
|||
|
||||
/***** Get data of degree *****/
|
||||
Deg.DegCod = DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Get data of course *****/
|
||||
Crs.CrsCod = CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWidePadding (10);
|
||||
|
|
|
@ -1039,7 +1039,7 @@ void Msg_GetParamMsgsCrsCod (void)
|
|||
{
|
||||
/* Get data of course */
|
||||
Crs.CrsCod = Gbl.Msg.FilterCrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
Str_Copy (Gbl.Msg.FilterCrsShrtName,Crs.ShrtName,
|
||||
Hie_MAX_BYTES_SHRT_NAME);
|
||||
|
@ -2579,7 +2579,7 @@ void Msg_GetDistinctCoursesInMyMessages (void)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
if (Crs.CrsCod >= 0 && Gbl.Msg.NumCourses < Crs_MAX_COURSES_PER_USR)
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
{
|
||||
Gbl.Msg.Courses[Gbl.Msg.NumCourses].CrsCod = Crs.CrsCod;
|
||||
Str_Copy (Gbl.Msg.Courses[Gbl.Msg.NumCourses].ShrtName,Crs.ShrtName,
|
||||
|
@ -3262,7 +3262,7 @@ bool Msg_WriteCrsOrgMsg (long CrsCod)
|
|||
Crs.CrsCod = CrsCod;
|
||||
|
||||
/* Get data of current degree */
|
||||
if (Crs_GetDataOfCourseByCod (&Crs))
|
||||
if (Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA))
|
||||
{
|
||||
ThereIsOrgCrs = true;
|
||||
if ((FromThisCrs = (CrsCod == Gbl.Hierarchy.Crs.CrsCod))) // Message sent from current course
|
||||
|
|
|
@ -395,7 +395,7 @@ void Ntf_ShowMyNotifications (void)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get event type (row[0]) */
|
||||
NotifyEvent = Ntf_GetNotifyEventFromDB ((const char *) row[0]);
|
||||
NotifyEvent = Ntf_GetNotifyEventFromStr ((const char *) row[0]);
|
||||
|
||||
/* Get (from) user code (row[1]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||
|
@ -407,15 +407,15 @@ void Ntf_ShowMyNotifications (void)
|
|||
|
||||
/* Get centre code (row[3]) */
|
||||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[3]);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/* Get degree code (row[4]) */
|
||||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/* Get course code (row[5]) */
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[5]);
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/* Get message/post/... code (row[6]) */
|
||||
Cod = Str_ConvertStrCodToLongCod (row[6]);
|
||||
|
@ -567,13 +567,13 @@ void Ntf_ShowMyNotifications (void)
|
|||
HTM_TR_End ();
|
||||
|
||||
/***** Write content of the event *****/
|
||||
if (PutLink)
|
||||
if (PutLink && !AllNotifications)
|
||||
{
|
||||
ContentStr = NULL;
|
||||
|
||||
Ntf_GetNotifSummaryAndContent (SummaryStr,&ContentStr,NotifyEvent,
|
||||
Cod,Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
false);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"2\"");
|
||||
|
@ -584,13 +584,17 @@ void Ntf_ShowMyNotifications (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
if (ContentStr != NULL)
|
||||
{
|
||||
free (ContentStr);
|
||||
ContentStr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)
|
||||
{
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"6\" class=\"DAT LT\"");
|
||||
HTM_Long (Sta_ComputeTimeToGeneratePage ());
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/***** End table *****/
|
||||
|
@ -1648,7 +1652,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get event type (row[0]) */
|
||||
NotifyEvent = Ntf_GetNotifyEventFromDB ((const char *) row[0]);
|
||||
NotifyEvent = Ntf_GetNotifyEventFromStr ((const char *) row[0]);
|
||||
|
||||
/* Get origin user code (row[1]) */
|
||||
FromUsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[1]);
|
||||
|
@ -1660,15 +1664,15 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
|
|||
|
||||
/* Get centre code (row[3]) */
|
||||
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[3]);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/* Get degree code (row[4]) */
|
||||
Deg.DegCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/* Get course code (row[5]) */
|
||||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[5]);
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
/* Get message/post/... code (row[6]) */
|
||||
Cod = Str_ConvertStrCodToLongCod (row[6]);
|
||||
|
@ -1795,7 +1799,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
|
|||
/****** Get notify event type from string number coming from database ********/
|
||||
/*****************************************************************************/
|
||||
|
||||
Ntf_NotifyEvent_t Ntf_GetNotifyEventFromDB (const char *Str)
|
||||
Ntf_NotifyEvent_t Ntf_GetNotifyEventFromStr (const char *Str)
|
||||
{
|
||||
unsigned UnsignedNum;
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ void Ntf_StoreNotifyEventToOneUser (Ntf_NotifyEvent_t NotifyEvent,
|
|||
struct UsrData *UsrDat,
|
||||
long Cod,Ntf_Status_t Status);
|
||||
void Ntf_SendPendingNotifByEMailToAllUsrs (void);
|
||||
Ntf_NotifyEvent_t Ntf_GetNotifyEventFromDB (const char *Str);
|
||||
Ntf_NotifyEvent_t Ntf_GetNotifyEventFromStr (const char *Str);
|
||||
void Ntf_MarkAllNotifAsSeen (void);
|
||||
void Ntf_PutFormChangeNotifSentByEMail (void);
|
||||
void Ntf_ChangeNotifyEvents (void);
|
||||
|
|
|
@ -2014,7 +2014,7 @@ static void Pho_PutLinkToCalculateDegreeStats (void)
|
|||
Deg_GetListAllDegsWithStds (&Degs);
|
||||
|
||||
/***** Get data of the degree from database *****/
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Contextual menu *****/
|
||||
Mnu_ContextMenuBegin ();
|
||||
|
@ -2157,7 +2157,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrin
|
|||
Lay_ShowErrorAndExit ("Wrong code of degree.");
|
||||
|
||||
/* Get data of degree */
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/* Get number of students and number of students with photo in this degree */
|
||||
Pho_GetNumStdsInDegree (Deg.DegCod,Usr_SEX_ALL,&NumStds,&NumStdsWithPhoto);
|
||||
|
@ -2250,7 +2250,7 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
|||
Lay_ShowErrorAndExit ("Wrong code of degree.");
|
||||
|
||||
/* Get data of degree */
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
|
|
|
@ -3637,7 +3637,7 @@ static void Rec_ShowCentre (struct UsrData *UsrDat,
|
|||
if (UsrDat->Tch.CtrCod > 0)
|
||||
{
|
||||
Ctr.CtrCod = UsrDat->Tch.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
if (Ctr.WWW[0])
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"REC_DAT_BOLD\"",
|
||||
Ctr.WWW);
|
||||
|
@ -4279,7 +4279,7 @@ void Rec_UpdateMyCentre (void)
|
|||
/* Get institution of centre */
|
||||
if (Ctr.CtrCod > 0)
|
||||
{
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
if (Gbl.Usrs.Me.UsrDat.InsCod != Ctr.InsCod)
|
||||
{
|
||||
Gbl.Usrs.Me.UsrDat.InsCod = Ctr.InsCod;
|
||||
|
|
|
@ -1171,11 +1171,11 @@ static void Rep_WriteRowCrsData (long CrsCod,Rol_Role_t Role,
|
|||
|
||||
/***** Get course data *****/
|
||||
Crs.CrsCod = CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_EXTRA_DATA);
|
||||
|
||||
/***** Get degree data *****/
|
||||
Deg.DegCod = Crs.DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Start row *****/
|
||||
fprintf (Gbl.F.Rep,"<li>");
|
||||
|
|
|
@ -3476,7 +3476,7 @@ static void Sta_WriteCentre (long CtrCod)
|
|||
{
|
||||
/***** Get data of centre *****/
|
||||
Ctr.CtrCod = CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
|
||||
/***** Title in cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ctr.FullName);
|
||||
|
@ -3568,7 +3568,7 @@ static void Sta_WriteDegree (long DegCod)
|
|||
{
|
||||
/***** Get data of degree *****/
|
||||
Deg.DegCod = DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
|
||||
/***** Title in cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Deg.FullName);
|
||||
|
@ -3636,7 +3636,7 @@ static void Sta_ShowNumHitsPerCourse (unsigned long NumRows,
|
|||
Crs.CrsCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/* Get data of current degree */
|
||||
CrsOK = Crs_GetDataOfCourseByCod (&Crs);
|
||||
CrsOK = Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
|
@ -3766,21 +3766,14 @@ static void Sta_DrawBarNumHits (char Color,
|
|||
/**************** Compute the time used to generate the page *****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Sta_ComputeTimeToGeneratePage (void)
|
||||
time_t Sta_ComputeTimeToGeneratePage (void)
|
||||
{
|
||||
if (gettimeofday (&Gbl.tvPageCreated, &Gbl.tz))
|
||||
// Error in gettimeofday
|
||||
Gbl.TimeGenerationInMicroseconds = 0;
|
||||
else
|
||||
{
|
||||
if (Gbl.tvPageCreated.tv_usec < Gbl.tvStart.tv_usec)
|
||||
{
|
||||
Gbl.tvPageCreated.tv_sec--;
|
||||
Gbl.tvPageCreated.tv_usec += 1000000;
|
||||
}
|
||||
Gbl.TimeGenerationInMicroseconds = (Gbl.tvPageCreated.tv_sec - Gbl.tvStart.tv_sec) * 1000000L +
|
||||
Gbl.tvPageCreated.tv_usec - Gbl.tvStart.tv_usec;
|
||||
}
|
||||
return (time_t) 0;
|
||||
|
||||
return (time_t) ((Gbl.tvPageCreated.tv_sec - Gbl.tvStart.tv_sec) * 1000000L +
|
||||
Gbl.tvPageCreated.tv_usec - Gbl.tvStart.tv_usec);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -144,7 +144,7 @@ void Sta_ComputeMaxAndTotalHits (struct Sta_Hits *Hits,
|
|||
MYSQL_RES *mysql_res,unsigned Field,
|
||||
unsigned Divisor);
|
||||
|
||||
void Sta_ComputeTimeToGeneratePage (void);
|
||||
time_t Sta_ComputeTimeToGeneratePage (void);
|
||||
void Sta_ComputeTimeToSendPage (void);
|
||||
void Sta_WriteTimeToGenerateAndSendPage (void);
|
||||
void Sta_WriteTime (char Str[Dat_MAX_BYTES_TIME],long TimeInMicroseconds);
|
||||
|
|
|
@ -1617,13 +1617,13 @@ static void TL_WriteNote (const struct TL_Note *SocNot,
|
|||
case TL_NOTE_CTR_SHA_PUB_FILE:
|
||||
/* Get centre data */
|
||||
Ctr.CtrCod = SocNot->HieCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
break;
|
||||
case TL_NOTE_DEG_DOC_PUB_FILE:
|
||||
case TL_NOTE_DEG_SHA_PUB_FILE:
|
||||
/* Get degree data */
|
||||
Deg.DegCod = SocNot->HieCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
Deg_GetDataOfDegreeByCod (&Deg,Deg_GET_BASIC_DATA);
|
||||
break;
|
||||
case TL_NOTE_CRS_DOC_PUB_FILE:
|
||||
case TL_NOTE_CRS_SHA_PUB_FILE:
|
||||
|
@ -1631,7 +1631,7 @@ static void TL_WriteNote (const struct TL_Note *SocNot,
|
|||
case TL_NOTE_NOTICE:
|
||||
/* Get course data */
|
||||
Crs.CrsCod = SocNot->HieCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
break;
|
||||
case TL_NOTE_FORUM_POST:
|
||||
/* Get forum type of the post */
|
||||
|
|
|
@ -1547,7 +1547,7 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
|
|||
if (Gbl.TimeTable.Type == TT_MY_TIMETABLE)
|
||||
{
|
||||
Crs.CrsCod = CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
Crs_GetDataOfCourseByCod (&Crs,Crs_GET_BASIC_DATA);
|
||||
if (ClassType == TT_LECTURE ||
|
||||
ClassType == TT_PRACTICAL)
|
||||
{
|
||||
|
|
16
swad_user.c
16
swad_user.c
|
@ -2700,9 +2700,19 @@ void Usr_WelcomeUsr (void)
|
|||
Ale_WARNING,Txt_Please_check_your_email_address);
|
||||
}
|
||||
|
||||
Ale_ShowAlert (Ale_INFO,
|
||||
"Herramienta <a href=\"https://github.com/acanas/swad-core/wiki/ASSESSMENT.Games.es\" target=\"_blank\">"
|
||||
"Evaluación > Juegos</a><br />"
|
||||
"<br />"
|
||||
"Imagen de la izquierda: pantalla proyectada en el aula por el profesor.<br />"
|
||||
"Imagen de la derecha: pantalla del estudiante en su móvil."
|
||||
"<br />"
|
||||
"<br />"
|
||||
"<img src=\"/img/juego.png\" alt=\"Juegos\" style=\"width:100%%\">");
|
||||
|
||||
/***** Institutional video *****/
|
||||
/*
|
||||
Ale_ShowFixedAlert (Ale_INFO,
|
||||
Ale_ShowAlert (Ale_INFO,
|
||||
"<a href=\"https://abierta.ugr.es/creative_commons/\" target=\"_blank\">"
|
||||
"Curso MOOC LICENCIAS CREATIVE COMMONS Y OER</a><br />"
|
||||
"Reconocimiento de 1 crédito por actividades universitarias<br />"
|
||||
|
@ -3760,7 +3770,7 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
|
|||
if (UsrDat->Tch.CtrCod > 0)
|
||||
{
|
||||
Ctr.CtrCod = UsrDat->Tch.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
}
|
||||
Usr_WriteUsrData (Gbl.ColorRows[Gbl.RowEvenOdd],
|
||||
UsrDat->Tch.CtrCod > 0 ? Ctr.FullName :
|
||||
|
@ -3983,7 +3993,7 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
|
|||
if (ShowData && UsrDat->Tch.CtrCod > 0)
|
||||
{
|
||||
Ctr.CtrCod = UsrDat->Tch.CtrCod;
|
||||
Ctr_GetDataOfCentreByCod (&Ctr);
|
||||
Ctr_GetDataOfCentreByCod (&Ctr,Ctr_GET_BASIC_DATA);
|
||||
}
|
||||
Usr_WriteUsrData (Gbl.ColorRows[Gbl.RowEvenOdd],
|
||||
(ShowData && UsrDat->Tch.CtrCod > 0) ? Ctr.FullName :
|
||||
|
|
Loading…
Reference in New Issue
Block a user