Exemplo n.º 1
0
class JalonConfigurationControlPanel(ControlPanelForm):

    label = _("Jalon Configuration")
    description = _("""Configuration de Jalon""")
    form_name = _("Jalon Configuration")
    form_fields = FormFieldsets(configAnalyticsset, configLDAPset,
                                configDidacticielset, configMailErreurset,
                                configLienset, configUnivset)
Exemplo n.º 2
0
class JalonConfigControlPanel(ControlPanelForm):

    label = _("Jalon Content Config")
    description = _("""Configuration des contenus de Jalon""")
    form_name = _("Jalon Content Config")
    form_fields = FormFieldsets(configfichierset, configsonorisationset,
                                configgwimsset, configexternesset,
                                configglossaireset, configmajset)
Exemplo n.º 3
0
class IJalonConfigUnivControlPanel(Interface):
    """
    fields for jalon Université control panel
    """

    etablissement = TextLine(title=_(u"Établissement de la plateforme"),
                             default=_(u"Université de…"),
                             required=False)
Exemplo n.º 4
0
class IJalonConfigMailErreurControlPanel(Interface):
    """
    fields for jalon mail_erreur control panel
    """

    mail_erreur = TextLine(
        title=_(u"Adresse de réception des erreurs"),
        description=_(u"Adresse mail de réception des error_log"),
        required=True)
    activer_listeDiffusion = Bool(
        title=_(u"Activer les listes de diffusions"),
        description=_(u"Activer les listes de diffusions"),
        default=False,
        required=False)
    cible_listeDiffusion = Text(
        title=_(u"Éléments utilisant une liste de diffusions"),
        description=_(u"valeur possible : etape, ue, uel, groupe"),
        default=
        u"Liste des éléments utilisant les listes de diffusions, une valeur par ligne",
        required=False)
    mail_listeDiffusion = TextLine(
        title=_(u"Adresse des listes de diffusion"),
        description=_(u"Adresse des listes de diffusion"),
        default=_(u"@etablissement.com"),
        required=False)
Exemplo n.º 5
0
class IJalonImportControlPanel(Interface):
    """
    fields for jalon import control panel
    """
    chemin_repertoire = Text(
        title=_(u"title_chemin_repertoire",
                default=u"Chemin du répertoire à importer"),
        description=_(u"description_chemin_repertoire",
                      default=u"Exemple : /Plone/Members/"),
        default=u"/Plone/Members/",
        required=True)
Exemplo n.º 6
0
class IJalonConfigDidacticielControlPanel(Interface):
    """
    fields for jalon Didacticiels control panel
    """

    didacticiel_plan_vide = Text(
        title=_(u"Didacticiel du plan interactif"),
        description=
        _(u"Didacticiel à afficher automatiquement lorsque le plan de cours est vide"
          ),
        default=
        u'La vidéo ci-dessous vous expliquera comment construire votre premier plan :\n <iframe style="max-width:853px;height:480px;width:100%" src="http://www.youtube.com/embed/Z10V-BMXuec?rel=0" frameborder="0" allowfullscreen="allowfullscreen"></iframe>',
        required=False)
Exemplo n.º 7
0
class IJalonConfigWimsControlPanel(Interface):
    """fields for jalon Config Wims control panel."""

    activer_wims = Bool(
        title=_(u"Activer la section Exercices Wims dans mon espace."),
        description=
        _(u"Cocher pour activer la section Exercices Wims dans mon espace, seulement possible si le produit jalon.wims est installé."
          ),
        default=False,
        required=False)
    wims_connecteur = TextLine(
        title=_(u"Identifiant du connecteur wims."),
        description=
        _(u"Pour la configuration par défaut de jalon.wims laisser portal_wims."
          ),
        default=u"portal_wims",
        required=False)
    wims = List(
        title=_(u"Exercices Wims : définition des étiquettes par défaut."),
        description=_(u"Exemple : le modèle des exercices Wims 'modele'"),
        value_type=TextLine(),
        default=[],
        required=False)
    wims_modele = List(
        title=_(u"Modèle Wims"),
        description=
        _(u"Lister ici les modèles (du Wims Connector) que vous souhaitez utiliser pour la création d'exercices dans 'Mon espace'. Format : 'id*-*Titre du Modele*-*Categorie'  . Exemple : qcmsimple*-*Question simple*-*1 Modeles simples"
          ),
        value_type=TextLine(),
        default=[],
        required=False)
Exemplo n.º 8
0
class IJalonConfigFichiersControlPanel(Interface):
    """fields for jalon Config Fichiers control panel."""

    activer_fichiers = Bool(
        title=_(u"Activer la section Fichiers dans mon espace."),
        description=_(
            u"Cocher pour activer la section Fichiers dans mon espace."),
        default=False,
        required=False)
    fichiers = List(
        title=_(u"Fichiers : définition des étiquettes par défaut."),
        description=_(u"Exemple : les types de fichiers"),
        value_type=TextLine(),
        default=[],
        required=False)
