cartads: add abstract model class in the middle (#31611)

This commit is contained in:
Frédéric Péters 2019-03-21 08:47:45 +01:00
parent 3c718f8611
commit a82e3df74b
1 changed files with 11 additions and 4 deletions

View File

@ -64,8 +64,7 @@ class CartaDSDossier(models.Model):
last_update_datetime = models.DateTimeField(auto_now=True)
class CartaDSCS(BaseResource):
category = _('Misc')
class AbstractCartaDSCS(BaseResource):
wsdl_base_url = models.URLField(_('WSDL Base URL'),
help_text=_('ex: https://example.net/adscs/webservices/'))
@ -79,7 +78,9 @@ class CartaDSCS(BaseResource):
ftp_client_name = models.CharField(_('FTP Client Name'), max_length=64)
class Meta:
verbose_name = 'Cart@DS CS'
# it is abstract to make it possible for an external connector (@GL) to
# reuse the full connector.
abstract = True
@property
def wsdl_url(self):
@ -89,7 +90,7 @@ class CartaDSCS(BaseResource):
return self.wsdl_base_url + service_type + '.svc?singleWsdl'
def soap_client(self, **kwargs):
client = super(CartaDSCS, self).soap_client(**kwargs)
client = super(AbstractCartaDSCS, self).soap_client(**kwargs)
# fix URL that should have been changed by reverse proxy
parsed_wsdl_address = urlparse.urlparse(client.service._binding_options['address'])
parsed_real_address = urlparse.urlparse(self.wsdl_base_url)
@ -444,3 +445,9 @@ class CartaDSCS(BaseResource):
status_id = 'pending'
status_label = _('Pending')
return {'status_id': status_id, 'status_label': status_label, 'extra': extra}
class CartaDSCS(AbstractCartaDSCS):
category = _('Misc')
class Meta:
verbose_name = 'Cart@DS CS'