mirror of https://gitlab.federez.net/re2o/re2o
committed by
klafyvel
18 changed files with 736 additions and 1 deletions
@ -0,0 +1,33 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2019 Gabriel Détraz |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
The database models for the 'apps' app of re2o. |
||||
|
|
||||
|
For further details on each of those models, see the documentation details for |
||||
|
each. |
||||
|
""" |
||||
|
|
||||
|
|
||||
|
from django.apps import AppConfig |
||||
|
|
||||
|
|
||||
|
class MultiOpConfig(AppConfig): |
||||
|
name = 'multi_op' |
||||
@ -0,0 +1,54 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2017 Gabriel Détraz |
||||
|
# Copyright © 2017 Goulven Kermarec |
||||
|
# Copyright © 2017 Augustin Lemesle |
||||
|
# Copyright © 2017 Maël Kervella |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
Select a dorm |
||||
|
""" |
||||
|
|
||||
|
|
||||
|
from django import forms |
||||
|
from django.forms import ModelForm, Form |
||||
|
from re2o.field_permissions import FieldPermissionFormMixin |
||||
|
from re2o.mixins import FormRevMixin |
||||
|
from django.utils.translation import ugettext_lazy as _ |
||||
|
|
||||
|
from topologie.models import( |
||||
|
Dormitory, |
||||
|
) |
||||
|
|
||||
|
|
||||
|
class DormitoryForm(FormRevMixin, Form): |
||||
|
"""Select a dorm""" |
||||
|
dormitory = forms.ModelMultipleChoiceField( |
||||
|
queryset=Dormitory.objects.all(), |
||||
|
label=_("Dormitory"), |
||||
|
widget=forms.CheckboxSelectMultiple, |
||||
|
required=False |
||||
|
) |
||||
|
|
||||
|
def __init__(self, *args, **kwargs): |
||||
|
super(DormitoryForm, self).__init__(*args, **kwargs) |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,39 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2019 Gabriel Détraz |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
The database models for the 'preference' app of re2o. |
||||
|
|
||||
|
For further details on each of those models, see the documentation details for |
||||
|
each. |
||||
|
""" |
||||
|
|
||||
|
|
||||
|
from django import forms |
||||
|
from django.forms import ModelForm, Form |
||||
|
from django.utils.translation import ugettext_lazy as _ |
||||
|
|
||||
|
from .models import Preferences |
||||
|
|
||||
|
class EditPreferencesForm(ModelForm): |
||||
|
""" Edit the ticket's settings""" |
||||
|
class Meta: |
||||
|
model = Preferences |
||||
|
fields = '__all__' |
||||
@ -0,0 +1,40 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2019 Gabriel Détraz |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
Fichier définissant les administration des models de preference |
||||
|
""" |
||||
|
|
||||
|
|
||||
|
from django.db import models |
||||
|
from django.utils.translation import ugettext_lazy as _ |
||||
|
|
||||
|
class Preferences(models.Model): |
||||
|
""" Definition of the app settings""" |
||||
|
|
||||
|
enabled_dorm = models.ManyToManyField( |
||||
|
'topologie.Dormitory', |
||||
|
related_name='vlan_tagged', |
||||
|
blank=True, |
||||
|
verbose_name=_("Enabled dorm") |
||||
|
) |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name = _("Dormitory of connection settings") |
||||
@ -0,0 +1,69 @@ |
|||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load acl %} |
||||
|
{% load logs_extra %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% if room_list.paginator %} |
||||
|
{% include 'pagination.html' with list=room_list %} |
||||
|
{% endif %} |
||||
|
|
||||
|
<table class="table table-striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
{% trans "Room" as tr_room %} |
||||
|
{% trans "Building" as tr_building %} |
||||
|
<th>{% include 'buttons/sort.html' with prefix='building' col='name' text=tr_building %}</th> |
||||
|
<th>{% include 'buttons/sort.html' with prefix='room' col='name' text=tr_room %}</th> |
||||
|
<th>{% trans "Connnected on" %}</th> |
||||
|
<th>{% trans "User" %}</th> |
||||
|
<th>{% trans "Details" %}</th> |
||||
|
<th>{% trans "End of subscription on" %}</th> |
||||
|
<th>{% trans "Internet access" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
{% for room in room_list %} |
||||
|
<tr> |
||||
|
<td>{{ room.building }}</td> |
||||
|
<td>{{ room.name }}</td> |
||||
|
<td>{% if room.port_set.all %}<span class="label label-success">AURORE{% else %}<span class="label label-danger">{% trans "Other operator" %}{% endif %}</span></td> |
||||
|
<td>{% if room.adherent %}<a href="{% url 'users:profil' room.adherent.id%}">{{ room.adherent }}</a>{% else %} {% trans "Aucun" %}{% endif %}</td> |
||||
|
<td>{{ room.details }}</td> |
||||
|
<td>{% if room.user.is_adherent %}{{ room.user.end_adhesion }}{% else %}{% trans "Not a member" %}{% endif %}</td> |
||||
|
<td> |
||||
|
{% if room.user.has_access == True %} |
||||
|
<i class="text-success">{% trans "Active" %}</i> |
||||
|
{% else %} |
||||
|
<i class="text-danger">{% trans "Disabled" %}</i> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
|
||||
|
{% if room_list.paginator %} |
||||
|
{% include 'pagination.html' with list=room_list %} |
||||
|
{% endif %} |
||||
|
|
||||
@ -0,0 +1,48 @@ |
|||||
|
{% extends 'machines/sidebar.html' %} |
||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
Copyright © 2017 Maël Kervella |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load bootstrap3 %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block title %}{% trans "Ticket" %}{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<h2> {% trans "Tickets settings modification" %}</h2> |
||||
|
|
||||
|
{% for message in messages %} |
||||
|
<div class="{{ message| bootstrap_message_classes }} alert-dismissable"> |
||||
|
<button type="button" class="close" data_dismiss="alert" aria-hidden="true">}</button> |
||||
|
{{ message | safe }} |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
|
||||
|
<form class="form" method="post"> |
||||
|
{% csrf_token %} |
||||
|
{% bootstrap_field preferencesform.publish_address %} |
||||
|
{% bootstrap_field preferencesform.mail_language %} |
||||
|
{% bootstrap_button "Editer" button_type="submit" icon='ok' button_class='btn-success' %} |
||||
|
</form> |
||||
|
{% endblock %} |
||||
@ -0,0 +1,58 @@ |
|||||
|
{% extends 'machines/sidebar.html' %} |
||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
Copyright © 2017 Maël Kervella |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load bootstrap3 %} |
||||
|
{% load massive_bootstrap_form %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block title %}{% trans "Ticket" %}{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<h2> Ouverture d'un Ticket </h2> |
||||
|
|
||||
|
<form class="form" method="post"> |
||||
|
{% csrf_token %} |
||||
|
{% if not user.is_authenticated %} |
||||
|
<p>{% trans "Vous n'êtes pas authentifié. Veuillez fournir une adresse mail afin que nous puissions vous recontacter." %}</p> |
||||
|
{% bootstrap_field ticketform.email %} |
||||
|
{% endif %} |
||||
|
{% bootstrap_field ticketform.title %} |
||||
|
<br> |
||||
|
<p>{% trans "Description de votre problème. Veuillez fournir le plus d'informations possible afin de faciliter la recherche de solution. Voici quelques informations dont nous pourions avoir besoin:" %}</p> |
||||
|
<ul class="list"> |
||||
|
<li> |
||||
|
<p> {% trans "Le type de votre problème (adhesion, connexion, paiement ou autre)." %}</p> |
||||
|
</li> |
||||
|
<li> |
||||
|
<p> {% trans "Les conditions dans lesquelles vous rencontrez le problème (Wifi/filaire, sur tout les apareils ou sur un seul. Est-ce une nouvelle machine ?" %}</p> |
||||
|
</li> |
||||
|
<li> |
||||
|
<p> {% trans "Les endroits dans lequels le problème survient (chez vous, dans une partie commune, dans un batiment en particulier)." %}</p> |
||||
|
</ul> |
||||
|
{% bootstrap_field ticketform.description %} |
||||
|
{% bootstrap_button "Ouvrir le Ticket" button_type="submit" icon='ok' button_class='btn-success' %} |
||||
|
</form> |
||||
|
{% endblock %} |
||||
@ -0,0 +1,34 @@ |
|||||
|
{% extends 'users/sidebar.html' %} |
||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load bootstrap3 %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block title%}{% trans "Tickets" %}{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<h2>{% trans "Tickets" %}</h2> |
||||
|
{% include 'tickets/aff_tickets.html' with tickets_list=tickets_list %} |
||||
|
{% endblock %} |
||||
@ -0,0 +1,53 @@ |
|||||
|
{% extends 'multi_op/sidebar.html' %} |
||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load bootstrap3 %} |
||||
|
{% load acl %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block title %}{% trans "Multi Operators" %}{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
|
||||
|
{% if dormitory_form %} |
||||
|
{% bootstrap_form_errors dormitory_form %} |
||||
|
{% endif %} |
||||
|
|
||||
|
<h2>{% trans "Rooms connections" %}</h2> |
||||
|
|
||||
|
{% if dormitory_form %} |
||||
|
<form class="form" method="post"> |
||||
|
{% csrf_token %} |
||||
|
{% bootstrap_form dormitory_form %} |
||||
|
{% bootstrap_button "Select Dormitory" icon='ok' button_class='btn-success' %} |
||||
|
</form> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% include 'multi_op/aff_room_state.html' with room_list=room_list %} |
||||
|
<br /> |
||||
|
<br /> |
||||
|
<br /> |
||||
|
{% endblock %} |
||||
|
|
||||
@ -0,0 +1,2 @@ |
|||||
|
{% load i18n %} |
||||
|
<li><a href="{% url 'multi_op:aff-state-global' %}"><i class="fa fa-ticket"></i>{% trans "Tickets" %}</a></li> |
||||
@ -0,0 +1,6 @@ |
|||||
|
{% load i18n %} |
||||
|
<li> |
||||
|
<a href="{% url 'tickets:new-ticket' %}"> |
||||
|
<i class="fa fa-ticket"></i> {% trans "Ouvrir un ticket" %} |
||||
|
</a> |
||||
|
</li> |
||||
@ -0,0 +1,36 @@ |
|||||
|
{% load i18n %} |
||||
|
|
||||
|
<div class="panel panel-default" id="tickets"> |
||||
|
<div class="panel-heading" data-toggle="collapse" href="#collapse_tickets"> |
||||
|
<h4 class="panel-title"> |
||||
|
<a><i class="fa fa-ticket"></i> {% trans "Tickets" %}</a> |
||||
|
</h4> |
||||
|
</div> |
||||
|
|
||||
|
<div id="collapse_tickets" class="panel-collapse panel-body collapse"> |
||||
|
|
||||
|
<a class="btn btn-primary btn-sm" role="button" href="{% url 'tickets:edit-preferences-tickets' %}"> |
||||
|
<i class="fa fa-edit"></i> |
||||
|
{% trans "Edit" %} |
||||
|
</a> |
||||
|
<p></p> |
||||
|
|
||||
|
<div class="table-responsive"> |
||||
|
<table class="table"> |
||||
|
<tr> |
||||
|
<th><p>{% trans "Publication email address"%}</p></th> |
||||
|
{% if preferences.publish_address %} |
||||
|
<td><p>{{ preferences.publish_address }}</p></td> |
||||
|
{% else %} |
||||
|
<td><p>{% trans "Pas d'adresse, les tickets ne sont pas annoncés" %}</p></td> |
||||
|
{% endif %} |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th><p>{% trans "Email language" %}</p></th> |
||||
|
<td><p>{{ language }}</p></th> |
||||
|
</tr> |
||||
|
<table class="table"> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
@ -0,0 +1,43 @@ |
|||||
|
{% extends 'base.html' %} |
||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2017 Gabriel Détraz |
||||
|
Copyright © 2017 Goulven Kermarec |
||||
|
Copyright © 2017 Augustin Lemesle |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
|
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block sidebar %} |
||||
|
<a class="list-group-item list-group-item-info" href="{% url 'multi_op:aff-state-global' %}"> |
||||
|
<i class="fa fa-random"></i> |
||||
|
{% trans "Rooms connection state" %} |
||||
|
</a> |
||||
|
<a class="list-group-item list-group-item-info" href="{% url 'multi_op:aff-pending-connection' %}"> |
||||
|
<i class="fa fa-compress"></i> |
||||
|
{% trans "Sockets to connect" %} |
||||
|
</a> |
||||
|
<a class="list-group-item list-group-item-info" href="{% url 'multi_op:aff-pending-disconnection' %}"> |
||||
|
<i class="fa fa-expand"></i> |
||||
|
{% trans "Sockets to disconnect" %} |
||||
|
</a> |
||||
|
|
||||
|
{% endblock %} |
||||
|
|
||||
@ -0,0 +1,3 @@ |
|||||
|
from django.test import TestCase |
||||
|
|
||||
|
# Create your tests here. |
||||
@ -0,0 +1,38 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2019 Gabriel Détraz |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
The database models for the 'urls' app of re2o. |
||||
|
|
||||
|
For further details on each of those models, see the documentation details for |
||||
|
each. |
||||
|
""" |
||||
|
|
||||
|
from django.conf.urls import url |
||||
|
|
||||
|
from . import views |
||||
|
|
||||
|
urlpatterns = [ |
||||
|
url(r'^$', views.aff_state_global, name='aff-state-global'), |
||||
|
url(r'^(?P<dormitoryid>[0-9]+)$', views.aff_state_dormitory, name='aff-state-dormitory'), |
||||
|
url(r'^pending-connection$', views.aff_pending_connection, name='aff-pending-connection'), |
||||
|
url(r'^pending-disconnection$', views.aff_pending_disconnection, name='aff-pending-disconnection'), |
||||
|
# url(r'^multi_op/edit-preferences-multiop$', views.edit_preferences, name='edit-preferences-multiop'), |
||||
|
] |
||||
@ -0,0 +1,179 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2017 Gabriel Détraz |
||||
|
# Copyright © 2017 Goulven Kermarec |
||||
|
# Copyright © 2017 Augustin Lemesle |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
|
||||
|
# App de gestion des users pour re2o |
||||
|
# Goulven Kermarec, Gabriel Détraz, Lemesle Augustin |
||||
|
# Gplv2 |
||||
|
|
||||
|
from django.contrib import messages |
||||
|
from django.contrib.auth.decorators import login_required |
||||
|
from django.shortcuts import render, redirect |
||||
|
from django.template.loader import render_to_string |
||||
|
from django.views.decorators.cache import cache_page |
||||
|
from django.utils.translation import ugettext as _ |
||||
|
from django.urls import reverse |
||||
|
from django.forms import modelformset_factory |
||||
|
from django.db.models import Q |
||||
|
from re2o.views import form |
||||
|
from re2o.utils import all_has_access, all_adherent |
||||
|
|
||||
|
from re2o.base import ( |
||||
|
re2o_paginator, |
||||
|
SortTable, |
||||
|
) |
||||
|
|
||||
|
from re2o.acl import( |
||||
|
can_view, |
||||
|
can_view_all, |
||||
|
can_edit, |
||||
|
can_create, |
||||
|
) |
||||
|
|
||||
|
from preferences.models import GeneralOption |
||||
|
|
||||
|
from .forms import DormitoryForm |
||||
|
|
||||
|
from .preferences.models import( |
||||
|
Preferences, |
||||
|
) |
||||
|
|
||||
|
from topologie.models import Room, Dormitory |
||||
|
|
||||
|
from .preferences.forms import ( |
||||
|
EditPreferencesForm, |
||||
|
) |
||||
|
|
||||
|
|
||||
|
def display_rooms_connection(request, dormitory=None): |
||||
|
"""View to display global state of connection state""" |
||||
|
room_list = Room.objects.select_related('building__dormitory').order_by('building_dormitory', 'port') |
||||
|
if dormitory: |
||||
|
room_list = room_list.filter(building__dormitory=dormitory) |
||||
|
room_list = SortTable.sort( |
||||
|
room_list, |
||||
|
request.GET.get('col'), |
||||
|
request.GET.get('order'), |
||||
|
SortTable.TOPOLOGIE_INDEX_ROOM |
||||
|
) |
||||
|
pagination_number = GeneralOption.get_cached_value('pagination_number') |
||||
|
room_list = re2o_paginator(request, room_list, pagination_number) |
||||
|
return render( |
||||
|
request, |
||||
|
'multi_op/index_room_state.html', |
||||
|
{'room_list': room_list} |
||||
|
) |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
@can_view_all(Room) |
||||
|
def aff_state_global(request): |
||||
|
return display_rooms_connection(request) |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
@can_view(Dormitory) |
||||
|
def aff_state_dormitory(request, dormitory, dormitoryid): |
||||
|
return display_rooms_connection(dormitory=dormitory) |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
@can_view_all(Room) |
||||
|
def aff_pending_connection(request): |
||||
|
"""Aff pending Rooms to connect on our network""" |
||||
|
room_list = Room.objects.select_related('building__dormitory').filter(port__isnull=True).filter(adherent__in=all_has_access()).order_by('building_dormitory', 'port') |
||||
|
dormitory_form = DormitoryForm(request.POST or None) |
||||
|
if dormitory_form.is_valid(): |
||||
|
room_list = room_list.filter(building__dormitory__in=dormitory_form.cleaned_data['dormitory']) |
||||
|
room_list = SortTable.sort( |
||||
|
room_list, |
||||
|
request.GET.get('col'), |
||||
|
request.GET.get('order'), |
||||
|
SortTable.TOPOLOGIE_INDEX_ROOM |
||||
|
) |
||||
|
pagination_number = GeneralOption.get_cached_value('pagination_number') |
||||
|
room_list = re2o_paginator(request, room_list, pagination_number) |
||||
|
return render( |
||||
|
request, |
||||
|
'multi_op/index_room_state.html', |
||||
|
{'room_list': room_list, 'dormitory_form': dormitory_form} |
||||
|
) |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
@can_view_all(Room) |
||||
|
def aff_pending_disconnection(request): |
||||
|
"""Aff pending Rooms to disconnect from our network""" |
||||
|
room_list = Room.objects.select_related('building__dormitory').filter(port__isnull=False).exclude(Q(adherent__in=all_has_access()) | Q(adherent__in=all_adherent())).order_by('building_dormitory', 'port') |
||||
|
dormitory_form = DormitoryForm(request.POST or None) |
||||
|
if dormitory_form.is_valid(): |
||||
|
room_list = room_list.filter(building__dormitory__in=dormitory_form.cleaned_data['dormitory']) |
||||
|
room_list = SortTable.sort( |
||||
|
room_list, |
||||
|
request.GET.get('col'), |
||||
|
request.GET.get('order'), |
||||
|
SortTable.TOPOLOGIE_INDEX_ROOM |
||||
|
) |
||||
|
pagination_number = GeneralOption.get_cached_value('pagination_number') |
||||
|
room_list = re2o_paginator(request, room_list, pagination_number) |
||||
|
return render( |
||||
|
request, |
||||
|
'multi_op/index_room_state.html', |
||||
|
{'room_list': room_list, 'dormitory_form': dormitory_form} |
||||
|
) |
||||
|
|
||||
|
|
||||
|
def edit_preferences(request): |
||||
|
""" View to edit the settings of the tickets """ |
||||
|
|
||||
|
preferences_instance, created = Preferences.objects.get_or_create(id=1) |
||||
|
preferencesform = EditPreferencesForm( |
||||
|
request.POST or None, |
||||
|
instance = preferences_instance,) |
||||
|
|
||||
|
if preferencesform.is_valid(): |
||||
|
if preferencesform.changed_data: |
||||
|
preferencesform.save() |
||||
|
messages.success(request,'Preferences updated') |
||||
|
return redirect(reverse('preferences:display-options',)) |
||||
|
else: |
||||
|
messages.error(request,'Formulaire Invalide') |
||||
|
return form({'preferencesform':preferencesform,},'multi_op/form_preferences.html',request) |
||||
|
return form({'preferencesform':preferencesform,},'multi_op/form_preferences.html',request) |
||||
|
|
||||
|
|
||||
|
def navbar_user(request): |
||||
|
"""View to display the app in user's dropdown in the navbar""" |
||||
|
return render_to_string('multi_op/navbar.html') |
||||
|
|
||||
|
def navbar_logout(request): |
||||
|
"""View to display the app in user's dropdown in the navbar""" |
||||
|
return None |
||||
|
|
||||
|
|
||||
|
def preferences(request): |
||||
|
""" View to display the settings of the tickets in the preferences page""" |
||||
|
pref, created = Preferences.objects.get_or_create(id=1) |
||||
|
context = {'preferences':pref,'language':str(pref.LANGUES[pref.mail_language][1])} |
||||
|
return render_to_string('tickets/preferences.html', context=context, request=request, using=None) |
||||
|
|
||||
|
|
||||
Loading…
Reference in new issue