Version 14.96.3

This commit is contained in:
Antonio Cañas Vargas 2015-03-18 21:53:56 +01:00
parent b7f59f62ff
commit e9941c8c16
6 changed files with 129 additions and 127 deletions

View File

@ -103,11 +103,12 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.96.2 (2015/03/18)"
#define Log_PLATFORM_VERSION "SWAD 14.96.3 (2015/03/18)"
// 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 14.96.3: Mar 18, 2015 Changes in record cards. (183017 lines)
Version 14.96.2: Mar 18, 2015 Changes in record cards. (183011 lines)
Version 14.96.1: Mar 18, 2015 Changes in user's profile. (183015 lines)
Version 14.96: Mar 18, 2015 New layout in record cards. (183011 lines)

View File

@ -79,7 +79,6 @@ static void Prf_RequestUserProfileWithDefaultNickname (const char *DefaultNickna
static void Prf_GetUsrDatAndShowUserProfile (void);
static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat);
static void Prf_ShowHistoricUserProfile (const struct UsrData *UsrDat);
static void Prf_GetUsrFigures (long UsrCod,struct UsrFigures *UsrFigures);
@ -238,15 +237,12 @@ bool Prf_ShowUserProfile (void)
/***** Common record *****/
Rec_ShowSharedUsrRecord (Rec_RECORD_PUBLIC,&Gbl.Usrs.Other.UsrDat);
/***** Show details of user's profile *****/
Prf_ShowDetailsUserProfile (&Gbl.Usrs.Other.UsrDat);
fprintf (Gbl.F.Out,"</td>"
"<td style=\"text-align:left;"
" vertical-align:top; padding-left:4px;\">");
/***** Show historic user's profile *****/
Prf_ShowHistoricUserProfile (&Gbl.Usrs.Other.UsrDat);
/***** Show details of user's profile *****/
Prf_ShowDetailsUserProfile (&Gbl.Usrs.Other.UsrDat);
fprintf (Gbl.F.Out,"</td>"
"</tr>"
@ -292,117 +288,15 @@ void Prf_ChangeProfileVisibility (void)
static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
// extern const char *Txt_Figures;
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_teachers_ABBREVIATION;
extern const char *Txt_students_ABBREVIATION;
extern const char *Txt_course;
extern const char *Txt_courses;
extern const char *Txt_Files;
extern const char *Txt_file;
extern const char *Txt_files;
extern const char *Txt_public_FILES;
unsigned NumCrssUsrIsTeacher;
unsigned NumCrssUsrIsStudent;
unsigned NumStds;
unsigned NumTchs;
unsigned NumFiles;
unsigned NumPublicFiles;
/***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"TABLE10 CELLS_PAD_2\">"
"<tr>");
/***** Number of courses in which the user is teacher or student *****/
if ((NumCrssUsrIsTeacher = Usr_GetNumCrssOfUsrWithARole (UsrDat->UsrCod,Rol_ROLE_TEACHER)))
{
NumTchs = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_TEACHER,Rol_ROLE_TEACHER);
NumStds = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_TEACHER,Rol_ROLE_STUDENT);
fprintf (Gbl.F.Out,"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s<br />"
"%u&nbsp;%s"
"</a>"
"</td>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_ROLES_SINGUL_Abc[Rol_ROLE_TEACHER][UsrDat->Sex],
NumCrssUsrIsTeacher,
(NumCrssUsrIsTeacher == 1) ? Txt_course :
Txt_courses,
NumTchs,
(NumTchs == 1) ? Txt_ROLES_SINGUL_abc[Rol_ROLE_TEACHER][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_ROLE_TEACHER][Usr_SEX_UNKNOWN],
NumStds,
(NumStds == 1) ? Txt_ROLES_SINGUL_abc[Rol_ROLE_STUDENT][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_ROLE_STUDENT][Usr_SEX_UNKNOWN]);
}
if ((NumCrssUsrIsStudent = Usr_GetNumCrssOfUsrWithARole (UsrDat->UsrCod,Rol_ROLE_STUDENT)))
{
NumTchs = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_STUDENT,Rol_ROLE_TEACHER);
NumStds = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_STUDENT,Rol_ROLE_STUDENT);
fprintf (Gbl.F.Out,"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s<br />"
"%u&nbsp;%s"
"</a>"
"</td>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_ROLES_SINGUL_Abc[Rol_ROLE_STUDENT][UsrDat->Sex],
NumCrssUsrIsStudent,
(NumCrssUsrIsStudent == 1) ? Txt_course :
Txt_courses,
NumTchs,
(NumTchs == 1) ? Txt_ROLES_SINGUL_abc[Rol_ROLE_TEACHER][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_ROLE_TEACHER][Usr_SEX_UNKNOWN],
NumStds,
(NumStds == 1) ? Txt_ROLES_SINGUL_abc[Rol_ROLE_STUDENT][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_ROLE_STUDENT][Usr_SEX_UNKNOWN]);
}
/***** Number of files currently published *****/
if ((NumFiles = Brw_GetNumFilesUsr (UsrDat->UsrCod)))
NumPublicFiles = Brw_GetNumPublicFilesUsr (UsrDat->UsrCod);
else
NumPublicFiles = 0;
fprintf (Gbl.F.Out,"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s"
"</a>"
"</td>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_Files,
NumFiles,
(NumFiles == 1) ? Txt_file :
Txt_files,
NumPublicFiles,Txt_public_FILES);
/***** End of table *****/
fprintf (Gbl.F.Out,"</tr>"
"</table>");
}
/*****************************************************************************/
/********************** Show details of user's profile ***********************/
/*****************************************************************************/
static void Prf_ShowHistoricUserProfile (const struct UsrData *UsrDat)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_From_TIME;
extern const char *Txt_day;
extern const char *Txt_days;
@ -419,10 +313,94 @@ static void Prf_ShowHistoricUserProfile (const struct UsrData *UsrDat)
extern const char *Txt_message;
extern const char *Txt_messages;
struct UsrFigures UsrFigures;
unsigned NumCrssUsrIsTeacher;
unsigned NumCrssUsrIsStudent;
unsigned NumStds;
unsigned NumTchs;
unsigned NumFiles;
unsigned NumPublicFiles;
/***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"TABLE10 CELLS_PAD_2\">");
/***** Number of courses in which the user is teacher or student *****/
if ((NumCrssUsrIsTeacher = Usr_GetNumCrssOfUsrWithARole (UsrDat->UsrCod,Rol_ROLE_TEACHER)))
{
NumTchs = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_TEACHER,Rol_ROLE_TEACHER);
NumStds = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_TEACHER,Rol_ROLE_STUDENT);
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s&nbsp;+&nbsp;%u&nbsp;%s"
"</a>"
"</td>"
"</tr>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_ROLES_SINGUL_Abc[Rol_ROLE_TEACHER][UsrDat->Sex],
NumCrssUsrIsTeacher,
(NumCrssUsrIsTeacher == 1) ? Txt_course :
Txt_courses,
NumTchs,
Txt_teachers_ABBREVIATION,
NumStds,
Txt_students_ABBREVIATION);
}
if ((NumCrssUsrIsStudent = Usr_GetNumCrssOfUsrWithARole (UsrDat->UsrCod,Rol_ROLE_STUDENT)))
{
NumTchs = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_STUDENT,Rol_ROLE_TEACHER);
NumStds = Usr_GetNumUsrsInCrssOfAUsr (UsrDat->UsrCod,Rol_ROLE_STUDENT,Rol_ROLE_STUDENT);
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s&nbsp;+&nbsp;%u&nbsp;%s"
"</a>"
"</td>"
"</tr>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_ROLES_SINGUL_Abc[Rol_ROLE_STUDENT][UsrDat->Sex],
NumCrssUsrIsStudent,
(NumCrssUsrIsStudent == 1) ? Txt_course :
Txt_courses,
NumTchs,
Txt_teachers_ABBREVIATION,
NumStds,
Txt_students_ABBREVIATION);
}
/***** Number of files currently published *****/
if ((NumFiles = Brw_GetNumFilesUsr (UsrDat->UsrCod)))
NumPublicFiles = Brw_GetNumPublicFilesUsr (UsrDat->UsrCod);
else
NumPublicFiles = 0;
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"text-align:right; vertical-align:top;\">"
"%s"
"</td>"
"<td class=\"DAT\""
" style=\"text-align:left; vertical-align:top;\">"
"%u&nbsp;%s<br />"
"%u&nbsp;%s"
"</a>"
"</td>"
"</tr>",
The_ClassFormul[Gbl.Prefs.Theme],
Txt_Files,
NumFiles,
(NumFiles == 1) ? Txt_file :
Txt_files,
NumPublicFiles,Txt_public_FILES);
/***** Get figures *****/
Prf_GetUsrFigures (UsrDat->UsrCod,&UsrFigures);

