Browse Source

py3 compatibility

boyska 5 years ago
parent
commit
d3eee582a8
2 changed files with 15 additions and 5 deletions
  1. 9 0
      README.md
  2. 6 5
      plugins/talks.py

+ 9 - 0
README.md

@@ -32,3 +32,12 @@ vim talks/MIOTALK/meta.yaml
 
 Quindi rifai `make publish` come spiegato prima: l'output ti informa di eventuali errori nei campi o
 sovrapposizioni con altri talk, leggilo!
+
+Hacking
+---------
+
+Il sito è un'istanza di pelican, più alcuni plugin custom: langmenu, per avere un menu che punta alle versioni
+localizzate della pagina; talks, per gestire i talk in modo speciale.
+
+Il tutto richiede python 2.7, ma dal prossimo anno si potrebbe passare a python 3. Quindi cerca di tenere la
+compatibilità, se metti mano al codice python.

+ 6 - 5
plugins/talks.py

@@ -20,6 +20,7 @@ from babel.dates import format_date, format_datetime, format_time
 from markdown import markdown
 from docutils import nodes
 from docutils.parsers.rst import directives, Directive
+import six
 
 from pelican import signals, generators
 import jinja2
@@ -120,14 +121,14 @@ def get_talk_data(talkname):
         data.setdefault('nooverlap', [])
         if 'title' not in data:
             logging.warn("Talk <{}> has no `title` field".format(talkname))
-            data['title'] = unicode(talkname)
+            data['title'] = six.text_type(talkname)
         else:
-            data['title'] = unicode(data['title'])
+            data['title'] = six.text_type(data['title'])
         if 'text' not in data:
             logging.warn("Talk <{}> has no `text` field".format(talkname))
             data['text'] = ''
         else:
-            data['text'] = unicode(data['text'])
+            data['text'] = six.text_type(data['text'])
         if 'duration' not in data:
             logging.info("Talk <{}> has no `duration` field (50min used)"
                          .format(talkname))
@@ -371,7 +372,7 @@ def talks_to_ics():
         e = talk_to_ics(t)
         if e is not None:
             c.events.add(e)
-    return unicode(c)
+    return six.text_type(c)
 
 
 def talk_to_ics(talk):
@@ -379,7 +380,7 @@ def talk_to_ics(talk):
         return None
     e = ics.Event(
         uid="%s@%d.hackmeeting.org" % (talk['id'],
-                                         get_global_data()['startdate'].year),
+                                       get_global_data()['startdate'].year),
         name=unidecode.unidecode(talk['title']),
         begin=talk['time'],
         duration=datetime.timedelta(minutes=talk['duration']),