diff --git a/app/notify_client/models.py b/app/notify_client/models.py index 137c21b20..c3bf3749c 100644 --- a/app/notify_client/models.py +++ b/app/notify_client/models.py @@ -268,7 +268,7 @@ class AnonymousUser(AnonymousUserMixin): return False -class Service(dict): +class Service(): ALLOWED_PROPERTIES = { 'active', @@ -291,16 +291,30 @@ class Service(dict): def __init__(self, _dict): # in the case of a bad request current service may be `None` - super().__init__(_dict or {}) + self._dict = _dict or {} + if 'permissions' not in self._dict: + self.permissions = {'email', 'sms', 'letter'} + + def __bool__(self): + return self._dict != {} def __getattr__(self, attr): if attr in self.ALLOWED_PROPERTIES: - return self[attr] + return self._dict[attr] raise AttributeError('`{}` is not a service attribute'.format(attr)) + def __getitem__(self, attr): + return self.__getattr__(attr) + + def get(self, attr, default=None): + try: + return self._dict[attr] + except KeyError: + return default + @property def trial_mode(self): - return self['restricted'] + return self._dict['restricted'] def has_permission(self, permission): return permission in self.permissions diff --git a/app/templates/partials/check/too-many-messages.html b/app/templates/partials/check/too-many-messages.html index b75dbb65f..073f906d7 100644 --- a/app/templates/partials/check/too-many-messages.html +++ b/app/templates/partials/check/too-many-messages.html @@ -7,7 +7,7 @@

You can only send {{ current_service.message_limit }} messages per day - {%- if current_service.restricted %} + {%- if current_service.trial_mode %} in trial mode {%- endif -%} . diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index e4b8e16cd..b6aa23ad3 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -253,7 +253,7 @@ {% endcall %} - {% if current_service.restricted %} + {% if current_service.trial_mode %}

Your service is in trial mode