Version 16.200

This commit is contained in:
Antonio Cañas Vargas 2017-05-02 10:24:47 +02:00
parent 0b36aa168c
commit 22a619a45e
7 changed files with 214 additions and 155 deletions

View File

@ -437,6 +437,7 @@ Assessment:
312. ActRcvRchTxtAss Receive and change the rich text of the assessment system
313. ActFrmNewAsg Form to create a new assignment
314. ActEdiOneAsg Edit one assignment
NEW. ActPrnOneAsg Print one assignment
315. ActNewAsg Create new assignment
316. ActChgAsg Modify data of an existing assignment
317. ActReqRemAsg Request the removal of an assignment
@ -1883,6 +1884,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActFrmNewAsg */{ 812,-1,TabUnk,ActSeeAsg ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RequestCreatOrEditAsg ,NULL},
/* ActEdiOneAsg */{ 814,-1,TabUnk,ActSeeAsg ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RequestCreatOrEditAsg ,NULL},
/* ActPrnOneAsg */{1637,-1,TabUnk,ActSeeAsg ,0x1F8,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BLNK_WINDOW,NULL ,Asg_PrintOneAssignment ,NULL},
/* ActNewAsg */{ 803,-1,TabUnk,ActSeeAsg ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RecFormAssignment ,NULL},
/* ActChgAsg */{ 815,-1,TabUnk,ActSeeAsg ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RecFormAssignment ,NULL},
/* ActReqRemAsg */{ 813,-1,TabUnk,ActSeeAsg ,0x110,0x100, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_ReqRemAssignment ,NULL},
@ -4621,6 +4623,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActSeeCalDeg, // #1634
ActPrnCalDeg, // #1635
ActChgCalDeg1stDay, // #1636
ActPrnOneAsg, // #1637
};
/*****************************************************************************/

View File

