Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
109e23ce
Commit
109e23ce
authored
Jun 20, 2016
by
Skia
Browse files
Update report, again
parent
aa92bc94
Pipeline
#38
passed with stage
in 1 minute and 8 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
doc/TW_Skia/Rapport.tex
View file @
109e23ce
...
...
@@ -308,35 +308,37 @@ tous les autres.
\subsection
{
Exemple de template Jinja
2
}
\label
{
sub:exemple
_
de
_
template
_
jinja
2
}
\begin
{
addmargin
}
[-
7
em
]
{
0
em
}
\begin
{
addmargin
}
[-
4
em
]
{
0
em
}
\begin
{
minted
}{
jinja
}
{
% extends "core/base.jinja" %}
{
% extends "core/base.jinja" %}
{# (1) #}
{
% block title %}
{{
user.get
_
display
_
name
()
}}
's tools
{
% block title %}
{# (2) #}
{{
user.get
_
display
_
name
()
}}
's tools
{
#
(
3
)
#
}
{
% endblock %}
{
% block content %}
<h
3
>User Tools<
/
h
3
>
<p><a href
=
"
{{
url
(
'core:user
_
profile', user
_
id
=
request.user.id
)
}}
">Back to profile<
/
a><
/
p>
<p><a href
=
"
{{
url
(
'core:user
_
profile', user
_
id
=
request.user.id
)
}}{
#
(
4
)
#
}
">
Back to profile<
/
a>
<
/
p>
<h
4
>Sith management<
/
h
4
>
<ul>
{
% if user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
{
% if user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
{# (5) #}
<li><a href
=
"
{{
url
(
'core:group
_
list'
)
}}
">Groups<
/
a><
/
li>
{
% endif %}
{
% if user.is_in_group(settings.SITH_GROUPS['accounting-admin']['name']) %}
<li><a href
=
"
{{
url
(
'accounting:bank
_
list'
)
}}
">Accounting<
/
a><
/
li>
{
% endif %}
{
% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_in_group(settings.SITH_GROUPS['root']['name']) %}
{
% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or
user.is
_
in
_
group
(
settings.SITH
_
GROUPS
[
'root'
][
'name'
])
%}
<li><a href
=
"
{{
url
(
'subscription:subscription'
)
}}
">Subscriptions<
/
a><
/
li>
<li><a href
=
"
{{
url
(
'counter:admin
_
list'
)
}}
">Counters management<
/
a><
/
li>
{
% endif %}
<
/
ul>
<h
4
>Clubs<
/
h
4
>
<ul>
{
% for m in user.membership.filter(end_date=None).all() %}
{
% for m in user.membership.filter(end_date=None).all() %}
{# (6) #}
<li><a href
=
"
{{
url
(
'club:tools', club
_
id
=
m.club.id
)
}}
">
{{
m.club
}}
<
/
a><
/
li>
{
% endfor %}
<
/
ul>
...
...
@@ -344,20 +346,60 @@ tous les autres.
\end
{
minted
}
\end
{
addmargin
}
\begin
{
description
}
\item
[(
1
)]
Nous faisons ici une extension d'un template existant afin de bénéficier des blocs déjà défini, et afin
d'intégrer le contenu de ce template dans celui déjà défini.
\item
[(
2
)]
\verb
#title# est un bloc défini dans le template
\verb
#base.jinja#. Le redéfinir joue alors le même rôle
qu'une surcharge de méthode dans de l'héritage, et permet de remplacer le contenu du bloc, tout en conservant sa
place dans le template parent.
\item
[(
3
)]
La variable
\verb
#user# faisant ici partie du contexte, nous pouvons donc appeler une de ses méthodes
pour obtenir un contenu dynamiquement.
\item
[(
4
)]
L'appel à la fonction
\verb
#url
()
# permet de résoudre la route afin d'obtenir l'adresse appropriée en
fonction des arguments passé. Cette fonction fait généralement partie du contexte global, et est donc accessible
dans tous les templates.
\item
[(
5
)]
Les structures conditionnelles permettent d'afficher ou pas un élément en fonction de la valeur d'une
variable ou du retour d'une fonction.
\item
[(
6
)]
Le
\verb
#for# permet, comme en Python, d'itérer sur les éléments d'une liste. Ici, on fait même une
requête via l'ORM de
\emph
{
Django
}
en utilisant un filtre pour obtenir directement des valeurs depuis la base de
donnée de manière transparente.
\end
{
description
}
% TODO: bases des templates Jinja2
\subsection
{
Le contexte
}
\label
{
sub:le
_
contexte
}
\par
Le contexte dans lequel le template s'execute influe beaucoup sur la capacité de
\emph
{
Jinja
}
à s'adapter
dynamiquement au contenu. Plus on a de variables disponibles, plus on va pouvoir générer un contenu s'y adaptant.
\par
Il est possible de définir le contexte global, et donc ce qui est accessible dans tous les templates, comme il est
possible d'ajouter manuellement et spécifiquement des variables au contexte pour un template particulier, dans une vue
particulière.
\chapter
{
Organisation du projet
}
\label
{
cha:organisation
_
du
_
projet
}
\section
{
Le repertoire `sith`
}
\label
{
sec:le
_
repertoire
_
sith
}
\par
Après cette présentations des différentes technologies employées dans le projet, passons maintenant à une partie plus
spécifique à Sith en lui même.
\section
{
Les options spécifiques
}
\label
{
sec:les
_
options
_
sp
_
cifiques
}
\subsection
{
Django
-
jinja
}
\label
{
sub:django
_
jinja
}
\par
\emph
{
Jinja
}
n'étant pas inclus de base dans
\emph
{
Django
}
, le paquet
\emph
{
Django
-
jinja
}
a été mis en place afin
de bénéficier au mieux des performances de chacun, comme les filtres personnalisés de
\emph
{
Django
}
dans la puissance des
macros de
\emph
{
Jinja
}
. Tout cela se trouve dans la variable
\verb
#TEMPLATES#.
\par
\emph
{
Jinja
}
a été ajouté afin de s'occuper uniquement des fichiers ayant l'extension
\verb
#.jinja# dans les
dossiers
\verb
#templates# de chaque application.
\par
% TODO parler des variables ajoutées au contexte global
\section
{
Les commandes ajoutées
}
\label
{
sec:les
_
commandes
_
ajout
_
es
}
\subsection
{
setup
}
\label
{
sub:setup
}
\subsection
{
Les options
}
\label
{
sub:
les
_
options
}
\subsection
{
populate
}
\label
{
sub:
populate
}
% settings.py
\chapter
{
Les applications
}
\label
{
cha:les
_
applications
}
...
...
sith/settings.py
View file @
109e23ce
...
...
@@ -65,7 +65,6 @@ TEMPLATES = [
"BACKEND"
:
"django_jinja.backend.Jinja2"
,
"APP_DIRS"
:
True
,
"OPTIONS"
:
{
# Match the template names ending in .html but not the ones in the admin folder.
"match_extension"
:
".jinja"
,
"app_dirname"
:
"templates"
,
"newstyle_gettext"
:
True
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment