Skip to content
Snippets Groups Projects
availability.ics 6.63 KiB
---
layout: none
type: text/calendar
---
{%- for device in site.inventory -%}
{%- if device.uid == page.device -%}
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:Chaotikum
X-WR-CALDESC:Termine des Chaotikum e.V.
CALSCALE:GREGORIAN
PRODID:https://chaotikum.org/
METHOD:PUBLISH
{% for loan in site.loan -%}
{%- if loan.devices contains device.uid -%}
BEGIN:VEVENT
UID:{{ loan.uid }}
ORGANIZER;CN=Chaotikum e.V.:MAILTO:verleih@chaotikum.org
LOCATION:Unknown
{% capture sum %}{{ device.name }}:{{ loan.title }}{% endcapture %}
SUMMARY:{{ sum | xml_escape | truncate: 60}}
DESCRIPTION:Verleih
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ loan.eventdate | date: "%Y%m%d" }}T{{ loan.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ loan.eventend | date: "%Y%m%d" }}T{{ loan.eventend | date: "%H%M%S" }}
DTSTAMP:{{ loan.eventdate | date: "%Y%m%d" }}T{{ loan.eventdate | date: "%H%M%S" }}Z
URL:{{site.url}}{{loan.url}}
END:VEVENT
{% endif %}

{%- endfor -%}
{% for maintenance in site.maintenance -%}
{%- if maintenance.components contains device.uid -%}
BEGIN:VEVENT
UID:{{ maintenance.uid }}
ORGANIZER;CN=Chaotikum e.V.:MAILTO:verleih@chaotikum.org
LOCATION:Unknown
{% capture sum %}{{ device.name }}:{{ maintenance.title }}{% endcapture %}
SUMMARY:WARTUNG {{ sum | xml_escape | truncate: 60}}
DESCRIPTION:WARTUNG {{device.name}}: {{maintenance.title}}
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ maintenance.eventdate | date: "%Y%m%d" }}T{{ maintenance.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ maintenance.eventend | date: "%Y%m%d" }}T{{ maintenance.eventend | date: "%H%M%S" }}
DTSTAMP:{{ maintenance.eventdate | date: "%Y%m%d" }}T{{ maintenance.eventdate | date: "%H%M%S" }}Z
URL:{{site.url}}{{maintenance.url}}
END:VEVENT
{% endif -%}

{%- endfor -%}
{% capture parent -%}{{device.parent}}{% endcapture -%}
{% capture old_parent -%}{% endcapture -%}
{% for counter in (0..9) -%}
{% if parent -%}
{%- for p_device in site.inventory -%}
{%- if p_device.uid == parent -%}
{% capture parent -%}{{p_device.parent}}{% endcapture -%}
{% for maintenance in site.maintenance -%}
{%- if maintenance.components contains p_device.uid -%}
BEGIN:VEVENT
UID:{{ maintenance.uid }}
ORGANIZER;CN=Chaotikum e.V.:MAILTO:verleih@chaotikum.org
LOCATION:Unknown
{% capture sum %}{{ p_device.name }}:{{ maintenance.title }}{% endcapture %}
SUMMARY:WARTUNG {{ sum | xml_escape | truncate: 60}}
DESCRIPTION:WARTUNG {{p_device.name}}: {{maintenance.title}}
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ maintenance.eventdate | date: "%Y%m%d" }}T{{ maintenance.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ maintenance.eventend | date: "%Y%m%d" }}T{{ maintenance.eventend | date: "%H%M%S" }}
DTSTAMP:{{ maintenance.eventdate | date: "%Y%m%d" }}T{{ maintenance.eventdate | date: "%H%M%S" }}Z
URL:{{site.url}}{{maintenance.url}}
END:VEVENT
{% endif %}
{% endfor -%}
{% endif -%}
{% endfor -%}
{% endif -%}

