2017-07-30 18:11:13 +00:00
|
|
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
|
|
|
|
|
|
|
from .utils import is_staff
|
|
|
|
|
|
|
|
|
|
|
|
class StaffRequiredMixin(UserPassesTestMixin):
|
|
|
|
def test_func(self):
|
|
|
|
return is_staff(self.request, self.request.user)
|
2017-08-11 22:50:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
class OnSiteMixin:
|
|
|
|
def get_queryset(self):
|
2017-08-12 12:17:00 +00:00
|
|
|
return super().get_queryset().filter(site=self.request.conference.site)
|
2017-08-12 17:25:56 +00:00
|
|
|
|
|
|
|
|
2017-08-13 15:03:20 +00:00
|
|
|
class OnSiteFormMixin:
|
|
|
|
def get_form_kwargs(self):
|
|
|
|
kwargs = super().get_form_kwargs()
|
|
|
|
kwargs.update({
|
|
|
|
'conference': self.request.conference,
|
|
|
|
})
|
|
|
|
return kwargs
|
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class OnSiteAdminMixin:
|
|
|
|
exclude = ('site',)
|
|
|
|
|
|
|
|
def get_queryset(self, request):
|
|
|
|
return super().get_queryset(request).filter(site=request.conference.site)
|
|
|
|
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
|
|
if not change:
|
2017-08-12 21:31:11 +00:00
|
|
|
obj.site = request.conference.site
|
2017-08-12 17:25:56 +00:00
|
|
|
super().save_model(request, obj, form, change)
|