@ -57,9 +57,9 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 32 + 24 + 115 + 71 + 416 + 159 + 172 + 42 + 14 + 96)
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 32 + 24 + 115 + 72 + 416 + 159 + 172 + 42 + 14 + 96)
#define Act_MAX_ACTION_COD 1636
#define Act_MAX_ACTION_COD 1637
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12
@ -451,63 +451,64 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActFrmNewAsg (ActChgCalCrs1stDay + 17)
#define ActEdiOneAsg (ActChgCalCrs1stDay + 18)
#define ActNewAsg (ActChgCalCrs1stDay + 19)
#define ActChgAsg (ActChgCalCrs1stDay + 20)
#define ActReqRemAsg (ActChgCalCrs1stDay + 21)
#define ActRemAsg (ActChgCalCrs1stDay + 22)
#define ActHidAsg (ActChgCalCrs1stDay + 23)
#define ActShoAsg (ActChgCalCrs1stDay + 24)
#define ActPrnOneAsg (ActChgCalCrs1stDay + 19)
#define ActNewAsg (ActChgCalCrs1stDay + 20)
#define ActChgAsg (ActChgCalCrs1stDay + 21)
#define ActReqRemAsg (ActChgCalCrs1stDay + 22)
#define ActRemAsg (ActChgCalCrs1stDay + 23)
#define ActHidAsg (ActChgCalCrs1stDay + 24)
#define ActShoAsg (ActChgCalCrs1stDay + 25)
#define ActSeeTst (ActChgCalCrs1stDay + 25)
#define ActAssTst (ActChgCalCrs1stDay + 26)
#define ActEdiTstQst (ActChgCalCrs1stDay + 27)
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 28)
#define ActReqImpTstQst (ActChgCalCrs1stDay + 29)
#define ActImpTstQst (ActChgCalCrs1stDay + 30)
#define ActLstTstQst (ActChgCalCrs1stDay + 31)
#define ActRcvTstQst (ActChgCalCrs1stDay + 32)
#define ActReqRemTstQst (ActChgCalCrs1stDay + 33)
#define ActRemTstQst (ActChgCalCrs1stDay + 34)
#define ActShfTstQst (ActChgCalCrs1stDay + 35)
#define ActCfgTst (ActChgCalCrs1stDay + 36)
#define ActEnableTag (ActChgCalCrs1stDay + 37)
#define ActDisableTag (ActChgCalCrs1stDay + 38)
#define ActRenTag (ActChgCalCrs1stDay + 39)
#define ActRcvCfgTst (ActChgCalCrs1stDay + 40)
#define ActSeeTst (ActChgCalCrs1stDay + 26)
#define ActAssTst (ActChgCalCrs1stDay + 27)
#define ActEdiTstQst (ActChgCalCrs1stDay + 28)
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 29)
#define ActReqImpTstQst (ActChgCalCrs1stDay + 30)
#define ActImpTstQst (ActChgCalCrs1stDay + 31)
#define ActLstTstQst (ActChgCalCrs1stDay + 32)
#define ActRcvTstQst (ActChgCalCrs1stDay + 33)
#define ActReqRemTstQst (ActChgCalCrs1stDay + 34)
#define ActRemTstQst (ActChgCalCrs1stDay + 35)
#define ActShfTstQst (ActChgCalCrs1stDay + 36)
#define ActCfgTst (ActChgCalCrs1stDay + 37)
#define ActEnableTag (ActChgCalCrs1stDay + 38)
#define ActDisableTag (ActChgCalCrs1stDay + 39)
#define ActRenTag (ActChgCalCrs1stDay + 40)
#define ActRcvCfgTst (ActChgCalCrs1stDay + 41)
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 41)
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 42)
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 43)
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 44)
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 45)
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 46)
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 42)
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 43)
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 44)
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 45)
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 46)
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 47)
#define ActSeeOneSvy (ActChgCalCrs1stDay + 47)
#define ActAnsSvy (ActChgCalCrs1stDay + 48)
#define ActFrmNewSvy (ActChgCalCrs1stDay + 49)
#define ActEdiOneSvy (ActChgCalCrs1stDay + 50)
#define ActNewSvy (ActChgCalCrs1stDay + 51)
#define ActChgSvy (ActChgCalCrs1stDay + 52)
#define ActReqRemSvy (ActChgCalCrs1stDay + 53)
#define ActRemSvy (ActChgCalCrs1stDay + 54)
#define ActReqRstSvy (ActChgCalCrs1stDay + 55)
#define ActRstSvy (ActChgCalCrs1stDay + 56)
#define ActHidSvy (ActChgCalCrs1stDay + 57)
#define ActShoSvy (ActChgCalCrs1stDay + 58)
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 59)
#define ActRcvSvyQst (ActChgCalCrs1stDay + 60)
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 61)
#define ActRemSvyQst (ActChgCalCrs1stDay + 62)
#define ActSeeOneSvy (ActChgCalCrs1stDay + 48)
#define ActAnsSvy (ActChgCalCrs1stDay + 49)
#define ActFrmNewSvy (ActChgCalCrs1stDay + 50)
#define ActEdiOneSvy (ActChgCalCrs1stDay + 51)
#define ActNewSvy (ActChgCalCrs1stDay + 52)
#define ActChgSvy (ActChgCalCrs1stDay + 53)
#define ActReqRemSvy (ActChgCalCrs1stDay + 54)
#define ActRemSvy (ActChgCalCrs1stDay + 55)
#define ActReqRstSvy (ActChgCalCrs1stDay + 56)
#define ActRstSvy (ActChgCalCrs1stDay + 57)
#define ActHidSvy (ActChgCalCrs1stDay + 58)
#define ActShoSvy (ActChgCalCrs1stDay + 59)
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 60)
#define ActRcvSvyQst (ActChgCalCrs1stDay + 61)
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 62)
#define ActRemSvyQst (ActChgCalCrs1stDay + 63)
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 63)
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 64)
#define ActEdiExaAnn (ActChgCalCrs1stDay + 65)
#define ActRcvExaAnn (ActChgCalCrs1stDay + 66)
#define ActPrnExaAnn (ActChgCalCrs1stDay + 67)
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 68)
#define ActRemExaAnn (ActChgCalCrs1stDay + 69)
#define ActHidExaAnn (ActChgCalCrs1stDay + 70)
#define ActShoExaAnn (ActChgCalCrs1stDay + 71)
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 64)
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 65)
#define ActEdiExaAnn (ActChgCalCrs1stDay + 66)
#define ActRcvExaAnn (ActChgCalCrs1stDay + 67)
#define ActPrnExaAnn (ActChgCalCrs1stDay + 68)
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 69)
#define ActRemExaAnn (ActChgCalCrs1stDay + 70)
#define ActHidExaAnn (ActChgCalCrs1stDay + 71)
#define ActShoExaAnn (ActChgCalCrs1stDay + 72)
/*****************************************************************************/
/******************************** Files tab **********************************/

View File

