Files
centurion_erp/app/settings/views/app_settings.py
Jon f36400dbb9 feat(setting): Enable super admin to set ALL software as global
sets is_global=true and creates software in global organization

!11 closes #27
2024-05-25 14:18:01 +09:30

64 lines
1.3 KiB
Python

from django.core.exceptions import EmptyResultSet, PermissionDenied, ValidationError
from django.urls import reverse
from django.views import generic
from access.mixin import OrganizationPermission
from settings.models.app_settings import AppSettings
class View(generic.UpdateView):
model = AppSettings
context_object_name = "settings"
fields = model.__all__
template_name = 'form.html.j2'
def get_object(self, queryset=None):
obj = self.model.objects.get(owner_organization=None)
if obj:
return obj
raise EmptyResultSet('No Application Settings found')
def form_valid(self, form):
form.instance.id = self.object.pk
if self.request.user.is_superuser:
return super().form_valid(form)
raise PermissionDenied()
def get_success_url(self, **kwargs):
return reverse('Settings:_settings_application')
def get_context_data(self, **kwargs):
if self.request.user.is_superuser:
context = super().get_context_data(**kwargs)
context['model_pk'] = self.object.pk
context['model_name'] = self.model._meta.verbose_name.replace(' ', '')
context['content_title'] = 'Application Settings'
return context
raise PermissionDenied()