// swad_program.h: course program #ifndef _SWAD_PRG #define _SWAD_PRG /* SWAD (Shared Workspace At a Distance), is a web platform developed at the University of Granada (Spain), and used to support university teaching. This file is part of SWAD core. Copyright (C) 1999-2020 Antonio Caņas Vargas This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ /*****************************************************************************/ /********************************* Headers ***********************************/ /*****************************************************************************/ #include "swad_date.h" #include "swad_file_browser.h" #include "swad_notification.h" #include "swad_user.h" /*****************************************************************************/ /************************** Public types and constants ***********************/ /*****************************************************************************/ #define Prg_MAX_CHARS_PROGRAM_ITEM_TITLE (128 - 1) // 127 #define Prg_MAX_BYTES_PROGRAM_ITEM_TITLE ((Prg_MAX_CHARS_PROGRAM_ITEM_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 struct ProgramItem { long PrgIteCod; bool Hidden; long UsrCod; time_t TimeUTC[Dat_NUM_START_END_TIME]; bool Open; char Title[Prg_MAX_BYTES_PROGRAM_ITEM_TITLE + 1]; bool IBelongToCrsOrGrps; // I can do this program item // (it is associated to no groups // or, if associated to groups, // I belong to any of the groups) }; #define Prg_ORDER_DEFAULT Dat_START_TIME /*****************************************************************************/ /***************************** Public prototypes *****************************/ /*****************************************************************************/ void Prg_SeeCourseProgram (void); void Prg_PrintOnePrgItem (void); void Prg_PutHiddenParamPrgOrder (void); void Prg_RequestCreatOrEditPrgItem (void); void Prg_GetListPrgItems (void); void Prg_GetDataOfPrgItemByCod (struct ProgramItem *PrgItem); void Prg_FreeListPrgItems (void); void Prg_GetNotifPrgItem (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], char **ContentStr, long PrgIteCod,bool GetContent); long Prg_GetParamPrgItemCod (void); void Prg_ReqRemPrgItem (void); void Prg_RemovePrgItem (void); void Prg_HidePrgItem (void); void Prg_ShowPrgItem (void); void Prg_RecFormPrgItem (void); bool Prg_CheckIfPrgItemIsAssociatedToGrp (long PrgIteCod,long GrpCod); void Prg_RemoveGroup (long GrpCod); void Prg_RemoveGroupsOfType (long GrpTypCod); void Prg_RemoveCrsPrgItems (long CrsCod); unsigned Prg_GetNumPrgItemsInCrs(long CrsCod); unsigned Prg_GetNumCoursesWithPrgItems (Hie_Level_t Scope); unsigned Prg_GetNumPrgItems (Hie_Level_t Scope); #endif