add respo mu
This commit is contained in:
parent
bbff984513
commit
bd42fe6fb9
10 changed files with 66 additions and 31 deletions
18
gestion/migrations/0009_ernestouser_is_chef_mu.py
Normal file
18
gestion/migrations/0009_ernestouser_is_chef_mu.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 2.2.24 on 2022-01-11 15:12
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('gestion', '0008_auto_20211022_1923'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ernestouser',
|
||||||
|
name='is_chef_mu',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='Respo musique'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -46,6 +46,17 @@ class ChefComRequiredMixin(UserPassesTestMixin):
|
||||||
)
|
)
|
||||||
return is_chef or is_chef_com
|
return is_chef or is_chef_com
|
||||||
|
|
||||||
|
class ChefMuRequiredMixin(UserPassesTestMixin):
|
||||||
|
def test_func(self):
|
||||||
|
user = self.request.user
|
||||||
|
is_chef = (
|
||||||
|
(user is not None) and hasattr(user, "profile") and user.profile.is_chef
|
||||||
|
)
|
||||||
|
is_chef_mu = (
|
||||||
|
(user is not None) and hasattr(user, "profile") and user.profile.is_chef_mu
|
||||||
|
)
|
||||||
|
return is_chef or is_chef_mu
|
||||||
|
|
||||||
|
|
||||||
class AllChefRequiredMixin(UserPassesTestMixin):
|
class AllChefRequiredMixin(UserPassesTestMixin):
|
||||||
def test_func(self):
|
def test_func(self):
|
||||||
|
@ -62,4 +73,9 @@ class AllChefRequiredMixin(UserPassesTestMixin):
|
||||||
and hasattr(user, "profile")
|
and hasattr(user, "profile")
|
||||||
and user.profile.is_chef_event
|
and user.profile.is_chef_event
|
||||||
)
|
)
|
||||||
return is_chef or is_chef_com or is_chef_event or is_su
|
is_chef_mu = (
|
||||||
|
(user is not None)
|
||||||
|
and hasattr(user, "profile")
|
||||||
|
and user.profile.is_chef_mu
|
||||||
|
)
|
||||||
|
return is_chef or is_chef_com or is_chef_event or is_su or is_chef_mu
|
||||||
|
|
|
@ -87,6 +87,7 @@ class ErnestoUser(models.Model):
|
||||||
is_chef_event = models.BooleanField(_("Respo événements"), default=False)
|
is_chef_event = models.BooleanField(_("Respo événements"), default=False)
|
||||||
is_chef_com = models.BooleanField(_("Respo com"), default=False)
|
is_chef_com = models.BooleanField(_("Respo com"), default=False)
|
||||||
is_chef_instru = models.BooleanField(_("Respo instruments"), default=False)
|
is_chef_instru = models.BooleanField(_("Respo instruments"), default=False)
|
||||||
|
is_chef_mu = models.BooleanField(_("Respo musique"), default=False)
|
||||||
phone = models.CharField(
|
phone = models.CharField(
|
||||||
_("Téléphone"),
|
_("Téléphone"),
|
||||||
max_length=20,
|
max_length=20,
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
<a class="dropdown-item" href="https://heyzine.com/flip-book/b2cf4809b7.html" target="_blank">{% trans "Year Book 2021" %}</a>
|
<a class="dropdown-item" href="https://heyzine.com/flip-book/b2cf4809b7.html" target="_blank">{% trans "Year Book 2021" %}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% if user.is_superuser or user.profile.is_chef or user.profile.is_chef_event or user.profile.is_chef_com %}
|
{% if user.is_superuser or user.profile.is_chef or user.profile.is_chef_event or user.profile.is_chef_com or user.profile.is_chef_mu %}
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle" href="{% url 'chef' %}" id="navbardrop" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" href="{% url 'chef' %}" id="navbardrop" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<b>{% trans 'Le pouvoir des cheff·e·s'%}</b>
|
<b>{% trans 'Le pouvoir des cheff·e·s'%}</b>
|
||||||
|
@ -77,18 +77,18 @@
|
||||||
<a class="dropdown-item" href="/admin/">{% trans "Administration" %}</a>
|
<a class="dropdown-item" href="/admin/">{% trans "Administration" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef %}
|
||||||
<a class="dropdown-item" href="{% url 'calendrier:create_event' %}">{% trans "Ajouter un événement" %}</a>
|
|
||||||
<a class="dropdown-item" href="{% url 'actu:liste' %}">{% trans "Modifier les actualités" %}</a>
|
<a class="dropdown-item" href="{% url 'actu:liste' %}">{% trans "Modifier les actualités" %}</a>
|
||||||
<a class="dropdown-item" href="{% url 'liste_photo' %}">{% trans "Modifier les photos" %}</a>
|
{% endif %}
|
||||||
<a class="dropdown-item" href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a>
|
{% if user.profile.is_chef or user.profile.is_chef_event %}
|
||||||
<a class="dropdown-item" href="{% url 'partitions:list_setlist' %}">{% trans "Gérer les programmes de répétition" %}</a>
|
|
||||||
{% elif user.profile.is_chef_event %}
|
|
||||||
<a class="dropdown-item" href="{% url 'calendrier:create_event' %}">{% trans "Ajouter un événement" %}</a>
|
<a class="dropdown-item" href="{% url 'calendrier:create_event' %}">{% trans "Ajouter un événement" %}</a>
|
||||||
|
{% endif %}
|
||||||
{% elif user.profile.is_chef_com %}
|
{% if user.profile.is_chef or user.profile.is_chef_com %}
|
||||||
<a class="dropdown-item" href="{% url 'liste_photo' %}">{% trans "Modifier les photos" %}</a>
|
<a class="dropdown-item" href="{% url 'liste_photo' %}">{% trans "Modifier les photos" %}</a>
|
||||||
<a class="dropdown-item" href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a>
|
<a class="dropdown-item" href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
|
<a class="dropdown-item" href="{% url 'partitions:list_setlist' %}">{% trans "Gérer les programmes de répétition" %}</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<li><a href="{% url 'liste_photo' %}">{% trans "Modifier les photos" %}</a></li>
|
<li><a href="{% url 'liste_photo' %}">{% trans "Modifier les photos" %}</a></li>
|
||||||
<li><a href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a></li>
|
<li><a href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<li> <a href="{% url 'partitions:list_setlist' %}">{% trans "Gérer les programmes de répétition" %}</a> </li>
|
<li> <a href="{% url 'partitions:list_setlist' %}">{% trans "Gérer les programmes de répétition" %}</a> </li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<a href="{% url "partitions:listepart" partition.nom partition.auteur %}"
|
<a href="{% url "partitions:listepart" partition.nom partition.auteur %}"
|
||||||
class="fichier">{{ partition.nom }} - {{ partition.auteur }}</a>
|
class="fichier">{{ partition.nom }} - {{ partition.auteur }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<a href="{% url "partitions:conf_delete_morc" partition.nom partition.auteur %}"
|
<a href="{% url "partitions:conf_delete_morc" partition.nom partition.auteur %}"
|
||||||
class="supprimer">Supprimer</a>
|
class="supprimer">Supprimer</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="info_part">
|
<div class="info_part">
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<form action="{% url "partitions:listepart" nom auteur %}" id="chef-edit-form" method="post">
|
<form action="{% url "partitions:listepart" nom auteur %}" id="chef-edit-form" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form.as_p }}
|
{{ form.as_p }}
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<a href="{% url "partitions:download" nom auteur p.id %}" class="telecharger">Télécharger</a>
|
<a href="{% url "partitions:download" nom auteur p.id %}" class="telecharger">Télécharger</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="supprimer">Supprimer</a>
|
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="supprimer">Supprimer</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td> <a href="{% url "partitions:download" nom auteur p.id %}" class="button icon fa-download">{% trans "Télécharger" %}</a></td>
|
<td> <a href="{% url "partitions:download" nom auteur p.id %}" class="button icon fa-download">{% trans "Télécharger" %}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.profile.is_chef %} <td>
|
{% if user.profile.is_chef or user.profile.is_chef_mu %} <td>
|
||||||
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="button icon fa-deleate">{% trans "Supprimer" %}</a></td>
|
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="button icon fa-deleate">{% trans "Supprimer" %}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td> <a href="{% url "partitions:download" nom auteur p.id %}" class="button icon fa-download">{% trans "Télécharger" %}</a></td>
|
<td> <a href="{% url "partitions:download" nom auteur p.id %}" class="button icon fa-download">{% trans "Télécharger" %}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.profile.is_chef %} <td>
|
{% if user.profile.is_chef or user.profile.is_chef_mu %} <td>
|
||||||
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="button icon fa-deleate">{% trans "Supprimer" %}</a></td>
|
<a href="{% url "partitions:conf_delete" nom auteur p.pk %}" class="button icon fa-deleate">{% trans "Supprimer" %}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<p><a href="{% url "partitions:upload" p.nom p.auteur %}" class='button'>{% trans "Ajouter un média" %}</a></p>
|
<p><a href="{% url "partitions:upload" p.nom p.auteur %}" class='button'>{% trans "Ajouter un média" %}</a></p>
|
||||||
|
|
||||||
{% if infos or infos_en %}
|
{% if infos or infos_en %}
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
<p></p>
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="6u 12u$(small)">
|
<div class="6u 12u$(small)">
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<form action="{% url "partitions:listepart" nom auteur %}" id="chef-edit-form" method="post">
|
<form action="{% url "partitions:listepart" nom auteur %}" id="chef-edit-form" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form.as_p }}
|
{{ form.as_p }}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<div class="icon fa-copyright" style="color:#000000"> Lucas Gierzack</div></div>
|
<div class="icon fa-copyright" style="color:#000000"> Lucas Gierzack</div></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
{% if user.profile.is_chef %}
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}
|
||||||
<a href="{% url "partitions:ajouter_morceau" %}" class="button alt big">{% trans "Ajouter un morceau" %}</a>   <a href="{% url "partitions:download_musecores" %}" class="button alt big">{% trans "Télécharger tous les musecores actifs" %}</a>
|
<a href="{% url "partitions:ajouter_morceau" %}" class="button alt big">{% trans "Ajouter un morceau" %}</a>   <a href="{% url "partitions:download_musecores" %}" class="button alt big">{% trans "Télécharger tous les musecores actifs" %}</a>
|
||||||
{% elif user.is_authenticated %}
|
{% elif user.is_authenticated %}
|
||||||
<a href="{% url "partitions:download_musecores" %}" class="button alt big">{% trans "Télécharger tous les musecores actifs" %}</a>
|
<a href="{% url "partitions:download_musecores" %}" class="button alt big">{% trans "Télécharger tous les musecores actifs" %}</a>
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
<td> <u><a href="{% url "partitions:listepart" partition.nom partition.auteur %}"
|
<td> <u><a href="{% url "partitions:listepart" partition.nom partition.auteur %}"
|
||||||
class="fichier">{{ partition.nom }}</a> </td>
|
class="fichier">{{ partition.nom }}</a> </td>
|
||||||
<td> {{ partition.auteur }} </a></u> </td>
|
<td> {{ partition.auteur }} </a></u> </td>
|
||||||
{% if user.profile.is_chef %}<td>
|
{% if user.profile.is_chef or user.profile.is_chef_mu %}<td>
|
||||||
|
|
||||||
<a href="{% url "partitions:conf_delete_morc" partition.nom partition.auteur %}"
|
<a href="{% url "partitions:conf_delete_morc" partition.nom partition.auteur %}"
|
||||||
class="button small icon fa-trash">{% trans "Supprimer" %}</a></td>
|
class="button small icon fa-trash">{% trans "Supprimer" %}</a></td>
|
||||||
|
|
|
@ -14,7 +14,7 @@ from django.utils.translation import gettext_lazy as _
|
||||||
from django.views.generic import (CreateView, DeleteView, ListView,
|
from django.views.generic import (CreateView, DeleteView, ListView,
|
||||||
TemplateView, UpdateView)
|
TemplateView, UpdateView)
|
||||||
|
|
||||||
from gestion.mixins import ChefRequiredMixin
|
from gestion.mixins import ChefMuRequiredMixin
|
||||||
from gestion.models import Photo
|
from gestion.models import Photo
|
||||||
from partitions.forms import UploadFileForm, UploadMorceauForm
|
from partitions.forms import UploadFileForm, UploadMorceauForm
|
||||||
from partitions.models import Category, Partition, PartitionSet, SetList
|
from partitions.models import Category, Partition, PartitionSet, SetList
|
||||||
|
@ -128,7 +128,7 @@ class Morceau(LoginRequiredMixin, TemplateView):
|
||||||
return render(request, self.template_name, context)
|
return render(request, self.template_name, context)
|
||||||
|
|
||||||
|
|
||||||
class Upload(ChefRequiredMixin, TemplateView):
|
class Upload(ChefMuRequiredMixin, TemplateView):
|
||||||
form_class = UploadFileForm
|
form_class = UploadFileForm
|
||||||
template_name = "partitions/upload.html"
|
template_name = "partitions/upload.html"
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ def see(request, nom, auteur, partition_id):
|
||||||
return redirect("login")
|
return redirect("login")
|
||||||
|
|
||||||
|
|
||||||
class DeletePart(ChefRequiredMixin, TemplateView):
|
class DeletePart(ChefMuRequiredMixin, TemplateView):
|
||||||
model = PartitionSet
|
model = PartitionSet
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
|
@ -225,7 +225,7 @@ class DeletePart(ChefRequiredMixin, TemplateView):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class CreateMorc(ChefRequiredMixin, TemplateView):
|
class CreateMorc(ChefMuRequiredMixin, TemplateView):
|
||||||
form_class = UploadMorceauForm
|
form_class = UploadMorceauForm
|
||||||
template_name = "partitions/new.html"
|
template_name = "partitions/new.html"
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ class CreateMorc(ChefRequiredMixin, TemplateView):
|
||||||
return render(request, self.template_name, context)
|
return render(request, self.template_name, context)
|
||||||
|
|
||||||
|
|
||||||
class ConfDelete(ChefRequiredMixin, TemplateView):
|
class ConfDelete(ChefMuRequiredMixin, TemplateView):
|
||||||
template_name = "partitions/conf_delete.html"
|
template_name = "partitions/conf_delete.html"
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
@ -281,7 +281,7 @@ class ConfDelete(ChefRequiredMixin, TemplateView):
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class DeleteMorc(ChefRequiredMixin, TemplateView):
|
class DeleteMorc(ChefMuRequiredMixin, TemplateView):
|
||||||
model = PartitionSet
|
model = PartitionSet
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
|
@ -295,7 +295,7 @@ class DeleteMorc(ChefRequiredMixin, TemplateView):
|
||||||
return redirect("partitions:liste")
|
return redirect("partitions:liste")
|
||||||
|
|
||||||
|
|
||||||
class ConfDeleteMorc(ChefRequiredMixin, TemplateView):
|
class ConfDeleteMorc(ChefMuRequiredMixin, TemplateView):
|
||||||
template_name = "partitions/conf_delete_morc.html"
|
template_name = "partitions/conf_delete_morc.html"
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
@ -326,25 +326,25 @@ def download(request, nom, auteur, partition_id):
|
||||||
return redirect("login")
|
return redirect("login")
|
||||||
|
|
||||||
|
|
||||||
class SetListListView(ChefRequiredMixin, ListView):
|
class SetListListView(ChefMuRequiredMixin, ListView):
|
||||||
model = SetList
|
model = SetList
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return SetList.objects.all().order_by("-date")
|
return SetList.objects.all().order_by("-date")
|
||||||
|
|
||||||
|
|
||||||
class SetListCreate(ChefRequiredMixin, CreateView):
|
class SetListCreate(ChefMuRequiredMixin, CreateView):
|
||||||
model = SetList
|
model = SetList
|
||||||
fields = ["date", "morceaux", "is_current"]
|
fields = ["date", "morceaux", "is_current"]
|
||||||
success_url = reverse_lazy("partitions:list_setlist")
|
success_url = reverse_lazy("partitions:list_setlist")
|
||||||
|
|
||||||
|
|
||||||
class SetListUpdate(ChefRequiredMixin, UpdateView):
|
class SetListUpdate(ChefMuRequiredMixin, UpdateView):
|
||||||
model = SetList
|
model = SetList
|
||||||
fields = ["date", "morceaux", "is_current"]
|
fields = ["date", "morceaux", "is_current"]
|
||||||
success_url = reverse_lazy("partitions:list_setlist")
|
success_url = reverse_lazy("partitions:list_setlist")
|
||||||
|
|
||||||
|
|
||||||
class SetListDelete(ChefRequiredMixin, DeleteView):
|
class SetListDelete(ChefMuRequiredMixin, DeleteView):
|
||||||
model = SetList
|
model = SetList
|
||||||
success_url = reverse_lazy("partitions:list_setlist")
|
success_url = reverse_lazy("partitions:list_setlist")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue