Project stuff

- Add project metadata
- Extract metadata for projects and privacy
This commit is contained in:
Niko Strijbol 2019-12-06 19:54:58 +01:00
parent 1a0f9e59a0
commit d8a0e9a66a
No known key found for this signature in database
GPG key ID: 1A8AEBABD9012251
49 changed files with 319 additions and 136 deletions

5
Rules
View file

@ -30,7 +30,12 @@ preprocess do
check_schema(:event, event)
end
all_privacy_projects do |project|
check_schema(:privacy, project)
end
add_report_metadata
add_project_metadata
end
#

View file

@ -5,13 +5,3 @@
font-weight: bold;
}
}
.to-top {
& a {
font-size: 0.8rem;
}
& hr {
margin-bottom: 0
}
margin-bottom: 1.5rem;
}

View file

@ -11,10 +11,11 @@ toc: true
</p>
<ul class="toc-depth-1" id="markdown-toc">
<li><a href="#opbouw" id="markdown-toc-opbouw">Opbouw</a></li>
<li><a href="#wanneer" id="markdown-toc-opbouw">Wanneer en waar is dit privacybeleid van toepassing?</a></li>
<li><a href="#wie" id="markdown-toc-opbouw">Wie heeft toegang tot de verzamelde data?</a></li>
<li><a href="#welke" id="markdown-toc-opbouw">Welke data worden verzameld en waarvoor worden ze gebruikt?</a></li>
<li><a href="#projecten" id="markdown-toc-opbouw">Overzicht der projecten</a></li>
<li><a href="#wanneer" id="markdown-toc-wanneer">Wanneer en waar is dit privacybeleid van toepassing?</a></li>
<li><a href="#wie" id="markdown-toc-wie">Wie heeft toegang tot de verzamelde data?</a></li>
<li><a href="#welke" id="markdown-toc-welke">Welke data worden verzameld en waarvoor worden ze gebruikt?</a></li>
<li><a href="#projecten" id="markdown-toc-projecten">Overzicht der projecten</a></li>
<li><a href="#contact" id="markdown-toc-contact">Hoe contacteert u ons en laat u uw rechten gelden?</a></li>
</ul>
</div>
<div class="content">
@ -24,15 +25,15 @@ toc: true
<p>Zeus WPI biedt een waaier aan diensten en projecten aan aan haar leden en het algemene publiek. Met dit privacybeleid wilt ze aangeven hoe en waarvoor ze data verzamelt.</p>
<h2 id="opbouw">Opbouw</h2>
<h2 class="title is-2" id="opbouw">Opbouw</h2>
<p>Het privacybeleid is opgebouwd uit twee grote delen: een algemeen deel en een project-specifiek deel. Het eerste deel is het eigenlijk beleid, en legt algemeen uit welke data Zeus verzamelt, waarom ze dat doet en wat ze met de verzamelde data doet. Bepaalde projecten hebben echter uitzonderingen of vergen meer uitleg. Dit komt in deel twee van het privacybeleid, dat per project bepaald hoe het algemene beleid van toepassing is, indien nodig. Staat een project niet in deel twee, dan is uiteraard deel een nog steeds van toepassing.</p>
<h2 id="wanneer">Wanneer en waar is dit privacybeleid van toepassing?</h2>
<h2 class="title is-2" id="wanneer">Wanneer en waar is dit privacybeleid van toepassing?</h2>
<p>Zeus WPI stelt een waaier aan projecten beschikbaar aan haar leden en het publiek in het algemeen. Daarbovenop worden de diensten en projecten van Zeus ook door derden gebruikt.</p>
<h3 id="verantwoordelijke">Zeus als dataverantwoordelijke</h3>
<h3 class="title is-3" id="verantwoordelijke">Zeus als dataverantwoordelijke</h3>
<p>Voor het aanbieden van haar projecten, verzamelt Zeus WPI data. In dit geval treedt Zeus op als "Verwerker" in de terminologie van de AVG. Dit betekent dat Zeus de data zelf verzamelt, of opdracht geeft aan derden om de data te verzamelen.</p>
@ -40,7 +41,7 @@ toc: true
Voorbeelden van projecten waarbij Zeus de dataverantwoordelijke is, zijn Haldis, Tab, Hydra, enz.
</div>
<h3 id="verwerker">Zeus als verwerker</h3>
<h3 class="title is-3" id="verwerker">Zeus als verwerker</h3>
<p>Zeus biedt niet alleen projecten aan aan haar leden en andere personen, maar biedt ook diensten aan aan derden. In dat geval dient u zich te wenden tot het privacybeleid van de derde in wiens naam Zeus de data verwerkt. Zeus treedt dan op als "Verwerker".</p>
@ -50,7 +51,7 @@ toc: true
<p>Als Zeus optreedt als verwerker, zal Zeus in het algemeen slechts de absoluut noodzakelijke data verzamelen voor de integriteit en goede werking van haar systemen in stand te houden verzamelen. Meer informatie kan u krijgen bij de verantwoordelijke vereniging of personen die gebruik maken van de diensten van Zeus.</p>
<h2 id="wie">Wie heeft toegang tot de verzamelde data?</h2>
<h2 class="title is-2" id="wie">Wie heeft toegang tot de verzamelde data?</h2>
<p>In de eerste plaats heeft het bestuur van Zeus WPI toegang tot de gegevens, en in het bijzonder hebben de systeemadministrators toegang tot de data. Het bestuur beperkt zijn inzage in de gegevens tot het strikt noodzakelijke om zijn mandaat te vervullen.</p>
@ -64,11 +65,11 @@ toc: true
De ontwikkelaars van Hydra krijgen toegang de API-server en kunnen zo aan de serverlogs.
</div>
<h2 id="welke">Welke data worden verzameld en waarvoor worden ze gebruikt?</h2>
<h2 class="title is-2" id="welke">Welke data worden verzameld en waarvoor worden ze gebruikt?</h2>
Zeus verzamelt vier grote categorieën van data.
<h3 id="administratie">Administratieve gegevens</h3>
<h3 class="title is-3" id="administratie">Administratieve gegevens</h3>
<p>Zeus houdt een reeks administratieve gegevens bij over haar leden, zoals vereist door de statuten of om de goede werking van de vereniging te bewerkstelligen. Onder deze data valt onder meer:</p>
@ -87,8 +88,7 @@ toc: true
<p>Bij het opheffen van het lidmaatschap worden de data niet automatisch verwijderd, vanwege het ontbreken van een technische oplossing. Indien gewenst, kan u zich wenden tot de vereniging voor een manuele verwijdering van uw administratieve gegevens.</p>
<%= render '/partials/_up.erb' %>
<h3 id="technisch">Technische gegevens</h3>
<h3 class="title is-3" id="technisch">Technische gegevens</h3>
<p>Hieronder vallen de data nodig om de goede werking van de projecten te garanderen. Concreet betekent de serverlogs. Dit zijn logboeken van de verzoeken die gestuurd worden naar een van de servers van Zeus. In de logboeken zitten volgende data:</p>
@ -122,8 +122,7 @@ toc: true
<p>Deze data worden niet automatisch verwerkt; ze dienen om manueel de oorzaken van problemen te vinden. Serverlogs worden onbeperkt bijgehouden.</p>
<%= render '/partials/_up.erb' %>
<h3 id="project">Projectdata</h3>
<h3 class="title is-3" id="project">Projectdata</h3>
<p>Veel projecten hebben data nodig om te kunnen functioneren, dus verzameld Zeus die uiteraard ook. Vaak zijn dit gegevens die u zelf ingeeft of laat genereren door het project dat u gebruikt.</p>
@ -131,14 +130,13 @@ toc: true
Als u bijvoorbeeld gebruik maakt van Haldis, moet Zeus opslaan wat u besteld hebt, of Haldis zal niet werken.
</div>
<p>Afhankelijk van de applicatie is het niet altijd mogelijk om de gegevens te verwijderen of aanpassen zonder de integriteit of goede werking van het project op de helling te zetten. In dat geval probeert Zeus de data zoveel mogelijk te anonimiseren als u een verwijderverzoek stuurt of zoveel mogelijk data aan te passen als u een aanpassingsverzoek stuurt.</p>
<p>Afhankelijk van de applicatie is het niet altijd mogelijk om de gegevens te verwijderen of aanpassen zonder de integriteit of goede werking van het project op de helling te zetten. In dat geval probeert Zeus de data zoveel mogelijk te anonimiseren als u een verwijderverzoek stuurt of zoveel mogelijk data aan te passen als u een aanpassingsverzoek stuurt. Bij een verwijderingsverzoek probeert Zeus de relevante en verwijderbare data zo snel mogelijk te verwijderen. Doch is het mogelijk dat de data door back-upsystemen langer bewaard blijven.</p>
<div class="example">
Bij Tab kan u bijvoorbeeld geen transacties laten verwijderen, maar wel anonimiseren.
</div>
<%= render '/partials/_up.erb' %>
<h3 id="videobeelden">Videobeelden</h3>
<h3 class="title is-3" id="videobeelden">Videobeelden</h3>
<p>Ter beveiliging van de kelder van Zeus hangt er een camera "Cammie" in de kelder. De beelden van deze camera worden live uitgezonden op de website van de vereniging.</p>
@ -146,66 +144,76 @@ toc: true
<p>Bij het inschrijven hebben alle leden zich akkoord verklaard om opgenomen te worden door Cammie als zij zich in de kelder begeven.</p>
<h2 id="projecten">Overzicht der projecten</h2>
<h2 class="title is-2" id="projecten">Overzicht der projecten</h2>
<h3 id="specifiek">Project-specifieke bepalingen</h3>
<h3 class="title is-3" id="specifiek">Project-specifieke bepalingen</h3>
<p>Deze projecten hebben meer uitleg of hebben uitzonderingen.</p>
<p>Onder deze paragraaf volgt een lijst van alle projecten: </p>
<ol>
<li>Met uitzonderingen op het algemeen beleid, of</li>
<li>Waarvoor er bijkomende informatie is over het gebruik van data in het project.</li>
</ol>
<% @responsible = privacy_projects("responsible") %>
<% @responsible.each do |project| %>
<% privacy_projects("additional").each do |project| %>
<%= render '/partials/_privacy.erb', project: project %>
<%= render '/partials/_up.erb' %>
<hr>
<% end %>
<h3 id="niet-gebruikt">Niet-gebruikte projecten</h3>
<h3 class="title is-3" id="specifiek">Projecten zonder specifieke bepalingen</h3>
<p>Deze projecten worden niet (meer) gebruikt door Zeus. Indien u deze toch gebruikt moet u zich wenden tot degene die de projecten gebruiken.</p>
<p>Deze projecten vallen integraal onder het algemene beleid.</p>
<ul>
<% privacy_projects("external").each do |project| %>
<li>
<% if project[:link] %>
<a href="<%= project[:link] %>"><%= project[:name] %></a>
<% else %>
<%= project[:name] %>
<% end %>
</li>
<% privacy_projects("general").each do |project| %>
<%= render '/partials/_privacy_link.erb', project: project %>
<% end %>
</ul>
<%= render '/partials/_up.erb' %>
<h3 id="als-verwerker">Projecten/diensten als verwerker</h3>
<h3 class="title is-3" id="als-verwerker">Projecten/diensten als verwerker</h3>
<p>Zeus werkt mee aan volgende projecten of diensten als verwerker, zoals bepaald hierboven.</p>
<ul>
<% privacy_projects("processor").each do |project| %>
<li>
<% if project[:link] %>
<a href="<%= project[:link] %>"><%= project[:name] %></a>
<% else %>
<%= project[:name] %>
<% end %>
</li>
<%= render '/partials/_privacy_link.erb', project: project %>
<% end %>
</ul>
<%= render '/partials/_up.erb' %>
<h3 id="in-ontwikkeling">Projecten in ontwikkeling</h3>
<h3 class="title is-3" id="in-ontwikkeling">Projecten in ontwikkeling</h3>
<p>Deze projecten zijn nog in ontwikkeling. Het is u verboden persoonlijke data aan deze projecten mee te delen. Indien u dit toch zou doen, dient u ons zo snel mogelijk te contacteren, zodat de data verwijderd kunnen worden.</p>
<p>Deze projecten zijn nog in ontwikkeling. U mag geen persoonlijke data aan deze projecten leveren. Doet u dit toch, dan is dit op eigen risico: noch de functionaliteit, noch de beveiliging van deze projecten staat op punt.</p>
<ul>
<% privacy_projects("development").each do |project| %>
<li>
<% if project[:link] %>
<a href="<%= project[:link] %>"><%= project[:name] %></a>
<% else %>
<%= project[:name] %>
<% end %>
</li>
<%= render '/partials/_privacy_link.erb', project: project %>
<% end %>
</ul>
<h3 class="title is-3" id="niet-gebruikt">Ongebruikte projecten</h3>
<p>Ter informatie volgt een lijst van projecten die ofwel geen Zeus-project zijn ofwel niet meer door Zeus gebruikt worden. Zeus heeft alle gegevens voor deze projecten verwijderd indien van toepassing.</p>
<ul>
<% privacy_projects("external").each do |project| %>
<%= render '/partials/_privacy_link.erb', project: project %>
<% end %>
</ul>
<h2 class="title is-2" id="contact">Hoe contacteert u ons en laat u uw rechten gelden?</h2>
<p>Om uw rechten te laten gelden, voor vragen of opmerkingen, kan u ons contacteren via TODO contactpagina.</p>
<p>Hieronder sommen we kort uw rechten op:</p>
<ul>
<li><strong>Recht op inzage.</strong> U mag weten of we gegevens we over u hebben, welke gegevens dat zijn en op welke manier en waarom we ze gebruiken. Ook heeft u het recht een overzicht te krijgen wie uw gegevens verwerkt.</li>
<li><strong>Recht op rectificatie en aanvulling.</strong> U heeft het recht in voorkomend geval foute gegevens te laten corrigeren, bv. door een rechtzetting of aanvulling te vragen.</li>
<li><strong>Recht op vergetelheid.</strong> U kan verzoeken dat we de gegevens die we over u hebben te wissen op grond van een aantal zaken.</li>
<li><strong>Recht op overdraagbaarheid.</strong> U hebt het recht om uw gegevens op te vragen en te ontvangen in een gestructureerd, door een machine leesbaar document.</li>
<li><strong>Recht op beperking van de verwerking.</strong> U heeft het recht om de verwerking van uw gegevens te beperken, bijvoorbeeld als er een juridische procedure loopt, een rechtzetting nog niet is doorgevoerd, of de gegevens onrechtmatig gebruikt worden.</li>
<li><strong>Recht op bezwaar.</strong> Indien u meent dat we uw gegevens verwerken op onrechtmatige basis, kan u bezwaar aantekenen.</li>
</ul>
<p>Merk op dat bovenstaande slechts een opsomming van de algemene rechten is. Dit zegt niets over de toepasbaarheid bij dit privacybeleid.</p>
</div>

3
content/privacy/cat.md Normal file
View file

@ -0,0 +1,3 @@
---
status: general
---

3
content/privacy/dap.md Normal file
View file

@ -0,0 +1,3 @@
---
status: development
---

View file

@ -0,0 +1,3 @@
---
status: general
---

3
content/privacy/dut.md Normal file
View file

@ -0,0 +1,3 @@
---
status: external
---

View file

@ -1,6 +1,6 @@
---
name: Fathom
status: responsible
status: additional
---
TODO

View file

@ -1,6 +1,6 @@
---
name: Gamification
status: responsible
status: additional
---
Met Gamification wordt het project bedoeld dat beschikbaar is via https://zeus.ugent.be/game.

View file

@ -1,6 +1,6 @@
---
name: Gitlab
status: responsible
status: additional
---
- Data die je ingeeft

View file

@ -0,0 +1,5 @@
---
status: additional
---
TODO: uitleg over statistieken

View file

@ -0,0 +1,3 @@
---
status: external
---

View file

@ -1,6 +1,6 @@
---
name: Hydra
status: responsible
status: additional
---
Dit privacybeleid is niet van toepassing op Hydra, dat zijn eigen [privacybeleid](https://hydra.ugent.be/privacy-policy.html) heeft.

View file

@ -1,6 +1,6 @@
---
name: Mattermost
status: responsible
status: additional
---
Bij Mattermost is het [standaardprivacybeleid](https://github.com/mattermost/mattermost-server/blob/master/build/PRIVACY_POLICY.md) van een zelf-gehoste Mattermost-applicatie van toepassing.

View file

@ -0,0 +1,3 @@
---
status: development
---

3
content/privacy/sad.md Normal file
View file

@ -0,0 +1,3 @@
---
status: general
---

View file

@ -1,6 +1,6 @@
---
name: Website
status: responsible
status: additional
---
De website van Zeus verzamelt bijkomende data:

View file

@ -0,0 +1,4 @@
---
status: external
---

6
content/privacy/tab.md Normal file
View file

@ -0,0 +1,6 @@
---
status: additional
---
TODO: info

5
content/privacy/tap.md Normal file
View file

@ -0,0 +1,5 @@
---
status: additional
---
TODO: info

10
content/privacy/tappb.md Normal file
View file

@ -0,0 +1,10 @@
---
status: additional
---
Tappb verzamelt bijkomende data door het gebruik van Firebase. Het [het privacybeleid](https://firebase.google.com/support/privacy) (Engels) van Firebase verschaft uitgebreide informatie. Concreet gebruikt Tappb volgende diensten en gebruikt daarbij volgende data:
- **Firebase Cloud Messaging**. Dit wordt gebruikt om meldingen naar de applicatie te sturen. Hiervoor wordt het "instance ID" verzameld, om te identificeren naar welk toestel een melding gestuurd moet worden. Deze worden onbeperkt bijgehouden. Indien dit ID wenst te verwijderen, zal Firebase het ID binnen de 180 dagen verwijderen.
- **ML Kit for Firebase**. Dit wordt gebruikt om de barcodes van producten te scannen. De afbeeldingen met barcodes worden tijdelijk bewaard op de servers van Firebase en worden gewoonlijk na enkele uren verwijderd. Meer informatie is tevens te vinden op [deze pagina](https://cloud.google.com/vision/docs/data-usage) (Engels). Ook hier worden "instance ID"s bijgehouden, volgens dezelfde voorwaarden als bij Firebase Cloud Messaging.
Ook gebruikt Tappb de diensten van [Tab](#tab) en [Tap](#tap).

View file

@ -0,0 +1,3 @@
---
status: development
---

3
content/privacy/zauth.md Normal file
View file

@ -0,0 +1,3 @@
---
status: development
---

3
content/privacy/zinc.md Normal file
View file

@ -0,0 +1,3 @@
---
status: general
---

View file

@ -1,7 +1,4 @@
---
title: 12urenloop
github: https://github.com/ZeusWPI/12urenloop
site: https://12urenloop.be/
logo_image: 12urenloop.png
priority: 50
---

View file

@ -1,7 +1,4 @@
---
title: Blokmap
github: https://github.com/ZeusWPI/blokmap
site: http://blok.ugent.be/
logo_image: Logos_Blokmap.svg
priority: 25
---

View file

@ -1,7 +1,4 @@
---
title: Cat
site: https://cat.zeus.gent/
gitlab: https://git.zeus.gent/ZeusWPI/cat
logo_image: cat.png
priority: 35
---

View file

@ -1,7 +1,4 @@
---
title: Doorkeeper
github: https://github.com/ZeusWPI/Doorkeeper
site: https://github.com/ZeusWPI/Doorkeeper
logo_image: Logos_Slotmachiin.svg
priority: 30
---

View file

@ -1,7 +1,4 @@
---
title: FK Enrolment.
github: https://github.com/ZeusWPI/FK-enrolment
site: https://registratie.fkgent.be/
logo_letter: E
logo_color: "#FFBBDD"
priority: 5

View file

@ -1,7 +1,4 @@
---
title: G2
github: https://github.com/ZeusWPI/g2-frontend
site: https://github.com/ZeusWPI/g2-backend
logo_image: Logos_G2.svg
priority: 45
---

View file

@ -1,7 +1,4 @@
---
title: Gamification
github: https://github.com/ZeusWPI/Gamification
site: https://zeus.ugent.be/game
logo_image: Logos_Gamification.svg
priority: 30
---

View file

@ -1,7 +1,4 @@
---
title: Gandalf
github: https://github.com/ZeusWPI/Gandalf
site: https://event.fkgent.be/
logo_image: Logos_Gandalf.svg
priority: 5
---

View file

@ -1,7 +1,4 @@
---
title: Haldis
github: https://github.com/ZeusWPI/Haldis
site: https://haldis.zeus.gent/
logo_image: Logos_Haldis.svg
priority: 35
---

View file

@ -1,7 +1,4 @@
---
title: Lana
github: https://github.com/ZeusWPI/Lana
site: https://github.com/ZeusWPI/Lana
logo_letter: L
logo_color: "#E4C6A7"
priority: 20

View file

@ -1,7 +1,4 @@
---
title: Mozaic
github: https://github.com/ZeusWPI/mozaic
site: https://github.com/ZeusWPI/mozaic
logo_image: mozaic.png
priority: 41
---

View file

@ -1,7 +1,4 @@
---
title: Saruman
github: https://github.com/ZeusWPI/Saruman
site: https://materiaal.12urenloop.be/
logo_letter: S
logo_color: grey
priority: 5

View file

@ -1,7 +1,4 @@
---
title: zeus.ugent.be
github: https://github.com/ZeusWPI/zeus.ugent.be
site: https://zeus.ugent.be
logo_letter: Z
logo_color: "#FF7F00"
priority: 40

View file

@ -1,7 +1,4 @@
---
title: SlotMachien
github: https://github.com/ZeusWPI/slotmachien
site: https://github.com/ZeusWPI/slotmachien
logo_image: Logos_Slotmachien.svg
priority: -1
---

View file

@ -1,7 +1,4 @@
---
title: Tab
github: https://github.com/ZeusWPI/Tab
site: https://tab.zeus.gent/
logo_image: Logos_Tab.svg
priority: 40
---

View file

@ -1,7 +1,4 @@
---
title: Tap
github: https://github.com/ZeusWPI/Tap
site: https://tap.zeus.gent/
logo_image: Logos_Tap.svg
priority: 40
---

View file

@ -1,7 +1,4 @@
---
title: Tappb
github: https://github.com/ZeusWPI/tappb
site: https://play.google.com/store/apps/details?id=gent.zeus.tappb
logo_image: Logos_Tappb.svg
priority: 39
---

102
data/projecten.yaml Normal file
View file

@ -0,0 +1,102 @@
---
data:
12urenloop:
name: 12urenloop
site: https://12urenloop.be/
repo: https://github.com/12urenloop
blokmap:
name: Blokmap
site: https://blok.ugent.be
repo: https://github.com/ZeusWPI/blokmap
cat:
name: Cat
site: https://cat.zeus.gent/
repo: https://git.zeus.gent/ZeusWPI/cat
dap:
name: De Account Pagina
repo: https://github.com/ZeusWPI/DAP
doorkeeper:
name: Doorkeeper
repo: https://github.com/ZeusWPI/Doorkeeper
dut:
name: Dark Ufora Theme
repo: https://github.com/ZeusWPI/DUT
fathom:
name: Fathom
site: https://stats.zeus.gent/
fk_enrolment:
name: FK Enrolment
site: https://registratie.fkgent.be/
repo: https://github.com/ZeusWPI/FK-enrolment
g2:
name: G2
site: https://github.com/ZeusWPI/g2-frontend
repo: https://github.com/ZeusWPI/g2-backend
gamification:
name: Gamification
site: https://zeus.ugent.be/game
repo: https://github.com/ZeusWPI/Gamification
gandalf:
name: Gandalf
site: https://event.fkgent.be/
repo: https://github.com/ZeusWPI/Gandalf
gitlab:
name: Gitlab
site: https://git.zeus.gent
haldis:
name: Haldis
site: https://haldis.zeus.gent/
repo: https://github.com/ZeusWPI/Haldis
httpizza:
name: HTTPizza
repo: https://github.com/ZeusWPI/HTTPizza
hydra:
name: Hydra
site: https://hydra.ugent.be
repo: https://github.com/ZeusWPI/Hydra
lana:
name: Lana
repo: https://github.com/ZeusWPI/Lana
mattermost:
name: Mattermost
site: https://mattermost.zeus.gent
mozaic:
name: Mozaic
repo: https://github.com/ZeusWPI/mozaic
sad:
name: "Services Are Down D: Status"
site: https://sad.zeus.gent/
repo: https://github.com/ZeusWPI/SADStatus
saruman:
name: Saruman
site: https://materiaal.12urenloop.be/
repo: https://github.com/ZeusWPI/Saruman
site:
name: zeus.ugent.be
site: https://zeus.ugent.be
repo: https://github.com/ZeusWPI/zeus.ugent.be
slotmachien:
name: SlotMachien
repo: https://github.com/ZeusWPI/slotmachien
tab:
name: Tab
site: https://tab.zeus.gent/
repo: https://github.com/ZeusWPI/Tab
tap:
name: Tap
site: https://tap.zeus.gent/
repo: https://github.com/ZeusWPI/Tap
tappb:
name: Tappb
site: https://play.google.com/store/apps/details?id=gent.zeus.tappb
repo: https://github.com/ZeusWPI/tappb
tuxcape:
name: TuxcAPE
repo: https://github.com/ZeusWPI/Tuxcape
zauth:
name: Zeus AUTHentication Service
repo: https://github.com/ZeusWPI/zauth
zinc:
name: ZINC
site: https://zinc.zeus.gent
repo: https://github.com/ZeusWPI/zinc

View file

@ -1,6 +1,21 @@
<h4 id="<%= project.identifier.without_ext.split('/')[-1] %>"><%= project[:name] %></h4>
<% if project.compiled_content %>
<%= project.compiled_content %>
<% else %>
<h4 class="title is-4" id="<%= project[:id] %>"><%= project[:name] %></h4>
<p class="subtitle is-6">
<% if project.key?(:site) || project.key?(:repo) %>
Meer informatie:
<% end %>
<% if project.key?(:site) %>
<a href="<%= project[:site] %>">website</a>
<% end %>
<% if project.key?(:site) && project.key?(:repo) %>
|
<% end %>
<% if project.key?(:repo) %>
<a href="<%= project[:repo] %>">repo</a>
<% end %>
</p>
<% if project.compiled_content.strip.empty? %>
<p>Dit project kent geen afwijkingen van het algemeen beleid.</p>
<% else %>
<%= project.compiled_content %>
<% end %>

View file

@ -0,0 +1,9 @@
<li>
<% if project.key?(:site) %>
<a href="<%= project[:site] %>"><%= project[:name] %></a>
<% elsif project.key?(:repo) %>
<a href="<%= project[:repo] %>"><%= project[:name] %></a>
<% else %>
<%= project[:name] %>
<% end %>
</li>

View file

@ -1,4 +1,4 @@
<div id="<%= project.identifier.without_ext.split('/')[-1] %>" class="container project content column is-5 is-desktop">
<div id="<%= project[:id] %>" class="container project content column is-5 is-desktop">
<article class="columns is-mobile">
<div class="column is-gapless is-narrow logo-wrapper">
<% if project[:logo_image] %>
@ -12,13 +12,20 @@
<% end %>
</div>
<div class="column">
<p class="title"><a href="<%= project[:site] %>" target="_self"><%= project[:title] %></a></p>
<%= project.compiled_content %>
<% if project[:github] %>
<div><a href="<%= project[:github] %>"><span class="icon"><%= fa('github') %></span> GitHub</a></div>
<% if project.key?(:site) %>
<p class="title"><a href="<%= project[:site] %>" target="_self"><%= project[:name] %></a></p>
<% else %>
<p class="title"><%= project[:name] %></p>
<% end %>
<% if project[:gitlab] %>
<div><a href="<%= project[:gitlab] %>"><span class="icon"><%= fa('gitlab') %></span> GitLab</a></div>
<%= project.compiled_content %>
<% if project.key?(:repo) %>
<% if project[:repo].include?("github.com") || project[:repo].include?("github.ugent.be") %>
<div><a href="<%= project[:repo] %>"><span class="icon"><%= fa('github') %></span> GitHub</a></div>
<% elsif project[:repo].include?("git.zeus.gent") %>
<div><a href="<%= project[:repo] %>"><span class="icon"><%= fa('gitlab') %></span> GitLab</a></div>
<% else %>
<div><a href="<%= project[:repo] %>"> Repo</a></div>
<% end %>
<% end %>
</div>
</article>

View file

@ -1,4 +0,0 @@
<div class="to-top">
<hr>
<a class="is-pulled-right" href="#top">Omhoog ↑</a>
</div>

View file

@ -6,16 +6,33 @@ module PreprocessHelper
title: 'The event does not include a :title',
location: 'The event should include a :location, a textual description',
locationlink: 'The event does not include a :locationlink, which is a querystring which is used for Google Maps'
},
privacy: {
status: 'A privacy item must include the status of the project'
}
}
end
def allowed_privacy_status
[
"additional",
"general",
"processor",
"development",
"external"
]
end
def check_schema(itemtype, item)
schema = required_attrs[itemtype]
(schema.keys - item.attributes.keys).each do |key|
raise "#{item.identifier}: #{schema[key]}"
end
if itemtype == :schema && !allowed_privacy_status.include?(item.attributes.status)
raise "status must be one of #{allowed_privacy_status}"
end
end
def ignore_old_content(*paths)
@ -83,4 +100,24 @@ module PreprocessHelper
report[:date] = Date.strptime(report.identifier.without_ext.split('/').last)
end
end
def update_project_item(projects, project)
id = project.identifier.without_ext.split('/')[-1]
if projects.key?(id.to_sym)
projects[id.to_sym].each do |key, value|
project[key] = value
end
project[:id] = id
end
end
def add_project_metadata
projects = data_from(:projecten)
@items.find_all('/privacy/*').each do |project|
update_project_item(projects, project)
end
@items.find_all('/projects/*').each do |project|
update_project_item(projects, project)
end
end
end

View file

@ -1,6 +1,11 @@
module PrivacyHelper
def privacy_projects(status)
def all_privacy_projects
@items.find_all('/privacy/*')
end
def privacy_projects(status)
all_privacy_projects
.select {|project| project[:status] == status}
.sort_by {|project| project[:name]}
end