Compare commits

...

15 commits

Author SHA1 Message Date
ed6fafda45
feat(nix): Rework a bit 2024-10-24 00:08:51 +02:00
a648941bac
chore(npins): Update nixpkgs 2024-10-24 00:08:33 +02:00
f523cb1e4a
chore(data): Reformat 2024-10-24 00:08:22 +02:00
5c5e0c356b
feat: Add Valse 2024-10-23 23:32:21 +02:00
f631751da4 feat(calendars.json): ajout du calendrier DGNum
Signed-off-by: jemagius <jmg@dgnum.eu>
2024-10-12 12:31:47 +02:00
505074dfc3 feat: add DGNum's NextCloud as provider for calendars in metis
Signed-off-by: jemagius <jmg@dgnum.eu>
2024-10-12 11:12:00 +02:00
9eaa1f2897
fix(calendars.json): K-Fêt was recreated 2024-09-18 14:20:39 +02:00
sinavir
23839b284e fix(locations.json): Add some location renaming 2024-09-04 16:17:41 +02:00
sinavir
8923b8293d fix(calendars.json): fix rentrée 2024-09-04 11:05:14 +02:00
sinavir
6eeeea3654 fix(calendars.json): Add "Visites" 2024-08-28 16:54:08 +02:00
sinavir
e91154c9db feat(synoptic view): Display only occupied rooms 2024-08-13 01:45:50 +02:00
sinavir
57e9bc2474 feat(calendars.json): Rentrée 2024-08-13 01:45:14 +02:00
sinavir
505f15372d fix(calendars.json): Disable "Crémeaux encadrés" par défaut 2024-08-12 08:41:53 +02:00
sinavir
49b136a43a fix(calendars): Remove obsolete calendars 2024-06-27 21:34:15 +02:00
sinavir
3fd72124c0 fix(calendars.js): Remove unused function 2024-06-27 21:30:54 +02:00
8 changed files with 128 additions and 76 deletions

View file