Exemplo n.º 9
0
class IJalonConfigGlossaireControlPanel(Interface):
    """fields for jalon Config Glossaire control panel."""

    activer_glossaire = Bool(
        title=_(u"Activer la section Glossaire dans mon espace."),
        description=_(
            u"Cocher pour activer la section Glossaire dans mon espace."),
        default=False,
        required=False)
    glossaire = List(
        title=_(u"Glossaire : définition des étiquettes par défaut."),
        description=_(u"Exemple : les lettres de l'alphabet, une par case"),
        value_type=TextLine(),
        default=[],
        required=False)
Exemplo n.º 10
0
 def genererFichiers(self, value, utilisateur, dicoFichiers):
     try:
         contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     except:
         return dicoFichiers
     #Vérification du fichier d'importation de cours "exportCours.json"
     if not "exportFichiers.json" in contenuDossier:
         return dicoFichiers
     #Chargement du fichier
     try:
         listeObj = json.load(
             open('%s/%s/exportFichiers.json' % (value, utilisateur), 'r'))
     except:
         raise Invalid(_(u"addFichiers : %s " % utilisateur))
     for infosObj in listeObj:
         image = False
         try:
             idFichier = os.listdir(
                 "%s/%s/Fichiers/%s/file/" %
                 (value, utilisateur, infosObj["id"]))[-1]
         except:
             idFichier = None
         if idFichier:
             extension = idFichier.split(".")[-1]
             idObj = infosObj["id"].replace(".", "-")
             if extension in ["jpg", "jpeg", "gif", "png", "bmp"]:
                 image = True
             if image:
                 dicoFichiers[idObj] = "Image"
             else:
                 dicoFichiers[idObj] = "File"
     return dicoFichiers
Exemplo n.º 11
0
 def addTermeGlossaire(self, value, utilisateur):
     #print "------- addTermeGlossaire -------"
     #Recherche du dossier de l'utilisateur
     contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     #Vérification du fichier d'importation de cours "exportGlossaire.json"
     if not "exportGlossaire.json" in contenuDossier:
         return None
     #Chargement du fichier
     try:
         listeObj = json.load(
             open('%s/%s/exportGlossaire.json' % (value, utilisateur), 'r'))
     except:
         raise Invalid(_(u"addTermeGlossaire : %s " % utilisateur))
     portal = getSite()
     home = getattr(getattr(portal.Members, utilisateur), "Glossaire")
     num = 1
     for infosObj in listeObj:
         idobj = infosObj["id"].replace(".", "-")
         #Création d'une image sous Plone
         home.invokeFactory(type_name='JalonTermeGlossaire', id=idobj)
         #print "%s : addTermeGlossaire : %s" % (str(num), idobj)
         num = num + 1
         #Récupération de l'objet
         fichier = getattr(home, idobj)
         fichier.manage_setLocalRoles(utilisateur, ["Owner"])
         #Mise à jour des données
         fichier.setTitle(infosObj["titre"].encode("utf-8"))
         fichier.setDescription(infosObj["description"].encode("utf-8"))
         home.setTagDefaut(fichier)
         fichier.reindexObject()
     home.reindexObject()
Exemplo n.º 12
0
class IJalonConfigMAJControlPanel(Interface):
    """fields for jalon Config MAJ control panel."""

    activer_maj = Bool(
        title=_(u"Activer les notes de mise à jour de Jalon"),
        description=
        _(u"Cocher pour activer les notes de mise à jour depuis la page mon espace"
          ),
        default=False,
        required=False)
    url_maj = TextLine(
        title=_(u"Url du RSS des notes de mise à jour de Jalon"),
        description=
        _(u"Indiquez ici l'adresse du flux RSS utilisez pour les mises à jour de Jalon"
          ),
        default=
        u"http://wiki.unice.fr/createrssfeed.action?types=blogpost&sort=created&showContent=true&showDiff=true&spaces=JALON&labelString=maj_jalonv4&rssType=rss2&maxResults=1000&timeSpan=1000&publicFeed=true&title=Mises+à+jour+de+l%27Environnement+Pédagogique+Jalon",
        required=False)
Exemplo n.º 13
0
 def addRessourceExterne(self, value, utilisateur):
     #print "------- addRessourceExterne -------"
     #Recherche du dossier de l'utilisateur
     contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     #Vérification du fichier d'importation de cours "exportExternes.json"
     if not "exportExternes.json" in contenuDossier:
         return {}
     #Chargement du fichier
     dicoExternes = {}
     try:
         listeObj = json.load(
             open('%s/%s/exportExternes.json' % (value, utilisateur), 'r'))
     except:
         raise Invalid(_(u"addRessourceExterne : %s " % utilisateur))
     portal = getSite()
     dicoType = {
         u"Lien URL": u"Lien web",
         u"Lien Vidéo": u"Lecteur exportable",
         u"Référence Bibliographique": u"Ressource bibliographique",
         u"Référence Bilbliographique": u"Ressource bibliographique"
     }
     home = getattr(getattr(portal.Members, utilisateur), "Externes")
     num = 1
     for infosObj in listeObj:
         idobj = infosObj["id"].replace(".", "-")
         #Création d'une image sous Plone
         home.invokeFactory(type_name='JalonRessourceExterne', id=idobj)
         #print "%s : addRessourceExterne : %s" % (str(num), idobj)
         num = num + 1
         #Récupération de l'objet
         fichier = getattr(home, idobj)
         fichier.manage_setLocalRoles(utilisateur, ["Owner"])
         #Mise à jour des données
         fichier.setProperties({
             "Title":
             infosObj["titre"].encode("utf-8"),
             "Description":
             infosObj["description"].encode("utf-8"),
             "TypeRessourceExterne":
             dicoType[infosObj["type"]],
             "Urlbiblio":
             infosObj["lien"],
             "Lecteur":
             infosObj["lien"]
         })
         home.setTagDefaut(fichier)
         fichier.reindexObject()
         dicoExternes[idobj] = dicoType[infosObj["type"]]
     home.reindexObject()
     return dicoExternes
Exemplo n.º 14
0
 def addConnect(self, value, utilisateur):
     #print "------- addConnect -------"
     #Recherche du dossier de l'utilisateur
     contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     #Vérification du fichier d'importation de cours "exportCours.json"
     if not "exportConnect.json" in contenuDossier:
         return None
     portal = getSite()
     try:
         motdepasse = open(
             '%s/%s/exportConnect.json' % (value, utilisateur), 'r').read()
     except:
         raise Invalid(_(u"addConnect JSON : %s " % utilisateur))
     #Récupération des modèles
     home = getattr(getattr(portal.Members, utilisateur), "Webconference")
     home.connect('connexion', {})
     userConnect = home.connect('rechercherIdUser', utilisateur)
     if userConnect:
         dossiers = home.connect("getAttribut", {"attribut": "dossiers"})
         if dossiers:
             for ligne in dossiers.split("\n"):
                 repertoire, modele = ligne.split(":")
                 #Récupération du répertoire du membre en fonction du modele
                 home = getattr(getattr(portal.Members, utilisateur),
                                repertoire)
                 #Sauvegarde du mot de pass
                 home.setComplement(motdepasse)
                 home.reindexObject()
                 session = home.getSessionConnect(utilisateur)
                 home.getContents("", "JalonConnect", utilisateur,
                                  repertoire)
                 try:
                     home.getContents("", "JalonConnect", utilisateur,
                                      repertoire)
                 except:
                     raise Invalid(_(u"addConnect : %s " % utilisateur))
Exemplo n.º 15
0
class IJalonConfigLDAPControlPanel(Interface):
    """
    fields for Config LDAP control panel
    TODO : Placer ici les configs génériques pour la connexion LDAP
    """
    activer_ldap = Bool(
        title=_(u"Exemple de champ générique"),
        description=_(u"Cocher pour activer ce champ générique"),
        default=False,
        required=False)
    fiche_ldap = TextLine(
        title=_(u"Chemin vers une fiche de votre annuaire"),
        description=
        _(u"exemple : http://universite.fr/page?variable=valeur&Nom=*-*nom*-* ou uid=*-*id*-*"
          ),
        required=False)
    schema_ldap = TextLine(title=_(u"Schema de l'annuaire LDAP"),
                           description=_(u"exemple : supann ou eduPerson"),
                           default=_(u"supann"),
                           required=True)
Exemplo n.º 16
0
 def genererExternes(self, value, utilisateur, dicoExternes):
     try:
         contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     except:
         return dicoExternes
     #Vérification du fichier d'importation de cours "exportExternes.json"
     if not "exportExternes.json" in contenuDossier:
         return dicoExternes
     #Chargement du fichier
     try:
         listeObj = json.load(
             open('%s/%s/exportExternes.json' % (value, utilisateur), 'r'))
     except:
         raise Invalid(_(u"addRessourceExterne : %s " % utilisateur))
     dicoType = {
         u"Lien URL": u"Lien web",
         u"Lien Vidéo": u"Lecteur exportable",
         u"Référence Bibliographique": u"Ressource bibliographique",
         u"Référence Bilbliographique": u"Ressource bibliographique"
     }
     for infosObj in listeObj:
         idobj = infosObj["id"].replace(".", "-")
         dicoExternes[idobj] = dicoType[infosObj["type"]]
     return dicoExternes
