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
|
try
|
||||||
{
|
{
|
||||||
let questionnaires=await getNextQuestionnaires();
|
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)
|
for(let i in questionnaires)
|
||||||
{
|
{
|
||||||
questionnairesDatas=await searchQuestionnaireById(questionnaires[i].id);
|
questionnairesDatas=await searchQuestionnaireById(questionnaires[i].id);
|
||||||
questionnaires[i].isPublishable=checkQuestionnaireIsPublishable(questionnairesDatas, false); // le questionnaire est-il complet ?
|
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)
|
// je commence par chercher le jour précédent pour lequel je dois avoir publié quelque chose :
|
||||||
dateSearch=new Date(Date.now()+3600*1000*24);
|
previousDayTS=new Date(new Date(dateQuestionnaireTS-3600*1000*24));
|
||||||
|
previousDayNeededTS=0;
|
||||||
|
while (previousDayNeededTS===0)
|
||||||
|
{
|
||||||
|
if(dayWithoutPublication.indexOf(previousDayTS.getDay())===-1)
|
||||||
|
previousDayNeededTS=previousDayTS;
|
||||||
else
|
else
|
||||||
dateSearch=new Date(questionnaires[i-1].datePublishing).getTime()+3600*1000*24;
|
previousDayTS=new Date(previousDayTS.getTime()-3600*1000*24);
|
||||||
dateQuestionnaire=new Date(questionnaires[i].datePublishing).getTime();
|
}
|
||||||
if(dateQuestionnaire > dateSearch)
|
// si il n'y a pas de quiz précédent, cette date est celle que je cherche
|
||||||
dateNeeded=dateSearch;
|
if(!questionnaires[i-1])
|
||||||
|
{
|
||||||
|
if(previousDayNeededTS >= Date.now())
|
||||||
|
dateNeeded=previousDayNeededTS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // 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==="")
|
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
|
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 });
|
res.status(200).json({questionnaires: questionnaires, dateNeeded: dateNeeded });
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
|
@ -96,10 +96,11 @@ const initialise = async () =>
|
|||||||
let response=JSON.parse(this.responseText);
|
let response=JSON.parse(this.responseText);
|
||||||
if (this.status === 200 && Array.isArray(response.questionnaires))
|
if (this.status === 200 && Array.isArray(response.questionnaires))
|
||||||
{
|
{
|
||||||
let listHTML="";
|
let listHTML="", dayStr, optionsDayStr = { weekday: 'long'};
|
||||||
for(let i in response.questionnaires)
|
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)
|
if(response.questionnaires[i].isPublishable===false)
|
||||||
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
||||||
listHTML+="</li>";
|
listHTML+="</li>";
|
||||||
|
@ -405,10 +405,11 @@ const initialise = async () =>
|
|||||||
let response=JSON.parse(this.responseText);
|
let response=JSON.parse(this.responseText);
|
||||||
if (this.status === 200 && Array.isArray(response.questionnaires))
|
if (this.status === 200 && Array.isArray(response.questionnaires))
|
||||||
{
|
{
|
||||||
let listHTML="";
|
let listHTML="", dayStr, optionsDayStr = { weekday: 'long'};
|
||||||
for(let i in response.questionnaires)
|
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)
|
if(response.questionnaires[i].isPublishable===false)
|
||||||
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
listHTML+=" <span class='error'>("+txtQuestionnaire.needBeCompleted+")</li>";
|
||||||
listHTML+="</li>";
|
listHTML+="</li>";
|
||||||
|
Loading…
Reference in New Issue
Block a user