diff --git a/multi_op/migrations/0001_initial.py b/multi_op/migrations/0001_initial.py new file mode 100644 index 00000000..6777a2f1 --- /dev/null +++ b/multi_op/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2020-09-04 12:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('topologie', '0074_auto_20200419_1640'), + ] + + operations = [ + migrations.CreateModel( + name='Preferences', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enabled_dorm', models.ManyToManyField(blank=True, related_name='vlan_tagged', to='topologie.Dormitory', verbose_name='enabled dorm')), + ], + options={ + 'verbose_name': 'dormitories preferences', + }, + ), + ] diff --git a/multi_op/migrations/0002_auto_20200904_1905.py b/multi_op/migrations/0002_auto_20200904_1905.py new file mode 100644 index 00000000..1ae26684 --- /dev/null +++ b/multi_op/migrations/0002_auto_20200904_1905.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2020-09-04 17:05 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('multi_op', '0001_initial'), + ] + + operations = [ + migrations.RenameModel( + old_name='Preferences', + new_name='MultiopOption', + ), + ] diff --git a/multi_op/migrations/__init__.py b/multi_op/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/multi_op/models.py b/multi_op/models.py new file mode 100644 index 00000000..cc12d661 --- /dev/null +++ b/multi_op/models.py @@ -0,0 +1,45 @@ +# -*- 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 Arthur Grisel-Davy +# Copyright © 2020 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. +""" +Multi_op model +""" + +from __future__ import absolute_import + +from django.db import models +from django.utils.translation import ugettext_lazy as _ +from django.template import loader +from django.db.models.signals import post_save +from django.dispatch import receiver +from django.utils.functional import cached_property + +from reversion.models import Version + +from re2o.mixins import AclMixin +from re2o.mail_utils import send_mail_object +from django.core.mail import EmailMessage + +from preferences.models import GeneralOption + +import users.models + +from .preferences.models import MultiopOption diff --git a/multi_op/preferences/__init__.py b/multi_op/preferences/__init__.py new file mode 100644 index 00000000..c73d6113 --- /dev/null +++ b/multi_op/preferences/__init__.py @@ -0,0 +1,24 @@ +# -*- 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 © 2020 Gabriel Détraz +# Copyright © 2019 Arthur Grisel-Davy +# +# 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. +"""multi_op +The app in charge of managing the operator of the dormitories +""" diff --git a/multi_op/preferences/forms.py b/multi_op/preferences/forms.py index a58410c7..b5d3b4a6 100644 --- a/multi_op/preferences/forms.py +++ b/multi_op/preferences/forms.py @@ -33,7 +33,7 @@ from django.utils.translation import ugettext_lazy as _ from .models import Preferences -class EditPreferencesForm(ModelForm): +class EditMultiopOptionForm(ModelForm): """Form used to edit the settings of multi_op.""" class Meta: diff --git a/multi_op/preferences/views.py b/multi_op/preferences/views.py new file mode 100644 index 00000000..fa9509e6 --- /dev/null +++ b/multi_op/preferences/views.py @@ -0,0 +1,58 @@ +# -*- 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 © 2020 Gabriel Détraz +# Copyright © 2019 Arthur Grisel-Davy +# +# 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 +# Lara 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.utils.translation import ugettext as _ +from django.urls import reverse + +from re2o.base import re2o_paginator + +from re2o.acl import can_view, can_view_all, can_edit, can_create + +from preferences.views import edit_options_template_function + +from . import forms +from . import models + + + +def aff_preferences(request): + """View used to display the settings of multi_op in the preferences page.""" + pref, created = models.MultiopOption.objects.get_or_create() + context = { + "preferences": pref, + } + return render_to_string( + "multi_op/preferences.html", context=context, request=request, using=None + ) + + +@login_required +def edit_options(request, section): + return edit_options_template_function(request, section, forms, models) diff --git a/multi_op/templates/multi_op/preferences.html b/multi_op/templates/multi_op/preferences.html new file mode 100644 index 00000000..391b7330 --- /dev/null +++ b/multi_op/templates/multi_op/preferences.html @@ -0,0 +1,30 @@ +{% load design %} +{% load i18n %} + +
+
+

+ {% trans "Multi Op" %} +

+
+ +
+ {% comment %} + + + {% trans "Edit" %} + +

+ {% endcomment %} + +
+ + + + + +

{% trans "Enabled Dorm" %}

{{ preferences.enabled_dorm | tick}}

+
+
+
+
diff --git a/multi_op/views.py b/multi_op/views.py index 729eae27..0aeccfc8 100644 --- a/multi_op/views.py +++ b/multi_op/views.py @@ -49,8 +49,6 @@ from .preferences.models import Preferences from topologie.models import Room, Dormitory -from .preferences.forms import EditPreferencesForm - def display_rooms_connection(request, dormitory=None): """View used to display an overview of the rooms' connection state.