mirror of https://github.com/acanas/swad-core.git
Version 15.225.11
This commit is contained in:
parent
bca5387cfe
commit
0d64b8b337
|
@ -1521,6 +1521,10 @@ a:hover img.CENTRE_PHOTO_SHOW
|
|||
background-repeat:no-repeat;
|
||||
}
|
||||
|
||||
/************************** Listing of users *********************************/
|
||||
.USR_LIST_NUM {color:#A0A0A0; font-size:15pt; font-weight:bold;}
|
||||
.USR_LIST_NUM_N {color:#404040; font-size:15pt; font-weight:bold;}
|
||||
|
||||
/*****************************************************************************/
|
||||
.WHITE_USR {color:#E0E0E0; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
.GREY_USR {color:#E0E0E0; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
|
@ -128,13 +128,14 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.225.10 (2016-06-15)"
|
||||
#define CSS_FILE "swad15.224.3.css"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.225.11 (2016-06-16)"
|
||||
#define CSS_FILE "swad15.225.11.css"
|
||||
#define JS_FILE "swad15.216.js"
|
||||
|
||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
||||
/*
|
||||
Version 15.225.11:Jun 16, 2016 Listing possible duplicate users. (202667 lines)
|
||||
Version 15.225.10:Jun 15, 2016 Listing possible duplicate users. (202626 lines)
|
||||
Version 15.225.9: Jun 15, 2016 Code refactoring in list of students and teachers. (202636 lines)
|
||||
Version 15.225.8: Jun 15, 2016 Code refactoring in list of students and teachers. (202779 lines)
|
||||
|
|
|
@ -2946,8 +2946,10 @@ static long Crs_GetParamOtherCrsCod (void)
|
|||
/************************** Write courses of a user **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Crs_GetAndWriteCrssOfAUsr (long UsrCod,Rol_Role_t Role)
|
||||
void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
||||
{
|
||||
extern const char *Txt_USER_in_COURSE;
|
||||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_Degree;
|
||||
extern const char *Txt_Year_OF_A_DEGREE;
|
||||
extern const char *Txt_Course;
|
||||
|
@ -2969,20 +2971,26 @@ void Crs_GetAndWriteCrssOfAUsr (long UsrCod,Rol_Role_t Role)
|
|||
" AND courses.DegCod=degrees.DegCod"
|
||||
" AND degrees.CtrCod=centres.CtrCod"
|
||||
" ORDER BY degrees.FullName,courses.Year,courses.FullName",
|
||||
UsrCod,(unsigned) Role);
|
||||
UsrDat->UsrCod,(unsigned) Role);
|
||||
|
||||
/***** List the courses (one row per course) *****/
|
||||
if ((NumCrss = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get courses of a user")))
|
||||
{
|
||||
/* Start frame and table */
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td colspan=\"2\"></td>"
|
||||
"<td colspan=\"%u\">",
|
||||
Usr_NUM_MAIN_FIELDS_DATA_USR-2);
|
||||
Lay_StartRoundFrameTable (NULL,2,NULL);
|
||||
"<td colspan=\"2\" class=\"COLOR%u\"></td>"
|
||||
"<td colspan=\"%u\" class=\"COLOR%u\">",
|
||||
Gbl.RowEvenOdd,
|
||||
Usr_NUM_MAIN_FIELDS_DATA_USR-2,
|
||||
Gbl.RowEvenOdd);
|
||||
Lay_StartRoundFrameTable ("100%",2,NULL);
|
||||
|
||||
/* Heading row */
|
||||
sprintf (Gbl.Title,Txt_USER_in_COURSE,Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th colspan=\"7\" class=\"LEFT_MIDDLE\">%s</th>"
|
||||
"</tr>"
|
||||
"<tr>"
|
||||
"<th class=\"BM\"></th>"
|
||||
"<th class=\"BM\"></th>"
|
||||
"<th class=\"LEFT_MIDDLE\">"
|
||||
|
@ -3001,6 +3009,7 @@ void Crs_GetAndWriteCrssOfAUsr (long UsrCod,Rol_Role_t Role)
|
|||
"%s"
|
||||
"</th>"
|
||||
"</tr>",
|
||||
Gbl.Title,
|
||||
Txt_Degree,
|
||||
Txt_Year_OF_A_DEGREE,
|
||||
Txt_Course,
|
||||
|
@ -3126,6 +3135,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
const char *StyleNoBR;
|
||||
const char *BgColor;
|
||||
bool Accepted;
|
||||
static unsigned RowEvenOdd = 1;
|
||||
|
||||
/*
|
||||
SELECT degrees.DegCod 0
|
||||
|
@ -3162,12 +3172,12 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
StyleNoBR = "DAT_NOBR";
|
||||
}
|
||||
BgColor = (CrsCod == Gbl.CurrentCrs.Crs.CrsCod) ? "LIGHT_BLUE" :
|
||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
Gbl.ColorRows[RowEvenOdd];
|
||||
|
||||
/***** Start row *****/
|
||||
fprintf (Gbl.F.Out,"<tr>");
|
||||
|
||||
/***** Teacher has accepted joining to this course/to any course in degree/to any course? *****/
|
||||
/***** User has accepted joining to this course/to any course in degree/to any course? *****/
|
||||
if (WriteColumnAccepted)
|
||||
{
|
||||
Accepted = (Str_ConvertToUpperLetter (row[7][0]) == 'Y');
|
||||
|
@ -3237,7 +3247,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
"</tr>",
|
||||
Style,BgColor,NumStds);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
RowEvenOdd = 1 - RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <stdbool.h> // For boolean type
|
||||
|
||||
#include "swad_degree.h"
|
||||
#include "swad_user.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Public constants ******************************/
|
||||
|
@ -132,7 +133,7 @@ void Crs_PutParamCrsCod (long CrsCod);
|
|||
|
||||
void Crs_ReqSelectOneOfMyCourses (void);
|
||||
|
||||
void Crs_GetAndWriteCrssOfAUsr (long UsrCod,Rol_Role_t Role);
|
||||
void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role);
|
||||
|
||||
unsigned Crs_ListCrssFound (const char *Query);
|
||||
|
||||
|
|
21
swad_text.c
21
swad_text.c
|
@ -49268,6 +49268,27 @@ const char *Txt_User_ID =
|
|||
"Nº de identif. do utilizador";
|
||||
#endif
|
||||
|
||||
const char *Txt_USER_in_COURSE = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1
|
||||
"%s en:";
|
||||
#elif L==2
|
||||
"%s im:";
|
||||
#elif L==3
|
||||
"%s in:";
|
||||
#elif L==4
|
||||
"%s en:";
|
||||
#elif L==5
|
||||
"%s dans:";
|
||||
#elif L==6
|
||||
"%s en:"; // Okoteve traducción
|
||||
#elif L==7
|
||||
"%s in:";
|
||||
#elif L==8
|
||||
"%s w:";
|
||||
#elif L==9
|
||||
"%s em:";
|
||||
#endif
|
||||
|
||||
const char *Txt_User_not_found_or_you_do_not_have_permission_ =
|
||||
#if L==1
|
||||
"Usuari no trobat"
|
||||
|
|
91
swad_user.c
91
swad_user.c
|
@ -128,6 +128,9 @@ static void Usr_SetUsrRoleAndPrefs (void);
|
|||
static void Usr_InsertMyLastData (void);
|
||||
|
||||
static void Usr_WriteRowGstAllData (struct UsrData *UsrDat);
|
||||
static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames);
|
||||
static void Usr_WriteRowTchAllData (struct UsrData *UsrDat);
|
||||
static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat);
|
||||
static void Usr_RestrictLengthUsrName (struct UsrData *UsrDat);
|
||||
static void Usr_WriteMainUsrDataExceptUsrID (struct UsrData *UsrDat,
|
||||
const char *BgColor,
|
||||
|
@ -2711,7 +2714,7 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
|
|||
{
|
||||
extern const char *Txt_Enrollment_confirmed;
|
||||
extern const char *Txt_Enrollment_not_confirmed;
|
||||
const char *BgColor;
|
||||
char BgColor[16];
|
||||
char PhotoURL[PATH_MAX+1];
|
||||
bool ShowPhoto;
|
||||
bool UsrIsTheMsgSender = PutCheckBoxToSelectUsr &&
|
||||
|
@ -2723,14 +2726,15 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
|
|||
|
||||
/***** Checkbox to select user *****/
|
||||
// Two colors are used alternatively to better distinguish the rows
|
||||
BgColor = UsrIsTheMsgSender ? "LIGHT_GREEN" :
|
||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
if (UsrIsTheMsgSender)
|
||||
strcpy (BgColor,"LIGHT_GREEN");
|
||||
else
|
||||
sprintf (BgColor,"COLOR%u",Gbl.RowEvenOdd);
|
||||
|
||||
if (PutCheckBoxToSelectUsr)
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE %s\">",BgColor);
|
||||
|
||||
Usr_PutCheckboxToSelectUser (UsrDat,UsrIsTheMsgSender);
|
||||
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
|
||||
|
@ -2755,17 +2759,17 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
|
|||
|
||||
/***** Write number of user in the list *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||
" %u "
|
||||
"%u"
|
||||
"</td>",
|
||||
UsrDat->Accepted ? "DAT_SMALL_N" :
|
||||
"DAT_SMALL",
|
||||
UsrDat->Accepted ? "USR_LIST_NUM_N" :
|
||||
"USR_LIST_NUM",
|
||||
BgColor,
|
||||
NumUsr);
|
||||
|
||||
if (Gbl.Usrs.Listing.WithPhotos)
|
||||
{
|
||||
/***** Show user's photo *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor);
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE %s\">",BgColor);
|
||||
ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL);
|
||||
Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
|
||||
NULL,
|
||||
|
@ -2791,8 +2795,6 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
|
|||
|
||||
/***** End row *****/
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2888,15 +2890,13 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
|
|||
|
||||
/***** End row *****/
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************ Write a row of a table with the data of a student **************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
|
||||
static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
|
||||
{
|
||||
char PhotoURL[PATH_MAX+1];
|
||||
bool ShowPhoto;
|
||||
|
@ -3005,15 +3005,13 @@ void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
|
|||
|
||||
/***** End row *****/
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*** Write a row of a table with the data of a teacher or an administrator ***/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
|
||||
static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
|
||||
{
|
||||
char PhotoURL[PATH_MAX+1];
|
||||
bool ShowPhoto;
|
||||
|
@ -3082,15 +3080,13 @@ void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
|
|||
NULL,true,UsrDat->Accepted);
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********** Write a row of a table with the data of an administrator *********/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
|
||||
static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
|
||||
{
|
||||
char PhotoURL[PATH_MAX+1];
|
||||
bool ShowPhoto;
|
||||
|
@ -3138,8 +3134,6 @@ void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
|
|||
Deg_GetAndWriteInsCtrDegAdminBy (UsrDat->UsrCod,
|
||||
Gbl.Usrs.Listing.WithPhotos ? Usr_NUM_MAIN_FIELDS_DATA_ADM :
|
||||
Usr_NUM_MAIN_FIELDS_DATA_ADM-1);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -5143,7 +5137,7 @@ static void Usr_ListMainDataGsts (bool PutCheckBoxToSelectUsr)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List students' data *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstGsts.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstGsts.Lst[NumUsr].UsrCod;
|
||||
|
@ -5153,6 +5147,8 @@ static void Usr_ListMainDataGsts (bool PutCheckBoxToSelectUsr)
|
|||
// ...so they have not accepted...
|
||||
// ...inscription in any course
|
||||
Usr_WriteRowUsrMainData (++NumUsr,&UsrDat,true);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5226,7 +5222,7 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List students' data *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstStds.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstStds.Lst[NumUsr].UsrCod;
|
||||
|
@ -5234,6 +5230,8 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
|
|||
{
|
||||
UsrDat.Accepted = Gbl.Usrs.LstStds.Lst[NumUsr].Accepted;
|
||||
Usr_WriteRowUsrMainData (++NumUsr,&UsrDat,PutCheckBoxToSelectUsr);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5297,7 +5295,7 @@ static void Usr_ListMainDataTchs (bool PutCheckBoxToSelectUsr)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List data of teachers *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstTchs.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstTchs.Lst[NumUsr].UsrCod;
|
||||
|
@ -5305,6 +5303,8 @@ static void Usr_ListMainDataTchs (bool PutCheckBoxToSelectUsr)
|
|||
{
|
||||
UsrDat.Accepted = Gbl.Usrs.LstTchs.Lst[NumUsr].Accepted;
|
||||
Usr_WriteRowUsrMainData (++NumUsr,&UsrDat,PutCheckBoxToSelectUsr);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5403,7 +5403,7 @@ void Usr_ListAllDataGsts (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List guests' data *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstGsts.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstGsts.Lst[NumUsr].UsrCod;
|
||||
|
@ -5414,6 +5414,8 @@ void Usr_ListAllDataGsts (void)
|
|||
// ...inscription in any course
|
||||
NumUsr++;
|
||||
Usr_WriteRowGstAllData (&UsrDat);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5593,7 +5595,7 @@ void Usr_ListAllDataStds (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List students' data *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstStds.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstStds.Lst[NumUsr].UsrCod;
|
||||
|
@ -5602,6 +5604,8 @@ void Usr_ListAllDataStds (void)
|
|||
UsrDat.Accepted = Gbl.Usrs.LstStds.Lst[NumUsr].Accepted;
|
||||
NumUsr++;
|
||||
Usr_WriteRowStdAllData (&UsrDat,GroupNames);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5668,7 +5672,7 @@ void Usr_ListUsrsForSelection (Rol_Role_t Role)
|
|||
switch (Role)
|
||||
{
|
||||
case Rol_STUDENT:
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstStds.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstStds.Lst[NumUsr].UsrCod;
|
||||
|
@ -5676,11 +5680,13 @@ void Usr_ListUsrsForSelection (Rol_Role_t Role)
|
|||
{
|
||||
UsrDat.Accepted = Gbl.Usrs.LstStds.Lst[NumUsr].Accepted;
|
||||
Usr_WriteRowUsrMainData (++NumUsr,&UsrDat,true);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case Rol_TEACHER:
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstTchs.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstTchs.Lst[NumUsr].UsrCod;
|
||||
|
@ -5688,6 +5694,8 @@ void Usr_ListUsrsForSelection (Rol_Role_t Role)
|
|||
{
|
||||
UsrDat.Accepted = Gbl.Usrs.LstTchs.Lst[NumUsr].Accepted;
|
||||
Usr_WriteRowUsrMainData (++NumUsr,&UsrDat,true);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -5779,7 +5787,7 @@ void Usr_ListAllDataTchs (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List data of teachers *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstTchs.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstTchs.Lst[NumUsr].UsrCod;
|
||||
|
@ -5788,6 +5796,8 @@ void Usr_ListAllDataTchs (void)
|
|||
UsrDat.Accepted = Gbl.Usrs.LstTchs.Lst[NumUsr].Accepted;
|
||||
NumUsr++;
|
||||
Usr_WriteRowTchAllData (&UsrDat);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5859,7 +5869,7 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,const char *UsrQuery)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List data of users *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
|
@ -5873,7 +5883,9 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,const char *UsrQuery)
|
|||
|
||||
/* Write all the courses this user belongs to */
|
||||
if (Role != Rol__GUEST_)
|
||||
Crs_GetAndWriteCrssOfAUsr (UsrDat.UsrCod,Role);
|
||||
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Role);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6001,7 +6013,7 @@ void Usr_ListDataAdms (void)
|
|||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List data of administrators *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < Gbl.Usrs.LstAdms.NumUsrs; )
|
||||
{
|
||||
UsrDat.UsrCod = Gbl.Usrs.LstAdms.Lst[NumUsr].UsrCod;
|
||||
|
@ -6009,6 +6021,8 @@ void Usr_ListDataAdms (void)
|
|||
{
|
||||
UsrDat.Accepted = Gbl.Usrs.LstAdms.Lst[NumUsr].Accepted;
|
||||
Usr_WriteRowAdmData (++NumUsr,&UsrDat);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7739,7 +7753,6 @@ void Usr_ListDuplicateUsrs (void)
|
|||
unsigned NumUsr;
|
||||
struct UsrData UsrDat;
|
||||
unsigned NumInformants;
|
||||
Rol_Role_t Role;
|
||||
|
||||
/***** Start frame with list of possible duplicate users *****/
|
||||
Lay_StartRoundFrame (NULL,Txt_Possibly_duplicate_users,NULL);
|
||||
|
@ -7778,7 +7791,7 @@ void Usr_ListDuplicateUsrs (void)
|
|||
fprintf (Gbl.F.Out,"</tr>");
|
||||
|
||||
/***** List users *****/
|
||||
for (NumUsr = 0;
|
||||
for (NumUsr = 0, Gbl.RowEvenOdd = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
|
@ -7806,10 +7819,10 @@ void Usr_ListDuplicateUsrs (void)
|
|||
NumInformants);
|
||||
|
||||
/* Write all the courses this user belongs to */
|
||||
for (Role = Rol_STUDENT;
|
||||
Role <= Rol_TEACHER;
|
||||
Role++)
|
||||
Crs_GetAndWriteCrssOfAUsr (UsrDat.UsrCod,Role);
|
||||
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TEACHER);
|
||||
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_STUDENT);
|
||||
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
else // User does not exists ==>
|
||||
// remove user from table of possible duplicate users
|
||||
|
|
|
@ -281,8 +281,6 @@ void Usr_InsertMyLastCrsTabAndTime (void);
|
|||
|
||||
void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
|
||||
bool PutCheckboxToSelectUsr);
|
||||
void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GrpNames);
|
||||
void Usr_WriteRowTchAllData (struct UsrData *UsrDat);
|
||||
|
||||
unsigned Usr_GetNumUsrsInCrs (Rol_Role_t Role,long CrsCod);
|
||||
unsigned Usr_GetNumUsrsInCrssOfDeg (Rol_Role_t Role,long DegCod);
|
||||
|
|
Loading…
Reference in New Issue