Dont traceback if ServiceInstance is not completely initialised
If .service_id is None, .service would raise.
This commit is contained in:
parent
083222b34c
commit
d0cb1c3805
|
@ -343,17 +343,20 @@ class ServiceInstance(Model):
|
|||
return (self.slug, self.service.natural_key(), self.collectivity.natural_key())
|
||||
|
||||
def clean(self):
|
||||
if self.collectivity and self.service and self.service.is_global:
|
||||
qs = ServiceInstance.objects.exclude(id=self.id)
|
||||
qs = qs.filter(collectivity=self.collectivity,
|
||||
service=self.service)
|
||||
if qs.exists():
|
||||
raise ValidationError(_('There can be only one instance of a global service by collectivity'))
|
||||
if self.service and self.service.is_global:
|
||||
self.service_url = self.service.service_url
|
||||
self.metadata_url = self.service.metadata_url
|
||||
if not self.service.is_global and not self.service_url:
|
||||
raise ValidationError(_('Service URL field is required'))
|
||||
super(ServiceInstance, self).clean()
|
||||
if self.service_id:
|
||||
if self.collectivity and self.service.is_global:
|
||||
qs = ServiceInstance.objects.exclude(id=self.id)
|
||||
qs = qs.filter(collectivity=self.collectivity,
|
||||
service=self.service)
|
||||
if qs.exists():
|
||||
raise ValidationError(_('There can be only one instance of a global service by collectivity'))
|
||||
if self.service.is_global:
|
||||
self.service_url = self.service.service_url
|
||||
self.metadata_url = self.service.metadata_url
|
||||
self.cas_service_url = self.service.cas_service_url
|
||||
if not self.service.is_global and not self.service_url:
|
||||
raise ValidationError(_('Service URL field is required'))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('service instance')
|
||||
|
|
Reference in New Issue