PonyConf/cfp/mixins.py

35 lines
905 B
Python
Raw Normal View History

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):
return super().get_queryset().filter(site=self.request.conference.site)
2017-08-12 17:25:56 +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)