Added invariants on extensions interfaces
authortflorac@dagon.home
Wed, 16 Jan 2019 23:39:45 +0100
changeset 508 eb708d0e9298
parent 507 1c7bd4ccfb32
child 509 d157f898b1b6
Added invariants on extensions interfaces
src/pyams_skin/interfaces/extension.py
src/pyams_skin/locales/fr/LC_MESSAGES/pyams_skin.mo
src/pyams_skin/locales/fr/LC_MESSAGES/pyams_skin.po
src/pyams_skin/locales/pyams_skin.pot
--- a/src/pyams_skin/interfaces/extension.py	Wed Jan 16 19:13:01 2019 +0100
+++ b/src/pyams_skin/interfaces/extension.py	Wed Jan 16 23:39:45 2019 +0100
@@ -12,7 +12,7 @@
 
 __docformat__ = 'restructuredtext'
 
-from zope.interface import Interface
+from zope.interface import Interface, invariant, Invalid
 from zope.schema import Bool, Choice, TextLine
 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
 
@@ -29,7 +29,6 @@
 
 ACTIVATION_MODES = SimpleVocabulary([SimpleTerm(k, title=v) for k, v in ACTIVATION_MODES_LABELS.items()])
 
-
 GOOGLE_TAGS_INFO_KEY = 'pyams_skin.tagmanager_info'
 
 
@@ -54,6 +53,11 @@
                                      description=_("Cookie value matching user's cookies reject"),
                                      required=False)
 
+    @invariant
+    def check_cookie(self):
+        if self.on_accepted_cookie and not (self.cookie_name and self.rejected_cookie_value):
+            raise Invalid(_("You must specify cookie name and reject value !!"))
+
     container_id = TextLine(title=_("Container ID"),
                             description=_("Google Tag Manager container ID (may start with 'GTM-')"),
                             required=False)
@@ -93,6 +97,11 @@
                                      description=_("Cookie value matching user's cookies reject"),
                                      required=False)
 
+    @invariant
+    def check_cookie(self):
+        if self.on_accepted_cookie and not (self.cookie_name and self.rejected_cookie_value):
+            raise Invalid(_("You must specify cookie name and reject value !!"))
+
     website_id = TextLine(title=_("Web site ID"),
                           description=_("Google Analytics web site ID"),
                           required=False)
@@ -128,6 +137,11 @@
                                      description=_("Cookie value matching user's cookies reject"),
                                      required=False)
 
+    @invariant
+    def check_cookie(self):
+        if self.on_accepted_cookie and not (self.cookie_name and self.rejected_cookie_value):
+            raise Invalid(_("You must specify cookie name and reject value !!"))
+
     account_id = TextLine(title=_("Account ID"),
                           description=_("UserReport account ID, available in 'initSite' code snippet"),
                           required=False)
Binary file src/pyams_skin/locales/fr/LC_MESSAGES/pyams_skin.mo has changed
--- a/src/pyams_skin/locales/fr/LC_MESSAGES/pyams_skin.po	Wed Jan 16 19:13:01 2019 +0100
+++ b/src/pyams_skin/locales/fr/LC_MESSAGES/pyams_skin.po	Wed Jan 16 23:39:45 2019 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-12-12 09:30+0100\n"
+"POT-Creation-Date: 2019-01-16 23:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,10 +15,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 3.8\n"
 
-#: src/pyams_skin/skin.py:202
-msgid "PyAMS base skin"
-msgstr "Skin PyAMS par défaut"
-
 #: src/pyams_skin/container.py:71
 msgid "No provided object_name argument!"
 msgstr "Argument 'object_name' non fourni !"
@@ -59,6 +55,151 @@
 msgid "Delete object"
 msgstr "Supprimer l'objet"
 
