changeset 136:c56b6ad62153

add section News with the official news feed
author souliane <souliane@mailoo.org>
date Thu, 14 Jan 2016 23:39:43 +0100
parents b61cb60a8eb2
children 759f7cd2bc6a
files locale/fr/LC_MESSAGES/django.po sat_website/templatetags/utils.py sat_website/views.py static/css/sat_website.css templates/sat_website/base.html templates/sat_website/news.html
diffstat 6 files changed, 197 insertions(+), 142 deletions(-) [+]
line wrap: on
line diff
--- a/locale/fr/LC_MESSAGES/django.po	Wed Dec 09 03:01:48 2015 +0100
+++ b/locale/fr/LC_MESSAGES/django.po	Thu Jan 14 23:39:43 2016 +0100
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: 0.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-06 16:06+0100\n"
-"PO-Revision-Date: 2015-12-06 16:13+0100\n"
+"POT-Creation-Date: 2016-01-14 23:38+0100\n"
+"PO-Revision-Date: 2016-01-14 22:05+0100\n"
 "Last-Translator: Salut à Toi <contact@salut-a-toi.org>\n"
 "Language-Team: français <goffi@goffi.org>\n"
 "Language: fr\n"
@@ -331,7 +331,7 @@
 msgid "How to copy and pipe streams over XMPP"
 msgstr "Comment copier et transférer des flux de tubes (pipes) via XMPP"
 
-#: sat_website/media.py:130 sat_website/templatetags/utils.py:103
+#: sat_website/media.py:130 sat_website/templatetags/utils.py:106
 msgid "language"
 msgstr "langue"
 
@@ -352,11 +352,11 @@
 msgid "The first video shows wix, primitivus and jp"
 msgstr "La première vidéo montre Wix, Primitivus et Jp"
 
-#: sat_website/templatetags/utils.py:91
+#: sat_website/templatetags/utils.py:94
 msgid ": "
 msgstr " : "
 
-#: sat_website/templatetags/utils.py:100
+#: sat_website/templatetags/utils.py:103
 msgid "subtitles"
 msgstr "sous-titres"
 
@@ -377,80 +377,84 @@
 msgid "Screenshots & Videos"
 msgstr "Captures d'écran et vidéos"
 
-#: sat_website/views.py:37
+#: sat_website/views.py:36
+msgid "News"
+msgstr "Nouvelles"
+
+#: sat_website/views.py:38
 msgid "Technical area"
 msgstr "Espace technique"
 
-#: sat_website/views.py:38 templates/sat_website/principles.html:26
+#: sat_website/views.py:39 templates/sat_website/principles.html:26
 msgid "Principles"
 msgstr "Principes"
 
-#: sat_website/views.py:39 templates/sat_website/principles.html:46
+#: sat_website/views.py:40 templates/sat_website/principles.html:46
 msgid "Specifications"
 msgstr "Spécifications"
 
-#: sat_website/views.py:40 templates/sat_website/downloads.html:27
+#: sat_website/views.py:41 templates/sat_website/downloads.html:27
 #: templates/sat_website/overview.html:133
 msgid "Downloads"
 msgstr "Téléchargements"
 
-#: sat_website/views.py:41
+#: sat_website/views.py:42
 msgid "Developers corner"
 msgstr "Coin des développeurs"
 
-#: sat_website/views.py:43
+#: sat_website/views.py:44
 msgid "Community"
 msgstr "Communauté"
 
-#: sat_website/views.py:44
+#: sat_website/views.py:45
 msgid "Get in touch"
 msgstr "Nous contacter"
 
-#: sat_website/views.py:45 templates/sat_website/membership.html:35
+#: sat_website/views.py:46 templates/sat_website/membership.html:35
 msgid "Association"
 msgstr "Association"
 
-#: sat_website/views.py:46
+#: sat_website/views.py:47
 msgid "Links"
 msgstr "Liens"
 
-#: sat_website/views.py:47 templates/sat_website/press.html:27
+#: sat_website/views.py:48 templates/sat_website/press.html:27
 msgid "Press"
 msgstr "Presse"
 
-#: sat_website/views.py:48
+#: sat_website/views.py:49
 msgid "FAQ"
 msgstr "FAQ"
 
-#: sat_website/views.py:52 templates/sat_website/association.html:47
+#: sat_website/views.py:53 templates/sat_website/association.html:47
 #: templates/sat_website/overview.html:124
 msgid "Membership"
 msgstr "Adhésion"
 
-#: sat_website/views.py:53 templates/sat_website/features.html:76
+#: sat_website/views.py:54 templates/sat_website/features.html:76
 #: templates/sat_website/overview.html:105
 #: templates/sat_website/principles.html:74
 msgid "Social contract"
 msgstr "Contrat social"
 
-#: sat_website/views.py:63
+#: sat_website/views.py:64
 msgid "contains the backend, Primitivus and Jp"
 msgstr "contient le backend, Primitivus et Jp"
 
-#: sat_website/views.py:64
+#: sat_website/views.py:65
 msgid "Images and other media needed to launch SàT"
 msgstr "images et autres média nécessaires au lancement de SàT"
 
-#: sat_website/views.py:65
+#: sat_website/views.py:66
 msgid "console display library needed by Primitivus"
 msgstr "bibliothèque pour l'affichage en console de Primitivus"
 
-#: sat_website/views.py:66
+#: sat_website/views.py:67
 msgid "PubSub server component needed for SàT experimental blogging features"
 msgstr ""
 "composant serveur PubSub pour les fonctionnalités expérimentales de blogage"
 
-#: sat_website/views.py:67
+#: sat_website/views.py:68
 msgid "Libervia frontend (web server and client)"
 msgstr "interface Libervia (serveur web et partie cliente)"
 
@@ -579,19 +583,19 @@
 msgid "Minutes"
 msgstr "Comptes rendus"
 
-#: templates/sat_website/base.html:36
+#: templates/sat_website/base.html:37
 msgid "Salut à Toi: the multi frontend, multipurpose communication tool"
 msgstr "Salut à Toi: l'outil de communication multi-interfaces et multi-usages"
 
-#: templates/sat_website/base.html:93
+#: templates/sat_website/base.html:94
 msgid "Set language"
 msgstr "Changer la langue"
 
-#: templates/sat_website/base.html:103
+#: templates/sat_website/base.html:104
 msgid "\"Salut à Toi\" association"
 msgstr "Association « Salut à Toi »"
 
-#: templates/sat_website/base.html:104 templates/sat_website/community.html:35
+#: templates/sat_website/base.html:105 templates/sat_website/community.html:35
 msgid "(replace invalid with org)"
 msgstr "(remplacez invalid par org)"
 
@@ -893,120 +897,6 @@
 "l'interface utilisateur ainsi que de corriger le maximum de bogues avant "
 "d'annoncer la sortie de la version « grand public »."
 
-#: templates/sat_website/faq.html:40
-#, python-format
-msgid "What is the security warning when I visit %(demo_http)s?"
-msgstr ""
-"Qu'est-ce que cet avertissement de sécurité qui s'affiche quand je visite "
-"%(demo_http)s ?"
-
-#: templates/sat_website/faq.html:42
-#, python-format
-msgid ""
-"This message advices you to use Libervia with HTTPS instead of HTTP. The "
-"difference between the two is that HTTPS is more secure because the "
-"connection between your browser and the server is encrypted. This is "
-"especially recommended when you have to type a password. You should always "
-"use %(demo_https)s instead of %(demo_http)s."
-msgstr ""
-"Ce message vous conseille d'utiliser la version HTTPS de Libervia au lieu de "
-"HTTP. La différence entre les deux est que HTTPS est plus sécurisé car la "
-"connexion entre votre navigateur et le serveur est chiffrée. C'est surtout "
-"recommandé lorsque vous devez taper un mot de passe. Vous devriez toujours "
-"utiliser %(demo_https)s et non pas %(demo_http)s."
-
-#: templates/sat_website/faq.html:47
-#, python-format
-msgid "My browser says that %(demo_https)s is unsecure. What does it mean?"
-msgstr ""
-"Mon navigateur me dit que la connexion à %(demo_https)s n'est pas certifiée. "
-"Qu'est-ce que cela signifie ?"
-
-#: templates/sat_website/faq.html:49
-#, python-format
-msgid ""
-"The issue here is that %(cacert)s, the certification authority that we use "
-"for authenticating %(demo_https)s is not recognised by your browser. The "
-"fact your browser doesn't trust CAcert doesn't mean that it is unsecure. For "
-"us, it is even more trustable than any other certification organism and we "
-"use it on purpose. Despite some companies are offering free certificates "
-"that are recognised by every browser, we prefer to support a community-"
-"driven and transparent service like CAcert."
-msgstr ""
-"Ce problème vient du fait que %(cacert)s, l'autorité de certification que "
-"nous utilisons pour authentifier %(demo_https)s, n'est pas reconnu par votre "
-"navigateur. Le fait que ce dernier ne fasse pas confiance à CAcert ne "
-"signifie pas pour autant qu'il y ait un réel problème de sécurité. En fait, "
-"nous faisons même davantage confiance à CAcert qu'à n'importe quel autre "
-"organisme de certification, et c'est bien consciemment que nous l'utilisons. "
-"Bien que des sociétés proposent des certificats gratuits qui sont reconnus "
-"par tous les navigateurs, nous préférons supporter un service communautaire "
-"et transparent tel que CAcert."
-
-#: templates/sat_website/faq.html:50
-#, python-format
-msgid ""
-"So for this time, even if you don't know what's going on, please trust us "
-"and accept the certificate. You have to do it only once and then your "
-"browser will not bug you anymore when you are about to connect to "
-"%(demo_https)s. If you use Mozilla Firefox, proceed this way:"
-msgstr ""
-"Donc pour cette fois, même si vous ne saisissez pas vraiment de quoi il "
-"s'agit, merci de nous faire confiance et d'accepter le certificat. Vous ne "
-"devez le faire que la première fois et ensuite votre navigateur ne vous "
-"embêtera plus quand vous vous connecterez à %(demo_https)s. Si vous utilisez "
-"Mozilla Firefox, suivez ces instructions :"
-
-#: templates/sat_website/faq.html:56
-msgid "Click \"I Understand the Risks\" and then \"Add Exception\"."
-msgstr ""
-"Cliquez sur « Je comprends les risques » puis sur « Ajouter une exception »."
-
-#: templates/sat_website/faq.html:64
-msgid ""
-"Click \"View\" and check that the fingerprint matches, then click \"Confirm "
-"Security Exception\"."
-msgstr ""
-"Cliquez sur « Voir » et vérifiez que l'empreinte correspond, ensuite cliquez "
-"sur « Confirmer l'exception de sécurité »."
-
-#: templates/sat_website/faq.html:67
-#, python-format
-msgid ""
-"The SHA-256 fingerprint must be %(fingerprint)s. If this is not the case, "
-"don't confirm the exception and start to worry!"
-msgstr ""
-"L'empreinte numérique SHA-256 doit être %(fingerprint)s. Si ce n'est pas le "
-"cas, ne confirmez pas l'exception et inquiétez-vous ! "
-
-#: templates/sat_website/faq.html:68
-#, python-format
-msgid ""
-"Alternatively, you can import the CAcert root certificate to your browser. "
-"This is actually a better solution because not only %(demo_https)s but all "
-"the websites using the same certification organism than us will be "
-"accessible without any security warning and since the first time. To do so, "
-"please follow the instructions that are given here: %(cacert_wiki)s. It may "
-"look complicated but it is not, for example with Firefox you just need to "
-"install an add-on!"
-msgstr ""
-"Une autre solution est d'importer le certificat racine de CAcert dans votre "
-"navigateur. C'est en fait encore mieux, car non seulement %(demo_https)s "
-"mais aussi tous les sites qui utilisent le même organisme de certification "
-"que nous serons tout de suite accessibles et sans aucun avertissement. Si "
-"vous préférez cette alternative, vous pouvez suivre les instructions "
-"directement sur %(cacert_wiki)s. Ça parait un peu compliqué mais ça ne l'est "
-"pas, par exemple pour Firefox il suffit d'installer un module (plugin)."
-
-#: templates/sat_website/faq.html:69
-#, python-format
-msgid ""
-"PS: we will soon replace our CAcert certificate with one from %(url)s, and "
-"you won't be bothered by this security warning anymore."
-msgstr ""
-"PS : nous allons bientôt remplacer notre certificat CAcert par un certificat "
-"%(url)s, et vous ne serez plus ennuyés par cet avertissement de sécurité."
-
 #: templates/sat_website/features.html:26
 msgid "Salut à Toi's features"
 msgstr "Fonctionnalités de Salut à Toi"
@@ -2435,7 +2325,7 @@
 
 #: templates/sat_website/specifications_xep.html:126
 msgid "Jingle"
-msgstr ""
+msgstr "Jingle"
 
 #: templates/sat_website/specifications_xep.html:130
 msgid "Delayed Delivery"
@@ -2493,6 +2383,111 @@
 "Merci de le lire attentivement, il contient les informations pour compléter "
 "votre adhésion."
 
+#~ msgid "Subscribe to this news feed"
+#~ msgstr "Abonnez-vous à ce flux"
+
+#~ msgid "Atom feed"
+#~ msgstr "Flux Atom"
+
+#~ msgid "What is the security warning when I visit %(demo_http)s?"
+#~ msgstr ""
+#~ "Qu'est-ce que cet avertissement de sécurité qui s'affiche quand je visite "
+#~ "%(demo_http)s ?"
+
+#~ msgid ""
+#~ "This message advices you to use Libervia with HTTPS instead of HTTP. The "
+#~ "difference between the two is that HTTPS is more secure because the "
+#~ "connection between your browser and the server is encrypted. This is "
+#~ "especially recommended when you have to type a password. You should "
+#~ "always use %(demo_https)s instead of %(demo_http)s."
+#~ msgstr ""
+#~ "Ce message vous conseille d'utiliser la version HTTPS de Libervia au lieu "
+#~ "de HTTP. La différence entre les deux est que HTTPS est plus sécurisé car "
+#~ "la connexion entre votre navigateur et le serveur est chiffrée. C'est "
+#~ "surtout recommandé lorsque vous devez taper un mot de passe. Vous devriez "
+#~ "toujours utiliser %(demo_https)s et non pas %(demo_http)s."
+
+#~ msgid "My browser says that %(demo_https)s is unsecure. What does it mean?"
+#~ msgstr ""
+#~ "Mon navigateur me dit que la connexion à %(demo_https)s n'est pas "
+#~ "certifiée. Qu'est-ce que cela signifie ?"
+
+#~ msgid ""
+#~ "The issue here is that %(cacert)s, the certification authority that we "
+#~ "use for authenticating %(demo_https)s is not recognised by your browser. "
+#~ "The fact your browser doesn't trust CAcert doesn't mean that it is "
+#~ "unsecure. For us, it is even more trustable than any other certification "
+#~ "organism and we use it on purpose. Despite some companies are offering "
+#~ "free certificates that are recognised by every browser, we prefer to "
+#~ "support a community-driven and transparent service like CAcert."
+#~ msgstr ""
+#~ "Ce problème vient du fait que %(cacert)s, l'autorité de certification que "
+#~ "nous utilisons pour authentifier %(demo_https)s, n'est pas reconnu par "
+#~ "votre navigateur. Le fait que ce dernier ne fasse pas confiance à CAcert "
+#~ "ne signifie pas pour autant qu'il y ait un réel problème de sécurité. En "
+#~ "fait, nous faisons même davantage confiance à CAcert qu'à n'importe quel "
+#~ "autre organisme de certification, et c'est bien consciemment que nous "
+#~ "l'utilisons. Bien que des sociétés proposent des certificats gratuits qui "
+#~ "sont reconnus par tous les navigateurs, nous préférons supporter un "
+#~ "service communautaire et transparent tel que CAcert."
+
+#~ msgid ""
+#~ "So for this time, even if you don't know what's going on, please trust us "
+#~ "and accept the certificate. You have to do it only once and then your "
+#~ "browser will not bug you anymore when you are about to connect to "
+#~ "%(demo_https)s. If you use Mozilla Firefox, proceed this way:"
+#~ msgstr ""
+#~ "Donc pour cette fois, même si vous ne saisissez pas vraiment de quoi il "
+#~ "s'agit, merci de nous faire confiance et d'accepter le certificat. Vous "
+#~ "ne devez le faire que la première fois et ensuite votre navigateur ne "
+#~ "vous embêtera plus quand vous vous connecterez à %(demo_https)s. Si vous "
+#~ "utilisez Mozilla Firefox, suivez ces instructions :"
+
+#~ msgid "Click \"I Understand the Risks\" and then \"Add Exception\"."
+#~ msgstr ""
+#~ "Cliquez sur « Je comprends les risques » puis sur « Ajouter une exception "
+#~ "»."
+
+#~ msgid ""
+#~ "Click \"View\" and check that the fingerprint matches, then click "
+#~ "\"Confirm Security Exception\"."
+#~ msgstr ""
+#~ "Cliquez sur « Voir » et vérifiez que l'empreinte correspond, ensuite "
+#~ "cliquez sur « Confirmer l'exception de sécurité »."
+
+#~ msgid ""
+#~ "The SHA-256 fingerprint must be %(fingerprint)s. If this is not the case, "
+#~ "don't confirm the exception and start to worry!"
+#~ msgstr ""
+#~ "L'empreinte numérique SHA-256 doit être %(fingerprint)s. Si ce n'est pas "
+#~ "le cas, ne confirmez pas l'exception et inquiétez-vous ! "
+
+#~ msgid ""
+#~ "Alternatively, you can import the CAcert root certificate to your "
+#~ "browser. This is actually a better solution because not only "
+#~ "%(demo_https)s but all the websites using the same certification organism "
+#~ "than us will be accessible without any security warning and since the "
+#~ "first time. To do so, please follow the instructions that are given here: "
+#~ "%(cacert_wiki)s. It may look complicated but it is not, for example with "
+#~ "Firefox you just need to install an add-on!"
+#~ msgstr ""
+#~ "Une autre solution est d'importer le certificat racine de CAcert dans "
+#~ "votre navigateur. C'est en fait encore mieux, car non seulement "
+#~ "%(demo_https)s mais aussi tous les sites qui utilisent le même organisme "
+#~ "de certification que nous serons tout de suite accessibles et sans aucun "
+#~ "avertissement. Si vous préférez cette alternative, vous pouvez suivre les "
+#~ "instructions directement sur %(cacert_wiki)s. Ça parait un peu compliqué "
+#~ "mais ça ne l'est pas, par exemple pour Firefox il suffit d'installer un "
+#~ "module (plugin)."
+
+#~ msgid ""
+#~ "PS: we will soon replace our CAcert certificate with one from %(url)s, "
+#~ "and you won't be bothered by this security warning anymore."
+#~ msgstr ""
+#~ "PS : nous allons bientôt remplacer notre certificat CAcert par un "
+#~ "certificat %(url)s, et vous ne serez plus ennuyés par cet avertissement "
+#~ "de sécurité."
+
 #~ msgid " days"
 #~ msgstr " jours"
 
