Compare commits
15 commits
thubrecht/
...
master
Author | SHA1 | Date | |
---|---|---|---|
ed6fafda45 | |||
a648941bac | |||
f523cb1e4a | |||
5c5e0c356b | |||
f631751da4 | |||
505074dfc3 | |||
9eaa1f2897 | |||
|
23839b284e | ||
|
8923b8293d | ||
|
6eeeea3654 | ||
|
e91154c9db | ||
|
57e9bc2474 | ||
|
505f15372d | ||
|
49b136a43a | ||
|
3fd72124c0 |
8 changed files with 135 additions and 47 deletions
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)",
|
||||||
|
|
41
default.nix
41
default.nix
|
@ -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";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
|
@ -1,4 +1 @@
|
||||||
{ pkgs ? import (import ./npins).nixpkgs {} }:
|
(import ./. { }).devShell
|
||||||
pkgs.mkShell {
|
|
||||||
packages = [ pkgs.nodejs ];
|
|
||||||
}
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue