Import repositories from gitlab

This commit is contained in:
Julien Aldon
2026-01-19 11:43:59 +01:00
commit 68b7405c52
131 changed files with 17192 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
const config = {
locales: [
// 'ar',
// 'fr',
// 'cs',
// 'de',
// 'dk',
// 'es',
// 'he',
// 'id',
// 'it',
// 'ja',
// 'ko',
// 'ms',
// 'nl',
// 'no',
// 'pl',
// 'pt-BR',
// 'pt',
// 'ru',
// 'sk',
// 'sv',
// 'th',
// 'tr',
// 'uk',
// 'vi',
// 'zh-Hans',
// 'zh',
],
};
const bootstrap = (app) => {
console.log(app);
};
export default {
config,
bootstrap,
};

View File

@@ -0,0 +1,9 @@
'use strict';
/* eslint-disable no-unused-vars */
module.exports = (config, webpack) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the modified config
return config;
};

0
strapi/src/api/.gitkeep Normal file
View File

View File

@@ -0,0 +1,32 @@
{
"kind": "collectionType",
"collectionName": "articles",
"info": {
"singularName": "article",
"pluralName": "articles",
"displayName": "Article",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"title": {
"type": "string"
},
"link": {
"type": "string"
},
"edition": {
"type": "relation",
"relation": "manyToOne",
"target": "api::edition.edition",
"inversedBy": "articles"
},
"excerpt": {
"type": "blocks",
"required": true
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* article controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::article.article');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* article router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::article.article');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* article service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::article.article');

View File

@@ -0,0 +1,37 @@
{
"kind": "collectionType",
"collectionName": "bands",
"info": {
"singularName": "band",
"pluralName": "bands",
"displayName": "Band"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string",
"required": true
},
"location": {
"type": "string",
"required": true
},
"profile_picture": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": true,
"required": false
},
"programs": {
"type": "relation",
"relation": "manyToMany",
"target": "api::program.program",
"mappedBy": "bands"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* band controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::band.band');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* band router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::band.band');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* band service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::band.band');

View File

@@ -0,0 +1,91 @@
{
"kind": "collectionType",
"collectionName": "editions",
"info": {
"singularName": "edition",
"pluralName": "editions",
"displayName": "Edition",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"title": {
"type": "string",
"required": true,
"default": "Le FeFan"
},
"subtitle": {
"type": "string"
},
"introduction": {
"type": "blocks",
"required": true
},
"flyer": {
"type": "media",
"multiple": false,
"required": true,
"allowedTypes": [
"images"
]
},
"gallery": {
"type": "media",
"multiple": true,
"required": true,
"allowedTypes": [
"images",
"videos"
]
},
"start": {
"type": "date",
"required": true,
"unique": true
},
"end": {
"type": "date",
"required": true,
"unique": true
},
"social_links": {
"type": "relation",
"relation": "oneToMany",
"target": "api::social-link.social-link",
"mappedBy": "edition"
},
"statistics": {
"type": "relation",
"relation": "oneToMany",
"target": "api::statistic.statistic",
"mappedBy": "edition"
},
"description": {
"type": "text",
"required": true
},
"programs": {
"type": "relation",
"relation": "oneToMany",
"target": "api::program.program",
"mappedBy": "edition"
},
"sponsors": {
"type": "relation",
"relation": "oneToMany",
"target": "api::sponsor.sponsor"
},
"articles": {
"type": "relation",
"relation": "oneToMany",
"target": "api::article.article",
"mappedBy": "edition"
},
"movie": {
"type": "string"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* edition controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::edition.edition');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* edition router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::edition.edition');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* edition service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::edition.edition');

View File

@@ -0,0 +1,66 @@
{
"kind": "collectionType",
"collectionName": "programs",
"info": {
"singularName": "program",
"pluralName": "programs",
"displayName": "Program",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"map_uri": {
"type": "string",
"regex": "\\w+:(\\/?\\/?)[^\\s]+"
},
"introduction": {
"type": "blocks",
"required": true
},
"description": {
"type": "text",
"required": true
},
"title": {
"type": "string",
"required": true
},
"bands": {
"type": "relation",
"relation": "manyToMany",
"target": "api::band.band",
"inversedBy": "programs"
},
"type": {
"type": "enumeration",
"enum": [
"village",
"city-wide"
],
"required": true
},
"time_slots": {
"type": "relation",
"relation": "oneToMany",
"target": "api::time-slot.time-slot",
"mappedBy": "program"
},
"edition": {
"type": "relation",
"relation": "manyToOne",
"target": "api::edition.edition",
"inversedBy": "programs"
},
"sticker": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images"
]
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* program controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::program.program');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* program router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::program.program');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* program service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::program.program');

View File

@@ -0,0 +1,39 @@
{
"kind": "singleType",
"collectionName": "sites",
"info": {
"singularName": "site",
"pluralName": "sites",
"displayName": "Site",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"edition": {
"type": "relation",
"relation": "oneToOne",
"target": "api::edition.edition"
},
"legal": {
"type": "blocks"
},
"contact_text": {
"type": "blocks"
},
"contact_mail": {
"type": "string",
"regex": "^[\\w\\+\\-\\.]+@([\\w-]+\\.)+[\\w-]{2,}$",
"required": true
},
"description": {
"type": "text",
"required": true
},
"author": {
"type": "string"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* site controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::site.site');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* site router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::site.site');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* site service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::site.site');

View File

@@ -0,0 +1,37 @@
{
"kind": "collectionType",
"collectionName": "social_links",
"info": {
"singularName": "social-link",
"pluralName": "social-links",
"displayName": "Social Link",
"description": ""
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"uri": {
"type": "string",
"regex": "\\w+:(\\/?\\/?)[^\\s]+",
"required": true,
"unique": false
},
"type": {
"type": "enumeration",
"enum": [
"instagram",
"facebook",
"youtube"
],
"required": true
},
"edition": {
"type": "relation",
"relation": "manyToOne",
"target": "api::edition.edition",
"inversedBy": "social_links"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* social-link controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::social-link.social-link');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* social-link router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::social-link.social-link');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* social-link service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::social-link.social-link');

View File

@@ -0,0 +1,32 @@
{
"kind": "collectionType",
"collectionName": "sponsors",
"info": {
"singularName": "sponsor",
"pluralName": "sponsors",
"displayName": "Sponsor"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string",
"required": true
},
"uri": {
"type": "string",
"regex": "\\w+:(\\/?\\/?)[^\\s]+",
"required": true
},
"image": {
"allowedTypes": [
"images"
],
"type": "media",
"multiple": false,
"required": true
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* sponsor controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::sponsor.sponsor');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* sponsor router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::sponsor.sponsor');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* sponsor service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::sponsor.sponsor');

View File

@@ -0,0 +1,30 @@
{
"kind": "collectionType",
"collectionName": "statistics",
"info": {
"singularName": "statistic",
"pluralName": "statistics",
"displayName": "Statistic"
},
"options": {
"draftAndPublish": false
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string",
"required": true
},
"value": {
"type": "integer",
"required": true,
"default": 0
},
"edition": {
"type": "relation",
"relation": "manyToOne",
"target": "api::edition.edition",
"inversedBy": "statistics"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* statistic controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::statistic.statistic');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* statistic router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::statistic.statistic');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* statistic service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::statistic.statistic');

View File

@@ -0,0 +1,32 @@
{
"kind": "collectionType",
"collectionName": "time_slots",
"info": {
"singularName": "time-slot",
"pluralName": "time-slots",
"displayName": "Time Slot"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"start": {
"type": "datetime",
"required": true
},
"end": {
"type": "datetime",
"required": true
},
"content": {
"type": "blocks"
},
"program": {
"type": "relation",
"relation": "manyToOne",
"target": "api::program.program",
"inversedBy": "time_slots"
}
}
}

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* time-slot controller
*/
const { createCoreController } = require('@strapi/strapi').factories;
module.exports = createCoreController('api::time-slot.time-slot');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* time-slot router
*/
const { createCoreRouter } = require('@strapi/strapi').factories;
module.exports = createCoreRouter('api::time-slot.time-slot');

View File

@@ -0,0 +1,9 @@
'use strict';
/**
* time-slot service
*/
const { createCoreService } = require('@strapi/strapi').factories;
module.exports = createCoreService('api::time-slot.time-slot');

View File

20
strapi/src/index.js Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
module.exports = {
/**
* An asynchronous register function that runs before
* your application is initialized.
*
* This gives you an opportunity to extend code.
*/
register(/*{ strapi }*/) {},
/**
* An asynchronous bootstrap function that runs before
* your application gets started.
*
* This gives you an opportunity to set up your data model,
* run jobs, or perform some special logic.
*/
bootstrap(/*{ strapi }*/) {},
};