+#: src/pyams_skin/skin.py:202
+msgid "PyAMS base skin"
+msgstr "Skin PyAMS par défaut"
+
+#: src/pyams_skin/interfaces/viewlet.py:264
+msgid "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
+msgstr "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
+
+#: src/pyams_skin/interfaces/extension.py:26
+msgid "Front-office only"
+msgstr "Front-office seulement"
+
+#: src/pyams_skin/interfaces/extension.py:27
+msgid "Back-office only"
+msgstr "Back-office seulement"
+
+#: src/pyams_skin/interfaces/extension.py:28
+msgid "Front-office and back-office"
+msgstr "Front-office et back-office"
+
+#: src/pyams_skin/interfaces/extension.py:38
+msgid "Activate Google Tag Manager?"
+msgstr "Activer Google Tag Manager ?"
+
+#: src/pyams_skin/interfaces/extension.py:39
+msgid "Is Google Tag Manager activated?"
+msgstr "Est-ce que Google Tag Manager est activé ?"
+
+#: src/pyams_skin/interfaces/extension.py:43
+#: src/pyams_skin/interfaces/extension.py:87
+#: src/pyams_skin/interfaces/extension.py:127
+msgid "Activate only if not rejected cookies?"
+msgstr "Activer seulement si cookies non rejetés ?"
+
+#: src/pyams_skin/interfaces/extension.py:44
+#: src/pyams_skin/interfaces/extension.py:88
+#: src/pyams_skin/interfaces/extension.py:128
+msgid "If 'no', plug-in will be activated without waiting for accepted cookies"
+msgstr ""
+"Si 'non', l'extension sera activée sans attendre l'acceptation des cookies"
+
+#: src/pyams_skin/interfaces/extension.py:48
+#: src/pyams_skin/interfaces/extension.py:92
+#: src/pyams_skin/interfaces/extension.py:132
+msgid "Cookie name"
+msgstr "Nom du cookie"
+
+#: src/pyams_skin/interfaces/extension.py:49
+#: src/pyams_skin/interfaces/extension.py:93
+#: src/pyams_skin/interfaces/extension.py:133
+msgid "Name of cookie checked to verify if cookies have been rejected"
+msgstr "Nom du cookie utilisé pour vérifier si les cookies ont été rejetés"
+
+#: src/pyams_skin/interfaces/extension.py:52
+#: src/pyams_skin/interfaces/extension.py:96
+#: src/pyams_skin/interfaces/extension.py:136
+msgid "Rejected cookie value"
+msgstr "Valeur de rejet"
+
+#: src/pyams_skin/interfaces/extension.py:53
+#: src/pyams_skin/interfaces/extension.py:97
+#: src/pyams_skin/interfaces/extension.py:137
+msgid "Cookie value matching user's cookies reject"
+msgstr "Valeur de cookie indiquant que les cookies ont été rejetés"
+
+#: src/pyams_skin/interfaces/extension.py:61
+msgid "Container ID"
+msgstr "ID du conteneur"
+
+#: src/pyams_skin/interfaces/extension.py:62
+msgid "Google Tag Manager container ID (may start with 'GTM-')"
+msgstr ""
+"Identifiant du conteneur de Google Tag Manager ; devrait commencer par "
+"'GTM'..."
+
+#: src/pyams_skin/interfaces/extension.py:65
+#: src/pyams_skin/interfaces/extension.py:109
+#: src/pyams_skin/interfaces/extension.py:149
+msgid "Activation mode"
+msgstr "Mode d'activation"
+
+#: src/pyams_skin/interfaces/extension.py:66
+msgid "Mode(s) in which Google Tags are activated"
+msgstr "Mode(s) pour le(s)quel(s) le service est activé"
+
+#: src/pyams_skin/interfaces/extension.py:78
+msgid "Web site verification code"
+msgstr "Code de vérification"
+
+#: src/pyams_skin/interfaces/extension.py:79
+msgid "Google site verification code"
+msgstr "Code de vérification de site Google"
+
+#: src/pyams_skin/interfaces/extension.py:82
+msgid "Activate Google Analytics?"
+msgstr "Activer Google Analytics ?"
+
+#: src/pyams_skin/interfaces/extension.py:83
+msgid "Are Google Analytics statistics activated?"
+msgstr ""
+"Activer Google Analytics pour disposer des statistiques de consultation du "
+"site"
+
+#: src/pyams_skin/interfaces/extension.py:105
+msgid "Web site ID"
+msgstr "ID du site"
+
+#: src/pyams_skin/interfaces/extension.py:106
+msgid "Google Analytics web site ID"
+msgstr "ID du site Google Analytics"
+
+#: src/pyams_skin/interfaces/extension.py:110
+msgid "Mode(s) in which statistics are activated"
+msgstr "Mode(s) pour le(s)quel(s) les statistiques sont activées"
+
+#: src/pyams_skin/interfaces/extension.py:122
+msgid "Activate UserReport?"
+msgstr "Activer UserReport ?"
+
+#: src/pyams_skin/interfaces/extension.py:123
+msgid "Are UserReport comments and feedback activated?"
+msgstr ""
+"UserReport est un outil de retour d'informations de la part des utilisateurs "
+"de votre site"
+
+#: src/pyams_skin/interfaces/extension.py:145
+msgid "Account ID"
+msgstr "ID du compte"
+
+#: src/pyams_skin/interfaces/extension.py:146
+msgid "UserReport account ID, available in 'initSite' code snippet"
+msgstr ""
+"Référence du compte UserReport pour ce site, visible dans la fonction "
+"'initSite' du modèle de code"
+
+#: src/pyams_skin/interfaces/extension.py:150
+msgid "Mode(s) in which reports are activated"
+msgstr "Mode(s) pour le(s)quel(s) le service est activé"
+
+#: src/pyams_skin/interfaces/extension.py:59
+#: src/pyams_skin/interfaces/extension.py:103
+#: src/pyams_skin/interfaces/extension.py:143
+msgid "You must specify cookie name and reject value !!"
+msgstr "Vous devez indiquer le nom du cookie et sa valeur de rejet !"
+
 #: src/pyams_skin/interfaces/configuration.py:33
 #: src/pyams_skin/interfaces/configuration.py:67
 msgid "Title"