Exemplo n.º 17
0
class IJalonConfigAnalyticsControlPanel(Interface):
    """
    fields for Config Analytics control panel
    """
    id_account = TextLine(title=_(u"Identifiant Google Analytics."),
                          description=_(u"Exemple : UA-12345678-1"),
                          default=u"UA-12345678-1",
                          required=True)
    id_domain = TextLine(title=_(u"Domaine du site."),
                         description=_(u"Exemple : unice.fr"),
                         default=u"unice.fr",
                         required=True)
    chemin_encodage = TextLine(
        title=_(u"Clé de cryptage"),
        description=
        _(u"Une clé de cryptage des identifants sera créée. Pensez à sauvegarder le fichier. Exemple : /var/secret"
          ),
        default=u"",
        required=True)
Exemplo n.º 18
0
class IJalonConfigExterneControlPanel(Interface):
    """fields for jalon Config Externe control panel."""

    activer_externes = Bool(
        title=_(u"Activer la section Ressources externes dans mon espace."),
        description=
        _(u"Cocher pour activer la section Ressources externes dans mon espace."
          ),
        default=False,
        required=False)
    externes = List(
        title=_(u"Externes : définition des étiquettes par défaut."),
        description=_(u"Exemple : les types de ressources externes"),
        value_type=TextLine(),
        default=[],
        required=False)
    activer_cataloguebu = Bool(
        title=_(u"Activer la section Catalogue BU dans mon espace."),
        description=_(
            u"Cocher pour activer la section Catalogue BU dans mon espace."),
        default=False,
        required=False)
Exemplo n.º 19
0
    def getAllActiver(self):
        return {
            "fichiers": self.get_activer_fichiers(),
            "externes": self.get_activer_externes(),
            "glossaire": self.get_activer_glossaire(),
            "webconference": self.get_activer_webconference(),
            "sonorisation": self.get_activer_sonorisation(),
            "wims": self.get_activer_wims(),
            "cataloguebu": self.get_activer_cataloguebu(),
            "maj": self.get_activer_maj(),
        }


configfichierset = FormFieldsets(IJalonConfigFichiersControlPanel)
configfichierset.id = 'configfichier'
configfichierset.label = _(u"Fichiers")

configsonorisationset = FormFieldsets(IJalonConfigSonorisationControlPanel)
configsonorisationset.id = 'configsonorisation'
configsonorisationset.label = _(u"Présentation sonorisée & Webconférence")

configgwimsset = FormFieldsets(IJalonConfigWimsControlPanel)
configgwimsset.id = 'configwims'
configgwimsset.label = _(u"Exercices WIMS")

configexternesset = FormFieldsets(IJalonConfigExterneControlPanel)
configexternesset.id = 'configexternes'
configexternesset.label = _(u"Ressources externes & Catalogue BU")

configglossaireset = FormFieldsets(IJalonConfigGlossaireControlPanel)
configglossaireset.id = 'configglossaire'
Exemplo n.º 20
0
from jalon.content.interfaces import IJalonRessourceExterne

import jalon_utils
import copy

ressourceType = [
    u"Lien web".encode("utf-8"), u"Lecteur exportable".encode("utf-8")
]

