Revue calcul date sans quiz + affichage jour de la semaine dates des prochains quizs
This commit is contained in:
parent
2111d5e7f0
commit
9c4829e773
@ -295,26 +295,42 @@ exports.getListNextQuestionnaires = async(req, res, next) =>
|
||||
try
|
||||
{
|
||||
let questionnaires=await getNextQuestionnaires();
|
||||
let dateNeeded="", questionnairesDatas, dateSearch, dateQuestionnaire;
|
||||
const dayWithoutPublication=[0,6];// à déclarer dans config + gérer cas où aucun jour n'est obligatoire
|
||||
let dateNeeded="", questionnairesDatas, dateQuestionnaireTS, previousDayNeededTS, previousDayTS;
|
||||
for(let i in questionnaires)
|
||||
{
|
||||
questionnairesDatas=await searchQuestionnaireById(questionnaires[i].id);
|
||||
questionnaires[i].isPublishable=checkQuestionnaireIsPublishable(questionnairesDatas, false); // le questionnaire est-il complet ?
|
||||
if(dateNeeded==="") // si il y a plus de 24H entre deux dates de publication, c'est mal !
|
||||
dateQuestionnaireTS=new Date(questionnaires[i].datePublishing).getTime();
|
||||
if(dateNeeded==="")
|
||||
{
|
||||
if(i==0)
|
||||
dateSearch=new Date(Date.now()+3600*1000*24);
|
||||
// je commence par chercher le jour précédent pour lequel je dois avoir publié quelque chose :
|
||||
previousDayTS=new Date(new Date(dateQuestionnaireTS-3600*1000*24));
|
||||
previousDayNeededTS=0;
|
||||
while (previousDayNeededTS===0)
|
||||
{
|
||||
if(dayWithoutPublication.indexOf(previousDayTS.getDay())===-1)
|
||||
previousDayNeededTS=previousDayTS;
|
||||
else
|
||||
previousDayTS=new Date(previousDayTS.getTime()-3600*1000*24);
|
||||
}
|
||||
// si il n'y a pas de quiz précédent, cette date est celle que je cherche
|
||||
if(!questionnaires[i-1])
|
||||
{
|
||||
if(previousDayNeededTS >= Date.now())
|
||||
dateNeeded=previousDayNeededTS;
|
||||
}
|
||||
else
|
||||
dateSearch=new Date(questionnaires[i-1].datePublishing).getTime()+3600*1000*24;
|
||||
dateQuestionnaire=new Date(questionnaires[i].datePublishing).getTime();
|
||||
if(dateQuestionnaire > dateSearch)
|
||||
dateNeeded=dateSearch;
|
||||
{ // sinon je compare la date du précédent quiz à celle pour laquelle j'ai besoin d'un quiz
|
||||
if(new Date(questionnaires[i-1].datePublishing).getTime() < previousDayNeededTS)
|
||||
dateNeeded=previousDayNeededTS;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(questionnaires.length > 0 && dateNeeded==="")
|
||||
dateNeeded=new Date(dateQuestionnaire+3600*1000*24);// le jour suivant celui du dernier questionnaire
|
||||
dateNeeded=new Date(dateQuestionnaireTS+3600*1000*24);// le jour suivant celui du dernier questionnaire
|
||||
else
|
||||
dateNeeded=new Date();// rien pour ce jour
|
||||
dateNeeded=new Date(Date.now()+3600*1000*24);// mais il est possible que rien n'ai été publié ce jour, le quiz du jour étant absent de la liste traitée
|
||||
res.status(200).json({questionnaires: questionnaires, dateNeeded: dateNeeded });
|
||||
next();
|
||||
}
|
||||
|
@ -96,10 +96,11 @@ const initialise = async () =>
|
||||
let response=JSON.parse(this.responseText);
|
||||
if (this.status === 200 && Array.isArray(response.questionnaires))
|
||||
{
|
||||
let listHTML="";
|
||||
let listHTML="", dayStr, optionsDayStr = { weekday: 'long'};
|
||||
for(let i in response.questionnaires)
|
||||
{
|
||||
listHTML+="<li>"+dateFormat(response.questionnaires[i].datePublishing, "fr")+": <a href='"+configFrontEnd.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>";
|
||||
dayStr=new Intl.DateTimeFormat(lang, optionsDayStr).format(new Date(response.questionnaires[i].datePublishing));
|
||||
listHTML+="<li>"+dayStr+" "+dateFormat(response.questionnaires[i].datePublishing, "fr")+": <a href='"+configFrontEnd.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>";
|
||||
if(response.questionnaires[i].isPublishable===false)
|
||||
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
||||
listHTML+="</li>";
|
||||
|
@ -405,10 +405,11 @@ const initialise = async () =>
|
||||
let response=JSON.parse(this.responseText);
|
||||
if (this.status === 200 && Array.isArray(response.questionnaires))
|
||||
{
|
||||
let listHTML="";
|
||||
let listHTML="", dayStr, optionsDayStr = { weekday: 'long'};
|
||||
for(let i in response.questionnaires)
|
||||
{
|
||||
listHTML+="<li>"+dateFormat(response.questionnaires[i].datePublishing, "fr")+": <a href='"+configFrontEnd.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"' id='questionnaire_"+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>";
|
||||
dayStr=new Intl.DateTimeFormat(lang, optionsDayStr).format(new Date(response.questionnaires[i].datePublishing));
|
||||
listHTML+="<li>"+dayStr+" "+dateFormat(response.questionnaires[i].datePublishing, "fr")+": <a href='"+configFrontEnd.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"' id='questionnaire_"+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>";
|
||||
if(response.questionnaires[i].isPublishable===false)
|
||||
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
||||
listHTML+="</li>";
|
||||
|
Loading…
Reference in New Issue
Block a user