Commit a55a6b30 authored by chirac's avatar chirac

Merge branch 'fix_frontend' into 'dev'

Fix frontend

See merge request federez/re2o!244
parents ee53be34 602be850
......@@ -35,7 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
<th>{% trans "Cotisation type" %}</th>
<th>{% trans "Duration (month)" %}</th>
<th>{% trans "Concerned users" %}</th>
<th>{% trans "Available for everyone" | tick %}</th>
<th>{% trans "Available for everyone" %}</th>
<th></th>
</tr>
</thead>
......@@ -46,7 +46,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
<td>{{ article.type_cotisation }}</td>
<td>{{ article.duration }}</td>
<td>{{ article.type_user }}</td>
<td>{{ article.available_for_everyone }}</td>
<td>{{ article.available_for_everyone|tick }}</td>
<td class="text-right">
{% can_edit article %}
<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
from django.contrib import messages
from django.http import HttpRequest
from preferences.models import GeneralOption, OptionalMachine
from django.utils.translation import get_language
......@@ -40,7 +40,10 @@ def context_user(request):
else:
global_message = GeneralOption.get_cached_value('general_message_en')
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():
interfaces = user.user_interfaces()
else:
......
......@@ -27,5 +27,7 @@ CONTRIBUTORS = [
'Hugo "Shaka" Hervieux',
'"Mikachu"',
'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"))
with open("re2o/contributors.py", "w") as contrib_file:
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("CONTRIBUTORS = " + str(contributeurs))
......@@ -179,7 +179,7 @@ STATIC_URL = '/static/'
# Directory where the media files served by the server are stored
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
# The URL to access the static files
MEDIA_URL = '/media/'
MEDIA_URL = os.path.join(BASE_DIR,'/media/')
# Models to use for graphs
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
available under a GNU Public License v2 (GPLv2) license on
<a href="https://gitlab.federez.net/federez/re2o/">FedeRez gitlab</a>.<br />
Re2o's mainteners are proud volunteers mainly from French engineering
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 />
Re2o's mainteners are volunteers mainly from French schools. <br />
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
future of Re2o.
......
......@@ -146,7 +146,7 @@ def get_callback(tag_name, obj=None):
if tag_name == 'can_view_app':
return acl_fct(
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
),
False
......@@ -154,7 +154,7 @@ def get_callback(tag_name, obj=None):
if tag_name == 'cannot_view_app':
return acl_fct(
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
),
True
......@@ -171,12 +171,12 @@ def get_callback(tag_name, obj=None):
)
if tag_name == 'can_view_any_app':
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
)
if tag_name == 'cannot_view_any_app':
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
)
......
......@@ -70,7 +70,6 @@ def index(request):
}, 're2o/index.html', request)
@cache_page(7 * 24 * 60 * 60)
def about_page(request):
""" The view for the about page.
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):
"""The view for the contact page
Send all the objects MailContact
......
......@@ -33,6 +33,7 @@ from django.contrib.auth.decorators import login_required
from django.db.models import Q
from users.models import User, Adherent, Club, Ban, Whitelist
from machines.models import Machine
from cotisations.models import Cotisation
from topologie.models import Port, Switch, Room
from cotisations.models import Facture
from preferences.models import GeneralOption
......@@ -44,6 +45,7 @@ from search.forms import (
initial_choices
)
from re2o.utils import SortTable
from re2o.acl import can_view_all
def is_int(variable):
......@@ -405,6 +407,7 @@ def get_results(query, request, params):
@login_required
@can_view_all(User, Machine, Cotisation)
def search(request):
""" La page de recherche standard """
search_form = SearchForm(request.GET or None)
......@@ -422,6 +425,7 @@ def search(request):
@login_required
@can_view_all(User, Machine, Cotisation)
def searchp(request):
""" La page de recherche avancée """
search_form = SearchFormPlus(request.GET or None)
......
......@@ -129,3 +129,21 @@ td.long_text{
th.long_text{
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 class="collapse navbar-collapse" id="myNavbar">
<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 %}
<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>
......@@ -115,15 +106,15 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{% can_view_app logs %}
<li><a href="{% url "logs:index" %}"><i class="fa fa-chart-area"></i> {% trans "Statistics" %}</a></li>
{% acl_end %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% can_view_app preferences %}
<li>
<a href="{% url 'preferences:display-options' %}">
<i class="fa fa-cogs"></i> {% trans "Preferences" %}
<i class="fa fa-cogs"></i> {% trans "Administration" %}
</a>
</li>
{% acl_end %}
</ul>
<ul class="nav navbar-nav navbar-right">
<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>
<ul class="dropdown-menu">
......@@ -132,29 +123,40 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</ul>
</li>
{% if not request.user.is_authenticated %}
{% if var_sa %}
<li>
<a href="{% url 'users:new-user' %}">
<i class="fa fa-user-plus"></i> {% trans "Sign in" %}
</a>
</li>
{% endif %}
<li>
<a id="toggle_login" href="{% url 'login' %}">
<i class="fa fa-sign-in-alt"></i> {% trans "Log in" %}
</a>
</li>
{% if var_sa %}
<li>
<a href="{% url 'users:new-user' %}">
<i class="fa fa-user-plus"></i> {% trans "Sign in" %}
</a>
</li>
{% endif %}
<li>
<a id="toggle_login" href="{% url 'login' %}">
<i class="fa fa-sign-in-alt"></i> {% trans "Log in" %}
</a>
</li>
{% else %}
<li>
<form action="{% url "search:search"%}" class="navbar-form" role="search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name="q" id="search-term" {% if search_term %}value="{{ search_term }}"{% endif %}>
<div class="input-group-btn">
<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>
{% can_view_any_app users machines cotisations %}
<li>
<form action="{% url "search:search"%}" class="navbar-form" role="search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name="q" id="search-term" {% if search_term %}value="{{ search_term }}"{% endif %}>
<div class="input-group-btn">
<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>
</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>
{% endif %}
<li>
......@@ -252,7 +254,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
<footer class="navbar">
<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>
</footer>
{# 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 content %}
<div align="center">
<h2>Welcome {{ users.name }} {{ users.surname }}</h2>
<div align="center" class="title-dashboard">
{% if user == users %}
<h2>Welcome {{ users.name }} {{ users.surname }}</h2>
{% else %}
<h2>Profil de {{ users.name }} {{ users.surname }}</h2>
{% endif %}
</div>
<div class="dashboard_container">
<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-heading dashboard">Your account has been banned</div>
<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>
{% 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-heading dashboard">Connected</div>
<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>
{% 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="panel panel-info">
<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 class="panel-body dashboard">
<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>
</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 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" >
<i class="fa fa-user"></i> Informations détaillées
</h3>
......@@ -303,7 +307,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
{% endif %}
<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">
<i class="fa fa-desktop"></i>
Machines
......@@ -327,7 +331,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
</div>
<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">
<i class="fa fa-euro-sign"></i>
Cotisations
......@@ -358,7 +362,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
</div>
<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">
<i class="fa fa-ban"></i>
Bannissements
......@@ -383,7 +387,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
</div>
<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">
<i class="fa fa-check-circle"></i>
Accès à titre gracieux
......@@ -408,7 +412,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
</div>
<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">
<i class="fa fa-envelope"></i> Email settings
</h3>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment