mirror of
https://github.com/ae-utbm/sith.git
synced 2025-06-29 06:35:18 +00:00
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
# Create your views here.
|
|
|
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
|
from django.contrib.messages.views import SuccessMessageMixin
|
|
from django.urls import reverse_lazy
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.views.generic import CreateView, DeleteView, TemplateView, UpdateView
|
|
|
|
from club.models import Club
|
|
from core.auth.mixins import CanEditMixin
|
|
from core.views import UseFragmentsMixin
|
|
from core.views.mixins import FragmentMixin
|
|
from reservation.forms import ReservationForm, RoomCreateForm, RoomUpdateForm
|
|
from reservation.models import ReservationSlot, Room
|
|
|
|
|
|
class RoomCreateView(SuccessMessageMixin, PermissionRequiredMixin, CreateView):
|
|
form_class = RoomCreateForm
|
|
template_name = "core/create.jinja"
|
|
success_message = _("%(name)s was created successfully")
|
|
permission_required = "reservation.add_room"
|
|
|
|
def get_initial(self):
|
|
init = super().get_initial()
|
|
if "club" in self.request.GET:
|
|
club_id = self.request.GET["club"]
|
|
if club_id.isdigit() and int(club_id) > 0:
|
|
init["club"] = Club.objects.filter(id=int(club_id)).first()
|
|
return init
|
|
|
|
|
|
class RoomUpdateView(SuccessMessageMixin, CanEditMixin, UpdateView):
|
|
model = Room
|
|
pk_url_kwarg = "room_id"
|
|
form_class = RoomUpdateForm
|
|
template_name = "core/edit.jinja"
|
|
success_message = _("%(name)s was updated successfully")
|
|
|
|
def get_form_kwargs(self):
|
|
return super().get_form_kwargs() | {"request_user": self.request.user}
|
|
|
|
def get_success_url(self):
|
|
return self.request.path
|
|
|
|
|
|
class RoomDeleteView(PermissionRequiredMixin, DeleteView):
|
|
model = Room
|
|
pk_url_kwarg = "room_id"
|
|
template_name = "core/delete_confirm.jinja"
|
|
success_url = reverse_lazy("reservation:room_list")
|
|
permission_required = "reservation.delete_room"
|