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
|