--- a/sat_website/templatetags/utils.py	Wed Dec 09 03:01:48 2015 +0100
+++ b/sat_website/templatetags/utils.py	Thu Jan 14 23:39:43 2016 +0100
@@ -1,6 +1,9 @@
 from django import template
 from django.forms import RadioSelect, CheckboxInput
 from django.utils.translation import get_language, ugettext_lazy as _
+import urllib2
+import urlparse
+import re
 register = template.Library()
 
 @register.filter
@@ -106,3 +109,20 @@
     except AttributeError:
         pass
     return "(%s)" % ', '.join(items)
+
+@register.simple_tag
+def insert_blog_content(url):
+    # XXX: quick and dirty
+    url = url.encode("utf-8")
+    parse_result = urlparse.urlparse(url, "http")
+    base_url = urlparse.urljoin("%s://%s" % (parse_result.scheme, parse_result.netloc), "blog")
+    text = urllib2.urlopen(url).read()
+    subs = []
+    for match in re.finditer(r"(href=|src=)\"([^\"]*)\"", text):
+        if re.match("^[^:]*://", match.group(2)):  # keep absolute link
+            continue
+        # complete relative link
+        subs.append((match.group(0), match.group(1) + '"%s"' % urlparse.urljoin(base_url, match.group(2))))
+    for url, new_url in subs:
+        text = text.replace(url, new_url)
+    return text
--- a/sat_website/views.py	Wed Dec 09 03:01:48 2015 +0100
+++ b/sat_website/views.py	Thu Jan 14 23:39:43 2016 +0100
@@ -33,6 +33,7 @@
                                 OrderedDict([("features", _(u"Features")),
                                              ("frontends", _(u"Frontends")),
                                              ("media", _(u"Screenshots & Videos")),
+                                             ("news", _(u"News")),
                                              ]))),
                           ('principles', (_(u"Technical area"),
                                 OrderedDict([("principles", _(u"Principles")),
--- a/static/css/sat_website.css	Wed Dec 09 03:01:48 2015 +0100
+++ b/static/css/sat_website.css	Thu Jan 14 23:39:43 2016 +0100
@@ -269,3 +269,9 @@
 .video-campaign {
     max-width: 100%;
 }
+
+.news-content {
+    box-sizing: border-box;
+    border-radius: 5px;
+    background: url("https://libervia.org/themes/default/images/tpl/page-gradient.png") repeat-x scroll left top #FBFAF9;
+}
--- a/templates/sat_website/base.html	Wed Dec 09 03:01:48 2015 +0100
+++ b/templates/sat_website/base.html	Thu Jan 14 23:39:43 2016 +0100
@@ -31,6 +31,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" href="{% static "bootstrap/css/bootstrap.min.css" %}">
     <link rel="stylesheet" href="{% static "bootstrap/css/bootstrap-theme.min.css" %}">
+    <link rel="stylesheet" href="https://libervia.org/themes/default/styles/blog.css">
     <link rel="stylesheet" href="{% static "css/sat_website.css" %}">
     <link rel="icon" type="image/png" href="{% static "images/sat_logo_32.png" %}">
     <title>{% block title %}{% trans "Salut à Toi: the multi frontend, multipurpose communication tool" %}{% endblock %}</title>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/sat_website/news.html	Thu Jan 14 23:39:43 2016 +0100
@@ -0,0 +1,32 @@
+{% extends "sat_website/category.html" %}
+
+{% comment %}
+SàT website: Salut à Toi's presentation website
+Copyright (C) 2012  Jérôme Poisson (goffi@goffi.org)
+
+This file is part of SàT website.
+
+SàT website is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Foobar is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
+{% endcomment %}
+
+{% load i18n %}
+{% load staticfiles %}
+{% load utils %}
+{% block main_container %}
+
+<div class="news-content">
+    {% insert_blog_content "https://libervia.org/blog/salut-a-toi" %}
+</div>
+
+{% endblock %}