JalonRessourceExterneSchema = ATDocumentSchema.copy() + atpublic.Schema((
    atpublic.StringField("sousTitre",
                         required=False,
                         accessor="getSousTitre",
                         searchable=False,
                         widget=atpublic.StringWidget(
                             label=_(u"Sous titre"), )),
    atpublic.StringField("typeRessourceExterne",
                         required=True,
                         accessor="getTypeRessourceExterne",
                         searchable=False,
                         default="",
                         vocabulary=ressourceType,
                         widget=atpublic.SelectionWidget(
                             label=_(u"Type de la Ressource Externe"),
                             format="select",
                         )),
    atpublic.TextField("auteurs",
                       required=True,
                       accessor="getAuteurs",
                       searchable=False,
                       widget=atpublic.TextAreaWidget(label=_(u"Auteurs"), )),
Exemplo n.º 21
0
from Products.CMFCore.utils import getToolByName

from jalon.content import contentMessageFactory as _
from jalon.content.config import PROJECTNAME
from jalon.content.interfaces import IJalonAnnonce

from jalon.content.browser.config.jalonconfiguration import IJalonConfigurationControlPanel

import jalon_utils

JalonAnnonceSchema = ATDocumentSchema.copy() + Schema((
    LinesField("publics",
               required=False,
               accessor="getPublics",
               searchable=False,
               widget=LinesWidget(label=_(u"Publics cible d'une annonce"),
                                  visible={'view': 'visible', 'edit': 'invisible'})
               ),
))


class JalonAnnonce(ATDocumentBase):

    """ Une annonce dans un cours. """

    implements(IJalonAnnonce)
    meta_type = 'JalonAnnonce'
    schema = JalonAnnonceSchema
    schema['description'].required = True
    schema['description'].widget.label = "Description"
    schema['text'].required = False
Exemplo n.º 22
0
from jalon.content import contentMessageFactory as _
from jalon.content.config import PROJECTNAME
from jalon.content.interfaces import IJalonConnect

import copy
import jalon_utils

JalonConnectSchema = ATDocumentSchema.copy() + atpublic.Schema((
    atpublic.StringField(
        'dateAjout',
        required = False,
        accessor = 'getDateAjout',
        searchable = False,
        widget = atpublic.StringWidget(
            label = _(u"Date de création sur Adobe Connect")
            )),
    atpublic.StringField(
        "duree",
        required = False,
        accessor = "getDuree",
        searchable = False,
        widget = atpublic.StringWidget(
            label = _(u"Durée"),
            )),
    atpublic.StringField(
        "dateUS",
        required = False,
        accessor = "getDateUS",
        searchable = False,
        widget = atpublic.StringWidget(
Exemplo n.º 23
0
from jalon.content.interfaces import IJalonFile

import jalon_utils

JalonFileSchema = ATDocumentSchema.copy() + atpublic.Schema((
    BlobField('file',
              widget=atpublic.FileWidget(label='A file',
                                         description='Some file'),
              required=True,
              ),
    atpublic.StringField("actif",
                         required=False,
                         accessor="getActif",
                         searchable=False,
                         default="actif",
                         widget=atpublic.StringWidget(label=_(u"Actif"),
                         )),
    atpublic.TextField("correction",
                       required=True,
                       accessor="getCorrection",
                       searchable=False,
                       widget=atpublic.TextAreaWidget(label=_(u"Correction"),
                       )),
    atpublic.StringField("note",
                         required=False,
                         accessor="getNote",
                         searchable=False,
                         widget=atpublic.StringWidget(label=_(u"Note ou appréciation"),
                         )),
))
Exemplo n.º 24
0
 def addCours(self, value, utilisateur):
     #print "------- addCours -------"
     #Recherche du dossier de l'utilisateur
     utilisateur = utilisateur.split(".json")[0][11:]
     contenuDossier = os.listdir("%s" % value)
     #Vérification du fichier d'importation de cours "exportCours.json"
     idExport = u"exportCours%s.json" % utilisateur
     if not idExport in contenuDossier:
         return None
     #Chargement du fichier
     try:
         dicoCours = json.load(open('%s/%s' % (value, idExport), 'r'))
     except:
         raise Invalid(_(u"addCours : %s " % utilisateur))
     dicoExternes = self.genererExternes(
         "/home/zope/sites/jalon/jalonv2fait", utilisateur, {})
     dicoFichiers = self.genererFichiers(
         "/home/zope/sites/jalon/jalonv2fait", utilisateur, {})
     portal = getSite()
     Cours = getattr(portal.cours, utilisateur)
     num = 1
     for infosCours in dicoCours:
         Cours.invokeFactory(type_name='JalonCours',
                             id=infosCours["idcours"])
         #print "%s : addCours : %s " % (str(num), infosCours["idcours"])
         num = num + 1
         cours = getattr(Cours, infosCours["idcours"])
         #Mise à jour des permissions
         cours.manage_setLocalRoles(utilisateur, ["Owner"])
         #Mise à jour des informations
         cours.setTitle(infosCours["titre"].encode("utf-8"))
         cours.setAuteurs({"auteurs": "auteur", "username": utilisateur})
         if infosCours["coAuteurs"]:
             cours.setAuteurs({
                 "auteurs": "coAuteurs",
                 "username": infosCours["coAuteurs"]
             })
             for coAuteur in infosCours["coAuteurs"].split(","):
                 dicoExternes = self.genererExternes(
                     "/home/zope/sites/jalon/jalonv2fait", coAuteur,
                     dicoExternes)
                 dicoFichiers = self.genererFichiers(
                     "/home/zope/sites/jalon/jalonv2fait", coAuteur,
                     dicoFichiers)
         if infosCours["coLecteurs"]:
             cours.setAuteurs({
                 "auteurs": "coLecteurs",
                 "username": infosCours["coLecteurs"]
             })
         heure = str(time.clock()).replace(".", "")
         for composant in infosCours["plan"]:
             if composant["type"] in ["Titre", "TexteLibre"]:
                 now = DateTime()
                 idElement = "%s-%s-%s" % (
                     composant["type"], utilisateur, ''.join(
                         [now.strftime('%Y%m%d'),
                          str(heure)]))
                 cours.ajouterInfosElement(
                     idElement.encode("utf-8"),
                     composant["type"].encode("utf-8"),
                     composant["titre"].encode("utf-8"),
                     utilisateur.encode("utf-8"))
                 cours.ajouterElementPlan(idElement.encode("utf-8"))
                 #print "addCours Element : %s , %s" % (idElement.encode("utf-8"), composant["titre"].encode("utf-8"))
                 heure = int(heure) + 1
             else:
                 if composant["type"] == "Fichier":
                     try:
                         cours.ajouterElement(
                             composant["id"].encode("utf-8"),
                             dicoFichiers[composant["id"]].encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                     except:
                         print "addCours Element Fichier : %s , %s" % (
                             composant["id"].encode("utf-8"),
                             composant["titre"].encode("utf-8"))
                 if composant["type"] == "Ressources Externes":
                     try:
                         cours.ajouterElement(
                             composant["id"].encode("utf-8"),
                             dicoExternes[composant["id"]].encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                     except:
                         print "addCours Element Ressources Externes : %s , %s" % (
                             composant["id"].encode("utf-8"),
                             composant["titre"].encode("utf-8"))
                 if composant["type"] == "Webconference":
                     try:
                         cours.ajouterElement(
                             composant["id"].encode("utf-8"),
                             "Webconference".encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                     except:
                         print "addCours Element Webconference : %s , %s %s" % (
                             composant["id"].encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                 if composant["type"] == "Presentation sonirisee":
                     try:
                         cours.ajouterElement(
                             composant["id"].encode("utf-8"),
                             "Presentations sonorisees".encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                     except:
                         print "addCours Element Presentation sonirisee : %s , %s %s" % (
                             composant["id"].encode("utf-8"),
                             composant["titre"].encode("utf-8"),
                             composant["createur"].encode("utf-8"))
                 if composant["type"] == "Sujet de dicussion":
                     idactivite = cours.creerSousObjet(
                         "Forum".encode("utf-8"),
                         composant["titre"].encode("utf-8"),
                         composant["description"].encode("utf-8"),
                         composant["createur"].encode("utf-8"), None, None)
                     cours.ajouterElement(
                         idactivite.encode("utf-8"),
                         "Forum".encode("utf-8"),
                         composant["titre"].encode("utf-8"),
                         composant["createur"].encode("utf-8"))
                     #print "addCours Element : %s , %s" % (composant["id"].encode("utf-8"), composant["titre"].encode("utf-8"))
                 if composant[
                         "type"] == "Bo&icirc;te de d&eacute;p&ocirc;ts":
                     idactivite = cours.creerSousObjet(
                         "BoiteDepot".encode("utf-8"),
                         composant["titre"].encode("utf-8"),
                         composant["description"].encode("utf-8"),
                         composant["createur"].encode("utf-8"), None, None)
                     cours.ajouterElement(
                         idactivite, "BoiteDepot".encode("utf-8"),
                         composant["titre"].encode("utf-8"),
                         composant["createur"].encode("utf-8"))
                     if composant["sujets"] != [] or composant[
                             "corrections"] != []:
                         boite = getattr(cours, idactivite)
                         for sujet in composant["sujets"]:
                             if sujet["typeElement"] == "Fichier":
                                 try:
                                     boite.ajouterElement(
                                         "sujets".encode("utf-8"),
                                         sujet["id"].encode("utf-8"),
                                         dicoFichiers[sujet["id"]],
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                                 except:
                                     print "add Element Boite Fichier : %s , %s %s" % (
                                         sujet["id"].encode("utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                             if sujet[
                                     "typeElement"] == "Ressources Externes":
                                 try:
                                     boite.ajouterElement(
                                         "sujets".encode("utf-8"),
                                         sujet["id"].encode("utf-8"),
                                         dicoExternes[sujet["id"]],
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                                 except:
                                     print "add Element Boite Ressources Externes : %s , %s %s" % (
                                         sujet["id"].encode("utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                             if sujet["typeElement"] == "Webconference":
                                 try:
                                     boite.ajouterElement(
                                         "sujets".encode("utf-8"),
                                         sujet["id"].encode("utf-8"),
                                         "Webconference".encode("utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                                 except:
                                     print "add Element Boite Webconference : %s , %s %s" % (
                                         sujet["id"].encode("utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                             if sujet[
                                     "typeElement"] == "Presentation sonirisee":
                                 try:
                                     boite.ajouterElement(
                                         "sujets".encode("utf-8"),
                                         sujet["id"].encode("utf-8"),
                                         "Presentations sonorisees".encode(
                                             "utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                                 except:
                                     print "add Element Boite Presentation sonirisee : %s , %s %s" % (
                                         sujet["id"].encode("utf-8"),
                                         sujet["titreElement"].encode(
                                             "utf-8"),
                                         sujet["createurElement"].encode(
                                             "utf-8"))
                         for correction in composant["corrections"]:
                             if correction["typeElement"] == "Fichier":
                                 try:
                                     boite.ajouterElement(
                                         "corrections".encode("utf-8"),
                                         correction["id"].encode("utf-8"),
                                         dicoFichiers[correction["id"]].
                                         encode("utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                                 except:
                                     print "add Element Boite Fichier : %s , %s %s" % (
                                         correction["id"],
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                             if correction[
                                     "typeElement"] == "Ressources Externes":
                                 try:
                                     boite.ajouterElement(
                                         "corrections".encode("utf-8"),
                                         correction["id"].encode("utf-8"),
                                         dicoExternes[correction["id"]].
                                         encode("utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                                 except:
                                     print "add Element Boite Ressources Externes : %s , %s %s" % (
                                         correction["id"],
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                             if correction[
                                     "typeElement"] == "Webconference":
                                 try:
                                     boite.ajouterElement(
                                         "corrections".encode("utf-8"),
                                         correction["id"].encode("utf-8"),
                                         "Webconference".encode("utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                                 except:
                                     print "add Element Boite Webconference : %s , %s %s" % (
                                         correction["id"].encode("utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                             if correction[
                                     "typeElement"] == "Presentation sonirisee":
                                 try:
                                     boite.ajouterElement(
                                         "corrections".encode("utf-8"),
                                         correction["id"].encode("utf-8"),
                                         "Presentations sonorisees".encode(
                                             "utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                                 except:
                                     print "add Element Boite Presentation sonirisee : %s , %s %s" % (
                                         correction["id"].encode("utf-8"),
                                         correction["titreElement"].encode(
                                             "utf-8"),
                                         correction["createurElement"].
                                         encode("utf-8"))
                     #print "addCours Element : %s , %s" % (composant["id"], composant["titre"].encode("utf-8"))
         cours.invokeFactory(type_name='Folder', id="annonce")
         cours.reindexObject()
     Cours.reindexObject()
Exemplo n.º 25
0
class IJalonMaintenanceControlPanel(Interface):
    """
    fields for jalon maintenance control panel
    """
    annoncer_maintenance = Bool(
        title=_(u"Annonce maintenance du site"),
        description=_(
            u"Affiche un message d'annonce de la prochaine maintenance du site."
        ),
        default=False,
        required=False)

    activer_maintenance = Bool(
        title=_(u"Mise en maintenance du site"),
        description=_(u"Empêche les utilisateurs de se connecter au site."),
        default=False,
        required=False)

    date_debut = TextLine(
        title=_(u"Date de début de maintenance"),
        description=_(
            u"Date du début de la maintenance dans le texte informatif."),
        required=True)

    date_fin = TextLine(
        title=_(u"Date de fin de maintenance"),
        description=_(
            u"Date de fin de la maintenance dans le texte informatif."),
        required=True)

    texte_maintenance = Text(
        title=_(u"Texte de la maintenance"),
        description=_(u"Texte informatif pour la maintenance du site."),
        required=True)

    activer_information = Bool(
        title=_(u"Afficher une information sur le site"),
        description=_(u"Affiche une information sur le site."),
        default=False,
        required=False)

    texte_information = Text(title=_(u"Texte d'information"),
                             description=_(u"Texte informatif pour le site."),
                             required=True)

    annoncer_vider_cache = Bool(
        title=_(u"Annonce « Vider son cache »"),
        description=
        _(u"Affiche un message demandant de vider son cache suite à une mise à jour."
          ),
        default=False,
        required=False)
Exemplo n.º 26
0
class JalonMaintenanceControlPanel(ControlPanelForm):

    label = _(u"Jalon maintenance settings")
    description = _(u"Mise en maintenance de Jalon")
    form_name = _(u"Jalon maintenance settings")
    form_fields = FormFields(IJalonMaintenanceControlPanel)
Exemplo n.º 27
0
class IJalonConfigSonorisationControlPanel(Interface):
    """fields for jalon Config Sonorisation control panel."""

    activer_sonorisation = Bool(
        title=_(u"Activer la section Présentation sonorisée dans mon espace."),
        description=
        _(u"Cocher pour activer la section Présentation sonorisée dans mon espace, seulement possible si le produit jalon.connect est installé."
          ),
        default=False,
        required=False)
    sonorisation_connecteur = TextLine(
        title=_(u"Identifiant du connecteur connect."),
        description=
        _(u"Pour la configuration par défaut de jalon.connect laisser portal_connect."
          ),
        default=u"portal_connect",
        required=False)
    sonorisation = List(
        title=_(
            u"Présentation sonorisée : définition des étiquettes par défaut."),
        description=_(
            u"Exemple : le champ de date du portal_connect 'dateUS'"),
        value_type=TextLine(),
        default=[],
        required=False)

    activer_webconference = Bool(
        title=_(u"Activer la section Webconférence dans mon espace."),
        description=
        _(u"Cocher pour activer section la Webconference dans mon espace, seulement possible si le produit jalon.connect est installé."
          ),
        default=False,
        required=False)
    webconference_connecteur = TextLine(
        title=_(u"Identifiant du connecteur connect."),
        description=
        _(u"Pour la configuration par défaut de jalon.connect laisser portal_connect."
          ),
        default=u"portal_connect",
        required=False)
    webconference = List(
        title=_(u"Webconférence : définition des étiquettes par défaut."),
        description=_(
            u"Exemple : le champ de date du portal_connect 'dateUS'"),
        value_type=TextLine(),
        default=[],
        required=False)
Exemplo n.º 28
0
 def __init__(self, *args, **kwargs):
     super(JalonProperties, self).__init__(*args, **kwargs)
     self._categories = {1: {"title": _(u"Mes formations"), "users": ['all']},
                         2: {"title": _(u"Inscription par mot de passe"), "users": ['all']}}
Exemplo n.º 29
0
class JalonImportControlPanel(ControlPanelForm):
    label = _("Jalon Import settings")
    description = _(
        """Import les contenus de Jalon V2 depuis un dossier du filesystem""")
    form_name = _("Jalon Import settings")
    form_fields = FormFields(IJalonImportControlPanel)
Exemplo n.º 30
0
 def addFichiers(self, value, utilisateur):
     #print "------- addFichiers -------"
     #Recherche du dossier de l'utilisateur
     contenuDossier = os.listdir("%s/%s/" % (value, utilisateur))
     #Vérification du fichier d'importation de cours "exportCours.json"
     if not "exportFichiers.json" in contenuDossier:
         return None
     #Chargement du fichier
     try:
         listeObj = json.load(
             open('%s/%s/exportFichiers.json' % (value, utilisateur), 'r'))
     except:
         raise Invalid(_(u"addFichiers : %s " % utilisateur))
     portal = getSite()
     listeSubject = []
     dicoFichiers = {}
     num = 1
     home = getattr(getattr(portal.Members, utilisateur), "Fichiers")
     for infosObj in listeObj:
         image = False
         try:
             idFichier = os.listdir(
                 "%s/%s/Fichiers/%s/file/" %
                 (value, utilisateur, infosObj["id"]))[-1]
         except:
             idFichier = None
         if idFichier:
             extension = idFichier.split(".")[-1]
             idObj = infosObj["id"].replace(".", "-")
             if extension in ["jpg", "jpeg", "gif", "png", "bmp"]:
                 #Création d'une image sous Plone
                 home.invokeFactory(type_name='Image', id=idObj)
                 image = True
             else:
                 #Création du fichier sous Plone
                 home.invokeFactory(type_name='File', id=idObj)
             #print "%s : addFichiers : %s" % (str(num), idObj)
             num = num + 1
             #Récupération du fichier
             fichier = getattr(home, idObj)
             fichier.manage_setLocalRoles(utilisateur, ["Owner"])
             #Mise à jour des données
             fichier.setTitle(infosObj["titre"].encode("utf-8"))
             home.setTagDefaut(fichier)
             subject = list(fichier.Subject())
             subject.append(
                 urllib.quote(infosObj["etiquette"].encode("utf-8")))
             fichier.setSubject(list(subject))
             #Mise à jour des étiquettes du parents
             if not infosObj["etiquette"].encode("utf-8") in listeSubject:
                 listeSubject.append(infosObj["etiquette"].encode("utf-8"))
             #Mise à jour du fichier en uploadant le contenu du Filesystem
             if image:
                 fichier.setImage(
                     open(
                         "%s/%s/Fichiers/%s/file/%s" %
                         (value, utilisateur, infosObj["id"], idFichier),
                         "r"))
                 dicoFichiers[idObj] = "Image"
             else:
                 print idFichier
                 fichier.setFile(
                     open(
                         "%s/%s/Fichiers/%s/file/%s" %
                         (value, utilisateur, infosObj["id"], idFichier),
                         "r"))
                 dicoFichiers[idObj] = "File"
             fichier.setFilename(idFichier.encode("utf-8"))
             fichier.reindexObject()
     if listeSubject:
         home.setSubject(tuple(listeSubject))
     home.reindexObject()
     return dicoFichiers