summaryrefslogtreecommitdiffstats
path: root/restaurant_orders/settings/views.py
blob: 0921cd3c7dbff6137f6a30faad0d436e97fbed0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from django.urls import reverse
from django.shortcuts import render, redirect, Http404
from django.views.generic.edit import UpdateView, CreateView, View
from django.contrib.messages.views import SuccessMessageMixin
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin

from core.models import Restaurant
from settings.forms import RestaurantForm


class Home(LoginRequiredMixin, PermissionRequiredMixin, View):
    permission_required = 'core.change_restaurant'

    def get(self, request):
        if not self.request.user.has_perm('settings.change_restaurant'):
            raise Http404

        redirect_url = 'settings:restaurant_settings'
        restaurants = Restaurant.get_user_restaurants(request.user)

        if len(restaurants) == 1:
            return redirect(redirect_url, pk=restaurants[0].pk)

        return render(request, template_name='restaurants_choice.html', context={
            'title': 'Ustawienia',
            'restaurants': restaurants,
            'redirect_url': redirect_url
        })

class RestaurantSettings(LoginRequiredMixin, SuccessMessageMixin, PermissionRequiredMixin, UpdateView):
    template_name = 'settings/restaurant_settings.html'
    form_class = RestaurantForm
    model = Restaurant
    success_message = 'Zapisano!'
    permission_required = 'core.change_restaurant'

    def get_queryset(self, *args, **kwargs):
        return super().get_queryset(*args, **kwargs).filter(
            pk=self.kwargs['pk'],
            users=self.request.user.pk
        )

    def get_success_url(self):
        return reverse('settings:restaurant_settings', args=(self.kwargs['pk'], ))