@ -63,15 +63,16 @@ extern struct Globals Gbl;
/*****************************************************************************/
static void Asg_ShowAllAssignments (void);
static void Asg_PutHeadForSeeing (void);
static bool Asg_CheckIfICanCreateAssignments (void);
static void Asg_PutIconsListAssignments (void);
static void Asg_PutIconToCreateNewAsg (void);
static void Asg_PutButtonToCreateNewAsg (void);
static void Asg_PutFormToSelectWhichGroupsToShow (void);
static void Asg_ParamsWhichGroupsToShow (void);
static void Asg_ShowOneAssignment (long AsgCod);
static void Asg_ShowOneAssignment (long AsgCod,bool PrintView);
static void Asg_WriteAsgAuthor (struct Assignment *Asg);
static void Asg_WriteAssignmentFolder (struct Assignment *Asg);
static void Asg_WriteAssignmentFolder (struct Assignment *Asg,bool PrintView);
static void Asg_GetParamAsgOrder (void);
static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden);
@ -114,13 +115,7 @@ static void Asg_ShowAllAssignments (void)
{
extern const char *Hlp_ASSESSMENT_Assignments;
extern const char *Txt_Assignments;
extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME];
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
extern const char *Txt_Assignment;
extern const char *Txt_Upload_files_QUESTION;
extern const char *Txt_Folder;
extern const char *Txt_No_assignments;
Dat_StartEndTime_t Order;
struct Pagination Pagination;
unsigned NumAsg;
@ -151,45 +146,14 @@ static void Asg_ShowAllAssignments (void)
{
/***** Table head *****/
Lay_StartTableWideMargin (2);
fprintf (Gbl.F.Out,"<tr>");
for (Order = Dat_START_TIME;
Order <= Dat_END_TIME;
Order++)
{
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">");
Act_FormStart (ActSeeAsg);
Grp_PutParamWhichGrps ();
Pag_PutHiddenParamPagNum (Pag_ASSIGNMENTS,Gbl.Asgs.CurrentPage);
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
Act_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL);
if (Order == Gbl.Asgs.SelectedOrder)
fprintf (Gbl.F.Out,"<u>");
fprintf (Gbl.F.Out,"%s",Txt_START_END_TIME[Order]);
if (Order == Gbl.Asgs.SelectedOrder)
fprintf (Gbl.F.Out,"</u>");
fprintf (Gbl.F.Out,"</a>");
Act_FormEnd ();
fprintf (Gbl.F.Out,"</th>");
}
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"<th class=\"CENTER_MIDDLE\">"
"%s"
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
Txt_Assignment,
Txt_Upload_files_QUESTION,
Txt_Folder);
Asg_PutHeadForSeeing ();
/***** Write all the assignments *****/
for (NumAsg = Pagination.FirstItemVisible;
NumAsg <= Pagination.LastItemVisible;
NumAsg++)
Asg_ShowOneAssignment (Gbl.Asgs.LstAsgCods[NumAsg - 1]);
Asg_ShowOneAssignment (Gbl.Asgs.LstAsgCods[NumAsg - 1],
false); // Not print view
/***** End table *****/
Lay_EndTable ();
@ -214,6 +178,54 @@ static void Asg_ShowAllAssignments (void)
Asg_FreeListAssignments ();
}
/*****************************************************************************/
/***************** Write header with fields of an assignment *****************/
/*****************************************************************************/
static void Asg_PutHeadForSeeing (void)
{
extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME];
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
extern const char *Txt_Assignment;
extern const char *Txt_Upload_files_QUESTION;
extern const char *Txt_Folder;
Dat_StartEndTime_t Order;
fprintf (Gbl.F.Out,"<tr>");
for (Order = Dat_START_TIME;
Order <= Dat_END_TIME;
Order++)
{
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">");
Act_FormStart (ActSeeAsg);
Grp_PutParamWhichGrps ();
Pag_PutHiddenParamPagNum (Pag_ASSIGNMENTS,Gbl.Asgs.CurrentPage);
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
Act_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL);
if (Order == Gbl.Asgs.SelectedOrder)
fprintf (Gbl.F.Out,"<u>");
fprintf (Gbl.F.Out,"%s",Txt_START_END_TIME[Order]);
if (Order == Gbl.Asgs.SelectedOrder)
fprintf (Gbl.F.Out,"</u>");
fprintf (Gbl.F.Out,"</a>");
Act_FormEnd ();
fprintf (Gbl.F.Out,"</th>");
}
fprintf (Gbl.F.Out,"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"<th class=\"CENTER_MIDDLE\">"
"%s"
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
Txt_Assignment,
Txt_Upload_files_QUESTION,
Txt_Folder);
}
/*****************************************************************************/
/******************** Check if I can create assignments **********************/
/*****************************************************************************/
@ -287,11 +299,40 @@ static void Asg_ParamsWhichGroupsToShow (void)
Pag_PutHiddenParamPagNum (Pag_ASSIGNMENTS,Gbl.Asgs.CurrentPage);
}
/*****************************************************************************/
/******************** Show print view of one assignment **********************/
/*****************************************************************************/
void Asg_PrintOneAssignment (void)
{
long AsgCod;
/***** Get the code of the assignment *****/
AsgCod = Asg_GetParamAsgCod ();
/***** Start frame *****/
Lay_WriteHeaderClassPhoto (true,false,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentDeg.Deg.DegCod,
Gbl.CurrentCrs.Crs.CrsCod);
/***** Table head *****/
Lay_StartTableWideMargin (2);
Asg_PutHeadForSeeing ();
/***** Write assignment *****/
Asg_ShowOneAssignment (AsgCod,
true); // Print view
/***** End table *****/
Lay_EndTable ();
}
/*****************************************************************************/
/*************************** Show one assignment *****************************/
/*****************************************************************************/
static void Asg_ShowOneAssignment (long AsgCod)
static void Asg_ShowOneAssignment (long AsgCod,bool PrintView)
{
extern const char *Txt_Today;
extern const char *Txt_ASSIGNMENT_TYPES[Asg_NUM_TYPES_SEND_WORK];
@ -368,7 +409,8 @@ static void Asg_ShowOneAssignment (long AsgCod)
/* Assignment folder */
fprintf (Gbl.F.Out,"<td rowspan=\"2\" class=\"DAT LEFT_TOP COLOR%u\">",
Gbl.RowEvenOdd);
Asg_WriteAssignmentFolder (&Asg);
if (Asg.SendWork == Asg_SEND_WORK)
Asg_WriteAssignmentFolder (&Asg,PrintView);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
@ -381,15 +423,9 @@ static void Asg_ShowOneAssignment (long AsgCod)
Asg_WriteAsgAuthor (&Asg);
/* Forms to remove/edit this assignment */
switch (Gbl.Usrs.Me.LoggedRole)
{
case Rol_TEACHER:
case Rol_SYS_ADM:
Asg_PutFormsToRemEditOneAsg (Asg.AsgCod,Asg.Hidden);
break;
default:
break;
}
if (!PrintView)
Asg_PutFormsToRemEditOneAsg (Asg.AsgCod,Asg.Hidden);
fprintf (Gbl.F.Out,"</td>");
/* Text of the assignment */
@ -433,45 +469,45 @@ static void Asg_WriteAsgAuthor (struct Assignment *Asg)
/********************* Write the folder of an assignment *********************/
/*****************************************************************************/
static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
static void Asg_WriteAssignmentFolder (struct Assignment *Asg,bool PrintView)
{
extern const char *Txt_Upload_file_or_create_folder_in_FOLDER;
extern const char *Txt_Folder;
bool ICanSendFiles = !Asg->Hidden && // It's visible (not hidden)
Asg->Open && // It's open (inside dates)
Asg->IBelongToCrsOrGrps && // I belong to course or groups
Gbl.Usrs.Me.LoggedRole == Rol_STUDENT; // I am a student
if (Asg->SendWork == Asg_SEND_WORK)
/***** Folder icon *****/
if (!PrintView && // Not print view
ICanSendFiles) // I can send files to this assignment folder
{
/***** Folder icon *****/
if (!Asg->Hidden && // It's visible (not hidden)
Asg->Open && // It's open (inside dates)
Asg->IBelongToCrsOrGrps && // I belong to course or groups
Gbl.Usrs.Me.LoggedRole == Rol_STUDENT) // I am a student
// I can send files to this assignment folder
{
/* Form to create a new file or folder */
Act_FormStart (ActFrmCreAsgUsr);
Brw_PutParamsFileBrowser (ActUnk,
Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
Asg->Folder,
Brw_IS_FOLDER,-1L);
sprintf (Gbl.Title,Txt_Upload_file_or_create_folder_in_FOLDER,
Asg->Folder);
fprintf (Gbl.F.Out,"<input type=\"image\""
" src=\"%s/folder-open-plus16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />",
Gbl.Prefs.IconsURL,
Gbl.Title,
Gbl.Title);
Act_FormEnd ();
}
else // I can't send files to this assignment folder
fprintf (Gbl.F.Out,"<img src=\"%s/folder-closed16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />",
Gbl.Prefs.IconsURL,
Txt_Folder,Txt_Folder);
/***** Folder name *****/
fprintf (Gbl.F.Out,"%s",Asg->Folder);
/* Form to create a new file or folder */
Act_FormStart (ActFrmCreAsgUsr);
Brw_PutParamsFileBrowser (ActUnk,
Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
Asg->Folder,
Brw_IS_FOLDER,-1L);
sprintf (Gbl.Title,Txt_Upload_file_or_create_folder_in_FOLDER,
Asg->Folder);
fprintf (Gbl.F.Out,"<input type=\"image\""
" src=\"%s/folder-open-plus16x16.gif\""
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />",
Gbl.Prefs.IconsURL,
Gbl.Title,
Gbl.Title);
Act_FormEnd ();
}
else // I can't send files to this assignment folder
fprintf (Gbl.F.Out,"<img src=\"%s/%s\" alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />",
Gbl.Prefs.IconsURL,
ICanSendFiles ? "folder-open16x16.gif" :
"folder-closed16x16.gif",
Txt_Folder,Txt_Folder);
/***** Folder name *****/
fprintf (Gbl.F.Out,"%s",Asg->Folder);
}
/*****************************************************************************/
@ -502,21 +538,33 @@ void Asg_PutHiddenParamAsgOrder (void)
static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden)
{
fprintf (Gbl.F.Out,"<div>");
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Gbl.Asgs.AsgCodToEdit = AsgCod; // Used as parameter in contextual links
/***** Put form to remove assignment *****/
Lay_PutContextualIconToRemove (ActReqRemAsg,Asg_PutParams);
switch (Gbl.Usrs.Me.LoggedRole)
{
case Rol_TEACHER:
case Rol_SYS_ADM:
/***** Put form to remove assignment *****/
Lay_PutContextualIconToRemove (ActReqRemAsg,Asg_PutParams);
/***** Put form to hide/show assignment *****/
if (Hidden)
Lay_PutContextualIconToUnhide (ActShoAsg,Asg_PutParams);
else
Lay_PutContextualIconToHide (ActHidAsg,Asg_PutParams);
/***** Put form to hide/show assignment *****/
if (Hidden)
Lay_PutContextualIconToUnhide (ActShoAsg,Asg_PutParams);
else
Lay_PutContextualIconToHide (ActHidAsg,Asg_PutParams);
/***** Put form to edit assignment *****/
Lay_PutContextualIconToEdit (ActEdiOneAsg,Asg_PutParams);
/***** Put form to edit assignment *****/
Lay_PutContextualIconToEdit (ActEdiOneAsg,Asg_PutParams);
// no break
case Rol_STUDENT:
/***** Put form to print assignment *****/
Lay_PutContextualIconToPrint (ActPrnOneAsg,Asg_PutParams);
break;
default:
break;
}
fprintf (Gbl.F.Out,"</div>");
}

View File

@ -69,6 +69,8 @@ struct Assignment
/*****************************************************************************/
void Asg_SeeAssignments (void);
void Asg_PrintOneAssignment (void);
void Asg_PutHiddenParamAsgOrder (void);
void Asg_RequestCreatOrEditAsg (void);
void Asg_GetListAssignments (void);

View File

@ -542,7 +542,7 @@ static void Att_PutFormToListStdsParams (void)
static void Att_PutFormsToRemEditOneAttEvent (long AttCod,bool Hidden)
{
fprintf (Gbl.F.Out,"<div>");
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Gbl.AttEvents.AttCodToEdit = AttCod; // Used as parameters in contextual links

View File

@ -217,19 +217,24 @@
// TODO: Change numbers of notifications in program and database to match order in tabs
// TODO: Icon to view en "Fuente de información"
// TODO: Print view of an assignment (suggested by Sandra Daniela Tazzioli Barroso).
// TODO: Change layout of contextual icons in assignments, surveys and attendance
// TODO: Fix problem printing view of students, teachers, etc.
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.199 (2017-05-02)"
#define Log_PLATFORM_VERSION "SWAD 16.200 (2017-05-02)"
#define CSS_FILE "swad16.195.8.css"
#define JS_FILE "swad16.181.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 16.200: May 02, 2017 Print view of an assignment, suggested by Sandra Daniela Tazzioli Barroso. (218337 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1637','es','N','Imprimir actividad');
Version 16.199: May 02, 2017 Code refactoring related to message author. (218291 lines)
Version 16.198.9: May 02, 2017 Code refactoring related to message author. (218345 lines)
Version 16.198.8: May 01, 2017 Code refactoring related to tables. (218323 lines)

View File

@ -783,7 +783,7 @@ static void Svy_PutFormsToRemEditOneSvy (long SvyCod,bool Visible)
{
extern const char *Txt_Reset;
fprintf (Gbl.F.Out,"<div>");
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Gbl.Svys.SvyCodToEdit = SvyCod; // Used as parameters in contextual links