diff --git a/swad_action.c b/swad_action.c
index cef4d266d..1c2953247 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -2390,12 +2390,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActUpdStd */{1423,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
/* ActUpdTch */{1424,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
- /* ActReqAccEnrStd */{1456,-1,TabUsr,ActLstStd ,0x008,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
- /* ActReqAccEnrTch */{1457,-1,TabUsr,ActLstTch ,0x010,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
- /* ActAccEnrStd */{1458,-1,TabUsr,ActLstStd ,0x008,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
- /* ActAccEnrTch */{1459,-1,TabUsr,ActLstTch ,0x010,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
- /* ActRemMe_Std */{1460,-1,TabUsr,ActLstStd ,0x008,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
- /* ActRemMe_Tch */{1461,-1,TabUsr,ActLstTch ,0x010,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
+ /* ActReqAccEnrStd */{1456,-1,TabUsr,ActLstStd ,0x1E8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
+ /* ActReqAccEnrTch */{1457,-1,TabUsr,ActLstTch ,0x1F0,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
+ /* ActAccEnrStd */{1458,-1,TabUsr,ActLstStd ,0x1E8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
+ /* ActAccEnrTch */{1459,-1,TabUsr,ActLstTch ,0x1F0,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
+ /* ActRemMe_Std */{1460,-1,TabUsr,ActLstStd ,0x1E8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
+ /* ActRemMe_Tch */{1461,-1,TabUsr,ActLstTch ,0x1F0,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
/* ActNewAdmIns */{1337,-1,TabUsr,ActLstOth ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToIns ,NULL},
/* ActRemAdmIns */{1338,-1,TabUsr,ActLstOth ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmIns ,NULL},
diff --git a/swad_centre.c b/swad_centre.c
index f90608e7a..6aad92b1e 100644
--- a/swad_centre.c
+++ b/swad_centre.c
@@ -554,9 +554,9 @@ static void Ctr_ListCentres (void)
Lay_ShowAlert (Lay_INFO,Txt_No_centres_have_been_created_in_this_institution);
if (ICanEdit)
{
- fprintf (Gbl.F.Out,"
");
+ Act_FormStart (ActEdiCtr);
+ Lay_PutConfirmButton (Txt_Create_centre);
+ Act_FormEnd ();
}
}
}
diff --git a/swad_changelog.h b/swad_changelog.h
index 96e424b66..660835392 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -111,11 +111,13 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 15.40.5 (2015/11/19)"
+#define Log_PLATFORM_VERSION "SWAD 15.40.6 (2015/11/19)"
// 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.40.6: Nov 20, 2015 New button to register students in courses without them.
+ New buttons to create institution, centre, degree and course. (187285 lines)
Version 15.40.5: Nov 19, 2015 Code refactoring in degrees. (187274 lines)
Version 15.40.4: Nov 19, 2015 Code refactoring in centres. (187279 lines)
Version 15.40.3: Nov 19, 2015 Code refactoring in institutions. (187281 lines)
diff --git a/swad_course.c b/swad_course.c
index 146133f90..554368898 100644
--- a/swad_course.c
+++ b/swad_course.c
@@ -1231,9 +1231,9 @@ static void Crs_ListCourses (void)
Lay_ShowAlert (Lay_INFO,Txt_No_courses_have_been_created_in_this_degree);
if (ICanEdit)
{
- fprintf (Gbl.F.Out,"");
+ Act_FormStart (ActEdiCrs);
+ Lay_PutConfirmButton (Txt_Create_course);
+ Act_FormEnd ();
}
}
}
diff --git a/swad_degree.c b/swad_degree.c
index e37ec13fa..78a256e53 100644
--- a/swad_degree.c
+++ b/swad_degree.c
@@ -2210,9 +2210,9 @@ static void Deg_ListDegrees (void)
Lay_ShowAlert (Lay_INFO,Txt_No_degrees_have_been_created_in_this_centre);
if (ICanEdit)
{
- fprintf (Gbl.F.Out,"");
+ Act_FormStart (ActEdiDeg);
+ Lay_PutConfirmButton (Txt_Create_degree);
+ Act_FormEnd ();
}
}
}
diff --git a/swad_enrollment.c b/swad_enrollment.c
index ba42d066f..95b8640f8 100644
--- a/swad_enrollment.c
+++ b/swad_enrollment.c
@@ -100,6 +100,8 @@ static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered);
static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecifiedUsrs);
+static void Enr_PutLinkToRemAllStdsThisCrs (void);
+
static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod);
static void Enr_ReqRegRemUsr (Rol_Role_t Role);
@@ -128,6 +130,19 @@ static void Enr_AskIfRemAdm (bool ItsMe,Sco_Scope_t Scope,const char *InsCtrDegN
static void Enr_EffectivelyRemAdm (struct UsrData *UsrDat,Sco_Scope_t Scope,
long Cod,const char *InsCtrDegName);
+/*****************************************************************************/
+/**************** Show form with button to enroll students *******************/
+/*****************************************************************************/
+
+void Enr_PutButtonToEnrollStudents (void)
+ {
+ extern const char *Txt_Register_students;
+
+ Act_FormStart (ActReqEnrSevStd);
+ Lay_PutConfirmButton (Txt_Register_students);
+ Act_FormEnd ();
+ }
+
/*****************************************************************************/
/************ Show form to request sign up in the current course *************/
/*****************************************************************************/
@@ -559,8 +574,9 @@ static void Enr_ShowFormRegRemSeveralUsrs (Rol_Role_t Role)
bool ExternalUsrsServiceAvailable = (Cfg_EXTERNAL_LOGIN_CLIENT_COMMAND[0] != '\0');
/***** Put contextual links *****/
- if (Role == Rol_STUDENT &&
- Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
+ if (Role == Rol_STUDENT && // Users to admin: students
+ Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
+ Gbl.CurrentCrs.Crs.NumStds) // This course has students
{
fprintf (Gbl.F.Out,"