View File

@ -2014,7 +2014,7 @@ void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat)
#define C1_WIDTH 52
#define C2_WIDTH 144
#define C3_WIDTH 230
#define C3_WIDTH 210
#define C4_WIDTH 154
void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
@ -2039,7 +2039,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
extern const char *Txt_Surname_1;
extern const char *Txt_Surname_2;
extern const char *Txt_First_name;
// extern const char *Txt_Country;
extern const char *Txt_Another_country;
extern const char *Txt_Place_of_origin;
extern const char *Txt_Date_of_birth;
@ -2064,6 +2063,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
bool HeIsTeacherInAnyCourse = (UsrDat->Roles & (1 << Rol_ROLE_TEACHER)); // He/she already is a teacher in any course
bool HeBelongsToCurrentCrs = (UsrDat->RoleInCurrentCrsDB == Rol_ROLE_STUDENT ||
UsrDat->RoleInCurrentCrsDB == Rol_ROLE_TEACHER);
bool CountryForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR);
bool RoleForm = (TypeOfView == Rec_FORM_SIGN_UP ||
TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR ||
@ -2198,7 +2199,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Photo *****/
ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL);
fprintf (Gbl.F.Out,"<td rowspan=\"2\" style=\"width:%upx;"
fprintf (Gbl.F.Out,"<td rowspan=\"3\" style=\"width:%upx;"
" text-align:center; vertical-align:top;\">",
C4_WIDTH);
Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
@ -2208,7 +2209,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
"</tr>");
/***** Commands *****/
CommandsRowspan = 4; // Name + Webs/social networks + Layout row + Country
CommandsRowspan = 5; // Name + Nickname + Webs/social networks + Layout row + Country
if (ShowIDRows)
CommandsRowspan += 6; // Email, ID, Role, Surname1, Surname2, Firstname
if (ShowAddressRows)
@ -2390,14 +2391,19 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Full name *****/
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"REC_NAME\" style=\"width:%upx;"
" text-align:left; vertical-align:top;\">"
"%s<br />%s<br />%s",
"%s<br />%s<br />%s"
"</td>"
"</tr>",
C2_WIDTH + C3_WIDTH,
UsrDat->FirstName ,
UsrDat->Surname1,
UsrDat->Surname2);
/***** User's nickname *****/
fprintf (Gbl.F.Out,"<div class=\"REC_NICK\" style=\"margin-top:20px;\">");
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"REC_NAME\" style=\"width:%upx;"
" text-align:left; vertical-align:bottom;\">"
"<div class=\"REC_NICK\">",
C2_WIDTH + C3_WIDTH);
if (UsrDat->Nickname[0])
{
if (GoToPublicProfileForm)
@ -2437,7 +2443,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
ClassData,C2_WIDTH + C3_WIDTH);
if (ShowData)
{
if (DataForm)
if (CountryForm)
{
/* If list of countries is empty, try to get it */
if (!Gbl.Ctys.Num)
@ -3243,7 +3249,7 @@ void Rec_ShowFormMyInsCtrDpt (void)
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_centre_and_department);
/***** Start table *****/
Lay_StartRoundFrameTable10 ("580px",2,
Lay_StartRoundFrameTable10 ("560px",2,
IAmTeacher ? Txt_Institution_centre_and_department :
Txt_Institution);

View File

@ -35,11 +35,7 @@
/***************************** Public constants ******************************/
/*****************************************************************************/
#define Rec_WIDTH_SHARE_RECORD_BIG 580
// #define Rec_WIDTH_SHARE_RECORD_SMALL 540
// #define Rec_WIDTH_SHARE_RECORD_PRINT 540
// #define Rec_WIDTH_COURSE_RECORD Rec_WIDTH_SHARE_RECORD_BIG
// #define Rec_WIDTH_COURSE_RECORD_PRINT Rec_WIDTH_SHARE_RECORD_BIG
#define Rec_WIDTH_SHARE_RECORD_BIG 560
#define Rec_MAX_LENGTH_NAME_FIELD 255
#define Rec_MIN_LINES_IN_EDITION_FIELD 1

View File

@ -38084,7 +38084,7 @@ const char *Txt_Tags = // Tags used in test
const char *Txt_Teachers_ABBREVIATION = // Abbreviation of "Teachers"
#if L==0
"Prof."; // Necessita traduccio
"Prof.";
#elif L==1
"Lehr.";
#elif L==2
@ -38098,11 +38098,32 @@ const char *Txt_Teachers_ABBREVIATION = // Abbreviation of "Teachers"
#elif L==6
"Prof.";
#elif L==7
"Teach."; // Potrzebujesz tlumaczenie
"Naucz.";
#elif L==8
"Prof.";
#endif
const char *Txt_teachers_ABBREVIATION = // Abbreviation of "Teachers"
#if L==0
"prof.";
#elif L==1
"Lehr.";
#elif L==2
"teach.";
#elif L==3
"prof.";
#elif L==4
"enseig.";
#elif L==5
"prof."; // Okoteve traducción
#elif L==6
"prof.";
#elif L==7
"naucz.";
#elif L==8
"prof.";
#endif
const char *Txt_Test =
#if L==0
"Test";

View File

@ -781,7 +781,7 @@ static void TT_DrawTimeTable (void)
}
/***** Table start *****/
fprintf (Gbl.F.Out,"<table style=\"min-width:560px; margin:0 auto;\">");
fprintf (Gbl.F.Out,"<table style=\"min-width:540px; margin:0 auto;\">");
/***** Top row used for column adjustement *****/
TT_TimeTableDrawAdjustRow ();