add respo event
This commit is contained in:
parent
80a7f99f28
commit
38b0f12201
8 changed files with 48 additions and 14 deletions
|
@ -60,7 +60,7 @@
|
|||
</tr>
|
||||
</table>
|
||||
<div id="calendar">
|
||||
{% if user.is_superuser or user.profile.is_chef %}
|
||||
{% if user.profile.is_chef_event or user.profile.is_chef %}
|
||||
{% ifequal current_language "fr" %}
|
||||
{{Calendar_chef|translate}}
|
||||
{% else %}
|
||||
|
@ -74,7 +74,7 @@
|
|||
{% endifequal %}
|
||||
{% endif%}
|
||||
</div>
|
||||
{% if user.is_superuser or user.profile.is_chef %}
|
||||
{% if user.profile.is_chef_event or user.profile.is_chef %}
|
||||
<a href="{% url "calendrier:create_event" %}" class="button">{% trans "Ajouter un évènement" %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -98,7 +98,7 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% if user.is_superuser or user.profile.is_chef %}
|
||||
{% if user.profile.is_chef_event or user.profile.is_chef %}
|
||||
{% if events_a_venir_chef %}
|
||||
<div class="box" style="background-color:#4169E1">
|
||||
<h1> {% blocktrans count counter=events_a_venir_chef|length %}Doodle seulement visible par les cheff·e·s :{% plural %}Doodles seulement visibles par les cheff·e·s :{% endblocktrans %} </h1>
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
<div id="main">
|
||||
<section class="wrapper style1">
|
||||
<div class="inner">
|
||||
{% if not user.is_superuser or not user.profile.is_chef %}
|
||||
{% if not user.profile.is_chef and not user.profile.is_chef_event %}
|
||||
{% if chef_only %}
|
||||
{% trans "Cet événement est encore en construction ! Reviens plus tard." %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if user.is_superuser or user.profile.is_chef or not chef_only%}
|
||||
{% if user.profile.is_chef_event or user.profile.is_chef or not chef_only%}
|
||||
<div class="row">
|
||||
<div class="6u 12u$(small)">
|
||||
|
||||
|
@ -87,7 +87,7 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
<div class="6u 12u$(small)">
|
||||
{% if instrument_count and user.profile.is_chef %}
|
||||
{% if user.profile.is_chef or user.profile.is_chef_event %}
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>{% trans "Instrument" %}</th>
|
||||
|
@ -159,8 +159,8 @@
|
|||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% if multi_instrumentistes and user.profile.is_chef %}
|
||||
|
||||
{% if user.profile.is_chef or user.profile.is_chef_event %}
|
||||
{% if multi_instrumentistes %}
|
||||
<h1>{% blocktrans count counter=multi_instrumentistes|length %}Multi-instrumentiste présent :{% plural %}Multi-instrumentistes présents{% endblocktrans %}</h1>
|
||||
|
||||
<table class="table">
|
||||
|
@ -204,10 +204,11 @@
|
|||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="6u 12u$(small)">
|
||||
{% if user.is_authenticated %}
|
||||
<div id="actions"> {% if user.profile.is_chef %}
|
||||
<div id="actions"> {% if user.profile.is_chef or user.profile.is_chef_event %}
|
||||
<p><a href="{% url "calendrier:edit_event" event.id %}" class="button alt">{% trans "Modifier l'événement" %}</a>   <a href="{% url "calendrier:delete_event" event.id %}" class="button alt">{% trans "Supprimer l'événement" %}</a></p>
|
||||
{% endif %}
|
||||
<p><a href="{% url 'calendrier:change-doodle-name' event.id %}" class="button">{% trans "Changer mon nom pour le doodle" %}</a>   <a href="{% url 'calendrier:home' %}" class="button">{% trans "Retour au calendrier" %}</a></p>
|
||||
|
|
|
@ -16,7 +16,7 @@ from calendrier.calend import EventCalendar
|
|||
from calendrier.forms import (ChangeDoodleName, EventForm, ModifEventForm,
|
||||
ParticipantsForm)
|
||||
from calendrier.models import Event, Participants
|
||||
from gestion.mixins import ChefRequiredMixin
|
||||
from gestion.mixins import ChefRequiredMixin, ChefEventRequiredMixin
|
||||
from gestion.models import Photo
|
||||
|
||||
|
||||
|
@ -279,7 +279,7 @@ class ChangeName(LoginRequiredMixin, TemplateView):
|
|||
return render(request, self.template_name, context)
|
||||
|
||||
|
||||
class CreateEvent(LoginRequiredMixin, TemplateView):
|
||||
class CreateEvent(ChefEventRequiredMixin, TemplateView):
|
||||
form_class = EventForm
|
||||
template_name = "calendrier/create.html"
|
||||
|
||||
|
@ -350,7 +350,7 @@ class ReponseEvent(LoginRequiredMixin, TemplateView):
|
|||
return render(request, self.template_name, context)
|
||||
|
||||
|
||||
class EventUpdate(ChefRequiredMixin, UpdateView):
|
||||
class EventUpdate(ChefEventRequiredMixin, UpdateView):
|
||||
model = Event
|
||||
template_name = "calendrier/update.html"
|
||||
form_class = ModifEventForm
|
||||
|
@ -364,7 +364,7 @@ class EventUpdate(ChefRequiredMixin, UpdateView):
|
|||
return reverse("calendrier:view-event", kwargs={"id": self.get_object().id})
|
||||
|
||||
|
||||
class EventDelete(ChefRequiredMixin, DeleteView):
|
||||
class EventDelete(ChefEventRequiredMixin, DeleteView):
|
||||
model = Event
|
||||
template_name = "calendrier/delete.html"
|
||||
success_url = reverse_lazy("calendrier:home")
|
||||
|
|
|
@ -36,6 +36,7 @@ User.profile_phone = ProfileInfo("phone", "Téléphone")
|
|||
User.profile_instru = ProfileInfo("instru", "Instrument joué")
|
||||
User.profile_is_ern = ProfileInfo("is_ernesto", "Ernestophoniste")
|
||||
User.profile_is_chef = ProfileInfo("is_chef", "Chef Fanfare")
|
||||
User.profile_is_chef_event = ProfileInfo("is_chef_event", "Respo événement")
|
||||
User.profile_get_mails = ProfileInfo("mails", "Recevoir les mails")
|
||||
|
||||
|
||||
|
@ -57,6 +58,7 @@ class UserProfileAdmin(UserAdmin):
|
|||
"profile_instru",
|
||||
"profile_is_ern",
|
||||
"profile_is_chef",
|
||||
"profile_is_chef_event",
|
||||
]
|
||||
list_display_links = ["username", "email", "first_name", "last_name"]
|
||||
list_filter = ["profile__instru"]
|
||||
|
|
18
gestion/migrations/0007_ernestouser_is_chef_event.py
Normal file
18
gestion/migrations/0007_ernestouser_is_chef_event.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.24 on 2021-10-06 09:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('gestion', '0006_auto_20210608_1029'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='ernestouser',
|
||||
name='is_chef_event',
|
||||
field=models.BooleanField(default=False, verbose_name='Respo événement Fanfare'),
|
||||
),
|
||||
]
|
|
@ -5,3 +5,10 @@ class ChefRequiredMixin(UserPassesTestMixin):
|
|||
def test_func(self):
|
||||
user = self.request.user
|
||||
return (user is not None) and hasattr(user, "profile") and user.profile.is_chef
|
||||
|
||||
class ChefEventRequiredMixin(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_event = (user is not None) and hasattr(user, "profile") and user.profile.is_chef_event
|
||||
return is_chef or is_chef_event
|
||||
|
|
|
@ -81,6 +81,7 @@ class ErnestoUser(models.Model):
|
|||
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
|
||||
is_ernesto = models.BooleanField(_("Membre de l'Ernestophone"), default=True)
|
||||
is_chef = models.BooleanField(_("Chef Fanfare"), default=False)
|
||||
is_chef_event = models.BooleanField(_("Respo événements"), default=False)
|
||||
phone = models.CharField(
|
||||
_("Téléphone"),
|
||||
max_length=20,
|
||||
|
|
|
@ -66,19 +66,24 @@
|
|||
|
||||
</div>
|
||||
</li>
|
||||
{% if user.is_superuser or user.profile.is_chef %}
|
||||
{% if user.is_superuser or user.profile.is_chef or user.profile.is_chef_event %}
|
||||
<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">
|
||||
<b>{% trans 'Le pouvoir des cheff·e·s'%}</b>
|
||||
</a>
|
||||
<div class="dropdown-menu">
|
||||
{% if user.is_superuser or user.profile.is_chef %}
|
||||
<a class="dropdown-item" href="/admin/">{% trans "Administration" %}</a>
|
||||
{% endif %}
|
||||
{% 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 'liste_photo' %}">{% trans "Modifier les photos" %}</a>
|
||||
<a class="dropdown-item" href="{% url 'liste_video' %}">{% trans "Modifier les vidéos" %}</a>
|
||||
{% endif %}
|
||||
{% if user.profile.is_chef_event %}
|
||||
<a class="dropdown-item" href="{% url 'calendrier:create_event' %}">{% trans "Ajouter un événement" %}</a>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</li>
|
||||
|
|
Loading…
Reference in a new issue