@@ -234,113 +375,6 @@
 msgstr ""
 "Vous devez choisir un thème spécifique ou hériter de celui du niveau parent"
 
-#: src/pyams_skin/interfaces/viewlet.py:264
-msgid "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
-msgstr "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
-
-#: src/pyams_skin/interfaces/extension.py:32
-msgid "Front-office only"
-msgstr "Front-office seulement"
-
-#: src/pyams_skin/interfaces/extension.py:33
-msgid "Back-office only"
-msgstr "Back-office seulement"
-
-#: src/pyams_skin/interfaces/extension.py:34
-msgid "Front-office and back-office"
-msgstr "Front-office et back-office"
-
-#: src/pyams_skin/interfaces/extension.py:45
-msgid "Activate Google Tag Manager?"
-msgstr "Activer Google Tag Manager ?"
-
-#: src/pyams_skin/interfaces/extension.py:46
-msgid "Is Google Tag Manager activated?"
-msgstr "Est-ce que Google Tag Manager est activé ?"
-
-#: src/pyams_skin/interfaces/extension.py:50
-msgid "Container ID"
-msgstr "ID du conteneur"
-
-#: src/pyams_skin/interfaces/extension.py:51
-msgid "Google Tag Manager container ID (may start with 'GTM-')"
-msgstr ""
-"Identifiant du conteneur de Google Tag Manager ; devrait commencer par "
-"'GTM'..."
-
-#: src/pyams_skin/interfaces/extension.py:54
-#: src/pyams_skin/interfaces/extension.py:80
-#: src/pyams_skin/interfaces/extension.py:102
-msgid "Activation mode"
-msgstr "Mode d'activation"
-
-#: src/pyams_skin/interfaces/extension.py:55
-msgid "Mode(s) in which Google Tags are activated"
-msgstr "Mode(s) pour le(s)quel(s) le service est activé"
-
-#: src/pyams_skin/interfaces/extension.py:67
-msgid "Activate Google Analytics?"
-msgstr "Activer Google Analytics ?"
-
-#: src/pyams_skin/interfaces/extension.py:68
-msgid "Are Google Analytics statistics activated?"
-msgstr ""
-"Activer Google Analytics pour disposer des statistiques de consultation du "
-"site"
-
-#: src/pyams_skin/interfaces/extension.py:72
-msgid "Web site ID"
-msgstr "ID du site"
-
-#: src/pyams_skin/interfaces/extension.py:73
-msgid "Google Analytics web site ID"
-msgstr "ID du site Google Analytics"
-
-#: src/pyams_skin/interfaces/extension.py:76
-msgid "Web site verification code"
-msgstr "Code de vérification"
-
-#: src/pyams_skin/interfaces/extension.py:77
-msgid "Google site verification code"
-msgstr "Code de vérification de site Google"
-
-#: src/pyams_skin/interfaces/extension.py:81
-msgid "Mode(s) in which statistics are activated"
-msgstr "Mode(s) pour le(s)quel(s) les statistiques sont activées"
-
-#: src/pyams_skin/interfaces/extension.py:93
-msgid "Activate UserReport?"
-msgstr "Activer UserReport ?"
-
-#: src/pyams_skin/interfaces/extension.py:94
-msgid "Are UserReport comments and feedback activated?"
-msgstr ""
-"UserReport est un outil de retour d'informations de la part des utilisateurs "
-"de votre site"
-
-#: src/pyams_skin/interfaces/extension.py:98
-msgid "Account ID"
-msgstr "ID du compte"
-
-#: src/pyams_skin/interfaces/extension.py:99
-msgid "UserReport account ID, available in 'initSite' code snippet"
-msgstr ""
-"Référence du compte UserReport pour ce site, visible dans la fonction "
-"'initSite' du modèle de code"
-
-#: src/pyams_skin/interfaces/extension.py:103
-msgid "Mode(s) in which reports are activated"
-msgstr "Mode(s) pour le(s)quel(s) le service est activé"
-
-#: src/pyams_skin/templates/header.pt:5
-msgid "Back to previous page"
-msgstr "Revenir à la page précédente"
-
-#: src/pyams_skin/viewlet/activity/__init__.py:45
-#, python-format
-msgid "Last update: {0}"
-msgstr "Dernière mise à jour : {0}"
-
 #: src/pyams_skin/viewlet/toolbar/__init__.py:106
 msgid "Add..."
 msgstr "Ajouter..."
@@ -353,10 +387,19 @@
 msgid "Other actions..."
 msgstr "Autres actions..."
 
+#: src/pyams_skin/viewlet/activity/__init__.py:45
+#, python-format
+msgid "Last update: {0}"
+msgstr "Dernière mise à jour : {0}"
+
 #: src/pyams_skin/viewlet/breadcrumb/breadcrumbs.pt:4
 msgid "Label"
 msgstr "Libellé"
 
+#: src/pyams_skin/templates/header.pt:5
+msgid "Back to previous page"
+msgstr "Revenir à la page précédente"
+
 #~ msgid "Search..."
 #~ msgstr "Rechercher..."
 
--- a/src/pyams_skin/locales/pyams_skin.pot	Wed Jan 16 19:13:01 2019 +0100
+++ b/src/pyams_skin/locales/pyams_skin.pot	Wed Jan 16 23:39:45 2019 +0100
@@ -1,12 +1,12 @@
 #
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2018.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-12-12 09:30+0100\n"
+"POT-Creation-Date: 2019-01-16 23:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,10 +16,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 3.10.dev0\n"
 
-#: ./src/pyams_skin/skin.py:202
-msgid "PyAMS base skin"
-msgstr ""
-
 #: ./src/pyams_skin/container.py:71
 msgid "No provided object_name argument!"
 msgstr ""
@@ -60,6 +56,142 @@
 msgid "Delete object"
 msgstr ""
 
+#: ./src/pyams_skin/skin.py:202
+msgid "PyAMS base skin"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/viewlet.py:264
+msgid "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:26
+msgid "Front-office only"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:27
+msgid "Back-office only"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:28
+msgid "Front-office and back-office"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:38
+msgid "Activate Google Tag Manager?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:39
+msgid "Is Google Tag Manager activated?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:43
+#: ./src/pyams_skin/interfaces/extension.py:87
+#: ./src/pyams_skin/interfaces/extension.py:127
+msgid "Activate only if not rejected cookies?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:44
+#: ./src/pyams_skin/interfaces/extension.py:88
+#: ./src/pyams_skin/interfaces/extension.py:128
+msgid "If 'no', plug-in will be activated without waiting for accepted cookies"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:48
+#: ./src/pyams_skin/interfaces/extension.py:92
+#: ./src/pyams_skin/interfaces/extension.py:132
+msgid "Cookie name"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:49
+#: ./src/pyams_skin/interfaces/extension.py:93
+#: ./src/pyams_skin/interfaces/extension.py:133
+msgid "Name of cookie checked to verify if cookies have been rejected"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:52
+#: ./src/pyams_skin/interfaces/extension.py:96
+#: ./src/pyams_skin/interfaces/extension.py:136
+msgid "Rejected cookie value"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:53
+#: ./src/pyams_skin/interfaces/extension.py:97
+#: ./src/pyams_skin/interfaces/extension.py:137
+msgid "Cookie value matching user's cookies reject"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:61
+msgid "Container ID"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:62
+msgid "Google Tag Manager container ID (may start with 'GTM-')"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:65
+#: ./src/pyams_skin/interfaces/extension.py:109
+#: ./src/pyams_skin/interfaces/extension.py:149
+msgid "Activation mode"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:66
+msgid "Mode(s) in which Google Tags are activated"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:78
+msgid "Web site verification code"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:79
+msgid "Google site verification code"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:82
+msgid "Activate Google Analytics?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:83
+msgid "Are Google Analytics statistics activated?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:105
+msgid "Web site ID"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:106
+msgid "Google Analytics web site ID"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:110
+msgid "Mode(s) in which statistics are activated"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:122
+msgid "Activate UserReport?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:123
+msgid "Are UserReport comments and feedback activated?"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:145
+msgid "Account ID"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:146
+msgid "UserReport account ID, available in 'initSite' code snippet"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:150
+msgid "Mode(s) in which reports are activated"
+msgstr ""
+
+#: ./src/pyams_skin/interfaces/extension.py:59
+#: ./src/pyams_skin/interfaces/extension.py:103
+#: ./src/pyams_skin/interfaces/extension.py:143
+msgid "You must specify cookie name and reject value !!"
+msgstr ""
+
 #: ./src/pyams_skin/interfaces/configuration.py:33
 #: ./src/pyams_skin/interfaces/configuration.py:67
 msgid "Title"
@@ -213,105 +345,6 @@
 msgid "You must select a custom skin or inherit from parent!"
 msgstr ""
 
-#: ./src/pyams_skin/interfaces/viewlet.py:264
-msgid "&lt;i class=&#39;fa fa-refresh fa-spin&#39;&gt;&lt;/i&gt;"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:32
-msgid "Front-office only"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:33
-msgid "Back-office only"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:34
-msgid "Front-office and back-office"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:45
-msgid "Activate Google Tag Manager?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:46
-msgid "Is Google Tag Manager activated?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:50
-msgid "Container ID"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:51
-msgid "Google Tag Manager container ID (may start with 'GTM-')"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:54
-#: ./src/pyams_skin/interfaces/extension.py:80
-#: ./src/pyams_skin/interfaces/extension.py:102
-msgid "Activation mode"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:55
-msgid "Mode(s) in which Google Tags are activated"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:67
-msgid "Activate Google Analytics?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:68
-msgid "Are Google Analytics statistics activated?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:72
-msgid "Web site ID"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:73
-msgid "Google Analytics web site ID"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:76
-msgid "Web site verification code"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:77
-msgid "Google site verification code"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:81
-msgid "Mode(s) in which statistics are activated"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:93
-msgid "Activate UserReport?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:94
-msgid "Are UserReport comments and feedback activated?"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:98
-msgid "Account ID"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:99
-msgid "UserReport account ID, available in 'initSite' code snippet"
-msgstr ""
-
-#: ./src/pyams_skin/interfaces/extension.py:103
-msgid "Mode(s) in which reports are activated"
-msgstr ""
-
-#: ./src/pyams_skin/templates/header.pt:5
-msgid "Back to previous page"
-msgstr ""
-
-#: ./src/pyams_skin/viewlet/activity/__init__.py:45
-#, python-format
-msgid "Last update: {0}"
-msgstr ""
-
 #: ./src/pyams_skin/viewlet/toolbar/__init__.py:106
 msgid "Add..."
 msgstr ""
@@ -324,6 +357,15 @@
 msgid "Other actions..."
 msgstr ""
 
+#: ./src/pyams_skin/viewlet/activity/__init__.py:45
+#, python-format
+msgid "Last update: {0}"
+msgstr ""
+
 #: ./src/pyams_skin/viewlet/breadcrumb/breadcrumbs.pt:4
 msgid "Label"
 msgstr ""
+
+#: ./src/pyams_skin/templates/header.pt:5
+msgid "Back to previous page"
+msgstr ""