diff --git a/lang/fr/group.js b/lang/fr/group.js new file mode 100644 index 0000000..d255676 --- /dev/null +++ b/lang/fr/group.js @@ -0,0 +1,14 @@ +module.exports = +{ + needCorrectPublishingDate: "La date de publication fournie n'a pas un format valide.", + needLanguage: "Vous devez sélectionner la langue de ce quiz.", + needNotTooLongTitle: "Le titre du quiz ne doit pas compter plus de 255 caractères.", + needTitle: "Merci de fournir un titre à votre quiz.", + needUniqueUrl: "L'url du quiz doit être unique.", + needUrl: "Merci de fournir l'url à votre quiz.", + /* + questionnairesName: "quiz", + questionnaireNeedBeCompleted: "Quiz incomplet", + publishedAt: ", le", + publishedBy: "Quiz publié par"*/ +}; \ No newline at end of file diff --git a/lang/fr/questionnaire.js b/lang/fr/questionnaire.js index 1c27917..25c6872 100644 --- a/lang/fr/questionnaire.js +++ b/lang/fr/questionnaire.js @@ -22,7 +22,8 @@ module.exports = needIntroduction: "Merci de fournir un texte d'introduction à votre quiz.", needKnowIfIsPublished: "Il faut savoir si ce quiz est publié.", needLanguage: "Vous devez sélectionner la langue de ce quiz.", - needNotTooLongTitle: "Le titre du quiz ne doit pas compter plus de 255 caractères.", + needNotTooLongTitle: "Le titre du quiz ne doit pas compter plus de 255 caractères.", + needNumberForRank: "Vous devez saisir un nombre entier pour le rang de ce questionnaire dans son groupe.", needTitle: "Merci de fournir un titre à votre quiz.", needUniqueUrl: "L'url du quiz doit être unique.", needUrl: "Merci de fournir l'url à votre quiz.", diff --git a/models/Group.js b/models/Group.js new file mode 100644 index 0000000..f78dc5f --- /dev/null +++ b/models/Group.js @@ -0,0 +1,94 @@ +"use strict"; + +// revoir les requires pour ne prendre que ce j'ai besoin ? +const striptags = require("striptags"); + +const slugify = require("slugify"); +const tool = require("../tools/main"); + +const config = require("../config/main.js"); +const txt = require("../lang/"+config.adminLang+"/group"); +const txtGeneral = require("../lang/"+config.adminLang+"/general"); + +module.exports = (sequelize, DataTypes) => +{ + const Group = sequelize.define("Groupe", + { + title: + { + type: DataTypes.STRING(255), allowNull: false, + set(value) + { + this.setDataValue("title", tool.trimIfNotNull(striptags(value))); + }, + validate: + { + notNull: { msg: txt.needTitle }, + len: + { + args: [1, 255], + msg: txt.needNotTooLongTitle + } + } + }, + slug: + { + type: DataTypes.STRING(150), allowNull: false, + unique: + { + args: true, + msg: txt.needUniqueUrl + }, + set(value) + { + value=tool.trimIfNotNull(striptags(value)); + if(value!==null) + this.setDataValue("slug", slugify(value.substring(0,150), { lower:true, strict:true })); + else if(this.title!==null) + this.setDataValue("slug", slugify(this.title.substring(0,150), { lower:true, strict:true })); + }, + validate: + { + notNull: { msg: txt.needUrl } + } + }, + introduction: + { + type: DataTypes.TEXT, allowNull: true, + set(value) { this.setDataValue("introduction", tool.trimIfNotNull(striptags(value,"