diff --git a/plugins/talks.py b/plugins/talks.py index 0674e3b..61ef8a5 100644 --- a/plugins/talks.py +++ b/plugins/talks.py @@ -224,7 +224,11 @@ class TalkGridDirective(Directive): if not talks: continue talks = [get_talk_data(t) for t in talks] - rooms = tuple(sorted(unique_attr(talks, 'room'))) + rooms = list(sorted(unique_attr(talks, 'room'))) + # room=* is not a real room. + # Remove it unless that day only has special rooms + if '*' in rooms and len(rooms) > 1: + del rooms[rooms.index('*')] mintime = min({talk['time'].hour * 60 + talk['time'].minute for talk in talks}) // GRID_STEP * GRID_STEP @@ -240,17 +244,23 @@ class TalkGridDirective(Directive): talktime = talk['time'].hour * 60 + talk['time'].minute position = talktime // GRID_STEP * GRID_STEP # round assert position in times - roomnum = rooms.index(talk['room']) - if times[position][roomnum] is not None: - logging.error("Talk {} and {} overlap! " - .format(times[position][roomnum]['id'], - talk['id'])) - continue - times[position][roomnum] = copy(talk) - times[position][roomnum]['skip'] = False - for i in range(1, talk['duration'] // GRID_STEP): - times[position + i*GRID_STEP][roomnum] = copy(talk) - times[position + i*GRID_STEP][roomnum]['skip'] = True + if talk['room'] == '*': + roomnums = range(len(rooms)) + else: + roomnums = [rooms.index(talk['room'])] + for roomnum in roomnums: + if times[position][roomnum] is not None: + logging.error("Talk %s and %s overlap! (room %s)", + times[position][roomnum]['id'], + talk['id'], + rooms[roomnum] + ) + continue + times[position][roomnum] = copy(talk) + times[position][roomnum]['skip'] = False + for i in range(1, talk['duration'] // GRID_STEP): + times[position + i*GRID_STEP][roomnum] = copy(talk) + times[position + i*GRID_STEP][roomnum]['skip'] = True render = tmpl.render(times=times, rooms=rooms, diff --git a/talks/_templates/grid.html b/talks/_templates/grid.html index 9d55ea5..598b5f8 100644 --- a/talks/_templates/grid.html +++ b/talks/_templates/grid.html @@ -51,10 +51,14 @@ td.talk > a { {{time//60}}:{{ "%02d" % (time % 60)}} {% for talk in times[time / timestep * timestep] %} - {% if talk == None %} + {% if not loop.first and talk.room == '*' %} + {# skip: covered by colspan #} + {% elif talk == None %} {% elif not talk.skip %} - + {{talk.title}} diff --git a/talks/app_e_ribbon_XM24/meta.yaml b/talks/app_e_ribbon_XM24/meta.yaml deleted file mode 100644 index 1b82451..0000000 --- a/talks/app_e_ribbon_XM24/meta.yaml +++ /dev/null @@ -1,48 +0,0 @@ -# File di esempio; copialo e cambialo -title: "App android e ribbon WP per XM24" -text: | - Quando ti connetti ad Internet, l'app scarica i contenuti dal - sito web di XM24 https://www.ecn.org/xm24/ e salva quelli che ti interessano sul tuo device. In questo modo - puoi leggerti quando vuoi i comunicati e rimanere sempre aggiornato - sugli orari dei laboratori settimanali e sulle date dei concerti. L'app - permette anche di ricevere notifiche degli eventi Battaglia per XM. - XM24 significa ex mercato ortrofutticolo n°24, da 15 anni significa - anche autogestione, antifascismo, transfemminismo, organizzazione senza - gerarchie, cultura libera, accesso alla terra, pratiche di socialità e - di comunicazione dal basso, antiproibizionismo, hacking ed - internazionalismo. Quest'app è scritta da noi in software libero - (licenza GPL3) e il codice è su: git.lattuga.net - Hem, ve lo state chiedendo vero?.. - sì, Cordova (licenza Apache v2) è un pacchetto per Nodejs (licenza MIT). - -# Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o -# cose del genere, che ci si incasina tutto -room: A - -# duration è la durata in minuti del talk -duration: 60 - -# Ci vanno le virgolette intorno! altrimenti 17.30 viene interpretato come un numero decimale -time: "17.00" -# day è il giorno in cui avverrà il talk. Finché non decommenti il talk non sarà schedulato -# 0=giovedì, 1=venerdì, 2=sabato, 3=domenica -day: 2 - -#tags: -# - tante -# - cose -# - belle -# Devono essere dei link validi! -links: - - https://it.wordpress.org/plugins/i-love-xm24-ribbon/ - - https://play.google.com/store/apps/details?id=xm24.digitigrafo.it - -# mail dovrebbe contenere un link alla mail con cui il talk è stato proposto -# così si può sapere chi contattare e se c'è stata una discussione -mail: "https://lists.autistici.org/message/20170518.174733.31877df3.it.html" -#contacts: -# - tizio -# - caio - -# Devi usare UTF-8, non t'inventare scuse, sappiamo ndo abiti -# vim: set fileencoding=utf-8: diff --git a/talks/assembleaD/meta.yaml b/talks/assembleaD/meta.yaml index 062cde0..67fb806 100644 --- a/talks/assembleaD/meta.yaml +++ b/talks/assembleaD/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 60 diff --git a/talks/assembleaG/meta.yaml b/talks/assembleaG/meta.yaml index 11b8776..38f5362 100644 --- a/talks/assembleaG/meta.yaml +++ b/talks/assembleaG/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 60 diff --git a/talks/assembleaS/meta.yaml b/talks/assembleaS/meta.yaml index d36deee..a4df0ad 100644 --- a/talks/assembleaS/meta.yaml +++ b/talks/assembleaS/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 30 diff --git a/talks/assembleaV/meta.yaml b/talks/assembleaV/meta.yaml index fb8a4f5..81d6853 100644 --- a/talks/assembleaV/meta.yaml +++ b/talks/assembleaV/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 30 diff --git a/talks/cenaG/meta.yaml b/talks/cenaG/meta.yaml index ead9e05..64c0923 100644 --- a/talks/cenaG/meta.yaml +++ b/talks/cenaG/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 180 diff --git a/talks/cenaS/meta.yaml b/talks/cenaS/meta.yaml index d90987f..5956ccd 100644 --- a/talks/cenaS/meta.yaml +++ b/talks/cenaS/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 120 diff --git a/talks/cenaV/meta.yaml b/talks/cenaV/meta.yaml index a21ff8d..d3829e9 100644 --- a/talks/cenaV/meta.yaml +++ b/talks/cenaV/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 120 diff --git a/talks/pranzoS/meta.yaml b/talks/pranzoS/meta.yaml index a080b6f..d4e61fb 100644 --- a/talks/pranzoS/meta.yaml +++ b/talks/pranzoS/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 120 diff --git a/talks/pranzoV/meta.yaml b/talks/pranzoV/meta.yaml index 3690331..b1b59eb 100644 --- a/talks/pranzoV/meta.yaml +++ b/talks/pranzoV/meta.yaml @@ -5,7 +5,7 @@ text: | # Se ancora non è stata assegnata una stanza al talk, commentala. Non usare un valore tipo "qualunque" o # cose del genere, che ci si incasina tutto -room: A +room: "*" # duration è la durata in minuti del talk duration: 120