{% endfor -%}
{%- for set in device.sets -%}
{%- for loan in site.loan -%}
{%- if loan.sets contains set -%}
BEGIN:VEVENT
UID:{{ loan.uid }}
ORGANIZER;CN=Chaotikum e.V.:MAILTO:verleih@chaotikum.org
LOCATION:Unknown
{% capture sum %}{{ device.name }}:{{ loan.title }}{% endcapture %}
SUMMARY:{{ sum | xml_escape | truncate: 60}}
DESCRIPTION:Verleih
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ loan.eventdate | date: "%Y%m%d" }}T{{ loan.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ loan.eventend | date: "%Y%m%d" }}T{{ loan.eventend | date: "%H%M%S" }}
DTSTAMP:{{ loan.eventdate | date: "%Y%m%d" }}T{{ loan.eventdate | date: "%H%M%S" }}Z
URL:{{site.url}}{{loan.url}}
END:VEVENT
{% endif %}

{%- endfor -%}
{%- endfor -%}
{%- for event in site.events -%}
{%- if  event.devices contains device.uid-%}
BEGIN:VEVENT
UID:{{ event.uid }}
ORGANIZER;CN={% if event.organizer and event.organizer != "" and event.organizer != nil %}{{event.organizer}}{% else %}Chaotikum e.V.{% endif %}:MAILTO:{{event.contact}}
LOCATION:{% if event.locations contains 'Augenprüfraum' and event.locations contains 'Wartezimmer' and event.locations contains 'Lager' %}Nobreakspace{% else %}{{ event.locations | array_to_sentence_string }}{% endif %}{% capture textSize %}{{ event.short | size }}{% endcapture %}{% assign linelength = 50 %}{% assign rounds = textSize | divided_by: linelength %}{% assign extra = textSize | modulo: linelength %}{% assign start = 0 %}
{% capture sum %}{{ device.name }}:{{ event.title  }}{% endcapture %}
SUMMARY:{{ sum | xml_escape | truncate: 60}}
DESCRIPTION:{% for i in (1..rounds) %}{% if i > 1 %} {% endif %}{{ event.short | slice: start, linelength }}{% assign start = start | plus: linelength %}
 {% endfor%}{{ event.short | slice: start, extra }}
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ event.eventend | date: "%Y%m%d" }}T{{ event.eventend | date: "%H%M%S" }}
DTSTAMP:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }}Z
{%- if event.uid %}
{%- assign post = site.posts | where: "uid", event.uid | first %}
{%- if post %}
URL:{{site.url}}{{post.url}}
{%- endif %}
{%- endif %}
END:VEVENT
{% endif %}
{%- endfor -%}

{%- for set in device.sets -%}
{%- for event in site.events -%}
{%- if event.sets contains set -%}
BEGIN:VEVENT
UID:{{ event.uid }}
ORGANIZER;CN={% if event.organizer and event.organizer != "" and event.organizer != nil %}{{event.organizer}}{% else %}Chaotikum e.V.{% endif %}:MAILTO:{{event.contact}}
LOCATION:{% if event.locations contains 'Augenprüfraum' and event.locations contains 'Wartezimmer' and event.locations contains 'Lager' %}Nobreakspace{% else %}{{ event.locations | array_to_sentence_string }}{% endif %}{% capture textSize %}{{ event.short | size }}{% endcapture %}{% assign linelength = 50 %}{% assign rounds = textSize | divided_by: linelength %}{% assign extra = textSize | modulo: linelength %}{% assign start = 0 %}
{% capture sum %}{{ device.name }}:{{ event.title  }}{% endcapture %}
SUMMARY:{{ sum | xml_escape | truncate: 60}}
DESCRIPTION:{% for i in (1..rounds) %}{% if i > 1 %} {% endif %}{{ event.short | slice: start, linelength }}{% assign start = start | plus: linelength %}
 {% endfor%}{{ event.short | slice: start, extra }}
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }}
DTEND;TZID=Europe/Berlin:{{ event.eventend | date: "%Y%m%d" }}T{{ event.eventend | date: "%H%M%S" }}
DTSTAMP:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }}Z
{%- if event.uid %}
{%- assign post = site.posts | where: "uid", event.uid | first %}
{%- if post %}
URL:{{site.url}}{{post.url}}
{%- endif -%}
{%- endif %}
END:VEVENT
{% endif %}
{%- endfor -%}
{%- endfor -%}

END:VCALENDAR
{%- endif -%}
{%- endfor -%}