Faq : Utilisation

Comment importer des utilisateurs à partir d'un fichier CSV?

Zorna permet l'import des utilisateurs à partir d'un fichier CSV. Pour celà préparez un fichier CSV avec la liste des utilisateurs à importer. Pour chaque utilisateur il est nécessaire d'avoir les informations suivantes dans des champs:

  1. Un identifiant
  2. Un mot de passe
  3. Le nom de l'utilisateur
  4. Le prénom de l'utilisateur
  5. Son adresse email

Si en outre des champs supplémentaires ont été définis pour le profile des utilisateurs, on peut ajouter ces champs dans le fichier CSV.

En tant qu'administrateur, cliquez sur "Administration -> Utilisateurs -> Importer des utilisateurs", indiquez le chemin où se trouve le fichier CSV, indiquez le séparateur utilisé dans le fichier CSV et enfin l'encodage du fichier.

Ensuite associez les champs du fichier CSV avec les champs de ZORNA et enfin lancez l'import.

ZORNA identifie de manière unique un utilisateur en se basant sur son identifiant.

Si lors de l'import, l'utilisateur existe déjà dans la base de données de ZORNA, les informantions le concernant seront mises à jour.

Comment sont gérés les droits dans ZORNA?

ZORNA utilise les groupes pour gérer les droits sur les objets. Un groupe est un ensemble d'utilisateurs enregistrés dans la base de données. Les groupes sont hiérarchiques c'est à dire organisés sous forme d'arborescence.

Chaque objet a des droits spécifiques. Ainsi pour un objet on peut octroyer un droit de lecture ou de création alors que pour un autre on utilise plutôt un droit d'accès ou tout autre.

Tous les membres d'un groupe bénéficient des droits octroyés à un groupe.

Pour éviter inutilement la création de groupes, ZORNA permet d'octroyer des droits par utilisateur.

Un droit peut être accordé à un groupe ou au groupe et à ses descendants.

De la même manière un droit peut être refusé à un groupe ou à ses descendants.

On peut accorder un droit à un groupe et ses descendants et le refuser pour quelques groupes dans la hiérarchie.

Cette façon de gérer les droits évite la multiplication des groupes et offre beaucoup plus de souplesse.

Les autorisations de droit pour un groupe sont:

  • Allow: pour autoriser le droit au groupe
  • Allow++: pour autoriser le droit au groupe et à ses descendants
  • Deny: pour refuser le droit au groupe
  • Deny++: pour refuser le droit au groupe et à ses descendants

Les autorisations d'un droit pour un utilisateur sont:

  • Allow: pour autoriser le droit à l'utilisateur
  • Deny: pour refuser le droit

Comment dupliquer les droits d'un objet vers un autre?

L'octroi des droits à un objet peut facilement devenir fastidueux surtout si le nombre de groupes est trop important.

Pour éviter cela, ZORNA vous permet de dupliquer les droits d'un objet pour les appliquer à un autre.

Pour cela il suffit de créer le nouvel objet et d'aller à l'interface de création des droits. Sur cette interface, déroulez la listbox pour charger les permissions à partir d'un autre objet. ZORNA charge les droits octroyés à l'objet pour les appliquer au nouvel objet:

Cliquez sur sur le bouton d'enregistrement pour sauvegarder les droits

Concernant les articles, c'est quoi la différence entre publication statique et publication dynamique?

La publication statique ne stocke pas le contenu dans la base de données et ne vérifie pas les droits d'accès à ce contenu. Les articles sont stockés sur le disque et organisés de manière hiérarchique.

Ce type de publication est utile quand vous avez du contenu existant que vous souhaitez reprendre et le mettre à la disposition de tous les visiteurs du site. Dans ce cas vous organisez vos articles dans un répertoire et ZORNA accède aux fichiers en utilisant l'arborescence des contenus. Par exemple, si le contenu  a été organisé comme ci-dessous:

 

ZORNA accède à l'article "articles-publication.html" en utilisant l'URL conviviale suivante:

http://www.zornaproject.com/content/zorna/articles-publication/

( On indique le chemin vers le fichier et on ajoute le nom du fichier sans l'extension HTML )

La publication statique est très utile dans le cas des sites multi langues. On peut créer ainsi des arborescences de fichiers ( en, fr, es, etc... ) et y accéder selon la langue du visiteur.

Généralement, les articles publiés statiquement utilisent les templates.

Quand à la publication dynamique, celle-ci utilise la base de données pour stocker le contenu et l'accès à ces contenus est contrôlé par les droits d'accès.
De même que pour la publication statique, les contenus sont organisés de manière hiérérachique et les URLs utilisées sont conviviales.

Dans le cas de la publication statique, est-ce que je peux indiquer le titre de la page par article?

Bien sûr, il suffit d'inclure dans l'article ces balises:

{% block zorna_title_page %}
ICI LE TITRE DE VOTRE PAGE
{% endblock %}

Comment publier un contenu statique en utilisant les templates?

Le fichiers ( ou articles ) publiés statiquement utilisent le format suivant:

{% extends "base.html" %}
{% load i18n %}

{% block zorna_extrahead %}{{ block.super }}
{% endblock %}

{% block zorna_page_content %}
{% endblock %}

La première balise {% extends "base.html" %} étend le fichier "base.html". C'est à dire hérite son contenu.

La deuxième balise {% load i18n %} est obligatoire pour la traduction.

Si vous souhaiter inclure des fichiers CSS ou JavaScript, il faut utiliser le block zorna_extrahead  comme suit:

{% block zorna_extrahead %}{{ block.super }}
<link rel="stylesheet" href="/skins/{{ ZORNA_SKIN }}/css/jCarousel.css" type="text/css" media="screen" />
{% endblock %}

Enfin le contenu de votre article, vient s'insérer dans la dernière balise:

{% block zorna_page_content %}
<p>Hello, World</p>
{% endblock %}

C'est comment la syntaxe du moteur des templates?

Bases

Le balisage d’affichage est entouré de

{{ deux accolades }}

Ces balises sont remplacées par la variable qu'elles référencent. Par exemple, si dans un template, vous avez une variable current_user:

Bonjour {{current_user}}

affiche, si cette variable contient "François LEDUC":

Bonjour François LEDUC

Le balisage de méthode quand à lui est entouré de:

{% une accolade et le signe pourcentage %}

Par exemple:

{% include "document.html" %}

pour inclure le contenu du fichier "document.html"

Filtres

Les filtres permettent de modifier l'affichage d'une variable. Il en existe plusieurs. Nous donnons quelques uns ici. Pour une documentation complète, consulter le site Built-in template tags and filters.

  • {{ value|upper }} converti la chaîne en majuscule.
  • {{ value|truncatewords:3}} tronque une chaîne après un certain nombre de mots ( ici 3 )
    Si value contient "Le monde est petit", on obtient "Le monde est..."
  • {{ value|date:"format"}} où format utilise le même format que celui de la fonction PHP date().
    On peut en plus spéciier les formats: "DATE_FORMAT", "DATE_TIMEFORMAT", "SHORT_DATE_FORMAT", "LONG_DATE_TIMEFORMAT"
  • etc...

Affectation de variable

{% with var1=23 var2="Bonjour" %}
...
{% endwith %}

Instruction If/Else

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}

Boucle For

{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}


Pour une documentation détaillée du moteur de template, des balises et des filtres, consulter le site de documentation du framework DJANGO.