@ -1,16 +1,18 @@
{
"tree": {
"Rentrée": {
"Amphis de rentrée": {},
"Évènements pour les masteriens": {},
"Exchange and international students": {},
"Départements": {},
"Visites de bibliothèque": {},
"Masters": {},
"Étudiants internationaux": {},
"Conférences de recherche": {}
"Amphis de rentrée": {},
"Divers rentrée": {},
"Associatif divers": {},
"Visites": {}
},
"Délégation Générale Numérique": {},
"COF": {
"Rentrée du COF": {},
"Évènements (COF)": {},
"Rentrée du COF": {},
"Assemblées Générales (COF)": {},
"BdA": {
"Évènements (BdA)": {},
@ -38,6 +40,7 @@
"Rentrée du BDS": {}
},
"Clubs BDS": {
"Valse": {},
"Créneaux encadrés": {},
"ENSelle": {}
},
@ -45,11 +48,20 @@
"Délégation Générale": {},
"K-Fêt": {},
"Écocampus": {},
"La Psychédéliste":{},
"La Psychédéliste": {},
"Ambassadeur·rice·s santé": {}
},
"sources": {
"dgnum-nc": {
"dmo7DgdmTnsMd8zo": {
"name": "Valse"
},
"eEPk6miCzozgPb42": {
"name": "Délégation Générale Numérique",
"short_name": "DGNum",
"color": "#27327a"
}
},
"eleves-ens": {
"qG6jpJPfK37Nw8ZC": {
"name": "PLS"
@ -69,7 +81,7 @@
"w442JdS5AaQ6czrP": {
"name": "Écriv'ENS"
},
"QXGnDTA8GS6r876F": {
"aoazRGFcjHSe4LxG": {
"name": "K-Fêt",
"color": "#c63b52",
"default_location": "K-Fêt"
@ -126,7 +138,8 @@
"name": "ENSelle"
},
"K6iGBG47WXaKWs3Q": {
"name": "Créneaux encadrés"
"name": "Créneaux encadrés",
"initial": false
},
"TFjE83ASCMK9rfRi": {
"name": "BandarrêtdurgENS",
@ -155,43 +168,46 @@
"AYNpoC674yAjEmRy": {
"name": "L'Hômonerie"
},
"TcwNdrs6iyBRxFzk": {
"name": "Divers"
},
"G5ZRyTkMifXC2iHj": {
"name": "Amphis de rentrée",
"short_name": "Amphis"
},
"dJofECeczaGgNiKs": {
"name": "Rentrée du BDS",
"short_name": "BDS"
},
"7Rwd8JERwBsso7XG": {
"name": "Rentrée du COF",
"short_name": "COF"
},
"tiMsNcncqBxR4nL2": {
"name": "Départements",
"short_name": "Dpt"
},
"RpP773D6e2ReLfcY": {
"name": "Visites de bibliothèque",
"short_name": "Bibli"
},
"YRZ4A8imEEf8jnDE": {
"name": "Masters"
},
"8EDHX6kiPYcSrXXL": {
"name": "Étudiants internationaux",
"short_name": "Internationaux"
},
"TWgNxdri7zQSoiRf": {
"name": "Conférences de recherche",
"short_name": "Conf"
},
"MJf2wnQafbLc2arS": {
"name": "Arts pla'",
"color": "#ffb969"
"color": "#ffb969"
},
"qS7WJwyBaGRQFyX3": {
"name": "Exchange and international students",
"short_name": "Exchange"
},
"fGmpGCNZrHQkNt7L": {
"name": "Départements",
"short_name": "Dpt",
"initial": false
},
"W6qjeqEzEekNieWk": {
"name": "Évènements pour les masteriens",
"short_name": "Master"
},
"oDPMTBSma2bfo6WS": {
"name": "Amphis de rentrée",
"short_name": "Amphis",
"initial": false
},
"aPXtDmXDxmLxkERg": {
"name": "Divers rentrée",
"short_name": "Rentrée"
},
"fqK3nqqPtXLyo4Y4": {
"name": "Rentrée du COF",
"short_name": "COF"
},
"YQnfcozPDoRgNSBb": {
"name": "Rentrée du BDS",
"short_name": "BDS"
},
"tfA32kgc3GM2fH2C": {
"name": "Visites"
},
"KDNA4GrFMkkJrwNd": {
"name": "Associatif divers",
"short_name": "Asso"
}
}
}

View file

@ -6,7 +6,15 @@
"Salle Jean Ibanes (Jourdan, R1-07)": "Salle Jean Ibanes (R1-07)",
"Salle Madeleine Rebérioux (Jourdan, R2-02)": "Salle Madeleine Rebérioux (R2-02)",
"Salle Marcel Roncayolo (Jourdan, R2-05)": "Salle Marcel Roncayolo (R2-05)",
"Cour des bibliothèques": "Cour du NIR"
"Cour des bibliothèques": "Cour du NIR",
"Salle Jaurès": "Amphithéâtre Jaurès",
"Jaurès": "Amphithéâtre Jaurès",
"Dussane": "Salle Dussane",
"Cour aux Ernest": "Cour aux Ernests",
"Restaurant": "Pôt",
"29 rue d'Ulm": "Bâtiment du 29",
"Gymnase": "Gymnase Jean Prévost",
"Pôt (Restaurant)": "Pôt"
},
"rooms": {
@ -23,6 +31,10 @@
"Salle Cartan",
"Salle Noether",
"Salle Bourbaki",
"Petite salle ECLA",
"Salle Reig ECLA",
"Salle Césaire ECLA",
"Salle Beckett",
"Cour aux Ernests",
"Cour du NIR",
"Cour Pasteur",
@ -31,11 +43,17 @@
"Canopée",
"K-Fêt",
"Cave d'hackENS",
"Gymnase"
"Gymnase Jean Prévost",
"Salle d'expression artistique (SEA)",
"Locaux des départements lettres et sciences humaines et sociales"
],
"24 rue Lhomond": ["Salle CONF IV"],
"29 rue d'Ulm": ["Bibliothèque des sciences expérimentales", "Salle Jaurès"],
"29 rue d'Ulm": [
"Bâtiment du 29",
"Bibliothèque des sciences expérimentales",
"Amphithéâtre Jaurès"],
"Jourdan": [
"Campus de Jourdan",
"Bibliothèque de Jourdan",
"Salle Marcel Roncayolo (R2-05)",
"Salle Madeleine Rebérioux (R2-02)",

View file

@ -1,13 +1,44 @@
{ pkgs ? import (import ./npins).nixpkgs {} }:
{
production = pkgs.buildNpmPackage {
sources ? import ./npins,
pkgs ? import sources.nixpkgs { },
}:
let
inherit (pkgs.lib.fileset)
fileFilter
gitTrackedWith
intersection
toSource
;
in
{
package = pkgs.buildNpmPackage {
name = "metis";
src = ./.;
src = toSource {
root = ./.;
fileset = intersection (gitTrackedWith { } ./.) (
fileFilter ({ name, hasExt, ... }: !(hasExt "nix") && name != "npins") ./.
);
};
npmDepsHash = "sha256-RbjWNVY8KlPP9ajQRnrsWhOZiiyyMGQSY39lmZnTC1I=";
installPhase = ''
cp -r public $out
'';
'';
};
devShell = pkgs.mkShell {
name = "metis.dev";
packages = [ pkgs.nodejs ];
};
providers = {
eleves-ens = "cloud.eleves.ens.fr";
frama-agenda = "framagenda.org";
dgnum-nc = "cloud.dgnum.eu";
};
shell = import ./shell.nix { inherit pkgs; };
providers = import ./providers.nix;
}

View file

@ -3,8 +3,8 @@
"nixpkgs": {
"type": "Channel",
"name": "nixpkgs-unstable",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-23.11pre506449.f465da16626/nixexprs.tar.xz",
"hash": "14jsw1gv83qjz82384gfhn78sv9m14i1bs5l97xrab26vyi9b5ay"
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-24.11pre696114.dfffb2e7a52d/nixexprs.tar.xz",
"hash": "15dj4hcx5wqcnxwfhh1gx2rpcwyip794bkmv0vpz4f01hibr7wd2"
}
},
"version": 3

View file

@ -1,7 +0,0 @@
let
providers = {
eleves-ens = "cloud.eleves.ens.fr";
frama-agenda = "framagenda.org";
};
in
builtins.mapAttrs (name: value: "https://${value}/remote.php/dav/public-calendars/") providers

View file

@ -1,4 +1 @@
{ pkgs ? import (import ./npins).nixpkgs {} }:
pkgs.mkShell {
packages = [ pkgs.nodejs ];
}
(import ./. { }).devShell

View file

@ -102,6 +102,7 @@
title: room
}))
),
filterResourcesWithEvents: true,
height: '100%',
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
nowIndicator: true,
@ -205,7 +206,11 @@
<EventModal event={$event} open={openModal} {toggle} />
<script defer data-domain="calendrier.dgnum.eu" src="https://analytics.dgnum.eu/js/script.js"></script>
<script
defer
data-domain="calendrier.dgnum.eu"
src="https://analytics.dgnum.eu/js/script.js"
></script>
</div>
<style>

View file

@ -190,14 +190,6 @@ function fcEventFromjCalEvent(cal) {
}
}
function mkEventsFromCalendar(id, cal) {
return fetchCalendar(id, cal).then(calendar => {
if (calendar[0] !== 'vcalendar') return
const cal = new Calendar(id, calendar)
return cal.events.map(fcEventFromjCalEvent(cal))
})
}
export function mkSource(name) {
const calendarId = calendarsByName[name]
if (!calendarId) return null