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 135 additions and 47 deletions

View file

@ -1,8 +1,18 @@
{ {
"tree": { "tree": {
"Rentrée": {
"Évènements pour les masteriens": {},
"Exchange and international students": {},
"Départements": {},
"Amphis de rentrée": {},
"Divers rentrée": {},
"Associatif divers": {},
"Visites": {}
},
"Délégation Générale Numérique": {},
"COF": { "COF": {
"Rentrée du COF": {},
"Évènements (COF)": {}, "Évènements (COF)": {},
"Rentrée du COF": {},
"Assemblées Générales (COF)": {}, "Assemblées Générales (COF)": {},
"BdA": { "BdA": {
"Évènements (BdA)": {}, "Évènements (BdA)": {},
@ -30,6 +40,7 @@
"Rentrée du BDS": {} "Rentrée du BDS": {}
}, },
"Clubs BDS": { "Clubs BDS": {
"Valse": {},
"Créneaux encadrés": {}, "Créneaux encadrés": {},
"ENSelle": {} "ENSelle": {}
}, },
@ -37,10 +48,20 @@
"Délégation Générale": {}, "Délégation Générale": {},
"K-Fêt": {}, "K-Fêt": {},
"Écocampus": {}, "Écocampus": {},
"La Psychédéliste": {},
"Ambassadeur·rice·s santé": {} "Ambassadeur·rice·s santé": {}
}, },
"sources": { "sources": {
"dgnum-nc": {
"dmo7DgdmTnsMd8zo": {
"name": "Valse"
},
"eEPk6miCzozgPb42": {
"name": "Délégation Générale Numérique",
"short_name": "DGNum",
"color": "#27327a"
}
},
"eleves-ens": { "eleves-ens": {
"qG6jpJPfK37Nw8ZC": { "qG6jpJPfK37Nw8ZC": {
"name": "PLS" "name": "PLS"
@ -60,7 +81,7 @@
"w442JdS5AaQ6czrP": { "w442JdS5AaQ6czrP": {
"name": "Écriv'ENS" "name": "Écriv'ENS"
}, },
"QXGnDTA8GS6r876F": { "aoazRGFcjHSe4LxG": {
"name": "K-Fêt", "name": "K-Fêt",
"color": "#c63b52", "color": "#c63b52",
"default_location": "K-Fêt" "default_location": "K-Fêt"
@ -103,6 +124,10 @@
"short_name": "Jeux", "short_name": "Jeux",
"color": "#5f9ae0" "color": "#5f9ae0"
}, },
"22rQF3gjjz8LifZC": {
"name": "La Psychédéliste",
"short_name": "Psychédéliste"
},
"AfHYkm3gqQ4fRRj5": { "AfHYkm3gqQ4fRRj5": {
"name": "HackENS", "name": "HackENS",
"default_location": "Cave d'hackENS" "default_location": "Cave d'hackENS"
@ -113,7 +138,8 @@
"name": "ENSelle" "name": "ENSelle"
}, },
"K6iGBG47WXaKWs3Q": { "K6iGBG47WXaKWs3Q": {
"name": "Créneaux encadrés" "name": "Créneaux encadrés",
"initial": false
}, },
"TFjE83ASCMK9rfRi": { "TFjE83ASCMK9rfRi": {
"name": "BandarrêtdurgENS", "name": "BandarrêtdurgENS",
@ -142,20 +168,46 @@
"AYNpoC674yAjEmRy": { "AYNpoC674yAjEmRy": {
"name": "L'Hômonerie" "name": "L'Hômonerie"
}, },
"TcwNdrs6iyBRxFzk": {
"name": "Divers"
},
"dJofECeczaGgNiKs": {
"name": "Rentrée du BDS",
"short_name": "BDS"
},
"7Rwd8JERwBsso7XG": {
"name": "Rentrée du COF",
"short_name": "COF"
},
"MJf2wnQafbLc2arS": { "MJf2wnQafbLc2arS": {
"name": "Arts pla'", "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 Jean Ibanes (Jourdan, R1-07)": "Salle Jean Ibanes (R1-07)",
"Salle Madeleine Rebérioux (Jourdan, R2-02)": "Salle Madeleine Rebérioux (R2-02)", "Salle Madeleine Rebérioux (Jourdan, R2-02)": "Salle Madeleine Rebérioux (R2-02)",
"Salle Marcel Roncayolo (Jourdan, R2-05)": "Salle Marcel Roncayolo (R2-05)", "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": { "rooms": {
@ -23,6 +31,10 @@
"Salle Cartan", "Salle Cartan",
"Salle Noether", "Salle Noether",
"Salle Bourbaki", "Salle Bourbaki",
"Petite salle ECLA",
"Salle Reig ECLA",
"Salle Césaire ECLA",
"Salle Beckett",
"Cour aux Ernests", "Cour aux Ernests",
"Cour du NIR", "Cour du NIR",
"Cour Pasteur", "Cour Pasteur",
@ -31,11 +43,17 @@
"Canopée", "Canopée",
"K-Fêt", "K-Fêt",
"Cave d'hackENS", "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"], "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": [ "Jourdan": [
"Campus de Jourdan",
"Bibliothèque de Jourdan", "Bibliothèque de Jourdan",
"Salle Marcel Roncayolo (R2-05)", "Salle Marcel Roncayolo (R2-05)",
"Salle Madeleine Rebérioux (R2-02)", "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"; name = "metis";
src = ./.;
src = toSource {
root = ./.;
fileset = intersection (gitTrackedWith { } ./.) (
fileFilter ({ name, hasExt, ... }: !(hasExt "nix") && name != "npins") ./.
);
};
npmDepsHash = "sha256-RbjWNVY8KlPP9ajQRnrsWhOZiiyyMGQSY39lmZnTC1I="; npmDepsHash = "sha256-RbjWNVY8KlPP9ajQRnrsWhOZiiyyMGQSY39lmZnTC1I=";
installPhase = '' installPhase = ''
cp -r public $out cp -r public $out
''; '';
}; };
shell = import ./shell.nix { inherit pkgs; };
providers = import ./providers.nix; 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";
};
} }

View file

@ -3,8 +3,8 @@
"nixpkgs": { "nixpkgs": {
"type": "Channel", "type": "Channel",
"name": "nixpkgs-unstable", "name": "nixpkgs-unstable",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-23.11pre506449.f465da16626/nixexprs.tar.xz", "url": "https://releases.nixos.org/nixpkgs/nixpkgs-24.11pre696114.dfffb2e7a52d/nixexprs.tar.xz",
"hash": "14jsw1gv83qjz82384gfhn78sv9m14i1bs5l97xrab26vyi9b5ay" "hash": "15dj4hcx5wqcnxwfhh1gx2rpcwyip794bkmv0vpz4f01hibr7wd2"
} }
}, },
"version": 3 "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 {} }: (import ./. { }).devShell
pkgs.mkShell {
packages = [ pkgs.nodejs ];
}

View file

@ -102,6 +102,7 @@
title: room title: room
})) }))
), ),
filterResourcesWithEvents: true,
height: '100%', height: '100%',
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives', schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
nowIndicator: true, nowIndicator: true,
@ -205,7 +206,11 @@
<EventModal event={$event} open={openModal} {toggle} /> <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> </div>
<style> <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) { export function mkSource(name) {
const calendarId = calendarsByName[name] const calendarId = calendarsByName[name]
if (!calendarId) return null if (!calendarId) return null