mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-27 15:12:25 +00:00
Merge branch 'fix_frontend' into 'dev'
Fix frontend See merge request federez/re2o!244
This commit is contained in:
commit
a55a6b3052
12 changed files with 91 additions and 62 deletions
|
@ -35,7 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<th>{% trans "Cotisation type" %}</th>
|
<th>{% trans "Cotisation type" %}</th>
|
||||||
<th>{% trans "Duration (month)" %}</th>
|
<th>{% trans "Duration (month)" %}</th>
|
||||||
<th>{% trans "Concerned users" %}</th>
|
<th>{% trans "Concerned users" %}</th>
|
||||||
<th>{% trans "Available for everyone" | tick %}</th>
|
<th>{% trans "Available for everyone" %}</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -46,7 +46,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<td>{{ article.type_cotisation }}</td>
|
<td>{{ article.type_cotisation }}</td>
|
||||||
<td>{{ article.duration }}</td>
|
<td>{{ article.duration }}</td>
|
||||||
<td>{{ article.type_user }}</td>
|
<td>{{ article.type_user }}</td>
|
||||||
<td>{{ article.available_for_everyone }}</td>
|
<td>{{ article.available_for_everyone|tick }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% can_edit article %}
|
{% can_edit article %}
|
||||||
<a class="btn btn-primary btn-sm" role="button" title="{% trans "Edit" %}" href="{% url 'cotisations:edit-article' article.id %}">
|
<a class="btn btn-primary btn-sm" role="button" title="{% trans "Edit" %}" href="{% url 'cotisations:edit-article' article.id %}">
|
||||||
|
|
|
@ -26,7 +26,7 @@ from __future__ import unicode_literals
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
from django.http import HttpRequest
|
||||||
from preferences.models import GeneralOption, OptionalMachine
|
from preferences.models import GeneralOption, OptionalMachine
|
||||||
from django.utils.translation import get_language
|
from django.utils.translation import get_language
|
||||||
|
|
||||||
|
@ -40,7 +40,10 @@ def context_user(request):
|
||||||
else:
|
else:
|
||||||
global_message = GeneralOption.get_cached_value('general_message_en')
|
global_message = GeneralOption.get_cached_value('general_message_en')
|
||||||
if global_message:
|
if global_message:
|
||||||
messages.warning(request, global_message)
|
if isinstance(request, HttpRequest):
|
||||||
|
messages.warning(request, global_message)
|
||||||
|
else:
|
||||||
|
messages.warning(request._request, global_message)
|
||||||
if user.is_authenticated():
|
if user.is_authenticated():
|
||||||
interfaces = user.user_interfaces()
|
interfaces = user.user_interfaces()
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -27,5 +27,7 @@ CONTRIBUTORS = [
|
||||||
'Hugo "Shaka" Hervieux',
|
'Hugo "Shaka" Hervieux',
|
||||||
'"Mikachu"',
|
'"Mikachu"',
|
||||||
'Thomas "Nymous" Gaudin',
|
'Thomas "Nymous" Gaudin',
|
||||||
'"Esum"'
|
'Benjamin "Esum" Graillot',
|
||||||
|
'Gabriel "Boudy" Le Bouder',
|
||||||
|
'Charlie "Le membre" Jacomme',
|
||||||
]
|
]
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Command(BaseCommand):
|
||||||
self.stdout.write(self.style.SUCCESS("Exportation Sucessfull"))
|
self.stdout.write(self.style.SUCCESS("Exportation Sucessfull"))
|
||||||
with open("re2o/contributors.py", "w") as contrib_file:
|
with open("re2o/contributors.py", "w") as contrib_file:
|
||||||
contrib_file.write("\"\"\"re2o.contributors\n")
|
contrib_file.write("\"\"\"re2o.contributors\n")
|
||||||
contrib_file.write("A list of the proud contributors to Re2o\n")
|
contrib_file.write("A list of the contributors to Re2o\n")
|
||||||
contrib_file.write("\"\"\"\n")
|
contrib_file.write("\"\"\"\n")
|
||||||
contrib_file.write("\n")
|
contrib_file.write("\n")
|
||||||
contrib_file.write("CONTRIBUTORS = " + str(contributeurs))
|
contrib_file.write("CONTRIBUTORS = " + str(contributeurs))
|
||||||
|
|
|
@ -179,7 +179,7 @@ STATIC_URL = '/static/'
|
||||||
# Directory where the media files served by the server are stored
|
# Directory where the media files served by the server are stored
|
||||||
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
|
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
|
||||||
# The URL to access the static files
|
# The URL to access the static files
|
||||||
MEDIA_URL = '/media/'
|
MEDIA_URL = os.path.join(BASE_DIR,'/media/')
|
||||||
|
|
||||||
# Models to use for graphs
|
# Models to use for graphs
|
||||||
GRAPH_MODELS = {
|
GRAPH_MODELS = {
|
||||||
|
|
|
@ -42,9 +42,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
so it can be setup in "a few steps". This tool is entirely free and
|
so it can be setup in "a few steps". This tool is entirely free and
|
||||||
available under a GNU Public License v2 (GPLv2) license on
|
available under a GNU Public License v2 (GPLv2) license on
|
||||||
<a href="https://gitlab.federez.net/federez/re2o/">FedeRez gitlab</a>.<br />
|
<a href="https://gitlab.federez.net/federez/re2o/">FedeRez gitlab</a>.<br />
|
||||||
Re2o's mainteners are proud volunteers mainly from French engineering
|
Re2o's mainteners are volunteers mainly from French schools. <br />
|
||||||
schools (but not limited to) who have given a lot of their time to make
|
|
||||||
this project possible. So please be kind with them.<br />
|
|
||||||
If you want to get involved in the development process, we will be glad to
|
If you want to get involved in the development process, we will be glad to
|
||||||
welcome you so do not hesitate to contact us and come help us build the
|
welcome you so do not hesitate to contact us and come help us build the
|
||||||
future of Re2o.
|
future of Re2o.
|
||||||
|
|
|
@ -146,7 +146,7 @@ def get_callback(tag_name, obj=None):
|
||||||
if tag_name == 'can_view_app':
|
if tag_name == 'can_view_app':
|
||||||
return acl_fct(
|
return acl_fct(
|
||||||
lambda x: (
|
lambda x: (
|
||||||
not any(not sys.modules[o].can_view(x) for o in obj),
|
not any(not sys.modules[o].can_view(x)[0] for o in obj),
|
||||||
None
|
None
|
||||||
),
|
),
|
||||||
False
|
False
|
||||||
|
@ -154,7 +154,7 @@ def get_callback(tag_name, obj=None):
|
||||||
if tag_name == 'cannot_view_app':
|
if tag_name == 'cannot_view_app':
|
||||||
return acl_fct(
|
return acl_fct(
|
||||||
lambda x: (
|
lambda x: (
|
||||||
not any(not sys.modules[o].can_view(x) for o in obj),
|
not any(not sys.modules[o].can_view(x)[0] for o in obj),
|
||||||
None
|
None
|
||||||
),
|
),
|
||||||
True
|
True
|
||||||
|
@ -171,12 +171,12 @@ def get_callback(tag_name, obj=None):
|
||||||
)
|
)
|
||||||
if tag_name == 'can_view_any_app':
|
if tag_name == 'can_view_any_app':
|
||||||
return acl_fct(
|
return acl_fct(
|
||||||
lambda x: (any(sys.modules[o].can_view(x) for o in obj), None),
|
lambda x: (any(sys.modules[o].can_view(x)[0] for o in obj), None),
|
||||||
False
|
False
|
||||||
)
|
)
|
||||||
if tag_name == 'cannot_view_any_app':
|
if tag_name == 'cannot_view_any_app':
|
||||||
return acl_fct(
|
return acl_fct(
|
||||||
lambda x: (any(sys.modules[o].can_view(x) for o in obj), None),
|
lambda x: (any(sys.modules[o].can_view(x)[0] for o in obj), None),
|
||||||
True
|
True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,6 @@ def index(request):
|
||||||
}, 're2o/index.html', request)
|
}, 're2o/index.html', request)
|
||||||
|
|
||||||
|
|
||||||
@cache_page(7 * 24 * 60 * 60)
|
|
||||||
def about_page(request):
|
def about_page(request):
|
||||||
""" The view for the about page.
|
""" The view for the about page.
|
||||||
Fetch some info about the configuration of the project. If it can't
|
Fetch some info about the configuration of the project. If it can't
|
||||||
|
@ -108,7 +107,6 @@ def about_page(request):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def contact_page(request):
|
def contact_page(request):
|
||||||
"""The view for the contact page
|
"""The view for the contact page
|
||||||
Send all the objects MailContact
|
Send all the objects MailContact
|
||||||
|
|
|
@ -33,6 +33,7 @@ from django.contrib.auth.decorators import login_required
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from users.models import User, Adherent, Club, Ban, Whitelist
|
from users.models import User, Adherent, Club, Ban, Whitelist
|
||||||
from machines.models import Machine
|
from machines.models import Machine
|
||||||
|
from cotisations.models import Cotisation
|
||||||
from topologie.models import Port, Switch, Room
|
from topologie.models import Port, Switch, Room
|
||||||
from cotisations.models import Facture
|
from cotisations.models import Facture
|
||||||
from preferences.models import GeneralOption
|
from preferences.models import GeneralOption
|
||||||
|
@ -44,6 +45,7 @@ from search.forms import (
|
||||||
initial_choices
|
initial_choices
|
||||||
)
|
)
|
||||||
from re2o.utils import SortTable
|
from re2o.utils import SortTable
|
||||||
|
from re2o.acl import can_view_all
|
||||||
|
|
||||||
|
|
||||||
def is_int(variable):
|
def is_int(variable):
|
||||||
|
@ -405,6 +407,7 @@ def get_results(query, request, params):
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@can_view_all(User, Machine, Cotisation)
|
||||||
def search(request):
|
def search(request):
|
||||||
""" La page de recherche standard """
|
""" La page de recherche standard """
|
||||||
search_form = SearchForm(request.GET or None)
|
search_form = SearchForm(request.GET or None)
|
||||||
|
@ -422,6 +425,7 @@ def search(request):
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@can_view_all(User, Machine, Cotisation)
|
||||||
def searchp(request):
|
def searchp(request):
|
||||||
""" La page de recherche avancée """
|
""" La page de recherche avancée """
|
||||||
search_form = SearchFormPlus(request.GET or None)
|
search_form = SearchFormPlus(request.GET or None)
|
||||||
|
|
|
@ -129,3 +129,21 @@ td.long_text{
|
||||||
th.long_text{
|
th.long_text{
|
||||||
width: 60%;
|
width: 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* change color of panel heading on hover */
|
||||||
|
|
||||||
|
.panel > .profil:hover {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add padding under title in profile */
|
||||||
|
.title-dashboard{
|
||||||
|
padding-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* center the profil boxes */
|
||||||
|
.dashboard{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
|
@ -76,15 +76,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
<div class="collapse navbar-collapse" id="myNavbar">
|
<div class="collapse navbar-collapse" id="myNavbar">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-user-circle"></i> {{request.user.pseudo|slice:":15"}} <span class="caret"></span></a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="{% url "users:mon-profil" %}"><i class="fa fa-user"></i> {% trans "My profile" %}</a></li>
|
|
||||||
<li><a id="toggle_login" href="{% url 'logout' %}"><i class="fa fa-sign-out-alt"></i> {% trans "Log out" %}</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% can_view_any_app users machines cotisations %}
|
{% can_view_any_app users machines cotisations %}
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-users"></i> {% trans "Members" %}<span class="caret"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-users"></i> {% trans "Members" %}<span class="caret"></span></a>
|
||||||
|
@ -115,15 +106,15 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
{% can_view_app logs %}
|
{% can_view_app logs %}
|
||||||
<li><a href="{% url "logs:index" %}"><i class="fa fa-chart-area"></i> {% trans "Statistics" %}</a></li>
|
<li><a href="{% url "logs:index" %}"><i class="fa fa-chart-area"></i> {% trans "Statistics" %}</a></li>
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
</ul>
|
|
||||||
<ul class="nav navbar-nav navbar-right">
|
|
||||||
{% can_view_app preferences %}
|
{% can_view_app preferences %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'preferences:display-options' %}">
|
<a href="{% url 'preferences:display-options' %}">
|
||||||
<i class="fa fa-cogs"></i> {% trans "Preferences" %}
|
<i class="fa fa-cogs"></i> {% trans "Administration" %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fas fa-info"></i> {% trans "Info" %}<span class="caret"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fas fa-info"></i> {% trans "Info" %}<span class="caret"></span></a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
|
@ -132,29 +123,40 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% if not request.user.is_authenticated %}
|
{% if not request.user.is_authenticated %}
|
||||||
{% if var_sa %}
|
{% if var_sa %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'users:new-user' %}">
|
<a href="{% url 'users:new-user' %}">
|
||||||
<i class="fa fa-user-plus"></i> {% trans "Sign in" %}
|
<i class="fa fa-user-plus"></i> {% trans "Sign in" %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li>
|
<li>
|
||||||
<a id="toggle_login" href="{% url 'login' %}">
|
<a id="toggle_login" href="{% url 'login' %}">
|
||||||
<i class="fa fa-sign-in-alt"></i> {% trans "Log in" %}
|
<i class="fa fa-sign-in-alt"></i> {% trans "Log in" %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li>
|
{% can_view_any_app users machines cotisations %}
|
||||||
<form action="{% url "search:search"%}" class="navbar-form" role="search">
|
<li>
|
||||||
<div class="input-group">
|
<form action="{% url "search:search"%}" class="navbar-form" role="search">
|
||||||
<input type="text" class="form-control" placeholder="Search" name="q" id="search-term" {% if search_term %}value="{{ search_term }}"{% endif %}>
|
<div class="input-group">
|
||||||
<div class="input-group-btn">
|
<input type="text" class="form-control" placeholder="Search" name="q" id="search-term" {% if search_term %}value="{{ search_term }}"{% endif %}>
|
||||||
<button class="btn btn-default" type="submit"><i class="fa fa-search"></i></button>
|
<div class="input-group-btn">
|
||||||
<a href="{% url "search:searchp" %}" class="btn btn-default" role="button"><i class="fa fa-plus"></i></a>
|
<button class="btn btn-default" type="submit"><i class="fa fa-search"></i></button>
|
||||||
|
<a href="{% url "search:searchp" %}" class="btn btn-default" role="button"><i class="fa fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
</li>
|
||||||
|
{% acl_end %}
|
||||||
|
{% endif %}
|
||||||
|
{% if request.user.is_authenticated %}
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-user-circle"></i> {{request.user.pseudo|slice:":15"}} <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="{% url "users:mon-profil" %}"><i class="fa fa-user"></i> {% trans "My profile" %}</a></li>
|
||||||
|
<li><a id="toggle_login" href="{% url 'logout' %}"><i class="fa fa-sign-out-alt"></i> {% trans "Log out" %}</a></li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li>
|
<li>
|
||||||
|
@ -252,7 +254,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
<footer class="navbar">
|
<footer class="navbar">
|
||||||
<div class="containerfluid text-center">
|
<div class="containerfluid text-center">
|
||||||
<p> <a href="\\{{request.get_host}}/about/">Re2o 2016-2018</a> - Gabriel Détraz, <a href="https://gitlab.rezometz.org/lhark">Goulven Kermarec</a>, Augustin Lemesle, Maël Kervella, Hugo Levy-Falk</p>
|
<p> <a href="\\{{request.get_host}}/about/">Re2o 2016-2018</a> </p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
{# Read the documentation for more information #}
|
{# Read the documentation for more information #}
|
||||||
|
|
|
@ -31,8 +31,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
{% block title %}Profil{% endblock %}
|
{% block title %}Profil{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div align="center">
|
<div align="center" class="title-dashboard">
|
||||||
<h2>Welcome {{ users.name }} {{ users.surname }}</h2>
|
{% if user == users %}
|
||||||
|
<h2>Welcome {{ users.name }} {{ users.surname }}</h2>
|
||||||
|
{% else %}
|
||||||
|
<h2>Profil de {{ users.name }} {{ users.surname }}</h2>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="dashboard_container">
|
<div class="dashboard_container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -41,7 +45,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<div class="panel panel-danger">
|
<div class="panel panel-danger">
|
||||||
<div class="panel-heading dashboard">Your account has been banned</div>
|
<div class="panel-heading dashboard">Your account has been banned</div>
|
||||||
<div class="panel-body dashboard">
|
<div class="panel-body dashboard">
|
||||||
<i class="text-danger">End of the ban: {{ user.end_ban | date:"SHORT_DATE_FORMAT" }}</i>
|
<i class="text-danger">End of the ban: {{ users.end_ban | date:"SHORT_DATE_FORMAT" }}</i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% elif not users.is_adherent %}
|
{% elif not users.is_adherent %}
|
||||||
|
@ -61,7 +65,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<div class="panel panel-success">
|
<div class="panel panel-success">
|
||||||
<div class="panel-heading dashboard">Connected</div>
|
<div class="panel-heading dashboard">Connected</div>
|
||||||
<div class="panel-body dashboard">
|
<div class="panel-body dashboard">
|
||||||
<i class="text-success">End of connexion: {{ user.end_adhesion | date:"SHORT_DATE_FORMAT"}}</i>
|
<i class="text-success">End of connexion: {{ users.end_adhesion | date:"SHORT_DATE_FORMAT"}}</i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -70,11 +74,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<div class="col-sm-6 col-md-4">
|
<div class="col-sm-6 col-md-4">
|
||||||
<div class="panel panel-info">
|
<div class="panel panel-info">
|
||||||
<div class="panel-heading dashboard" data-parent="#accordion" data-toggle="collapse" data-target="#collapse4">
|
<div class="panel-heading dashboard" data-parent="#accordion" data-toggle="collapse" data-target="#collapse4">
|
||||||
€ {{ user.solde }}
|
{{ users.solde }} <i class="fas fa-euro-sign"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body dashboard">
|
<div class="panel-body dashboard">
|
||||||
<a class="btn btn-primary btn-sm" role="button" href="{% url 'cotisations:credit-solde' users.id %}">
|
<a class="btn btn-primary btn-sm" role="button" href="{% url 'cotisations:credit-solde' users.id %}">
|
||||||
<i class="fa fa-euro-sign"></i> Pay for the balance
|
<i class="fa fa-euro-sign"></i> Recharger
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -110,7 +114,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
<div class="panel-group" id="accordion">
|
<div class="panel-group" id="accordion">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse1">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse1">
|
||||||
<h3 class="panel-title pull-left" >
|
<h3 class="panel-title pull-left" >
|
||||||
<i class="fa fa-user"></i> Informations détaillées
|
<i class="fa fa-user"></i> Informations détaillées
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -303,7 +307,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse3">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse3">
|
||||||
<h3 class="panel-title pull-left">
|
<h3 class="panel-title pull-left">
|
||||||
<i class="fa fa-desktop"></i>
|
<i class="fa fa-desktop"></i>
|
||||||
Machines
|
Machines
|
||||||
|
@ -327,7 +331,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse4">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse4">
|
||||||
<h3 class="panel-title pull-left">
|
<h3 class="panel-title pull-left">
|
||||||
<i class="fa fa-euro-sign"></i>
|
<i class="fa fa-euro-sign"></i>
|
||||||
Cotisations
|
Cotisations
|
||||||
|
@ -358,7 +362,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse5">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse5">
|
||||||
<h3 class="panel-title pull-left">
|
<h3 class="panel-title pull-left">
|
||||||
<i class="fa fa-ban"></i>
|
<i class="fa fa-ban"></i>
|
||||||
Bannissements
|
Bannissements
|
||||||
|
@ -383,7 +387,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse6">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse6">
|
||||||
<h3 class="panel-title pull-left">
|
<h3 class="panel-title pull-left">
|
||||||
<i class="fa fa-check-circle"></i>
|
<i class="fa fa-check-circle"></i>
|
||||||
Accès à titre gracieux
|
Accès à titre gracieux
|
||||||
|
@ -408,7 +412,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading clearfix" data-parent="#accordion" data-toggle="collapse" data-target="#collapse7">
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#collapse7">
|
||||||
<h3 class="panel-title pull-left">
|
<h3 class="panel-title pull-left">
|
||||||
<i class="fa fa-envelope"></i> Email settings
|
<i class="fa fa-envelope"></i> Email settings
|
||||||
</h3>
|
</h3>
|
||||||
|
|
Loading…
Reference in a new issue